Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlin導入してみたかったけど結局間に合わなかった…
Search
mukky620
June 22, 2017
Programming
0
3.7k
Kotlin導入してみたかったけど結局間に合わなかった…
2017/06/22 MatchingAgent x Makuake 合同勉強会資料
mukky620
June 22, 2017
Tweet
Share
More Decks by mukky620
See All by mukky620
Firebase A/B TestingとRemote Config を最大限に活用する方法
mukky620
1
1.5k
Firebase A/B Testing Targeting Tips
mukky620
0
2.1k
運用3年のタップル誕生でJavaからKotlin移行した話
mukky620
0
1.2k
Other Decks in Programming
See All in Programming
VitestのIn-Source Testingが便利
taro28
8
2.4k
The Implementations of Advanced LR Parser Algorithm
junk0612
1
1.3k
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
10
3.7k
カオスに立ち向かう小規模チームの装備の選択〜フルスタックTSという装備の強み _ 弱み〜/Choosing equipment for a small team facing chaos ~ Strengths and weaknesses of full-stack TS~
bitkey
1
130
ComposeでWebアプリを作る技術
tbsten
0
130
Thank you <💅>, What's the Next?
ahoxa
1
590
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
7
1.4k
2ヶ月で生産性2倍、お買い物アプリ「カウシェ」4チーム同時改善の取り組み
ike002jp
1
110
KANNA Android の技術的課題と取り組み
watabee
0
180
実践Webフロントパフォーマンスチューニング
cp20
45
10k
Vibe Coding の話をしよう
schroneko
13
3.6k
七輪ライブラリー: Claude AI で作る Next.js アプリ
suneo3476
1
170
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Code Reviewing Like a Champion
maltzj
523
40k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Rails Girls Zürich Keynote
gr2m
94
13k
Designing for humans not robots
tammielis
253
25k
Six Lessons from altMBA
skipperchong
28
3.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Transcript
Kotlin導入してみた 2017/06/22 MatchingAgent x Makuake 合同勉強会 1 mukky620
Kotlin導入してみた 2017/06/22 MatchingAgent x Makuake 合同勉強会 2 mukky620 かったけど結局間に合わなかった…
• 向中野 亘 (むっきー) • Android Engineer • 3月にアメーバピグから異動 •
Android歴1年と 3ヶ月 3 自己紹介
1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 4 本日の内容
1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 5 本日の内容
6 2014年7月…Android版タップル誕生リリー ス!
7 しかし、スピード感重視かつ 片手間でのリリースだった事もあり…
8 多くの負債が生まれてしまった… Android Annotations FatなActivity 増え続ける Color定義 大量のDialog Listviewでは ないリスト
エラーハンドリング しきれてない 課金処理 viewholder もどき 非同期処理 辛い state管 理 も 辛 い アーキテクチャ など無い 自由な設計
9 多くの負債が生まれてしまった… FatなActivity 増え続ける Color定義 大量のDialog Listviewでは ないリスト エラーハンドリング しきれてない
課金処理 アーキテクチャ など無い 自由な設計
1. アーキテクチャ改善 ◦ Architecture Component、DataBinding、Dagger2導入 ◦ CleanArchtectureを意識したMVVM 2. コンポーネント化 3.
Kotlin導入 10 負債返済してスタンダード化を目指す
1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 11 本日の内容
12 Kotlinが正式にAndroid開発言語に!
• Javaより言語仕様的に優れている(と思う) ◦ Null安全、ラムダ・高階関数…etc ◦ そもそもAndroid開発でJava8使えないの辛い… ◦ RxJavaとRetrolambdaで代替え嫌… • 習熟したら開発効率上がりそう
• Kotlin経験者の強い推し 13 その他採用理由
1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 14 本日の内容
15 Kotlinは 自由度が高い言語
16 例えば、Nullableの場合 ← Nullチェック方式
17 例えば、Nullableの場合 ← 早期リターン(エルビ ス演算子)方式
18 例えば、Nullableの場合 ← Nullチェックかつ エルビス演算子方式
19 例えば、Nullableの場合 ← スコープ関数使用す る方式
20 例えば、Nullableの場合 色々な 書き方が ある!
21 チーム内で 共通の認識が必要
• Kotlin移行したソースを経験者にPRしてもらう。 ◦ Javaっぽく書いてないか。 ◦ Kotlinっぽく書けているか。 22 Kotlin移行に伴う取り組み
23 kotlin-lover 経験者によるPRレビュー
24 kotlin-lover 経験者によるPRレビュー
• 週1でKotlin勉強会を開催する。 ◦ Kotlin Koans(全42問)を何週かに分けて自習。 ◦ 当日に答え合わせ、かつ経験者からの補足と別解、プロダ クトで使用等々の解説をいただく。 25 Kotlin移行に伴う取り組み
• Androidチーム以外のメンバーや、他チームのメンバーも興味 を持って参加してくれてモチベが高い。 ◦ 正直、講師の影響が強い。 26 勉強会の良かったところ • 自習でつまづいたところを直接聞ける事で理解が早い。 •
別解やプロダクトでの事例等が参考になる。 • チーム内での言語共通認識を持てる。
27 まとめ
1. 負債は溜め込まない。出来るなら少しづつでも返済しよう。コ ンポーネント化は絶対やった方が良い! 2. 今からAndroid始めるなら絶対Kotlin。 3. チームでのKotlin開発は全員で認識を合わせておく。そして出 来れば1人でも経験者がいた方が良い! → モブプログラミングとかしてみても良いかも
28 まとめ
29 ご静聴ありがとうございました!