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.4k
Firebase A/B Testing Targeting Tips
mukky620
0
2k
運用3年のタップル誕生でJavaからKotlin移行した話
mukky620
0
1.1k
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
710
受け取る人から提供する人になるということ
little_rubyist
0
250
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
110
イベント駆動で成長して委員会
happymana
1
340
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
イマのCSSでできる インタラクション最前線 + CSS最新情報
clockmaker
3
350
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
5
1.5k
Better Code Design in PHP
afilina
PRO
0
130
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
340
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
みんなでプロポーザルを書いてみた
yuriko1211
0
280
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Happy Clients
brianwarren
98
6.7k
Statistics for Hackers
jakevdp
796
220k
A designer walks into a library…
pauljervisheath
204
24k
Designing the Hi-DPI Web
ddemaree
280
34k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Automating Front-end Workflow
addyosmani
1366
200k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
GitHub's CSS Performance
jonrohan
1030
460k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
GraphQLとの向き合い方2022年版
quramy
43
13k
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 ご静聴ありがとうございました!