SlideShare a Scribd company logo
1 of 34
モバイルアプリ開発未経験でJavaも
Kotlinも触ったことがない人と
FluxアーキテクチャでAndroidアプリ
開発する話
空中清高
@soranakk
空中 清高 @soranakk
所属:株式会社ディー・エヌ・エー
オートモーティブ事業本部
タクベル
Androidエンジニア
背景
タクベルはタクシー配車サービス
ユーザーが利用するアプリ
iOS & Android
タクシー車内で乗務員さんが使うアプリ
Android
Androidアプリはプロダクトがたくさん
でもまだまだやりたいことがいっぱいある
新しいアプリ作るぞ!
そんなある日
デバイス開発や組み込み系が得意だった
Wさんが
「Androidアプリ開発やってみたい」と手
を挙げた
そんな時に入社したのが私
新しいアプリ作るんですが、Android初心
者の人と一緒にやってみませんか?
使うアーキテクチャとかライブラリとか
好きにやっていいですよ。
お、いっすね!あれとかこれとかやって
みたいです。
そんな感じでやっていき!!!
選択した技術
Full Kotlin
Fluxアーキテクチャ
RxJava2
採用しなかった技術
Dagger
AAC(ViewModel, LiveData等)
選択した技術(理由)
JavaもKotlinも触ったことがないなら
、AndroidでいまさらJavaからやらな
くてもいいんじゃね?
Kotlinからで十分じゃ?って気持ち
Full Kotlin
Fluxアーキテクチャはデータフローを
一方通行にするアーキテクチャです。
Fluxアーキテクチャ
https://github.com/facebook/flux/tree/master/examples/flux-concepts
他にもMVVMやMVPにしようかとも思
ったのですが、WさんにUI系のアプリ
開発経験がなく、
組み込み系の出身なのでアプリの動作
をデータフローで捉えられるほうがわ
かりやすいかな、と思ってFluxにしま
した。
Fluxアーキテクチャ
あと単純にFluxやってみたかった!
Fluxアーキテクチャ
Fluxを実現するのにとても便利なので
採用しました。
Pub/Subできるライブラリならいいん
ですが、すでに使っていてなじみがあ
ったので。
RxJava
採用しなかった技術(理由)
Daggerを採用しなかったのはWさんの学習コ
ストを考えてです。
Daggerでビルドエラーが発生したときにWさ
ん一人で解決できるようになるまで大変だろ
うな、と思いました。
DIできないぶん、ちょっとテストの書き方に
工夫が必要ですが、Daggerのデバッグをしな
くてよくなるのでよいかな、と
Dagger
AACを採用しなかったのはActivityや
Fragmentのライフサイクルや寿命を理
解しないと適切に使いこなせないかも
、と思ったからです。
Androidの世界を知らないままに使う
の微妙だし、わかったあとに導入する
感じでよいかな、と。
AAC
選択した技術(導入編)
Full Kotlin どうやった?
まずは本。
「Kotlin スタートブック」
通称赤べこ本
あとはコードレビューで補完
私が一次レビューしてAndroidチーム
でさらにレビューする体制
Flux どうやった?
まずは本。
「Androidアプリ設計パターン入門」
DroidKaigi2018公式アプリのGithub
あとはコードレビューで補完
RxJava どうやった?
まずは本。
「RxJavaリアクティブプログラミング」
あとはコードレビューで補完
Androidチームのコードレビューが強い
工夫したこと
Androidを支える技術ⅠⅡ
組み込み系の出身なのでAndroidを理解
してもらうためにAndroidを支える技術
ⅠⅡを読んでもらいながら進めました。
Androidを支える技術ⅠⅡ
この本の内容を共有しておくことで、UI
が重くならないようにするためにはどう
いったところをチューニングする必要が
あって、逆にどういったところは手を抜
いてよいのか、の共有が楽だった。
文化の違いを理解する
組み込み系の開発手法とAndroidアプリ
開発手法は色々違うところがあります。
各人のコードはインターフェースだけ決
めてマージは最終段階だとか、コードの
書き方だとか。
文化の違いを理解する
「なぜAndroidアプリ開発ではこうする
のか」をちゃんと考え伝える。
コードを頻繁にマージするのは同じ部分
を同時に開発するので衝突を避けるため
まとめ
まとめ
・Fluxアーキテクチャ
・Full Kotlin
・RxJava
まだ開発途中ですが、とてもうまく機能
している感じ
We are hiring
オートモーティブ事業部では
まだまだやりたいことが
たくさんあります!
なので一緒に新しいことにチャレンジ
してくれる開発者を大募集中です!
まずは一緒にご飯でも行きましょう!
Thank you
空中清高
@soranakk

