みんからきりまで

きりみんです。

Androidアプリ設計パターン入門読んだ。これからAndroid開発を始める人はこの本があって羨ましい

遅ればせながらAndroidアプリ設計パターン入門を読み終わりました。
この本はPEAKSという技術書クラウドファンディングサービスのプロジェクトとして制作された本で、ぼくは支援を行っていたのでもっと早いタイミングで読むことが出来たのですが、DroidKaigiやらで余裕がなく、結局今になってしまいました。

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者:日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

どんな本だったか

タイトルの通り、Androidでの設計パターンについて書かれた本です。
MVP、MVVM、Flux、Android Architecture Components、React Nativeハイブリットと、昨今のAndroid界隈で飛び交う設計パターンの考え方や実装例についてそれぞれ解説しています。
また、4章、5章、7章では大規模アプリやOSSなど実際の開発現場での設計に関する課題や対応方法についての文章を読むことが出来ます。

どんな人にオススメか

この本はプログラミングの入門書ではなく、かといってAndroid開発の入門書というわけでもありません。
しかし、タイトル通りこの本は確かに入門という名に相応しい内容で、それは正に「Androidアプリ設計パターン入門」だと思います。
最近のAndroid開発現場ではこの本で紹介されているような何かしらの設計パターンを採用している事がほとんどです。
しかし、Androidアプリ開発の入門書を読んで勉強しただけでは、とりあえずAPIからデータを取得したり画面にリストを表示させるようなアプリを実装することは出来るようになっても、なかなかそこからもう一歩、チーム開発で行われるしっかりとクラスの責務分けがパターン化されているような実装はイメージしにくいのではないでしょうか。
この本はそんなAndroid開発を勉強中の学生や、趣味で1人でAndroidアプリを作れるようにはなったけれど、設計についてはあまりイメージが出来ないというような人が現場で必要になる知識や考え方を身につけるのに丁度よい内容だと思いました。

また、サーバーサイドやWebフロントエンドなど別の分野の開発をメインで行ってきた人が、モバイルアプリ開発でどういう事を考えなければいけないのか、どういう設計が主流なのかなどをキャッチアップするのにも丁度よいと思います。

個人的にはArchitecture Componentsをなかなかキャッチアップ出来ていなかったので、その辺りの解説が有難かったです。
そういう最近の流行りをキャッチアップしたいという方にも良いのではないでしょうか。

どんどん設計の考え方がどんどん更新されていく昨今の開発現場、こういう内容の本は本当に求められていると思うので、ぜひiOS設計パターン入門やReact-Native設計パターン入門という本も読みたいなぁと思いました。

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者:日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

なお、このエントリのリンクからご購入頂くとぼくに紹介料が入るようになっているので何卒。

DroidKaigi2018で「How to improve your MVP architecture and tests」という題で登壇してきました。感想編

こんにちは。きりみんさんです。
先日、DroidKaigi2018というカンファレンスで登壇をしました。

タイトルは「How to improve your MVP architecture and tests」で、Mode-View-Presenterパターンを利用した時の設計アンチパターンとその改善方法、テストの書き方や知見などについて話ました。

こちらがそのスライドになります。
speakerdeck.com

内容の補足などはまた別エントリーで書きたいなと思いますが、今日はとりあえず熱が覚めないうちに当日の気持ちを書きなぐりたいと思います。

初めてカンファレンスで登壇した結果

今までLTで5分や10分などの発表はやっていましたが、本格的なカンファレンスでの登壇というのは初めてでした。

スライドも前日ギリギリまで何度も修正していて、当日の早朝にようやく最終リハーサル練習をやるという感じでした。

本番はしつこく宣伝していた効果もあってか、立ち見もいっぱいで入れない方がいるほどの大盛況だったようです。

一方ぼくは直前のオープニングセッションで一番まえの席に座ってしまったため、エレベーター渋滞に巻き込まれてしまいギリギリに到着するというやらかし。

セッション本番では朝イチでみんなテンション低めだろうなと予想したので、緊張してグダグダにならないように、出来るだけテンションを上げて楽しく盛り上げてやろうと若干ハイになって明るく振る舞いました。

これはKotlinConfの時のしらじさんのセッションでの勇姿がとても印象に残っていたからで、とても参考にさせて頂いたし、おかげであまり緊張せずに話すことが出来ました。

セッションは時間どおりで無事終わり、セッション後にはたくさんの人に内容について質問して頂き、楽しくお話できました。

DroidKaigiは最高の大規模オフ会だった

自分の登壇が早々に終わったので、残りのDrodKaigiは心も軽くたくさんの面白いセッションを周ったり、たくさんの人とお話することができました。

