サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2025年ランキング
rejasupotaro.github.io
1ヶ月ほどインドネシアに行ってきた記録です。 街 スカルノハッタ国際空港からジャカルタの中心地までは遠く、また電車は中心地の短い区間に一本走っているだけなので、タクシーで移動した。 青いタクシー以外は乗らない方が良いと言われていたので、滞在中は青いタクシーだけを使っていた。青いタクシー以外に乗るとどうなるのかは知らない。 街の雰囲気は、今まで行ったことのない雰囲気で新鮮だった。 道端では数十円、数百円の服や食べ物を売っているかと思えば、富裕層向けのデパートでは数万円の服が売っていたりレストランがあって、生活水準のギャップが大きかった。 また、あちこちで工事していて街全体が今まさに成長しているという印象を受けた。 気温は年間を通して28度くらいで、1月だったが海に行ったら普通に泳いでいた。 11月から3月は雨季で、そのため滞在日数の半分くらいは雨が降っていて、道路が氾濫して出社できなくなって
3週間ほどスペインに行ってきた記録です。 街 スペインの中でもリゾート地っぽいところだったのでビーチ、港、カジノ、城という感じだった。 また、近くにヌーディストビーチがあったのだけど、あいにく冬は日本と同じくらい寒いので、誰も泳いでいなかった。夏にまたおいでと言われた。 その代わりクリスマスシーズンだったので、スペインのクリスマスを見ることができた。 まあ、街がイルミネーションで飾られたり、クリスマスソングが流れてたりと、あまり日本と変わらないと思ったのだけど、スペインでは法律か何かで日曜に働くことが禁止されているので、休日に店が空いてるというのが特別なことらしい。 食 精肉店や市場やスーパーに通って人々の生活を見つつ、その土地の食材を使って料理をしていた。 食べ物が口に合わないということはなかった。ビールは水より安かった。
会社で月に一回LT大会があります。 弊社はRubyをメインに使っていますが、これからはマイクロサービスや!とか言ってジャバとかGoとかHaskellとかLispとか、用途に合わせて違う言語を使うケースもこともあるだろうと思って、最近のジャバどんな感じだったっけ?という話をしました。 5分+IntelliJでコード見つつだったので色々端折っています。 FAQ Q. ジャバは最高って本当ですか? A. 私「最高です!!」 Q. アンドロイドはジャバですか? A. 私「ギリギリジャバ」 Q. ジャバはどこでも動くって本当ですか? A. ???「ジャバはどこでも動きません!!!」 A. ???「アプレットのことをお忘れではありませんか?!?!」 まとめ ジャバは最高!!ダウンロード今すぐあなたと!!!!
9/20〜9/21に Droidcon NYC 2014 がやってたみたいです。 ミスターアンドロイドことJake Whartonや、ActiveAndroidの開発者のMichael Pardoや、GroovyのコミッターのGuillaume Laforgeがスピーカーをしていました。 僕は参加できなかったので、インターネットで公開されているスライドを探してきたので置いておきますね。 Material Design: What The Big Wigs On Wall Street Don't Want You To Know getBounds(: the story of Drawables and their View masters) RxJava Easy Wins - Droidcon NYC 2014 Under Square's Hood Annotation Proce
モバイルアプリでログを取ろうと思ったとき、多くのアプリではGoogle Analyticsを使っていると思います。 Google Analyticsは2つの事象にうちどちらが多く発生しているかなどの用途では便利ですが、一方でGoogle Analyticsはサンプリングされているので誤差があったり、ユーザー属性から絞ったりということができません。 そのため、弊社のプロダクトではログはOAuthで認証してfluentd経由でTreasure Dataに流していたりします。 参考になる記事:Fluentdとログ収集のパターン - Go ahead! 京都の勉強会で(京都 Android 勉強会 2014.08)ログの話をしたら「そうそう大変なんだよね〜」と共感していただいて、やはり各自でログ収集のしくみを作って正確な値を取っていたり、クエリを投げて分析したりしているみたいでした。 しかし、この
京都の嵐山に行ってきた。 雨が降っていたが、寺とか庭とかは雨が降ってると趣が増すので良い。 言の葉の庭の影響かもしれない。 駅周辺は人がたくさんいたけど、ちょっと奥まった寺とかに行くと人が少なくて良かった。 京都Android勉強会というはてな主催の勉強会に参加するという目的があって京都に行ったのだけど、そのことはまた別の形で書きたい。 そういうことで3日京都に滞在して、うち2日ははてな社の人と飲んでいた。 はてなの人のはてなっぽさはどこから来ているのだろうかと前々から気になっていたので色々話を聞いていたけど、結局よく分からなかった。 でもその中で @cockscomb さんが「技術力がないのに奇行に走ってはいけない」と言ってたのが印象に残った。 途中から酔っ払ったひとでくんさんがやってきて、cockscombさんの足をホールドして動かなくなったりしてて、端から見ると30近いおっさんが30
前回やったこと データ型の定義 データ型のエクスポート レコード構文 多相型と型引数 インスタンスの自動導出 今回やること 型シノニム 型シノニムの多相化 再帰的なデータ構造 演算子の定義 型クラス 型クラスの定義 型クラスのサブクラス 型クラス制約 多相性 Functor型クラス 型の種類 型と新しい型(type and newtype) type 何章か前に出てきましたが [Char] と String は同値で、交換可能です。 ghciで :i String としてみてください。 > :i String type String = [Char] -- Defined in `GHC.Base' type 型構築子 型引数1 型引数2 ... = 元の型 typeは型のシノニムが定義されているのであって、新しい型が作られている訳ではありません。 ちょっと復習ですが、名前、年齢、身長、体
すごいHaskell楽しく学ぼう輪読会とは 経緯 2012年にSICP読書会に参加していてとてもためになったという話をしたのがきっかけで、社内でコンピュータサイエンスの勉強会をやろうということになりました。 そこで、2013年夏に社内でどの本を教科書にするかアンケートをおこないました。 教科書の候補に上がった本 計算機プログラムの構造と解釈(SICP) 言語:Scheme Web上での問題の解答の多さ(すくなくとも日本語での)は、他を圧倒してる。 関数プログラミング入門(IFPH) 言語:Haskell SICPよりちょっと難しい。一番最初にやる本ではない感じ(ってえらい人が言ってました)。 プログラミングの基礎 言語:Ocaml 著者による解答例あり。いまSICPを読むのは時間の無駄 - きしだのはてな プログラミング言語の基礎概念 言語:Ocaml 「プログラミング言語の基礎概念」とい
Google I/OでLG G Watchをもらったのだけど(※画像は僕の手ではない)、見た目がどうもおもちゃっぽい。 それで「腕時計 バンド」で検索して上に出てきた丸ビルにあるアルキメデス・スパイラルっていう時計屋に行ってきた。 バンドを変えてもらったら愛着が出て、今までだったら充電忘れた→めんどくさい→まあ付けなくていいかって扱いだったのが、ちゃんと充電して付けようって気持ちになりました。 ちょっとしたライフハックでした。 賛否両論あるAndroid Wareですが、雑に通知を送ってもそれなりに表示してくれるし、書こうと思えば好きに画面が書けるし、新しい知識を必要とせずにアプリが作れるし、設計は悪くないんじゃないかなって思う。 Android Wearはダサいという声をよく聞くけど、モトローラはデザインに力を入れてて、5月にフェイスのデザインコンテストをやってて面白いなーって思いながら
さっそく自分のアプリにMaterial Designを適用しようとしてAndroid Lでしかテーマが使えないとか、サポートライブラリがうまく動かないとかで挫折したみなさんこんにちは。 自前でゴリゴリテーマを書いたり、サポートライブラリのバージョン指定を + にしてたらいつの間にかバージョン上がってて破滅した、なんてこともありそうですし、僕はまだ様子見てます。 ただし、Material Design自体がAndroid専用のものではなく汎用的なデザインガイドラインなので、新しいSDKやライブラリを使わなくてもガイドラインに従うことでそれっぽく見せることができます。 Introduction - Material Design - Google design guidelines にはアニメーションやエフェクト以外にも、タイポグラフィの扱い方、余白の取り方、Dividerの使い方などがありま
新しくアプリを作るときにAndroid内でのデータの持ち方や、アクセスの仕方、モデルの扱い方には色々あってどうしようってなると思うので、僕の少ない経験から考えたことをまとめます。 ファイルに保存 DBは注意して使わないとデータがアップデートしたら全部消えましたとか、あるカラムだけデータが入ってませんでしたとかあるので、データの簡易保存、たとえばレスポンスのjsonをそのままキャッシュするとか、検索する必要がなかったりあまり更新しないモデルをシリアライズして保存するときにはファイル保存が向いていると思います。 なお、JavaのSerializableは柔軟性が低く、バージョンアップでデータを壊してアプリが落ちるということが分かっていてもハンドリングできなくて防ぐのが難しかったりするので、シリアライズするときはgsonとかmessagepackを使うことをオススメします。 ただこのやり方でもキ
先週の月曜から日曜までGoogle I/Oでサンフランシスコに行ってました。 発表の所感 Googleのプラットフォームをあらゆるところに浸透させる (Android of Things) のに力を入れている印象を受けた そのためのMaterial Design そのためのパフォーマンス改善 そのためのジャバ (write once run なんとか) 数年前にGoogle App Engineを触って以来でクラウドはあまりウォッチしてなかったけど良さそうだったので使ってみたい Netflixも使ってた: Netflix Lipstick on Google Compute Engine — Google Cloud Platform Google Cloud PlatformはIDEに統合されていくだろうし、強いインフラの上にプラットフォームを持ってる強みがあるから一気に普及ワンチャンあ
Google I/Oでサンフランシスコに来ています。 Twitterを見てるとあれ、この人もアプリ書いてるんだということが増えてきて、いわゆるウェブ系企業が最近モバイルアプリ開発にシフトしている流れを感じます。 そうした中で、従来のウェブ開発とモバイルアプリ開発は違うなと思うことがあります。 その一つは、リリースサイクルです。 ウェブだと一日に何回もリリースしてガンガンA/Bテストを回して改善していくという世界でしたが、アプリはリリースのスパンも長くなるし、リリース前にどれだけ品質を上げることができるかということが重要になっていて、それ起因で開発体制というのも変えていく必要があると思います。 最初から最高のものを出さないと、アプリ業界では生き残れない 良質なアプリを生み出すための失敗学~『Moneytree』創業者ポール・チャップマン氏に聞く ということもあり、ここ一年の試行錯誤を特集と
社内には障害が起こったりすると、次回失敗しないように "Failure teaches success" っていう知見を蓄積するシステムがあるのだけど、この度 プライベートで書いてるアプリ で障害を起こしてしまったので、知見をブログに書くことにしました。 概要 今日の夕方にmiyagawaさんからAftershowが表示されないと連絡をいただきました。 発生原因 アプリ内でのデータの持ち方にいろいろ問題がありました。 Rebuild.fm for AndroidではEpisodeは端末のsqliteに保存していて、ActiveAndroidで読み書きしていましたが、リスト表示するために何かのカラムでソートする必要があったのだけど、日付は "Jun 15 2014" みたいに入ってくるからソートしづらいなと思って、urlを見てたら "http://rebuild.fm/10" みたいにスラッ
WWDCでSwiftが発表されてTLが賑わっていますが、時を同じくして6/2〜6/4に開催されたGR8Conf Europe 2014でGroovyのAndroidサポートが発表されました。 groovy-coreに取り込まれた差分: Raw modifications to run Groovy on Android by melix · Pull Request #436 · groovy/groovy-core さっそくAndroidアプリをGroovyで書いてみた 以前RxJavaのために書いたサンプルプロジェクトがあったので、Groovy化してみました。 と言っても、GroovyはJavaに完全な上位互換があるのでそのままでも動くので、Groovyっぽいシンタックスを使ってみました。 class ComposeMessageActivity extends Activity {
当方Androidエンジニアをしておりますが、プライベートでアプリを作るとき、画像リソースについてはAndroid組み込みのものを使ったり、Fontawesomeを使ったり、フリー素材を使ったりしています。 しかし配色はインターネットに落ちていなくて、自分でやるとイマイチで、いい感じにしたいという気持ちがありました。 そこで、調べたり試行錯誤をして知見が得られたので、配色に悩むエンジニアのために共有します。 3行まとめ デザインはセンスで行うものではなくロジックで成り立ってる、つまり努力でなんとかできる Color Scheme Designer 3 便利 配色を学ぶのには下のスライドが一番分かりやすかった 色彩センスのいらない配色講座 from Mariko Yamaguchi STEP 1. 対象に興味を持つ 〜〜で必要だから勉強しなければって始めてたものが長く続いたことがないので、
なぜ評価を良くすることが重要なのか Google Playでグロースハックする5つのポイント Googleの発表によると、星4つ以上の評価を受けているアプリは、そうでないアプリのなんと29倍のレベニューを生んでいるそうです。 Google Play IAP revenues rocket 700% Apps with a two star rating are likely to generate 74x more revenue than a one star-rated app. Jumping to three stars meanwhile saw a 1.8x increase in revenue, while four-to-five star games on averaged generated 2.8x more money than three star-rated
はじめに 「Eclipse おすすめ プラグイン」で検索するとたくさん出てくるのに「IntelliJ おすすめ プラグイン」で検索すると全然出てこないので、おもにAndroidの開発で便利な操作の知見をまとめました。 よくする操作 プラグインの前に、標準の機能で出来ることを知って、それに加えて便利なアクションを追加していこうということで、最初に標準のキーバインドを紹介します。 キーアクション cmd + oJavaのファイルの検索、Javaのファイルを開くときに使う cmd + e最近開いたファイル一覧、Java以外のファイルを開くときに使う shift > shiftプロジェクト内ファイル検索、Javaファイルでもないし最近開いてもいないファイルを検索するときに使う cmd + fn + F7メソッドの呼び出し元を検索する cmd + shift + fパス以下を検索する、メソッドよりあ
ActiveAndroidとは ActiveAndroidとは、アクティブレコードパターンのAndroidのORMです。 こういうクエリーがあったら INSERT INTO Items(id, name) VALUES(NULL, 'My Item'); こう書けます。 Item item = new Item(); item.name = "My Item"; item.save(); セレクトするときにこうしていたのは、 SELECT * FROM Items; このようになります。 new Select().from(Item.class).execute(); ※公式ドキュメントより DBの接続もテーブルの作成もマイグレーションも、なんでもActiveAndroidが面倒を見てくれます! ん?今なんでもっていったよね? 初期化と破棄 public class MyApplicat
関数型LT大会で「実社会の問題を解決する関数型言語」というタイトルで発表しました。 というのも、会社で「すごいHaskellたのしく学ぼう!」の輪読会をしていて、最初こそ10人以上の人が参加していたのだけど、章が進むごとにどんどん人が離脱していって、主催者としてはなんとか完走したいという思いがあったので、調べたのですが、 ヒアリングから、この二つの線がクロスしたときに、人は離脱するという知見が得られました。 ということで、Haskellに対して実用性を見出したいと思いながら半年を過ごしたのですが、実用的 = 仕事で使うということであれば、今の現場でHaskellに移行するのは現実的ではありません。 でも、Haskellには関数型言語のエッセンスが詰まっていて学びが多かったと思っていて、直接的には使っていないけど、概念として役立つことがあると思ったので、それを伝えるために今回文章に起こしまし
タイムラインとかフィードを見る系でいい感じのアプリない?と聞かれたのでアプリのUIを眺めていました。 Feedly foursquare YouTube SocialCam Path Pinterest Gunosy 見比べてみて、誰が投稿したか、誰が投稿に対して反応したか、何時に投稿されたか、何を最初に知らせたいのか、写真を良く見せたい、などそのサービスにとって何が重要なのかによって "いい感じ" の意味が変わってくるなあと思いました。 ちなみに僕はデザインの引き出しが少ないので、まとめサイト的なものを見て探しています。 Mobile UI Patterns Mobile Design Pattern Gallery Android Interaction Design Patterns AndroidViews Android // UI Patterns lovely ui andr
Lombokとは Very spicy additions to the Java programming language. ★ ビルド時にAST変換をしてメソッドを生やしたり後処理を追加したり、便利なコードを自動生成する(ソースコードを書き出すのではなく生成されるバイナリを書き換える)ライブラリです。 導入手順 1. build.gradleのdependenciesに追加します provided 'org.projectlombok:lombok:1.12.2' 2. Preferences > Plugins > Browse Repositories > Lombok Plugin をインストールします プラグインがなくてもビルドはできますが、入れないと警告が出たり定義にジャンプしたりできないので入れます。 Androidアプリ開発で使えそうなもの(行数は目安です) @Data
この投稿はAndroid Advent Calendar 2013の14日目の記事です。 昨日、Android Test Casual Talks #1というイベントがありました。 僕もテストについて何か話す予定だったのですが、残念ながら体調不良のため行けませんでした。 それで、ハッシュタグを追って見ていたのですが、現場に入ったときにAndroidにテストを書く文化がなくて驚いたという話がありましたが、今やその状況もだいぶ変わってきていて、会場にいた人の80%の人がJenkinsを導入しているというのはちょっとすごいなと思いました。 さて、そんなJenkinsですが、弊社では運用についていくつかの悩みを抱えています。 その悩みと考えている解決策を公開することによって、意見交換したり、何かの参考になればいいなと思います。 Jenkins、ビルドの設定 弊社のAndroidのJenkinsはa
前日にE2Eのテストの知見共有会に出て、その翌日にAndroidのテスト勉強会に出たので思ったことなど。 どこまで自動化するか UIテストの自動化がコストと見合うかという議論をしてて、UIテストって価値ある状態を維持するコストが高かったり、テストの実行に時間がかかったり、プロジェクトによるところもあるけど、うまく回すの難しいから無理に自動化しなくてもいいのではという感じになった。 特にAndroidは、RobotiumやらuiautomatorやらSelendroidやら、あるいはその上のレイヤーのAppiumやCalabashとか、いろんなツールがあるのだけど、結局どれが生き残るのか全然読めないし、意気揚々と導入したフレームワークが数カ月後にDeprecatedになって大爆死なんてことがカジュアルに起こり得るので、特定のフレームワークにあまり依存したくない。 それでどうしたらいいかという
iframeの広告を配信する? AndroidにAdMobでiframeの広告を配信したいという話があって、あれWebViewでiframeのイベントって拾えるんだっけ?っていう話になりました。 パッと調べたところ、iOSのshouldStartLoadWithRequestはiframeのイベントでも呼ばれますが、AndroidのshouldOverrideUrlLoadingは呼ばれないらしいということが分かりました。 まあ、広告自体はiframeを使うとレギュレーション違反で、最悪アカウントごと消される可能性があるってことでなくなったのですが、ちょっと別の事情もありiframeのイベントのハンドリングについて調べることになりました。 別の事情 個人的にRebuild.fm for Androidというアプリをオープンソースで開発しているのですが、Twitterの検索結果の表示を本来な
環境による設定の切り替えについて ウェブアプリケーション開発 development (開発者の手元のPCだったりVMだったり) staging (本番環境と同等の環境) production (本番環境) スマートフォンアプリ開発 development (手元でデバッグする用) beta (社内β配信用) release (Google Playにアップロードする用) Androidでの環境の切り替え 要件 APIのエンドポイントをステージングと本番環境で自動で切り替えたい 前提条件 ビルドツールはGradleを使っている 解決方法 buildConfigに定数を定義する(buildConfigプロパティに渡したStringが直接Generateされます) // build.gradle buildTypes { debug { buildConfig "public static f
主な変更点は以下のとおりです。 タイムライン画面がネイティブになりました 通知からエピソード詳細画面が開けるようになりました (@hotchemiさんがやってくれました!) ゲストのプロフィールを表示するようにしました RSSの取得、エピソードのストリーミング、エピソードのダウンロード時にUserAgentを付けるようにしました UserAgentを付けるようにしました まず一番大事な変更を紹介します。 まだそんなにユーザー多くないと思って油断してたけど、バグがあるとmiyagawaさんに迷惑が掛かるということを思い出して、ああーっ、うちの子がすいませんと思いながら脳を高速で回転させながら、原因が分からなかったら一時的に公開を取り下げようなどと考えつつ、ひたすらデバッグしていました。 しばらくしたら、どうやらNexus 5のChromeで何か問題があったらしいということが分かって、ああーっ
Rebuild.fmクライアント(非公式)をリリースしましたの開発の中で生まれたtipsや思い出を紹介しようと思います。 結構長いです。 目次 アプリのバージョニング RSSフィードの取得 メディアの再生/停止ボタン Show Notesの表示 MenuDeledate データの保存とテスト Tweetの取得 FontAwesome 通知の管理 ライセンス表示 進捗と開発のボトルネック バージョニング Android端末の設定からアプリ情報を見ると "バージョン0.1.2-SHA1" の形式になっていると思います。 Androidアプリのバージョンコードは整数でなければなりませんが、バージョン名は文字列なので、開発者が好きなように使うことができます。 たとえばビルドした日付を入れている開発者もいますし、独自に定義したコードを使っている人もいます。 僕の場合はオープンソースでやってるし、日付
Rebuild.fm for Android (Unofficial) Rebuild.fm for Androidとは、miyagawaさんのPodcast、Rebuild.fm専用のPodcastアプリです。 このアプリ自体はオープンソースで開発していて、READMEにインストール手順は書いてあるのですが、あまり使ってくれる人がいませんでした。 開発するモチベーションを保つためにフィードバックが欲しくて、マーケットに出そうかなという話をmiyagawaさんにしたら快諾してくれたので、この度リリースしました。 (本当は一周年記念に合わせてリリースしたかったけど、リリース準備してたら一部端末でOOMになるバグが見つかったりして間に合わなかった) 「Rebuild.fm専用?それって機能が限定されたPodcastアプリでは?」 よくあるPodcastアプリは無機質な感じで、よりRebuild
次のページ
このページを最初にブックマークしてみませんか?
『Bits & Pieces』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く