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

Google I/O 2018 に見る これからの Android アプリ開発方法

Google I/O 2018 に見る これからの Android アプリ開発方法

Google I/O Extended Okinawa 2018
https://okipug.connpass.com/event/86509/

Avatar for Yuki Anzai

Yuki Anzai

June 02, 2018
Tweet

More Decks by Yuki Anzai

Other Decks in Technology

Transcript

  1. • blog : Y.A.M ͷࡶهா • y-anz-m.blogspot.com • twitter :

    @yanzm ʢ΍Μ͟Ήʣ • uPhyca Inc. (גࣜձࣾ΢ϑΟΧ) • Google Developer Expert for Android ͋Μ͍͟Ώ͖
  2. 10 years • ͍ΖΜͳ UI ͷྲྀߦΓ → OS ͷσβΠϯมભ →

    Material Design → Material Theming • ৽͍͠ػೳͷόοΫϙʔτ͕ཉ͍͠ → Support Library • Ϣʔεέʔεʹର༷͠ʑͳ࣮ݱํ๏ → ϕετϓϥΫςΟε → Jetpack • ͍ΖΜͳΞϓϦ͕ి஑Λফඅ → OS Ͱ੍ݶ → Doze, App Standby • ΞϓϦͷαΠζ͕ͲΜͲΜͰ͔͘ͳͬͯେม → Android App Bundle • ΞϓϦ͕ͲΜͲΜෳࡶʹͳͬͯେม → Android Architecture Components
  3. Google Play upload ཁ݅ • targetSdkVersion Λ࠷৽ͷ stableʢࠓͩͱ 26ʣʹ͠ͳ͍ ͱ

    Google Play ʹ apk Λ upload Ͱ͖ͳ͘ͳΔ • 2018೥8݄ ʙ : ৽نͷΞϓϦ • 2018೥11݄ʙ : طଘͷΞϓϦ • https://android-developers.googleblog.com/2017/12/ improving-app-security-and-performance.html
  4. Google Play upload ཁ݅ • native libraries ͸ 64-bit version

    Λఏڙ͠ͳ͍ͱ Google Play ʹ apk Λ upload Ͱ͖ͳ͘ͳΔ • 2019೥8݄ ʙ • https://android-developers.googleblog.com/2017/12/ improving-app-security-and-performance.html
  5. IDE : Android Studio Preview • https://developer.android.com/studio/preview/ • Canary Channel

    : Ұ൪࠷৽ͷ։ൃόʔδϣϯ • Dev Channel : Canary ͷ࣍ • Beta Channel : Dev ͷ࣍ • Stable Channel : ҆ఆ൛
  6. ݴޠ • Java • Kotlin • https://developer.android.com/kotlin/ • https://codelabs.developers.google.com/codelabs/build- your-

    fi rst-android-app-kotlin/ • https://codelabs.developers.google.com/codelabs/taking- advantage-of-kotlin/ • C++
  7. Material Design • https://material.io/ • Material Design is a visual

    language that synthesizes the classic principles of good design with the innovation of technology and science. • Google I/O 2014 Ͱൃද • Google ͕ਓͱ͓ۚͱ࣌ؒΛ͔͚ͯϦαʔν • Develop : https://material.io/develop/
  8. Material Theme Editor • Sketch Plugin • Sketch https://www.sketchapp.com/ •

    https://material.io/tools/theme-editor/ • ίʔυϥϘ • https://codelabs.developers.google.com/codelabs/ theme-editor-designlab/
  9. Gallery • https://gallery.io/login • σβΠϯͨ͠ը໘ͷετοΫˍڞ༗ • Google Account ͰϩάΠϯ •

    όʔδϣϯ؅ཧ • ίϝϯτ • Inspect, Material Components ΁ͷϦϯΫ • Material Theme Editor ࿈ܞ
  10. Material Gallery App (Android, iOS) • https://gallery.io/apps • Gallery Project

    ͷ֤ image Λ σόΠεͰදࣔ • ίϝϯτೖྗ https://www.youtube.com/watch?v=TIB3q68ZHYw
  11. ϨΠΞ΢τ • ConstraintLayout • ੍໿ʢConstraintʣΛࢦఆͯ͠ View Λ഑ஔ • ϨΠΞ΢τΤσΟλରԠ •

    https://developer.android.com/training/constraint-layout/ • CoordinatorLayout • Behavior Λࢦఆͯ͠ View ͷಈ͖Λ੍ޚ
  12. ϨΠΞ΢τΤσΟλ • GUI ͰϨΠΞ΢τΛฤू • Android Ͱ͸ XML ͰϨ ΠΞ΢τΛఆٛ

    • GUI Ͱͷมߋ͸ XML ʹ ద༻͞ΕΔ • https:// developer.android.com/ studio/write/layout-editor
  13. AndroidX • ࠓ·Ͱͷ Support Library ͷ package ͱ artifact ͕มΘΔ

    • android.support.* → androidx.* ͳͲ • https://developer.android.com/topic/libraries/support- library/refactor • https://android-developers.googleblog.com/2018/05/hello- world-androidx.html • ͍··Ͱͷ package Ͱͷ Support Library ͸ 28.0.0 ͕࠷ޙͷ ϦϦʔεʹͳΔ
  14. AndroidX • ࣗ෼ͷΞϓϦͷιʔείʔυ͚ͩͰͳ͘ɺར༻͍ͯ͠Δϥ ΠϒϥϦ಺΋มߋ͕ඞཁ • [Refactor] - [Refactor to AndroidX…]

    • Android Studio 3.2 Canary • compileSdkVersion 28 Ҏ্ • 28͸·ͩͳ͍ͷͰ “android-P”
  15. What is Android Jetpack? • Android Jetpack ͸͙͢Εͨ Android ΞϓϦΛ࡞ΔͨΊͷ

    ίϯϙʔωϯτɾπʔϧɾΨΠμϯεͷηοτ • https://android-developers.googleblog.com/2018/05/ use-android-jetpack-to-accelerate-your.html • ࢖͏࢖Θͳ͍͸ࣗ༝ • ࢖͍͍ͨ΋ͷ͚ͩ࢖͑͹Α͍
  16. Foundation • AppCompat : ඞਢ • Android KTX : Kotlin

    Ͱ։ൃ͢ΔͳΒೖΕΔͱศར • Multidex : ඞཁʹͳΕ͹ඞਢ • Test : ඞਢ
  17. Animation & Transition • ΄΅ඞਢ • ObjectAnimator • Transition Support

    Library • DynamicAnimation implementation 'com.android.support:transition:28.0.0-alpha1' implementation 'androidx.transition:transition:1.0.0-alpha1' implementation 'com.android.support:support-dynamic-animation:28.0.0-alpha1' implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0-alpha1'
  18. Fragment • ΄΅ඞਢ • Framework ͷ Fragment ͸ Deprecated •

    Support Library ͷ Fragment Λ࢖͏ implementation 'com.android.support:support-fragment:28.0.0-alpha1' implementation 'androidx.fragment:fragment:1.0.0-alpha1'
  19. Layout • AppCompat : ඞਢ • ConstraintLayout : ඞਢ •

    CoordinatorLayout : ΄΅ඞਢ implementation 'com.android.support:appcompat-v7:28.0.0-alpha1' implementation 'com.android.support.constraint:constraint-layout:28.0.0-alpha1' implementation 'com.android.support:coordinatorlayout:28.0.0-alpha1' implementation 'androidx.appcompat:appcompat:1.0.0-alpha1' implementation 'androidx.constraintlayout:constraintlayout:1.1.0' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0-alpha1'
  20. Design Support Library • ඞਢ • Material Design ʹରԠͨ͠ Components

    ू implementation 'com.android.support:design:28.0.0-alpha1' implementation 'com.google.android.material:material:1.0.0-alpha1'
  21. Behavior • Download Manager : μ΢ϯϩʔυػೳ͕ඞཁͳΒ • Media & Playback

    : Իָ΍ಈը࠶ੜػೳ͕ඞཁͳΒ • Permissions : ϥϯλΠϜύʔϛογϣϯରԠ͸ඞਢ • Noti fi cations : Channel ରԠ͸ඞਢ • Sharing : ڞ༗ػೳ͸ϢʔβϏϦςΟతʹ΄΅ඞਢ
  22. Slices • New • https://developer.android.com/guide/slices/ • ࣗ෼ͷΞϓϦͷ৘ใΛଞͷΞϓϦʹදࣔ͢Δ࢓૊Έ • Google Search

    ͕ 2018 summer ରԠ༧ఆ implementation 'androidx.slice:slice-core:1.0.0-alpha2' implementation 'androidx.slice:slice-builders:1.0.0-alpha2'
  23. Architecture • Data Binding : ࢖͍͚ͨΕ͹ • Lifecycles : LiveData

    Λ࢖͏ͳΒ • LiveData : ศར • ViewModel : ͍͢͝ศར • Room : ࢖͍͚ͨΕ͹
  24. Navigation • https://developer.android.com/topic/libraries/architecture/ navigation/ • ίʔυϥϘ • https://codelabs.developers.google.com/codelabs/ android-navigation/ implementation

    'android.arch.navigation:navigation-fragment:1.0.0-alpha01' implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha01'
  25. WorkManager • New • API Level 14 Ҏ߱ʹରԠ • ಺෦Ͱ

    JobScheduler ΍ ʢ͋Ε͹ʣ FirebaseJobDispatcher ΍ AlarmManager Λར༻ • Background Service ͕γεςϜʹΑͬͯऴྃͤ͞ΒΕΔ Α͏ʹͳͬͨͷͰɺWorkManager ʹ੾Γସ͑Δ
  26. APK • Android ΞϓϦͷ഑෍ܗ ࣜ • [Build] - [Build Bundle(s)

    / APK(s)] - [Build APK(s)] • [Build] - [Generate Signed Bundle / APK] - [APK]
  27. Android App Bundle • ղ૾౓΍CPUͳͲσόΠ εͷεϖοΫʹඞཁͳϦ ιʔε͚ͩΠϯετʔϧ ͢Δ࢓૊Έ • [Build]

    - [Build Bundle(s) / APK(s)] - [Build Bundle(s)] • [Build] - [Generate Signed Bundle / APK] - [Bundle]
  28. ·ͱΊ • ࠓޙ targetSdkVersion ͸࠷৽ͷ stable ʹ • Material Theme

    EditorɺGallery Λ࢖ͬͯΈΑ͏ • Kotlin Ͱॻ͍ͯΈΑ͏ • Jetpack ͷػೳΛ೺Ѳ͓ͯ͜͠͏ • ΞϓϦͷαΠζ͕େ͖͍ͳΒ Android App Bundle ͷར༻ Λݕ౼͠Α͏