Upgrade to Pro — share decks privately, control downloads, hide ads and more …

個人アプリ開発 (メンテナンス) 14年の歴史 / My personal app development history

Yuki Anzai
December 09, 2023

個人アプリ開発 (メンテナンス) 14年の歴史 / My personal app development history

Yuki Anzai

December 09, 2023
Tweet

More Decks by Yuki Anzai

Other Decks in Technology

Transcript

  1. ざっくり年表 2008年04月 GitHubが正式にサービス開始 2008年10月 Android Market 配信開始 2009年02月 Android Market

    有料アプリ配信開始(US) 2009年04月 Android Cupcake 1.5 2009年07月 日本国内初のAndroid搭載スマートフォン「HT-03A」発売 2009年09月 Android Donut 1.6 2009年10月 Android Eclair 2.0 2009年12月 個人アプリ①初回リリース
  2. ざっくり年表 2010年01月 Google公式初のフラグシップ端末「 Nexus One」発売 2010年05月 Android Froyo 2.2 2010年12月

    Android Gingerbread 2.3 2011年01月 個人アプリ②初回リリース 2011年02月 Android Honeycomb 3.0 (Fragment 導入) 2011年02月 Android Market が Web 上に公開される 2011年04月 Android Market In-app Billing(アプリ内課金)開始 2011年10月 Android ICS 4.0
  3. ざっくり年表 2012年03月 Android Market から Google Play に移行 2012年07月 Android

    Jelly Bean 4.1 2013年05月 Google I/Oで「Android Studio」が発表される 2013年10月 Android KitKat 4.4 2014年11月 Android Lollipop 5.0(最初の Material Design) 2014年11月 RxJava 1.0.0 2014年12月 Android Studio 1.0.0 2015年10月 Android Marshmallow 6.0(Runtime permission 導入)
  4. ざっくり年表 2016年08月 Android Nougat 7.0 2016年10月 Pixel 発売 2017年05月 Google

    I/Oで「Kotlin」の公式サポートが発表される 2017年08月 Android Oreo 8.0 2018年08月 Android Pie 9.0 2018年10月 Kotlin Coroutines 1.0.0 2019年05月 Google I/O で Jetpack Compose が発表される 2019年09月 Android Q 10
  5. ざっくり年表 2020年09月 Android R 11 2021年07月 Jetpack Compose 1.0.0 2021年10月

    Android S 12 2022年08月 Android Tiramisu 13 2023年10月 Android Upside Down Cake 14
  6. 第9位 version catalog への移行 • 変換ツールがないからなにげに面倒 • Android Studio で

    command + b ジャンプに対応するようになった のでもう移行してよい • developer.android.com に移行 方法のドキュメントがある https://developer.android.com/build/migrate-to-catalogs
  7. 第8位 非同期画像読み込みライブラリの移行 Imageloadlib → Picasso → Glide → Coil Imageloadlib

    : 昔 Android 公式 ページに記載されていた画像読み込みのサ ンプル実装(だったはず)
  8. 第6位 Android Studio への移行 • 昔は Eclipse という IDE で開発

    していた • ビルドも Gradle ではなかった • 昔のプロジェクトを Android Studio で開くと、新しいプロジェ クト構成にした別プロジェクトを 作ってくれる機能があった(今もあ るはず)
  9. 第4位 UI の全面書き換え(複数回) 2系の UI → 4系の UI ActionBarSherlock →

    5系の UI Material Design + AppCompat → Compose + M3 Compose への移行 • Compose 自体のコーディングは楽し い • 全画面やるから時間がかかる • Bottom Tab + Fragment の構成を Compose に移行する部分は段階的に できないので大変だった • View ベースで書いた UI テストが全 部さよならになったのはちょっとつら かった
  10. 第3位 通信周りの書き換え AsyncTask → Loader → RxJava → Coroutines RxJava

    • 2018年に導入して XX 年に Coroutines に移行した • RxJava 部分のコードを読み解くの が大変(忘れてるから) • 複雑なことをしていなかったので、 その点は助かった
  11. 第2位 Billing Library の更新 • 3 → 4 (だったと思う)の更新が大 変だった

    ◦ 全面的に API が変わってて検証も 必要だし、ぎりぎりまで後回しにし てた… • Billing 周りの検証はもう少しど うにかしたい
  12. 第1位 でかい Activity の解体 • 意味のわからない自分の書いたコー ドのリファクタリング • 「どんなにあれなコードでも書いた の自分なんだよなー」という経験は

    貴重 • 最近はでかいクラスでつらくなるこ とは無くなったが、たくさんのクラ スが複雑に連携しててつらくなるこ とがある
  13. まとめ • 個人アプリでも VCS、テスト、CI、 ライブラリ更新ツールは入れよう • 未来の自分は他人 • 簡潔でわかりやすいコードを書こう •

    README やコメントを書こう • 放置しすぎるとメンテナンスが大変に なる ◦ せめて年1で更新しよう