特に今までTwitterでしか絡んだ事が無かった方や、完全に初めましての方、そして以前いろいろな現場で一緒にお仕事をしたことがある方など思いがけずとてもたくさんの方に話しかけてもらい、最高の時間を過ごすことが出来ました。

カンファレンスでは以前作った自分のアイコンがプリントされたTシャツを着て行ったのですが、そのおかげで本当にいろんな人に「あ、きりみんさんじゃないですか!」と気付いて声をかけてもらって、本当に嬉しかったです。
声をかけてくれた皆さん、本当にありがとうございました。

感じたこと

登壇をすると友達がたくさん増える!
登壇が決まってからの数ヶ月間はずっとスライドづくりの事が気になって他の勉強や趣味が全然手に付かなかったのですが、それでも本当にやってよかったと思います。

そして、たくさんの知見あふれるセッションを聞き、Androidエンジニアの仲間たちとプログラミングについて熱く語り合い、刺激をもらい、とにかくもっとたくさんコードが書きたくなりました。
日本のAndroidコミュニティは本当に暖かくレベルが高く勢いがあり、本当に素晴らしいと思いました。

Androidサイコー!!!!!!!!

Live2DとFaceRigで今流行のアレになる

こんにちは、日々可愛くなる鍛錬を怠らない幼女、きりみんです。

最近アレ流行ってますよね。バーチャルなんとか。
ぼくも大好きなので、ついつい触発されて似たような事がやってみたくなりました。
とはいえぼくは3Dモデリングの素養は全くないので、Live2Dという二次元のイラストにアニメーションを付けられるソフトと、FaceRigというWebカメラで顔面をトラッキングしてキャラクターの動きを同期させられるソフトを利用して、それっぽいことを試してみました。

Live2D
Steam:FaceRig
FaceRig Live2D Module on Steam

元のイラストはこんな感じです。
いつものアイコンキャラを描いたつもりです。

https://i.gyazo.com/5181606344e2f69a3af0595a3003cd5d.png

ぼくは普段イラストにSAI2を使用しているのですが、今回はLive2D用なので線画、塗りの時点でパーツごとにレイヤーを分けて分離しやすいようにしました。

https://i.gyazo.com/f495a30f6110688479f5c8478f5e7553.png

SAIからpsdファイルにExportし、Live2Dに読み込むと、以下のようにそのままレイヤーの情報が残っていて便利でした。

gyazo.com

あとはLive2Dのチュートリアルに従って動作を設定していきます。
このチュートリアルがとても分かりやすくて、Live2D自体も簡単なので特に苦戦せずに作業が出来ました。

1.イラストの加工 | Live2D Manuals & Tutorials

長いですが作業の様子を録画していたので興味のある方は適当に2倍速とかでどうぞ。

www.youtube.com

FaceRigへのモデルの読み込みはこちらを参考にさせてもらいました。

FaceRigでLive2Dアバターを動かしてみる - Qiita
Cubism Editor 3でのFaceRigモデル作成注意点 — Live2D コミュニティ

そして出来たのがこちらになります。
塗りの時点で手を抜いたのが致命的な被害をもたらしていて悲しい。

https://i.gyazo.com/73513464a48338a141e520d771340a25.gif

喋らせてみました。

以上になります。
DroidKaigi直前に何をやってるんでしょうね。。。

DroidKaigi2018で登壇します

こんにちは。

2/8に開催されるDroidKaigi2018の1日目、11:20よりRoom1で「How to improve your MVP architecture and tests」というテーマで登壇します。

タイムテーブル | DroidKaigi 2018

内容は今のところざっくり以下のようになっています。

・自己紹介
・paymoの紹介
 ・Android版paymoでのクラス設計
・MVPアンチパターンと改善案
 ・MVP概要
 ・MVP採用プロジェクトアンチパターン
  ・サンプルコード解説
 ・改善案
  ・ViewとPresenterを分離する
   ・サンプルコード解説
  ・Presenterにテストを書く
   ・何故Presenterにテストを書くか
   ・Presenterへのテストの書き方
   ・Mockitoについて
   ・サンプルコード解説
・実際にプロダクトでPresenterにテストを書き始めて感じた難点
・テストコードをリファクタする
 ・サンプルコード解説
・Presenterの処理をドメインモデルに移譲する
 ・サンプルコード解説
・まとめ

カテゴリでは中・上級者となっていますが、MVVMなどでバリバリテストを書いてますというレベルの人にはあまり刺さらないかもしれません。
どちらかと言うと、CleanArchitectureっぽい設計にはしてみたけどテストは書けていなかったり、具体的にどの程度カッチリ型に嵌めどういうコードに落とし込めば効果的なのかイメージがなかなか掴めない方などが対象という感じです。(Twitterで行ったアンケートの結果を反映させています)

