読者です 読者をやめる 読者になる 読者になる

台湾に行ってきた

地元の友人らと2泊3日で台湾旅行に行ってきた。 地元が茨城で茨城在住のメンバーが2人いるのもあって初日は茨城空港から台湾へ。茨城空港へは東京駅から500円で行ける。 ちなみに台湾への便は3/15から就航開始したばかりとのことで、まだオペレーションに慣れてないせいなのか到着が2時間近く遅れてしまった。

f:id:ainame:20160324002915j:plain

続きを読む
広告を非表示にする

try! swiftに行ってきていた #tryswift

結構前の話だけど、try! swiftに参加してきていた。 すでにいろいろな人が感想を記事にしていて今さら言うことはないけど、 今まで自分が参加した技術系カンファレンスの中で最も良いカンファレンスだと思った。

発表内容の深さ・広さ、海外登壇者の多さ、同時通訳、朝ごはんや休憩時間をたっぷりとって 参加者同士のコミュニケーション促進など、初めての開催とは思えないほど成功したカンファレンスだと思う。 関係者の方々、とてもお疲れ様でした。

いろいろ発表内容があったけど個人的に気になったのはOSS/Server Side Swiftと、アニメーション周りの話。Swift流行ってほしい。 いつか来るOSSSwiftが流行る日を夢見て、CのライブラリのラッパーをSwiftで書いてみるってのを 何個か試してみたけどビルドがうまくいったりいかなかったりでまだまだけっこう大変だ。

今年思いついた今年やりたいこと

3月にもなったので今年になってから思いついた今年やりたいことを挙げていく。

なんとなくやりたいと思っていることを挙げるだけだと、具体的な行動に結びつきづらいので それぞれ明確なモチベーションとなる部分を書いて明らかにしてみる。

料理

まず、今年は料理を頑張りたい。料理する人にはいろいろモチベーションがあるとは思っていて*1、自分の場合は自分自身が食べるのが好きということに起因している。 食べるのがとにかく好きなので、自分が食べたいものを食べていきたい。

食べて行きたいという気持ちだけなら外食でもだいぶ満たせるけど、さらに自分は飽きやすいという性格があるため同じ店に何度もなんども通い続けて同じものばかり食べ続けるみたいなことがあまり出来ない。 社会人になって4年間職場がある渋谷近辺で外食をいろいろした結果、渋谷近辺で普通に外食するレベルで食事できるものはかなり飽きてきていて外食以外のものを食べたい気持ちが出ている。 一般的な外食では提供される料理の幅は結構限界があるので、出汁ベースの日本料理とか世界各国の家庭料理とかってのはあまり気軽には食べられない。食べれないなら作るしかない。という気持ちがある。

あとは継続性という問題があって、食べたいものを食べ続けると人間は死ぬので自分で料理を作ってその辺を控えたい。 脂肪とか塩分とか、食べ物に加えると大抵おいしく感じてしまう。特に外食の食べ物はしょっぱくて脂っこいものが多い。 ラーメン二郎を毎日食べてTwitterにレポートしていた人が急にTwitterの更新を止めてしまった問題は記憶に新しいと思うけど、 そういう状態になってしまうのはなんとかして避けたい。

まとめると、食べるのが好きなのでこれからもずっと食べたいものを飽きずに食べ続けるためにまずは料理をしたいと思った。

英語

エンジニアという仕事をしていると、海外の文書に触れる機会がとても多い。

続きを読む

DroidKaigi 2016に行ってきた #droidkaigi

聴いたセッションと感想

2/18

  • 基調講演 OSSの動向を捉えた実装方針 - CyberAgent wasabeef

Lightweight Stream API便利そうなので早速入れました。
View側の力の入れ具合は会社とかデザイナーとかサービス内容によって凄い異なりそうだけど、 本気で取り組んでる感があった。

  • 明日から使えるRxJava頻出パターン - kazy

とあるレシピサイトの例を題材にRxJavaを通信処理で利用する用途でのみに絞った発表内容で非常に聴きやすく分かりやすかった。 RxJavaに興味がある人で、まだ見てない人は動画で見たら良いと思う。

APIサーバーからのレシピ検索APIと、別の広告サーバーのキーワード連携広告APIと、お気に入り取得APIを全てリクエストして、 RxJavaを使って結果を全てうまく混ぜ込んで1つのリストにまとめて表示するという例を順を追って解説されていた。 combineLatestの使い方がわかる。

  • Fragments: Why, How, and What For? - Brenda Cook

結構初心者向けのFragmentの解説的な内容だった。

adbコマンドや、dumpsysの使い方が紹介されていた。dumpsysはしってたけど、adbにあんなに昨日あるとは知らなかった。 今度試したい。

  • 最速でリリースするためのAndroidアプリデザイン - 青山 直樹

デザイナーが1からマテリアルデザインを使ってアプリ開発に関わっていくときのうまいやり方という感じだった。 ここ最近の傾向としてデザイナーもコードを書いたほうが早いってのはあるけど、逆にエンジニアもデザインできる必要があるなと思った。 マテリアルデザインのドキュメント読み込んでみたい。

  • 用途に合わせたアニメーションの実装方法 - 住友孝郎

途中から後ろで見ていてあんまりちゃんと見られていなかった。 アニメーションを新規に書くときはwasabeefさんの基調講演でも紹介されていたFluentなAPIでかけるライブラリを使いたいと思った。

