狠狠撸

狠狠撸Share a Scribd company logo
Android 開発の昔と今
2020/10/24 (Sat.)
オープンソースカンファレンス2020 Online/Fall
Kenichi Tatsuhama
@GDG Shikoku
About me
?濱健?(Kenichi Tatsuhama)
? @tatsuhama50
? Sansan, Inc.
? GDG Shikoku Organizer
? 徳島県神?町在住
? Android / Firebase / BigQuery
DataPortal が好き
はじめに
? 先?、Android 11 がリリースされました
? 2008 年に Android 1.0 がリリースされてから、12 年
? Android そのものや周辺で起きてきた変化をまとめてみます
→ 懐かしさや Android 開発再開のリハビリになれば!
Android の歴史
? 2003年:デジカメ向け OS として Android Inc. が開発
? 2005年:Google により買収
…
? 2008年:Android 1.0 ( API 1 ) Release
…
? 2020年:Android 11 ( API 30 ) Release
ストアの歴史
? 2008/10:Android Market が開始
? 2012/03:Google Play に改名
(Google Music 等も統合)
? 2019/08:アプリの審査の開始
(?供向けかどうか?など健全な?壌作り)
バージョンコード
1.5 Cupcake 1.6 Donut 2.0 ? 2.1 Eclair 2.2 Froyo 2.3 Gingerbread
3.0 ? 3.2
Honeycomb
4.0 Ice Cream
Sandwich
4.1 ? 4.3
Jelly Bean
4.4 KitKat 5.0 ? 5.1
Lollipop
6.0 Marshmallow 7.0 ? 7.1
Nougat
8.0 ? 8.1
Oreo
9 Pie
10 から愛称が廃?に!
毎年、愛称が何なのか予想
するのも楽しみでしたね。
開発環境
? Eclipse ADT
(Android Developer Tools)
? Android Studio
? 2013 Google I/O で発表
? 2014 1.0 Release
? 2015 ADT 打ち切り
開発?語
? Java
? Kotlin
? 2018 の Google I/O で Android 開発の正式?語に
? 2019 の Google I/O で Kotlin First に
※ Java での Android 開発も継続できる
※ Java と Kotlin は混在できる
※ サンプルが Kotlin のみで書かれる場合もある
※ Kotlin からしか使えないライブラリも出てきている
Support Library
? サポートライブラリとは、新しい API 向けの下位互換性だった
り、便利なヘルパークラスを提供してくれるライブラリです。
? 必須ではないものの、利?が強く推奨されています。
? Support Library → JetPack の AndroidX ライブラリに移?
※イメージです
(サポートできない機能もあります)
JetPack
? 旧サポートライブラリを含むライブラリ群
? アプリ構築や UI など、豊富なラインナップ
? TargetAPI 28 以上が必須
パーミッション
? ? Android 6:インストール時にすべて許可
(or インストールしない)
→ インストール後は全パーミッションが on
? Android 6 ?:個別パーミッション
(使うときに個別で on / off)
★アプリ利?中に off にされる考慮が必要に!
? Android 11 ?:ワンタイムパーミッション
(今回の起動中は許可)
バックグラウンドパーミッションを区別
Layout
? FrameLayout, RelativeLayout, LinearLayout, GridLayout
だけで頑張っていた時代
↓
? ほぼほぼ ConstraintLayout で表現できる
? GUI で View の制約を定義することもできる
? MotionLayout で動きも定義できる
? Motion Editor で定義できる
MotionEditor
View
? xml や Android Studio の GUI で編集していた時代
↓
? JetPack Compose の登場(まだα版)
? Android のネイティブ UI を構築するための最新のツールキット
? Android の UI 開発を簡素化し、加速します。
? 少ないコード、パワフルなツール、直感的な Kotlin API を使?してア
プリをすぐに動かすことができます。
JetPack Compose
アーキテクチャ
? Fat Activity 時代
? Activity に通信や DB のロジックやコールバックを受けて View の更新
↓
? Architecture 議論(2015?2017 あたり)
↓
? Google が Architecture Component を提供(2017年)
? Android Studio 3.0 からマルチモジュールも強化され、より責務分割
が明確に?われるようになってきた。
マルチスレッド処理
? 前提:描画はメインスレッド、I/O 処理はそれ以外で
? new Thread()…, AsyncTask, IntentService
↓
? RxJava
↓
? Kotlin Coroutine, WorkManager (JetPack)
Database
? 昔は SQLite 使うのが主流
? greenDAO, Orma, Realm など、3rd party 製 の SQLite ラッ
パーや DBの登場
? Google が Room を提供(JetPack の?部)
? SQLite のラッパー
? Coroutine 対応なども?っていて、Android Architecture Component
と相性が良い
? 3rd party ライブラリが落ち着いてきた?
SharedPreferences
? Database よりも簡易な key value store
? String, Int などのプリミティブ型の保存に向いているが、任意のオ
ブジェクト型の保存は不向き
? Gson で json 化して保存できなくもないが、スキーマ変更に弱い
? モダンな API とは?い難い
? JetPack DataStore の登場(まだ alpha-01 というホヤホヤ)
? SharedPrefernces の代替となる保存機構
? オブジェクト型の保存もサポート(ProtocolBuffer)
? コルーチンに対応したモダンな API
変化が激しい業界ですが、
コミュニティを活かし、
共に学んでいきましょう!
GDG Shikoku でも Android の勉強
会を計画しています。
是?、ご参加下さい!
Let?s Enjoy
Android Development !!