事前にスライドと解説に使用するサンプルプロジェクトを公開予定です。
サンプルコードは全てKotlinで書かれていていますが、語られる考え方自体はJavaiOS開発などでも通用する内容だと思っています。

ぜひ聞きに来てください。

2017年の目標は「もあぐれっしぶ」でした

2017年ももう終わりですね。
実は2017年には目標がありました。
それは、おそらく誰も気に留めなかったであろうさり気なくツイートしたこれです。

というわけで今年の目標は「もあぐれっしぶ」だったのでした。

実際、今年は自分でも驚くほどアグレッシブな年だったと思う。
たくさんの新しい事に挑戦することが出来た。
思えば去年の今頃はちょうど仕事の切れ間で、次にどんな仕事をするべきか、自分はどんな事をやっていくべきかと色々悩んでいたので、この1年でずいぶん環境が変わったなぁとと思い感慨深い。

正社員になった

今年一番の変化は4年ぶりくらいに正社員として就職した事だと思う。

kirimin.hatenablog.com

kirimin.hatenablog.com

AnyPay社には元々業務委託として参加していて、そのままでも別に良かったといえば良かったのだけれど、せっかくの機会だし、そろそろ勇気を出して新しい事に挑戦する時期かなと思ったので、正社員としてガッツリ一つの会社にコミットしてやっていくことにした。

英語学習が実を結びTOEICを受けインタビューを受けた

去年からちょっと真面目にやり始めた英語学習が実を結び始め、春にはTOEICを受け650点を取りブログがバズり、夏にはその件でDMM英会話さんからインタビューを受けるまでに至った。

kirimin.hatenablog.com

eikaiwa.dmm.com

英語はまだまだだけど飛躍していきたい。

パスポートを取得し台湾、中国、アメリカに行った

英語が少しだけ出来るようになったというのもあり、冬にパスポートを取得し、春には友人と台湾へ旅行をした。

kirimin.hatenablog.com

そして夏には中国の上海や深センへ行き最先端のITインフラやキャッシュレスの様子などを見てきた。

kirimin.hatenablog.com

冬にはサンフランシスコへ行きKotlinConfというカンファレンスに参加してきた。

kirimin.hatenablog.com

これは自分のGoogleMapのタイムラインだけど、去年人生で初めて神奈川より西(京都や福岡)へ旅行へ行き、今年は初めて国外の土を踏み、初めて大陸の土を踏み、アメリカの土を踏んだ。
1年間あまりの話とは思えないほど世界が広がったような気がする。

https://i.gyazo.com/2a016cf26b11a4bc5f36c2933cb25f6d.png

キャッシュレス生活を始めた

キャッシュレスな思想を持った会社に入ったということもあり、今までの現金主義を完全に捨て、電子マネー中心のキャッシュレス生活をするようになった。

kirimin.hatenablog.com

今では財布を使わない事が当たり前となっていて、現金を使う機会は日常ではほぼ存在しない。

勉強会への参加、ブログの更新、SNSでの交流などをアクティブに行い知り合いが増えた

元々メンタルが弱く人付き合いが苦手というのもあり、Androidエンジニア界隈では一方的にウォッチしている事が多く、あまり積極的に交流をしていなかったのだけれど、今年はたくさんの人と知り合い、仲良くなる事が出来たと思う。
「きりみんさんですよね?」とか「ブログ読んでます!」と声をかけて貰える事もたくさんあり、本当に嬉しかった。
仕事関係でも今まではあまり縁の無かったような色々な人たちと知り合えたりして、刺激的だった。 とても内気で受け身なぼくと仲良くしてくれる優しい方がたくさんいて、とても幸せな事だと思った。

DroidKaigi2018のセッションに申し込み登壇することになった

今年のDroidKaigiに出た時に「次は自分も登壇したいな...」と漠然と思ったけれど、気がつけばDroidKaigi2018で本当に登壇することになっていた。
期待を裏切らないように精一杯準備して挑もうと思う。

まとめ

他にも暗号通貨にハマったり、部屋をスマートホーム化したり、色々な事をやってみた。
今年はずっと心の何処かに「もあぐれっしぶ」という意識があったせいか、気がついたら本当にアグレッシブな一年になっていた。

あまり大々的に先の目標を決めたりするのは性に合わないので控えたいんだけど、あえて来年の事を少し考えるなら、今年はエンジニアリング以外の挑戦やアウトプットに終始してしまった所があると思った。
その間にも周りのエンジニア達は着実に技術力を高めているなぁと感じる。
来年は一度自分のエンジニアとしてのスキルや活動を見直し、もっとエンジニアリング力の底上げをし、一段上のエンジニアになりたい、そんなふうに思ったりする。