Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
これからはじめる Android開発
Slide 2
Slide 2 text
● Kenji Abe ● Android, Kotlin GDE ● Cookpad Inc. ● @STAR_ZERO About me
Slide 3
Slide 3 text
Android開発は難しい?
Slide 4
Slide 4 text
開発環境と言語
Slide 5
Slide 5 text
Android Studio ● IntelliJ IDEAベースのIDE ● Stable、RC、Beta、Alphaがある ● バージョンによって使える機能が異なる ○ https://developer.android.com/studio/releases ○ https://developer.android.com/studio/preview/features/
Slide 6
Slide 6 text
4.0: 3D View 4.1: Database Inspector 4.1: Emulator in Android Studio
Slide 7
Slide 7 text
● Java ● Kotlin ● C/C++ 言語
Slide 8
Slide 8 text
● 表現力と簡潔さ ● Null Safety ● Javaとの相互運用 ● Kotlin Coroutines Kotlin
Slide 9
Slide 9 text
Kotlin-first https://developer.android.com/kotlin/first
Slide 10
Slide 10 text
プロジェクト構成
Slide 11
Slide 11 text
● ソースコード ○ Java, Kotlin, C/C++ ● リソースファイル ○ Layout ○ String ○ Image ○ など プロジェクト構成
Slide 12
Slide 12 text
プロジェクト構成 ● AndroidManifest.xml ○ アプリの設定 ○ Activity, Serviceなどの定義 ○ 使用する権限 ○ 必要な端末機能 ○ https://developer.android.com/guide/topics/manifest/manif est-intro
Slide 13
Slide 13 text
プロジェクト構成 ● Gradle ○ ビルド設定 ○ ライブラリの依存関係 ○ アプリの設定 applicationId, sdkVersionなど ○ https://developer.android.com/studio/build
Slide 14
Slide 14 text
ライブラリ
Slide 15
Slide 15 text
Jetpack ● Android開発を加速させてくれるライブラリたち ○ バージョン互換 ○ ボイラープレートの軽減 ○ Kotlin拡張(ktx) ● プラットフォームAPIからは独立 ● 高頻度でアップデートされる ● https://developer.android.com/jetpack
Slide 16
Slide 16 text
代表的なJetpackライブラリ ● AppCompat ○ 古いOS互換、Material Design ● Lifecycle ○ Activity/Fragment等のライフサイクル管理 ○ LiveData/ViewModel ● Room ○ SQLiteへのアクセス
Slide 17
Slide 17 text
代表的なJetpackライブラリ ● Paging ○ RecyclerViewの簡単ページング ● Navigation ○ 主にFragment間の画面遷移 ○ Navigation Editorで画面遷移を定義 ● WorkManager ○ バックグラウンドタスク
Slide 18
Slide 18 text
よく使われるライブラリ ● Timber ○ ログ拡張 ● OkHttp, Retrofit ○ ネットワーク処理、APIアクセス ● Moshi, GSON, kotlinx.serialization ○ JSONパーサー
Slide 19
Slide 19 text
よく使われるライブラリ ● Glide, Coil, Picasso ○ 画像読み込み ● Dagger ○ DIライブラリ
Slide 20
Slide 20 text
知っておくと良いこと
Slide 21
Slide 21 text
ActivityとFragment ● Activityが画面の基本単位 ● FragmentはUI部品やロジックを持てる ○ 1つのActivityに複数のFragment ○ 独自のライフサイクル ● Jetpackのを必ず使う ○ andoridxのパッケージ ● https://developer.android.com/ guide/components/fragments
Slide 22
Slide 22 text
ライフサイクル ● Activity/Fragmentはライフサイクルがある ● 起動時、別画面に遷移したとき、バックグラウン ド移行したとき、など ○ onCreate, onStart, onStop, など ● 適切な箇所で処理する必要がある ● ActivityとFragmentでは異なる
Slide 23
Slide 23 text
https://developer.android.com/guide/components/activities/activity-lifecycle https://developer.android.com/guide/components/fragments
Slide 24
Slide 24 text
画面サイズ / 解像度 ● 端末によって画面サイズや解像度が異なる ● 解像度ごとに別の画像を指定できる ● テキストサイズはユーザーが変更可能 ● https://developer.android.com/training/multiscreen/screenden sities
Slide 25
Slide 25 text
Application Not Responding(ANR) ● UIスレッドで時間のかかるような処理を行わない ● アプリが反応しなくなったり、ANRダイアログが表 示される ● 非同期で処理を行うようにする ● https://developer.android.com/training/ articles/perf-anr
Slide 26
Slide 26 text
● 権限によってはユーザーの許可が必要 ● <= Android 5.1: Install time ● >= Android 6: Runtime ● >= Android 11: One-time ● ユーザーは設定から許可を取り消せる ● 必ずベストプラクティスに従った実装する ● https://developer.android.com/guide/topics/permissions/overv iew Permission
Slide 27
Slide 27 text
apk / aab ● apk ○ 実行ファイルをまとめた圧縮ファイル ○ 端末に必要のないリソースファイルも含まれる ○ ファイルサイズが大きい
Slide 28
Slide 28 text
apk / aab ● aab (Android App Bundle) ○ Google Playから端末に必要なファイルのみ ダウロードされる ○ Dynamic Deliveryにも対応可能 ○ 2021年後半から新規アプリは必須予定 ○ https://developer.android.com/guide/app-bundle
Slide 29
Slide 29 text
apk lang: JA lang: EN lang: ES lang: DE lang: FR lang: KO mdpi hdpi xhdpi xxhdpi aab lang: JA xxhdpi
Slide 30
Slide 30 text
Architecture
Slide 31
Slide 31 text
Architecture ● MVVM, MVP, Flux ● Guide to app architecture ○ https://developer.android.com/jetpack/guide ○ アーキテクチャのガイド ○ Jetpackを使用、相性が良い
Slide 32
Slide 32 text
https://developer.android.com/jetpack/guide
Slide 33
Slide 33 text
Codelabs
Slide 34
Slide 34 text
Codelabs ● チュートリアル形式で学ぶことが出来る ● 実際に手を動かしながら進めるので実装イメージ を理解しやすい ● 古くて動かないのもあるで注意
Slide 35
Slide 35 text
https://codelabs.developers.google.com/?cat=Android
Slide 36
Slide 36 text
No content
Slide 37
Slide 37 text
https://developer.android.com/courses/android-basics-kotlin/course
Slide 38
Slide 38 text
Documents/Link
Slide 39
Slide 39 text
ドキュメント ● Android Developers ○ https://developer.android.com/ ● Kotlin Programming Language ○ https://kotlinlang.org/
Slide 40
Slide 40 text
リリースノート ● Jetpack ○ https://developer.android.com/jetpack/androidx/versions/a ll-channel ● Android Studio ○ https://androidstudio.googleblog.com/
Slide 41
Slide 41 text
ブログなど ● Android Developer Blog ○ https://android-developers.googleblog.com/ ● Android Developers (Medium) ○ https://medium.com/androiddevelopers ● Android Developers (Youtube Channel) ○ https://www.youtube.com/c/AndroidDevelopers/
Slide 42
Slide 42 text
ソースコード ● Android Code Search ○ https://cs.android.com/ ● GitHub ○ https://github.com/androidx
Slide 43
Slide 43 text
Thank you!