初日は最後のセッション聞かず、スポンサーブースでペアプロしていた。 punchdrunker.hatenablog.jp

2/19

  • 基調講演 第1部「Support Libraryノススメ」第2部「Support Library Internal」- Google Android Developer Programs Engineer Yuichi Araki

Support Libraryの中の人の発表。歴史とか、ほげCompatなんとかって使えばいいの?とか初心者向けなおさらい系の話から、 今作っている未リリースのMaterial Design用のライブラリなどを紹介していたりして非常に参考になった。 Support Libraryってなに?って人は是非これを最初に聞くと良いと思う。

  • View into the abyss - 森 真樹

AndroidのViewの仕組み(Measure -> Layout -> Draw)を解説した後、それに則ってSmartNewsでタブをめくる時のあのペラっとしたUIを作るために必要だった チューニング方法などを紹介していた。あのペラっとめくるのを実現するのは結構大変そうだった。

  • カメラアプリはじめの一歩 - mhidaka

Camera2 APIというAPIの話だった。ハードウェアと密結合な低レイヤーなAPIのみが提供されていて、かなり色々なことができるけど、 いい感じに動かすまでが大変そうな感じ。日本語の資料がほとんどないようなのでCamera2 API触ってみたくなったらどうがみると良い。

  • Advanced Kotlin for Android - 長澤 太郎

KotlinをAndroidで使った時に、Kotlinの機能を使ってこんな書き方ができるよ!集みたいなやつ。 拡張関数はSwiftのprotocol extensionのように使えるけど、もっと特殊な書き方ができたりしてちょっと怖い。

  • ライブコーディング・Androidのライブラリを作ってみよう - Masataka Kono(@mapyo)

既存の自分のプロジェクトをライブラリに切り出すまでの流れをライブコーディングで実演していた。 感想としては、ライブラリ化するのはそんなに大変じゃなさそうだし切り出せるやつがあればどんどんやったらいいなと思った。

  • Build your custom Rx Observable/Operator - hydrakecat

RxJavaでのOperatorとかObservableの実装を解説しつつCustom Operatorを作るには・・・?という話。 RxJavaのCoreは実はSubscriberだというのが、なるほどーって感じだった。

はてなブックマークのコードを長年触っていく間に行ったこと(手が入ったのはここ1、2年が主?だったそう)。 Activity間で同じ処理していた時は全てモジュールに切り出してモジュールを呼ぶようにして、 呼び出し忘れはAndroidのLifecycle Callbackごとの呼び出しを管理するManagerを利用して開発を進めていった。 一旦抽象化を諦めて機械的にモジュールに切り出すのは結構割り切った実装な気がするけど、最初に重複コードを排除していくための活動としては良いと思った。

DroidKaigi自体の感想

初日のお弁当は良かった。2日目も業者一緒だったけど、温めないとちょっと食べづらいやつだった。 東工大の講義室を連ねる1つの建物を貸し切って開催していたけど、会場がそこまで広くなくて移動量少なくて結構良かった。 1つの教室のキャパも結構広いので満員でみたい人が全然入れない!!!みたいな感じにはなってなかったように思う。(それでも満員のセッションは普通にあったけど)

自分は、セッション終わるごとに弊社の企業ブースに行ってちょっとだけ手伝いしたりしていたけど、会場が狭めなのでちょうどい良い感じだった。 ペアプロはDroidKaigi公式アプリに開催中なのにPRを送るという感じで勢いがあり、楽しかった。企業ブースから3つぐらいPR出てた気がする。

DroidKaigiだけどiOSユーザ結構いた気がするし自分自身iOSユーザなので、iOS版の公式アプリを作るぞ!って機運があれば手伝いたい。 来年も開催されたら行きたい。

今後

ainame.hateblo.jp

前にブログに書いたけど、みんなで動画を見て勉強する会を会社で開いていて、 iOSは主にWWDCを見ていたりしたけど、Androidは特にやってなかった。

DroidKaigiはYoutubeに動画が公開されていくそうなのでちょっとずつ見ていきたい。

www.youtube.com

RealmSwiftを軽く使う

Swiftで趣味アプリを1から作ってみた。コードの中身とかアプリのUIの質は別として欲しい機能が実装できて満足している。 自分はコード書くの遅いほうなので、丸1日で何かしらちゃんと成果出たというのはすごい良い。

github.com

フリー素材のSEとAVFoundationのAVSpeechSynthesizerを組み合わせてSE付きのセリフを登録し、後から好きなように呼び出して再生できるようにした。 データの永続化にRealmを用いたけど、下のようなprotocolを用意しておくとMagicalRecordもびっくりするぐらい簡単にモデルの処理が記述出来るので、 雑にプロトタイプを作る場合はお勧めしたい。ジェネリクス体験だ。業務で利用する際には例外処理はちゃんとしといた方が良いと思う。

gist.github.com

他にもCustomのUnwindSegueで永続化前のRealmオブジェクトの参照を親のViewControllerに戻してやったり、 popoverのUIをiPhoneで実装してみたり、AVFoundationで色々したりと普段やらないことを何個か試せて楽しかった。

AVQueuePlayerとAVSpeechSynthesizerでそれぞれタイミングを合わせながら音を流すのが難しいので、 そのやり方は後で調べたい。

広告を非表示にする