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

俺的 2017年のAndroidを振り返る

operandoOS
December 27, 2017

俺的 2017年のAndroidを振り返る

operandoOS

December 27, 2017
Tweet

More Decks by operandoOS

Other Decks in Technology

Transcript

  1. Զత 2017೥ͷ
    AndroidΛৼΓฦΔ
    2017/12/27 YouTube഑৴
    ϋογϡλά : #opedroid

    View Slide

  2. ࣗݾ঺հ
    • operandoOS
    • AndroidͷΞϓϦΛ࡞ͬͯ·͢

    View Slide

  3. ຊࢿྉʹ͍ͭͯ
    • ޙ΄Ͳެ։͠·͢
    • ϦϯΫ΋ଟ਺͋ΔͨΊɺࢿྉͷॻ͖ى͜͠΋
    ެ։͠·͢

    View Slide

  4. ͳͥൃදΛ഑৴͢Δͷ͔ʁ
    ΑΓଟ͘ͷਓʹൃදΛ

    ݟͯɾฉ͍ͯ΋Β͏ͨΊ

    View Slide

  5. ͳͥൃදΛ഑৴͢Δͷ͔ʁ
    • ITۀքͰ͸֤஍Ͱ೔ʑษڧձ͕։͔Ε͓ͯΓ

    ৭Μͳਓ͕ࣗ਎ͷ஌ݟΛൃද͍ͯ͠·͢
    • ࢲ΋ൃදͯ͠ΔҰਓͰ͢

    View Slide

  6. ͳͥൃදΛ഑৴͢Δͷ͔ʁ
    • ൃද͢Δ͸͍͍͚Ͳɺࢿྉ࡞Γ͕େมͩͬͨΓɺࢿྉʹ

    ॻ͔Εͳ͔ͬͨ͜ͱΛൃදͷ৔Ͱ࿩ͨ͠Γ͠·͢
    • ͳͷͰɺࢿྉʹॻ͔ͣ࿩ͯ͠͠·͏ͱޙʑެ։͞ΕΔࢿྉΛ

    ݟͯ΋ɺͲΜͳ͜ͱΛ࿩ͨ͠ͷ͔Θ͔ΓͮΒ͍৔߹͕͋Γ·͢
    • ΋ͪΖΜࢿྉΛͪΌΜͱ࡞͍ͬͯΔํͷ͸ɺࢿྉ͚ͩͰ΋ཧղ
    Ͱ͖·͢
    • ͔͠͠ɺࢲ͸ࢿྉ࡞Δͷ͕Լखͦ͘Ͱ͢

    View Slide

  7. ͳͥൃදΛ഑৴͢Δͷ͔ʁ
    • Ͱ΋ɺ஌ݟ͸୭͔ͷͨΊʹͳΔ͔΋͠Εͳ͍ͷ
    Ͱڞ༗͍ͨ͠ͷͰ͢ʂ
    • ͳͷͰɺࢿྉ͸ͬ͘͟Γ࡞ͬͯɺޙ͸࿩ͯ͠͠
    ·ͬͯɺͦΕΛ࿥ըͳΓͯ͠ެ։͢Ε͹͑͑Μ
    Ͱͳ͍͔ͱࢥ͍·ͨ͠
    • େ͖ͳΧϯϑΝϨϯεͱ͔Ͱ͸ɺ࣮ࡍʹൃදͷ
    ࿥ը͕ެ։͞ΕΔ͜ͱ΋͋Γ·͢

    View Slide

  8. ৄ͘͠
    ΑΓଟ͘ͷਓʹൃදΛΈͯɾ͖͍ͯ
    ΋Β͏ͨΊʹ
    https://note.mu/operando_os/n/n0ff7064fbc03

    View Slide

  9. ҙݟɺཁ๬ɺ࣭໰ͳͲ
    Twitterͷϋογϡλάʹॻ͍͍͚ͯͨͩΕ͹

    خ͍͠Ͱ͢
    ϋογϡλά : #opedroid

    View Slide

  10. 2017೥
    ͬ͘͟ΓAndroidશମͰ
    ى͖ͨ͜ͱৼΓฦΓ

    View Slide

  11. ※ॻ͍ͯ͋Δ͜ͱɺ࿩ͨ͜͠ͱ͕͢΂ͯͰ͸ͳ͍Ͱ͢

    ※ݸਓతʹҹ৅ʹ࢒ͬͯΔ͜ͱ͚ͩॻ͍ͯ·͢

    View Slide

  12. Android Announces Support for Kotlin
    • https://android-developers.googleblog.com/
    2017/05/android-announces-support-for-
    kotlin.html
    • Kotlin
    • https://kotlinlang.org/
    • KotlinConf 2017
    • https://www.kotlinconf.com/

    View Slide

  13. Android O
    • https://developer.android.com/about/versions/oreo/
    index.html
    • དྷ೥͸OରԠඞਢͬΆ͍ྲྀΕʹͳͬͯΔͷͰؤுΖ͏ͳʂ
    • Push௨஌ΊͬͪΌӡ༻ͯ͠ΔΞϓϦ͸Notification
    Channelେม͔ͩΒͳʂ
    • ͦΕҎ֎͸ΞϓϦʹΑͬͯରԠ೉͍͠ͷ͸·ͪ·ͪ

    View Slide

  14. Improving app security and performance
    on Google Play for years to come
    • https://android-developers.googleblog.com/2017/12/improving-
    app-security-and-performance.html
    • ΞϓϦͷηΩϡϦςΟͱύϑΥʔϚϯε޲্Λ໨ࢦ͍ͨ͠
    • target API level্͛ͯରԠ͠ͳ͍ΞϓϦ͸͍͔ͭ͘໰୊͋Δͬͯ࿩
    • ύʔϛογϣϯऔΓ์୊ɺόοΫάϥ΢ϯυͰ௨৴͍ͨ͠์୊ etc.
    • Ϣʔβͷମݧ΋ѱ͍
    • ͔ͩΒtarget API level࠷৽ʹͯ͠Ͷʂͱ͔64bitରԠͯ͠Ͷʂͬͯײ͡

    View Slide

  15. Target API level requirement
    from late 2018
    • ҎԼͷεέδϡʔϧͰཁٻ͢Δtarget API levelҎ্ʹ͠ͳ͍ͱ

    μϝ͔ͩΒͬͯ࿩
    • 2018೥8݄ ৽نͰϦϦʔε͢ΔΞϓϦ͸

    target API leve 26(Android 8.0)Ҏ্Λλʔήοτʹ͢Δ
    • 2018೥11݄ طଘͷΞϓϦͷΞοϓσʔτʹ͸

    target API leve26Ҏ্Λλʔήοτʹ͢Δ
    • 2019೥Ҏ߱ ຖ೥targetSdkVersion্͍͛ͯ͜͏ͳʂ

    View Slide

  16. Target API level requirement
    from late 2018
    • طଘͷΞϓϦͰ΋͏ϦϦʔε͢Δ༧ఆ͕ͳ͍

    ΞϓϦ͸Өڹͳ͍Α
    • minSdkVersion͡Όͳ͍͔Βޡղ͠ͳ͍ͰͶʂ
    • targetSdkVersion͔ͩΒͶʂ

    View Slide

  17. 64-bit support requirement in 2019
    • ৄ͘͠ͳ͍ͷͰׂѪ
    • Native LibraryΛؚ·ͳ͍ΞϓϦ͸Өڹͳ͍
    • ͱ͸͍͑ɺ͍ͭNative Library࢖͏͔Θ͔ΒΜͷͰ
    ಄ͷย۱ʹೖΕ͓ͯ͘ํ͕͍͍

    View Slide

  18. Android Studio 3.0
    • ৭ʑศརʹͳͬͨͶʂ
    • https://android-developers.googleblog.com/
    2017/10/android-studio-30.html
    • ·ͩͪΌΜͱશ෦࢖͍͜ͳͤͯͳ͍...

    View Slide

  19. Support Library
    • 26͔Β minimum SDK version͕14ʹͳͬͨͶ
    • Recent Support Library Revisions
    • https://developer.android.com/topic/
    libraries/support-library/revisions.html

    View Slide

  20. Google Play services
    • 10.2͔Β minimum SDK version͕14ʹͳͬͨͶ
    • Release Notes
    • https://developers.google.com/android/
    guides/releases
    • 2ܥରԠ͓ർΕ༷Ͱͨ͠ͷ೥ͬΆ͍

    View Slide

  21. Android Architecture Components
    • དྷ೥΋੝Γ্͕Γͦ͏
    • ೔ʑվળ͞Εͯ΋ͬͱ͍͍LibraryʹͳΓͦ͏
    • https://developer.android.com/topic/libraries/
    architecture/index.html

    View Slide

  22. Android Architecture Components
    • Architecture Components ษڧձ ୈ1ճ໨ Lifecycles
    • https://speakerdeck.com/yanzm/architecture-
    components-mian-qiang-hui-di-1hui-mu-lifecycles
    • Architecture Components Playground
    • https://github.com/operando/Architecture-
    Components-Playground

    View Slide

  23. ARCore
    • https://developers.google.com/ar/
    • https://developers-jp.googleblog.com/2017/08/arcore-
    android.html
    • ARCore औѻઆ໌ॻ (ARCore Developer Preview2ʹରԠ)
    • https://qiita.com/taptappun/items/
    a5337d29a43d5d673c7f

    View Slide

  24. Good Bye JackɺWelcome desugar
    • Java 8 αϙʔτʹdesugarΛ࢖͏Α͏ʹ͍ͨͧ͠ʂ
    • ੲ͸ͦ͜ΒลJackͱ͍͏΋ͷΛ࢖͏࿩͕ਐΜͰ͚ͨͲҠߦίετ

    ߴ͍͔Βʁ΍ΊͨΈ͍ͨͳײ͡
    • https://developers-jp.googleblog.com/2017/03/future-of-java-8-
    language-feature.html
    • https://android-developers.googleblog.com/2017/03/future-of-
    java-8-language-feature.html
    • https://developer.android.com/studio/write/java8-support.html
    • https://android.googlesource.com/platform/external/desugar/

    View Slide

  25. Next-generation Dex
    Compiler Now in Preview
    • D8Ͱ͢Ͷ
    • DexίϯύΠϧ͕ૣ͘ͳΔ + DexͷαΠζ͕খ͘͞ͳΔ
    • Android Studio 3.1͔ΒσϑΥϧτͰD8͕࢖ΘΕΔΑ͏ʹ
    ͳΔ༧ఆ
    • R8͸དྷ೥΍͍͖ͬͯʂͬΆ͍
    • https://r8.googlesource.com/r8

    View Slide

  26. Next-generation Dex
    Compiler Now in Preview
    • https://android-
    developers.googleblog.com/2017/08/next-
    generation-dex-compiler-now-in.html
    • https://developers-jp.googleblog.com/
    2017/08/next-generation-dex-compiler-now-
    in.html

    View Slide

  27. ͔͜͜Β
    ࢲͷ΍ͬͨ͜ͱৼΓฦΓ

    View Slide

  28. DroidKaigi 2017Ͱൃදͨ͠Ͷʔ
    • 2ηογϣϯ࿩͠·ͨ͠
    • AndroidΞϓϦ։ൃͷମྗͮ͘Γ
    • ίϚϯυͳ͠Ͱ΅͘͸Android։ൃͰ͖ͳ͍࿩
    • https://droidkaigi.github.io/2017/

    View Slide

  29. AndroidΞϓϦ։ൃͷମྗͮ͘Γ
    • ࢿྉ
    • https://speakerdeck.com/operando/androidapurikai-fa-falseti-li-
    dukuri
    • ࢿྉͷॻ͖ى͜͠
    • https://github.com/operando/DroidKaigi/tree/master/2017/
    muscle_android
    • ͜Εಈը࢒ͬͯͳ͍ͷ࢒೦...
    • ࿩͠௚ͯ͠YouTubeͰ഑৴͠Α͏͔ͳ

    View Slide

  30. ίϚϯυͳ͠Ͱ΅͘͸Android
    ։ൃͰ͖ͳ͍࿩
    • ࢿྉ
    • https://speakerdeck.com/operando/
    komantonasitehokuhaandroidkai-fa-tekinaihua-1
    • ࢿྉͷॻ͖ى͜͠
    • https://github.com/operando/DroidKaigi/tree/master/2017/
    no_command_no_life
    • ࿥ը
    • https://academy.realm.io/jp/posts/droidkaigi17-android-
    development-with-commandline/

    View Slide

  31. ͱ͋ΔΞϓϦΛ࡞Γ·ͨ͠
    • ࢿྉ
    • https://speakerdeck.com/operando/merukari-
    kaurufalsekai-fa-qi-ninaru-narahua-sou
    • ࠓ೥΋Ұ͔ΒΞϓϦ࡞ͬͨͷͰ৭ʑֶ΂ͨ
    • shibuya.apk #17
    • https://shibuya-apk.connpass.com/event/62499/

    View Slide

  32. OnActivityResult೤ߴ·Δʂʂ
    • OnActivityResult - ͓·͑Βʂ΋͏onActivityResultͰ

    switchͱifॻ࣌͘୅͸ऴΘΓͩͧʂ
    • https://speakerdeck.com/operando/onactivityresult-omaera-
    mouonactivityresultdeswitchtoifshu-kushi-dai-hazhong-
    waridazo
    • ίϯτϦϏϡʔτ΋ͨ͠ͳ
    • kyobashi.dex #4
    • https://rmp-quipper.connpass.com/event/47555/

    View Slide

  33. ConstraintLayout ͸͡Ί·ͨ͠
    • ؤுͬͯ·͢
    • ConstraintLayout ͕΋ͨΒ͢ύϑΥʔϚϯεͷϝϦοτΛཧղ͢Δ
    • https://developers-jp.googleblog.com/2017/09/
    understanding-performance-benefits-of.html
    • TechBooster's Playgroundͷୈ1ষ ͸͡ΊͯͷConstraintLayout

    ಡΈͭͭ৮Γ࢝ΊͯΔ
    • https://techbooster.booth.pm/items/715946

    View Slide

  34. ΞϓϦؒ࿈ܞͷ࢓૊Έ ʹ͍ͭͯ࿩͠·ͨ͠
    • ࢿྉ
    • https://speakerdeck.com/operando/
    merukaritosouzouapurifalse-apurijian-lian-xi-
    falseshi-zu-mi-in-2017-summer
    • ͱΓ͋͑ͣ஌ݟͷڞ༗׆ಈͰ͢
    • ΞϓϦ͍ͬͺ͍ͩͯ͠࿈ܞ͍ͯ͜͠͏ͳʂ

    View Slide

  35. VectorDrawable ΊͬͪΌ࢖ͬͨ
    • ৽͍͠ΞϓϦͷը૾͸΄ͱΜͲVectorDrawable
    ʹͨ͠
    • https://developer.android.com/guide/topics/
    graphics/vector-drawable-resources.html

    View Slide

  36. Retrofit ͪΌΜͱ࢖ͬͨ
    • Making Retrofit Work For You
    • https://speakerdeck.com/jakewharton/
    making-retrofit-work-for-you-ohio-
    devfest-2016
    • ConverterΛ࡞Δͷʹࢀߟʹͳͬͨ

    View Slide

  37. RxJava 2.0ʹҠߦͨ͠
    • What's different in 2.0
    • https://github.com/ReactiveX/RxJava/wiki/
    What%27s-different-in-2.0
    • RxJava 1.x → 2.x ҠߦΨΠυ
    • http://in.fablic.co.jp/entry/2017/04/27/110000
    • ͦ͜·Ͱେม͡Όͳ͔͔ͬͨͳʔWikiͱ͔ಡΊ͹

    View Slide

  38. Danger ಋೖͨ͠
    • http://danger.systems/ruby/
    • ࡶʹ͍͏ͱɺPull RequestͷνΣοΫΛࣗಈԽ͢Δ΋ͷ
    • Lintͱ͔΋ؚΊ
    • Android Danger Sample
    • https://github.com/operando/AndroidDangerSample
    • ͜͜Ͱࢼ͠ʹ৭ʑ΍ͬͯ·͢

    View Slide

  39. Mobile Vision ࢖ͬͨ
    • ओʹScan Barcodes࢖ͬͨ
    • https://developers.google.com/vision/
    • ΊͬͪΌศར
    • Camera APIΛ಺෦Ͱϥοϓͯͯ͠ɺΧϝϥͷ
    ϋϯυϦϯά͕೉͍͠

    View Slide

  40. AsyncLayoutInflater ͷ࿩ͨ͠ͳʔ
    • ࢿྉͳ͠Ͱ࿩ͨ͠ͷͰࢿྉ͸࢒ͬͯͳ͍
    • ඇಉظͰϨΠΞ΢τͷinflate͕Ͱ͖Δ΍ͭ
    • ୹࣌ؒͰ๲େͳViewΛ࡞Δ࣌ʹ͸ศརͦ͏
    • AsyncLayoutInflater Sample
    • https://github.com/operando/AsyncLayoutInflater-
    Sample

    View Slide

  41. React Nativeͪΐͬͱ৮ͬͯΈͨ
    • Androider͔ΒݟΔReact Native
    • https://speakerdeck.com/operando/androiderkarajian-
    rureact-native
    • ΋͏Ұ౓ ৮ͬͯΈΑ͏͔ͳ
    • React.js meetup × React Native meetup
    • https://react-native-meetup.connpass.com/event/
    49024/

    View Slide

  42. ٕज़ॻయ 3Ͱຊॻ͖·ͨ͠ɻ

    ͪΐͬͱͶɻ
    • Debug Menu͸͡Ί·ͨ͠ɻ
    • https://techbookfest.org/event/tbf03
    • (ଓ) Debug Menu͸͡Ί·ͨ͠ɻ
    • https://speakerdeck.com/operando/sok-debug-menuhasimemasita
    • ॻ͍ͨ಺༰ + ͓·͚ͷ࿩ͨ͠
    • shibuya.apk #19
    • https://shibuya-apk.connpass.com/event/68094/

    View Slide

  43. AndroidͷຊͰಡΜͩ΋ͷ
    • AndroidΛࢧ͑Δٕज़ʪⅠʫᴷᴷ60fpsΛୡ੒͢ΔϞμϯͳGUIγεςϜ
    • http://gihyo.jp/book/2017/978-4-7741-8759-4
    • AndroidΛࢧ͑Δٕज़ʪⅡʫᴷᴷਅͷϚϧνλεΫʹ௅ΜͩϞόΠϧ
    OSͷ৺ଁ෦
    • http://gihyo.jp/book/2017/978-4-7741-8861-4
    • ಺༰͸؆୯Ͱ͸ͳ͍͚Ͳɺ໘ന͍͠ɺAndroid΍্͍ͬͯ͘Ͱ஌ͬͯ
    ΔͱΑ͍

    View Slide

  44. ͋ΜͲΖ͍Ͳ ϥϯν ͸͡Ί·ͨ͠
    • Androidͷ࿩͠ͳ͕Βϥϯν͠Α͏ͷձ
    • https://android-lunch.connpass.com/
    • 9݄͔Β͸͡Ίͯࠓ೥5ճ΋Ͱ͖ͨ
    • དྷ೥΋΍͍ͬͯͧ͘ʂ

    View Slide

  45. Android΋͘΋͘΍Ζ͏ͥձ ͸͡Ί·ͨ͠
    • ৭ΜͳΤϯδχΞ͞Μͱަྲྀ͍ͨͧ͠ʂͬͯ
    ײ͡Ͱ͸͡Ίͨ
    • https://mercari-android-
    mokumoku.connpass.com/
    • དྷ೥΋΅ͪ΅ͪ΍͍͖ͬͯ·͢

    View Slide

  46. gummi ࡞ͬͨ
    • JSON-RPC 2.0 Client Library
    • https://github.com/operando/gummi
    • ࣗ࡞ͯࣾ͠಺ΞϓϦʹ૊ΈࠐΜͰͨ΍ͭΛ

    OSSԽͨ͠
    • ΊͬͪΌ࢖ͬΔ

    View Slide

  47. OpenDroid ࡞ͬͨ
    • ࠓ։͍ͯΔAndroidͷOpenGrokͷผόʔδϣϯΛ

    ͬ͘͞ͱ։͘Chrome֦ு࡞ͬͨ
    • http://hack-it-iron.hatenablog.com/entry/
    2017/09/19/111520
    • https://github.com/operando/OpenDroid
    • ΘΓͱࣗ෼Ͱͦͦ͜͜࢖ͬͯΔ

    View Slide

  48. ͍͞͝·Ͱ
    ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

    View Slide