Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
個人アプリ開発 (メンテナンス) 14年の歴史 / My personal app devel...
Search
Yuki Anzai
December 09, 2023
Technology
1
990
個人アプリ開発 (メンテナンス) 14年の歴史 / My personal app development history
GDG DevFest Tokyo 2023
https://gdg-tokyo.connpass.com/event/301690/
Yuki Anzai
December 09, 2023
Tweet
Share
More Decks by Yuki Anzai
See All by Yuki Anzai
Android Studio Otter の最新 Gemini 機能 / Latest Gemini features in Android Studio Otter
yanzm
0
780
Devin で iOS の PR から Android のコードを生成する / Generate Android code from iOS PR using Devin
yanzm
0
180
AI ツールを活用したコードリーディング - Android の公式サンプル Now in Android のソースコードを読んでみよう - / Code reading with AI tools
yanzm
1
85
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
2.2k
Devinを使ったモバイルアプリ開発 / Mobile app development with Devin
yanzm
0
310
Android Studio の 新しいAI機能を試してみよう / Try out the new AI features in Android Studio
yanzm
0
400
What’s new in Android development tools
yanzm
0
930
Google I/O 2025 Keynote & Developer Keynote Overview
yanzm
0
180
Coding Agent を使って Android アプリを作ってみる / Let's try using coding agent for Android app development
yanzm
0
210
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
770
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
120
Snowflake導入から1年、LayerXのデータ活用の現在 / One Year into Snowflake: How LayerX Uses Data Today
civitaspo
0
2.4k
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
170
ESXi のAIOps だ!2025冬
unnowataru
0
370
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
190
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
230
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.8k
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
390
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
500
SREが取り組むデプロイ高速化 ─ Docker Buildを最適化した話
capytan
0
150
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
1.9k
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
Designing Powerful Visuals for Engaging Learning
tmiket
0
190
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
250
Prompt Engineering for Job Search
mfonobong
0
130
Into the Great Unknown - MozCon
thekraken
40
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
210
AI: The stuff that nobody shows you
jnunemaker
PRO
1
24
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
29
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
個人アプリ開発 (メンテナンス) 14年の歴史 DevFest Tokyo 2023 Yuki Anzai (@yanzm)
https://android-developers.googleblog.com/2023/11/ensuring-high-quality-apps-on-google-play.html https://support.google.com/googleplay/android-developer/answer/14151465
None
None
月額 100 円のサブスクリプション 100 円の買い切り機能
初回リリースしたのいつだっけ?
リリース履歴からわかるか?
リリース履歴からわかるか?
App Bundle エクスプローラからわかるか?
App Bundle エクスプローラからわかるか?
App Bundle エクスプローラからわかるか?
初回リリースしたのいつだっけ? 初回リリース日 : 2009年12月29日にはリリース済み 2009年12月29日付の使い方のブログ記事が発掘されたため 初回リリース日 : 2011年1月頭ぐらいだった記憶 NfcAdapter が
API Level 9 ( = Gingergread) からで、 最初の Gingergread (= 2.3) が出たのが 2010年の12月
14年も開発(メンテナンス)続けるのつらくない?
14年も開発(メンテナンス)続けている要因 1. ユーザー
14年も開発(メンテナンス)続けている要因 1. ユーザー
14年も開発(メンテナンス)続けている要因 1. ユーザー 2. 自分もユーザー
14年も開発(メンテナンス)続けている要因 1. ユーザー 2. 自分もユーザー 3. 最新の開発手法を試せる
14年の開発(メンテナンス)で やってよかったこと Top 6 つらかったこと Top 10
ざっくり年表 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月 個人アプリ①初回リリース
ざっくり年表 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
ざっくり年表 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 導入)
ざっくり年表 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
ざっくり年表 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
14年の開発(メンテナ ンス)でやってよかっ たこと Top 6 Editable Location
第6位 Github でソースコードを管理するようにした 2011年1月初回リリースだから 2年間どうしていた??? 初回コミットですでに v5…
第5位 CI を導入した Bitrise (2017年〜) → Github Actions
第4位 Renovate を導入した • 個人アプリは数ヶ月単位でさわらな いので、ライブラリの更新がすぐた まる • Renovate を導入してだいぶ楽に
なった • 先に CI を導入しておくべし
第3位 Dagger (DI) を導入した • テストが書きやすくなった! • EventBus にさよならできた
第2位 テストを書いた • 安心するためにテストを書いている • 個人アプリのテスターはほぼ自分 • 自動テストで負荷を減らさないとつ らい!
第1位 README、コメントを書いた • コード以外の雑多なことも忘れるか ら README は書こう • 未来の自分は他人! •
簡潔なコードが一番、でも仕様が簡 潔とは限らない
14年の開発(メンテナ ンス)でつらかったこ と Top 10 Editable Location
第10位 build.gradle.kts への移行 • でてきたばかりの頃は書き方の情報 が少なすぎて大変だった • developer.android.com に移行 方法のドキュメントができてだいぶ
楽になった https://developer.android.com/build/migrate-to-kotlin-dsl
第9位 version catalog への移行 • 変換ツールがないからなにげに面倒 • Android Studio で
command + b ジャンプに対応するようになった のでもう移行してよい • developer.android.com に移行 方法のドキュメントがある https://developer.android.com/build/migrate-to-catalogs
第8位 非同期画像読み込みライブラリの移行 Imageloadlib → Picasso → Glide → Coil Imageloadlib
: 昔 Android 公式 ページに記載されていた画像読み込みのサ ンプル実装(だったはず)
第7位 Kotlin への移行 • Kotlin の勉強になった! • 段階的に移行できるのが素晴らしい • 全て移行するまでかなり時間がか
かった • やり切るには根気がいる
第6位 Android Studio への移行 • 昔は Eclipse という IDE で開発
していた • ビルドも Gradle ではなかった • 昔のプロジェクトを Android Studio で開くと、新しいプロジェ クト構成にした別プロジェクトを 作ってくれる機能があった(今もあ るはず)
第5位 EXTERNAL_STORAGE permission 廃止 • 独自のバックアップ機能があって (これは公式のバックアップ機能が ない時代からアプリをリリースして たので)、そのためにバックアップ データを外部ストレージに保存して
いた • 保存先を選択する機能、バージョンご との画面切り替え機能を実装しなくて はいけなくなった
第4位 UI の全面書き換え(複数回) 2系の UI → 4系の UI ActionBarSherlock →
5系の UI Material Design + AppCompat → Compose + M3 Compose への移行 • Compose 自体のコーディングは楽し い • 全画面やるから時間がかかる • Bottom Tab + Fragment の構成を Compose に移行する部分は段階的に できないので大変だった • View ベースで書いた UI テストが全 部さよならになったのはちょっとつら かった
2系の UI (2009年)
第3位 通信周りの書き換え AsyncTask → Loader → RxJava → Coroutines RxJava
• 2018年に導入して XX 年に Coroutines に移行した • RxJava 部分のコードを読み解くの が大変(忘れてるから) • 複雑なことをしていなかったので、 その点は助かった
第2位 Billing Library の更新 • 3 → 4 (だったと思う)の更新が大 変だった
◦ 全面的に API が変わってて検証も 必要だし、ぎりぎりまで後回しにし てた… • Billing 周りの検証はもう少しど うにかしたい
第1位 でかい Activity の解体 • 意味のわからない自分の書いたコー ドのリファクタリング • 「どんなにあれなコードでも書いた の自分なんだよなー」という経験は
貴重 • 最近はでかいクラスでつらくなるこ とは無くなったが、たくさんのクラ スが複雑に連携しててつらくなるこ とがある
まとめ • 個人アプリでも VCS、テスト、CI、 ライブラリ更新ツールは入れよう • 未来の自分は他人 • 簡潔でわかりやすいコードを書こう •
README やコメントを書こう • 放置しすぎるとメンテナンスが大変に なる ◦ せめて年1で更新しよう