More Related Content

What's hot

iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-EdoMegumi Otani(Czenhe)
 
もしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたらもしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたらNozomi Ito
 
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発Hikaru Ito
 
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテストWeb制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト祐磨 堀
 
Osc html5-monaca
Osc html5-monacaOsc html5-monaca
Osc html5-monacaHikaru Ito
 
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?Developers Summit
 
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリAngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリアシアル株式会社
 
アプリエンジニアのデザインに対するこころがまえの話
アプリエンジニアのデザインに対するこころがまえの話アプリエンジニアのデザインに対するこころがまえの話
アプリエンジニアのデザインに対するこころがまえの話Shingo Sato
 

What's hot (9)

iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
 
もしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたらもしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたら
 
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
Cordovaで作る!センサと超小型BLEモジュールを用いた簡単IoTアプリ開発
 
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテストWeb制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
 
Osc html5-monaca
Osc html5-monacaOsc html5-monaca
Osc html5-monaca
 
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
 
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリAngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
 
SIMD.js(ECMAScript 7)
SIMD.js(ECMAScript 7)SIMD.js(ECMAScript 7)
SIMD.js(ECMAScript 7)
 
アプリエンジニアのデザインに対するこころがまえの話
アプリエンジニアのデザインに対するこころがまえの話アプリエンジニアのデザインに対するこころがまえの話
アプリエンジニアのデザインに対するこころがまえの話
 

Similar to モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話

Androidが変えたもの
Androidが変えたものAndroidが変えたもの
Androidが変えたものYuki Yamakido
 
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料Monaca
 
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~一法 山崎
 
とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事Cybozu, Inc.
 
20170804 Builderscon Androidアプリ開発アンチパターン
20170804 Builderscon Androidアプリ開発アンチパターン20170804 Builderscon Androidアプリ開発アンチパターン
20170804 Builderscon Androidアプリ開発アンチパターンmokelab
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Saiki Iijima
 
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座schoowebcampus
 
ハマる!HoloLensアプリ開発
ハマる!HoloLensアプリ開発ハマる!HoloLensアプリ開発
ハマる!HoloLensアプリ開発Tatsuya Sakai
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話Shoya Tsukada
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarHTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarkujirahand kujira
 
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)Shoichi Matsuda
 
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)Madoka Chiyoda
 
アプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティスアプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティスYuichi Kato
 
App inventorで想いを形に
App inventorで想いを形にApp inventorで想いを形に
App inventorで想いを形にTakeaki Tada
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からdemuyan
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術Tomoki Hasegawa
 
知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話FujishiroRumi
 

Similar to モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話 (20)

Androidが変えたもの
Androidが変えたものAndroidが変えたもの
Androidが変えたもの
 
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
 
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
 
とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事
 
20170804 Builderscon Androidアプリ開発アンチパターン
20170804 Builderscon Androidアプリ開発アンチパターン20170804 Builderscon Androidアプリ開発アンチパターン
20170804 Builderscon Androidアプリ開発アンチパターン
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
 
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
 
ハマる!HoloLensアプリ開発
ハマる!HoloLensアプリ開発ハマる!HoloLensアプリ開発
ハマる!HoloLensアプリ開発
 
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
 
Androidアプリ開発
Androidアプリ開発Androidアプリ開発
Androidアプリ開発
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminarHTML5/JavaScriptで作るAndroidアプリ開発seminar
HTML5/JavaScriptで作るAndroidアプリ開発seminar
 
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
 
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
Azure 入門 (と言いながらちょまどの好きな Azure サービス紹介)
 
アプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティスアプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティス
 
App inventorで想いを形に
App inventorで想いを形にApp inventorで想いを形に
App inventorで想いを形に
 
Herlockサービス紹介
Herlockサービス紹介Herlockサービス紹介
Herlockサービス紹介
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話知識ゼロからモバイルアプリをデザインして失敗した話
知識ゼロからモバイルアプリをデザインして失敗した話
 

モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話