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

なぜAndroid開発にKotlinを選んだか

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for M.Inomata M.Inomata
September 08, 2016

 なぜAndroid開発にKotlinを選んだか

ギルドカンファレンス2016の発表資料です。

Avatar for M.Inomata

M.Inomata

September 08, 2016
Tweet

More Decks by M.Inomata

Other Decks in Technology

Transcript

  1. AndroidΞϓϦ։ൃ؀ڥ • IDE … Android Studio 
 (Eclipse ADT ͸։ൃऴྃ)

    • ݴޠ • Java 7 • Java 8 • Kotlin • AltJava(Groovy, Scala, etc) • Swift?
  2. AndroidΞϓϦ։ൃ؀ڥ • IDE … Android Studio 
 (Eclipse ADT ͸։ൃऴྃ)

    • ݴޠ • Java 7 … ͍··Ͱͷओྲྀ(2016-07·Ͱ) • Java 8 … ͜Ε͔Β(2016-08ʙ)ओྲྀʹͳΔ͔΋ʁ • Kotlin … ͜Ε͔ΒओྲྀʹͳΔ͔΋ʁ(ࠓճ࠾༻ͨ͠ݴޠ) • ଞͷAltJava(Groovy, Scala, etc) … Android࠾༻ͮ͠Β͍ • Swift? … Ұ࣌ظ࿩୊ʹͳͬͨɻͱΓ͋͑ͣίϯύΠϧͯ͠JNI ͰࢀরͰ͖ͨɺͱ͍͏Ϩϕϧ
  3. iOS ։ൃ Swiftʹ͍ͭͯ • 2014೥·ͰiOS։ൃͱ͍͑͹ObjectiveCͩͬͨɻ • 2014೥ʹApple͕SwiftݴޠΛൃදޙɺঃʑʹීٴɻ • 2016೥ݱࡏ͸͔ͬ͢ΓSwift͕ओྲྀʹɻ •

    SwiftҎલͷObjective CͳΞϓϦ΋ɺେ͖ͳϦχϡʔΞϧͷλΠϛϯάͰ SwiftʹҠߦ͍ͯ͠Δ • ObjC͸։ൃͰ͖ͳ͍͚ͲɺSwiftͳΒͰ͖ͦ͏ɺͱ͍͏ࣄͰiOSΤϯδχΞ͕ ૿͍͑ͯΔ • SwiftൃදҎདྷɺAndroid Ͱ΋ Swift ͷΑ͏ͳݴޠֵ໋͕ظ଴͞Ε͖ͯͨ • ※໌೔(2016೥9݄8೔)ʹ iOSʹ͍ͭͯ৽͍͠ൃද͕͋Γͦ͏Ͱ͢ɻ
 Xcode8(Swift3)͕͘Δ͔΋ɻ
  4. Android Java8 • 2016೥3݄ʹAndroidͰ΋Java8ରԠ͞Ε·ͨ͠(N preview)ɻ • Android 6Ҏલͷ୺຤ … ϥϜμࣜɺϝιουࢀর͕࢖͑ΔΑ

    ͏ʹͳͬͨ
 (Android 7.0 SDKͰJackπʔϧνΣʔϯΛ༗ޮʹ͢Δͱ࢖͑ Δ) • Android 7.0 Ҏ߱ͷ୺຤ … StreamͳͲͷJava8௥Ճύοέʔ δ͕࢖͑ΔΑ͏ʹͳΔ
  5. ֶशίετɺ ࣮૷ίετ͕͔͔Δ͔ʁ • Javaͱͷޓ׵ੑ͕ߴ͘ɺJava͕ॻ͚ΔΤϯδχΞͳΒ਺೔Ͱ֮͑ ΒΕΔ
 ࢀߟ: Comparison To Java
 https://kotlinlang.org/docs/reference/comparison-to-java.html

    • ݴޠ࢓༷͕Swiftʹࣅ͍ͯͯɺiOSΤϯδχΞ΋਌͠Έ΍͍͢ • Android StudioͰެࣜରԠ͍ͯ͠ΔͷͰɺKotlinॳ৺ऀͰ΋࠷ॳ ͔ΒεϜʔζʹ࣮૷Ͱ͖ΔɻJava to Kotlinͷࣗಈม׵͕خ͍͠ɻ • ࣮૷ίετ͸JavaΑΓKotolinͷ΄͏͕͍ܰ
  6. KotlinͰͩΊͩͬͨ࣌ͷ ϦΧόϦ͕Ͱ͖Δ͔ʁ • Kotlin͸Javaͱͷ૬ޓӡ༻Λ೦಄ʹ͓͍͍ͯΔͷͰɺ Java Ϋϥεͱࣗવʹ૬ޓࢀরͰ͖Δɻ • Kotlinίʔυ͸ൺֱత༰қʹJavaίʔυʹஔ͖׵͑Δ ࣄ͕Մೳɻ(͍͟ͱͳͬͨΒdex ->

    javaʹٯίϯύΠϧͯ͠Javaʹ͢ Δ͜ͱ΋Ͱ͖Δ) • →Kotlin࣮૷ʹ೰Μͩ࣌ʹ෦෼తʹJavaΫϥεʹ͢Δ ͜ͱ΋ग़དྷΔɻؾܰʹJavaͰ΋։ൃͰ͖Δ҆৺ײɻ
  7. AndroidͰଞͷݴޠ͕
 ओྲྀʹͳΔՄೳੑ͸ʁ • Google ͕Android޲͚ݴޠΛ։ൃͨ͠Β͋ΓಘΔ • طଘAndroid OSόʔδϣϯͰ Java9ରԠͱ͔ •

    ग़ͯ΋ීٴ͢Δͷ͸͕͔͔࣌ؒΓͦ͏ɻ
 (౰໘͸ͳͦ͞͏) • Kotlin͸ಋೖࣄྫ΋ग़͖ͯͯɺطʹීٴͭͭ͋͠Δɻ • JavaҎ֎ͰओྲྀͷݴޠʹͳΔՄೳੑ͕Ұ൪ߴ͍ͷ͸ࠓͷͱ͜Ζ Kotlinͩͱࢥ͏ɻ
  8. طଘͷKotlinಋೖࣄྫ • Sansanגࣜձࣾ • Ϋϥ΢υ໊ࢗ؅ཧ Eight 
 ɹhttps://8card.net • גࣜձࣾαΠόʔΤʔδΣϯτ

    • ө૾഑৴ϓϥοτϑΥʔϜ AmebaFresh 
 https://abemafresh.tv • ࢀߟURL: • http://www.slideshare.net/kenichitatsuhama/kotlin-63864380 • http://qiita.com/magie-pooh/items/b1179af28f5e0d50b62a
  9. Ͳ͏͍͏ํ๏͕͋Δ͔ • WebͰͷ࣮૷ • WebView, Apache Cordova • JS࣮૷ •

    React Native, Titanium(Appcelerator) • ͦͷଞ • Xamarin
  10. Apache Cordova • WebViewͷػೳΛ֦ுͨ͠΋ͷ • ग़དྷΔ͜ͱ͸WebView ϓϥεΞϧϑΝ • JS,HTML,CSS͚ͩͰUIΛΞϓϦͬΆ͘͢Δ •

    JS͚ͩͰ(push௨஌ͳͲ)ωΠςΟϒػೳ͕࢖͑Δ • ΋ͱ΋ͱAdobe PhoneGapͱݺ͹Ε͍͕ͯͨɺ Apacheʹدଃ͞ΕͯɺCordovaϓϩδΣΫτͱͳͬͨ
  11. React Nativeͷྑ͔ͬͨॴ • JSΤϯδχΞ͕։ൃ͠΍͍͢ • Babel Ͱ ES6͕࢖͑Δ(class, Promise, async)

    • JSϥΠϒϥϦ΋΋ͪΖΜ࢖͑Δ • AltJS ͳΒԿͰ΋࢖͑ͦ͏ • React.jsͷJSXͱಉ͡ه๏ͰϏϡʔͷϨΠΞ΢τఆ͕ٛग़དྷΔ • CSS3ͷFlexboxϨΠΞ΢τ͕࢖͑Δ • ͍·Ͳ͖ͬΆ͍ઃܭࢥ૝(Flux, Redux) • ϒϥ΢βײ֮Ͱɺը໘Ϧϩʔυ͢Δ͚ͩͰ࣮૷֬ೝͰ͖Δ(⌘+R Ωʔ)
  12. React Nativeͷ ؤுͬͯཉ͍͠ॴ • React Nativeຊମ͕·ͩ·ͩ҆ఆ͍ͯ͠ͳ͍ • React NativeΛόʔδϣϯΞοϓ͢ΔͱϥΠϒϥϦ͕ಈ͔ͳ͘ ͳͬͨΓ͢Δ

    • ϋΠϒϦουΞϓϦͱ͍͍ͭͭɺAndroid/iOS ྆ํରԠ͢Δ ͷ͕͔ͳΓେม • ΞϓϦͷڍಈ͕ॏ͍ • ࠓޙʹظ଴
  13. ൪֎ɿήʔϜܥ • Unity, Unreal Engine, Cocos2D… • ήʔϜܥ͸ྫ֎ͰɺϋΠϒϦου։ൃ͕جຊ • جຊతʹήʔϜͷੈքͰ׬݁͢Δ

    • UI͕OSґଘ͠ͳ͍ • ωΠςΟϒ࣮૷ίετΑΓɺήʔϜಛ༗ͷUIɾػ ೳ࣮૷ίετͷ΄͏͕ߴ͍(ϨϯμϦϯάॲཧͳͲ)