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
3.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlin導入してみたかったけど結局間に合わなかった…
2017/06/22 MatchingAgent x Makuake 合同勉強会資料
mukky620
June 22, 2017
More Decks by mukky620
See All by mukky620
Firebase A/B TestingとRemote Config を最大限に活用する方法
mukky620
1
1.7k
Firebase A/B Testing Targeting Tips
mukky620
0
2.2k
運用3年のタップル誕生でJavaからKotlin移行した話
mukky620
0
1.3k
Other Decks in Programming
See All in Programming
「人を評価する AI」の設計と実装
ryoyanara
0
220
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
350
Go 1.27 における memory allocation の高速化
andpad
0
290
リアルな遅延を測る仕様
kota_yata
1
120
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
180
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.1k
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.4k
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
280
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
680
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
250
New Earth Scene 8
popppiees
3
2.5k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Curse of the Amulet
leimatthew05
2
14k
How to Talk to Developers About Accessibility
jct
2
520
YesSQL, Process and Tooling at Scale
rocio
174
15k
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 ご静聴ありがとうございました!