More Related Content

Android 開発の昔と今

  • 2. About me ?濱健?(Kenichi Tatsuhama) ? @tatsuhama50 ? Sansan, Inc. ? GDG Shikoku Organizer ? 徳島県神?町在住 ? Android / Firebase / BigQuery DataPortal が好き
  • 3. はじめに ? 先?、Android 11 がリリースされました ? 2008 年に Android 1.0 がリリースされてから、12 年 ? Android そのものや周辺で起きてきた変化をまとめてみます → 懐かしさや Android 開発再開のリハビリになれば!
  • 4. Android の歴史 ? 2003年:デジカメ向け OS として Android Inc. が開発 ? 2005年:Google により買収 … ? 2008年:Android 1.0 ( API 1 ) Release … ? 2020年:Android 11 ( API 30 ) Release
  • 5. ストアの歴史 ? 2008/10:Android Market が開始 ? 2012/03:Google Play に改名 (Google Music 等も統合) ? 2019/08:アプリの審査の開始 (?供向けかどうか?など健全な?壌作り)
  • 6. バージョンコード 1.5 Cupcake 1.6 Donut 2.0 ? 2.1 Eclair 2.2 Froyo 2.3 Gingerbread 3.0 ? 3.2 Honeycomb 4.0 Ice Cream Sandwich 4.1 ? 4.3 Jelly Bean 4.4 KitKat 5.0 ? 5.1 Lollipop 6.0 Marshmallow 7.0 ? 7.1 Nougat 8.0 ? 8.1 Oreo 9 Pie 10 から愛称が廃?に! 毎年、愛称が何なのか予想 するのも楽しみでしたね。
  • 7. 開発環境 ? Eclipse ADT (Android Developer Tools) ? Android Studio ? 2013 Google I/O で発表 ? 2014 1.0 Release ? 2015 ADT 打ち切り
  • 8. 開発?語 ? Java ? Kotlin ? 2018 の Google I/O で Android 開発の正式?語に ? 2019 の Google I/O で Kotlin First に ※ Java での Android 開発も継続できる ※ Java と Kotlin は混在できる ※ サンプルが Kotlin のみで書かれる場合もある ※ Kotlin からしか使えないライブラリも出てきている
  • 9. Support Library ? サポートライブラリとは、新しい API 向けの下位互換性だった り、便利なヘルパークラスを提供してくれるライブラリです。 ? 必須ではないものの、利?が強く推奨されています。 ? Support Library → JetPack の AndroidX ライブラリに移? ※イメージです (サポートできない機能もあります)
  • 10. JetPack ? 旧サポートライブラリを含むライブラリ群 ? アプリ構築や UI など、豊富なラインナップ ? TargetAPI 28 以上が必須
  • 11. パーミッション ? ? Android 6:インストール時にすべて許可 (or インストールしない) → インストール後は全パーミッションが on ? Android 6 ?:個別パーミッション (使うときに個別で on / off) ★アプリ利?中に off にされる考慮が必要に! ? Android 11 ?:ワンタイムパーミッション (今回の起動中は許可) バックグラウンドパーミッションを区別
  • 12. Layout ? FrameLayout, RelativeLayout, LinearLayout, GridLayout だけで頑張っていた時代 ↓ ? ほぼほぼ ConstraintLayout で表現できる ? GUI で View の制約を定義することもできる ? MotionLayout で動きも定義できる ? Motion Editor で定義できる
  • 14. View ? xml や Android Studio の GUI で編集していた時代 ↓ ? JetPack Compose の登場(まだα版) ? Android のネイティブ UI を構築するための最新のツールキット ? Android の UI 開発を簡素化し、加速します。 ? 少ないコード、パワフルなツール、直感的な Kotlin API を使?してア プリをすぐに動かすことができます。
  • 16. アーキテクチャ ? Fat Activity 時代 ? Activity に通信や DB のロジックやコールバックを受けて View の更新 ↓ ? Architecture 議論(2015?2017 あたり) ↓ ? Google が Architecture Component を提供(2017年) ? Android Studio 3.0 からマルチモジュールも強化され、より責務分割 が明確に?われるようになってきた。
  • 17. マルチスレッド処理 ? 前提:描画はメインスレッド、I/O 処理はそれ以外で ? new Thread()…, AsyncTask, IntentService ↓ ? RxJava ↓ ? Kotlin Coroutine, WorkManager (JetPack)
  • 18. Database ? 昔は SQLite 使うのが主流 ? greenDAO, Orma, Realm など、3rd party 製 の SQLite ラッ パーや DBの登場 ? Google が Room を提供(JetPack の?部) ? SQLite のラッパー ? Coroutine 対応なども?っていて、Android Architecture Component と相性が良い ? 3rd party ライブラリが落ち着いてきた?
  • 19. SharedPreferences ? Database よりも簡易な key value store ? String, Int などのプリミティブ型の保存に向いているが、任意のオ ブジェクト型の保存は不向き ? Gson で json 化して保存できなくもないが、スキーマ変更に弱い ? モダンな API とは?い難い ? JetPack DataStore の登場(まだ alpha-01 というホヤホヤ) ? SharedPrefernces の代替となる保存機構 ? オブジェクト型の保存もサポート(ProtocolBuffer) ? コルーチンに対応したモダンな API
  • 21. GDG Shikoku でも Android の勉強 会を計画しています。 是?、ご参加下さい!