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

クロスプラットフォームモバイルアプリ開発ツール総ざらい2019 〜Titanium Mobile から Kotlin/Native まで〜 #droidkaigi

amay077
February 07, 2019

クロスプラットフォームモバイルアプリ開発ツール総ざらい2019 〜Titanium Mobile から Kotlin/Native まで〜 #droidkaigi

DroidKaigi 2019 Day1 roomC 16:30〜

amay077

February 07, 2019
Tweet

More Decks by amay077

Other Decks in Programming

Transcript

  1. About me • Ԟࢁ ༟ਈ - @amay077ʢ͋Ί͍ʣ • Android, iOS,

    Xamarin, TypeScript AWS, Azure… • Ѫ஌ݝࡏॅͷϑϧϦϞʔτϫʔΧʔ • ஍ཧ৘ใγεςϜɺҐஔ৘ใϓϩάϥϛϯά • DroidKaigi2017ొஃˠٕज़ॻయ2→঎ۀຊԽ(ڞஶ)  
  2. Work for   • B2B޲͚PaaSɺ૔ݿ؅ཧɾӡૹۀ޲͚SaaS • AWS, Elasticsearch, Cassandra,

    Lambda, etc • શһ͕ϑϧϦϞʔτϫʔΧʔ ͓࢓ࣄ಺༰΍ϦϞʔτͰͷಇ͖ํͳͲڵຯ͋Δํɺؾܰʹฉ͍͍ͯͩ͘͞
  3. Titanium Mobile by Appcelerator • ྲྀߦ೥: 2011೥ʙ ※Զ؍ଌ஋ʹΑΔ • JavaScript

    Ͱ iOS ͱ Android ΞϓϦ͕࡞ΕΔͱ͍͏৮ΕࠐΈ • ݩτϨλͷ @masuidrive ͞Μ͕ΤϰΝϯδΣϦετͯͨ͠ • Zaim ͷॳظόʔδϣϯ͸ίϨ੡ͩͬͨ • ࢲධ:ʮiOSͰ͔͠ಈ͔ͳ͍APIଟ͗͢ϫϩλʯ  
  4. AIR for Mobile by Adobe • ྲྀߦ(ͯ͠ͳ͍Ͷ)೥: 2012೥ʙ • ActionScript

    ͰҎԼಉจ • Adobe FlashܥͳͷͰʮUIಠࣗඳըํࣜʯΛ࠾༻ • Α͘΋ѱ͘΋ʮFlashͬΆ͍ʯΞϓϦʹͳͬͨ • ࢲධ:ʮ΋ͬ͞Γͯ͠΍͕Δ…த՚ϑΥϯτ…ʯ  
  5. RubyMotion by Scratchwork • ྲྀߦ೥: 2013೥ʙ • Ruby Ͱ iOS

    ͱ Android(ޙൃ) ΞϓϦ͕࡞ΕΔͱ͍͏৮ΕࠐΈ • iOS·ͨ͸AndroidͷAPI͕Ruby͔Βݺͼग़ͤΔͱ͍͏
 PFͷAPIϥούΛఏڙ • ݩ͸ͯͳCTOͷਓ͕ rebuild.fmͰ෍ڭ? • ࢲධ:ʮWebܥRubyistʹ΋ͬͱ࢖ΘΕΔ͔ͱࢥ͚ͬͨͲͶ…ʯ  
  6. Delphi/C++Builder by Embarcadero • 2013೥ʙ • Delphi/C++ Ͱ iOSͱAndroidɺWin/Mac޲͚ΞϓϦ͕։ൃՄ •

    Adobe Airͱಉ͘͡ʮUIಠࣗඳըํࣜʯΛ࠾༻ • ׌ͭɺiOS·ͨ͸AndroidͷAPIͷAPIϥούʔ΋ఏڙ • ࢲධ:ϚχΞ͕બͿʰ΋ͬͱධՁ͞ΕͯΑ͍։ൃπʔϧNo.1ʱ  
  7. Xamarin by Mircosoft • ྲྀߦ೥: 2016೥ʙ • C#/.NET Ͱ iOS

    ͱ AndroidɺWin޲͚ΞϓϦ͕։ൃՄ • Android/iOS APIͷϥούʔʹՃ͑ɺ
 .NET FrameworkͷҰ෦ػೳΛڞ௨APIͱͯ͠ఏڙ • ը໘։ൃʹ͸ɺڞ௨API(Xamarin.Forms)Λఏڙ • ࢲධ:ʮ࠷ۙฉ͔ͳ͍ʁ.NETͷҰ෦ͱͯ͠ਁಁ͠·ͨ͠ɻʯ  
  8. ReactNative by Facebook • ྲྀߦ೥: 2016೥ʙ • React Ͱ iOS

    ͱ AndroidɺWeb޲͚ΞϓϦ͕։ൃՄ • ڞ௨APIͱڞ௨ͷը໘ఆٛ(JSX)Λఏڙ • AirBnB͕Ϧʔυͨ͠ྲྀߦظͱݬ໓ظΛܦͯ҆ఆظʹʁ • Skype ΋ ReactNative(ReactXP)੡  
  9. Flutter by Google • ྲྀߦ೥: 2017೥ʙ • Dart Ͱ iOS

    ͱ Android޲͚ΞϓϦ͕։ൃՄ(Web͸͜Ε͔Β) • ಠࣗඳըํࣜʹΑΓAndroidͰ΋iOSͰ΋MaterialͳUIΛఏڙ (iOS-style ΋͋Γ) • HotReloadʹΑΔര଎ը໘։ൃ͕ߴධՁ • ौ୩ͷJKͷ60%͕ʮDartͰͳ͚Ε͹…ʯͱճ౴  
  10. Kotlin/Native with MPP by JetBrains • ྲྀߦ೥: 2018೥?ʙ • Kotlin/Native

    • Kotlin ͔Β iOS(౳ͷଞPF)ͷ API ͕࢖͑Δ • iOS/Android/Web౳޲͚ ωΠςΟϒ ϥΠϒϥϦ͕ϏϧυͰ͖Δ • MPP(Multi Platform Project) • ڞ௨APIΛ࡞Δ࢓૊Έ(expect:ڞ௨API, actual:PFຖͷ࣮૷)  
  11. X-Plat։ൃπʔϧͰͷ࣮૷ͷجຊ 1. X-Plat։ൃπʔϧͷݴޠͷඪ४API,ΫϥεΛ࢖͏ 2. X-Plat։ൃπʔϧ༻ͷڞ௨APIΛ࢖͏
 Core “Flutter” primitives ͳͲ 3.

    1 ΋ 2 ʹ΋໨తͷAPI͕ͳ͚Ε͹ڞ௨APIΛࣗ࡞͢Δ   1→2→3ͷॱʹ࠶ར༻ੑ͸མ͍ͪͯ͘ͷͰɺͳΔ΂͘1ͰؤுΔ ͕࣮ࡍ໰୊ͱͯ͠ 3. ͸ඞਢͳͷͰڞ௨APIͷࣗ࡞ͷ͠΍͕͢͞ॏཁ
  12. ڞ௨APIͷجຊతͳߟ͑ํ   $BNFSB ŠŠŠŠŠŠŠŠ
 UBLF1IPUP *NH ڞ௨APIఆٛ(expected:࣮૷ແ͠) *OUFOUΛ౤͛ͯ
 ΧϝϥΛىಈʜ

    actual:Android޲͚ͷ࣮૷ 6**NBHF1JDLFS$POU SPMMFSͰ࣮૷ʜ actual:iOS޲͚ͷ࣮૷ ࣮૷͕஫ೖ͞ΕΔ ΞϓϦ ※΋ͬͱϩʔϨϕϧͳจࣈྻʹΑΔ Invoke Λ࠾༻͢ΔX-Plat΋͋Γ
  13. ڞ௨APIͷجຊతͳߟ͑ํ   $BNFSB ŠŠŠŠŠŠŠŠ
 UBLF1IPUP *NH ڞ௨APIఆٛ(expected:࣮૷ແ͠) *OUFOUΛ౤͛ͯ
 ΧϝϥΛىಈʜ

    actual:Android޲͚ͷ࣮૷ 6**NBHF1JDLFS$POU SPMMFSͰ࣮૷ʜ actual:iOS޲͚ͷ࣮૷ ࣮૷͕஫ೖ͞ΕΔ ΞϓϦ ͜͜ΛԿݴޠͰ
 ॻ͘ͷ͔ʁ
  14. ReactNative ͷ৔߹   $BNFSB ŠŠŠŠŠŠŠŠ
 UBLF1IPUP *NH ڞ௨APIఆٛ(expected:࣮૷ແ͠) *OUFOUΛ౤͛ͯ


    ΧϝϥΛىಈʜ actual:Android޲͚ͷ࣮૷ 6**NBHF1JDLFS$POU SPMMFSͰ࣮૷ʜ actual:iOS޲͚ͷ࣮૷ ࣮૷͕஫ೖ͞ΕΔ ΞϓϦ +BWB4DSJQU ,PUMJO 4XJGU ڮ౉͠ͷઃఆ +BWB4DSJQU
  15. Xamarinͷ৔߹   $BNFSB ŠŠŠŠŠŠŠŠ
 UBLF1IPUP *NH ڞ௨APIఆٛ(expected:࣮૷ແ͠) *OUFOUΛ౤͛ͯ
 ΧϝϥΛىಈʜ

    actual:Android޲͚ͷ࣮૷ 6**NBHF1JDLFS$POU SPMMFSͰ࣮૷ʜ actual:iOS޲͚ͷ࣮૷ ࣮૷͕஫ೖ͞ΕΔ ΞϓϦ $ $ $ $
  16. Kotlin/Native with MPPͷ৔߹   $BNFSB ŠŠŠŠŠŠŠŠ
 UBLF1IPUP *NH ڞ௨APIఆٛ(expected:࣮૷ແ͠)

    *OUFOUΛ౤͛ͯ
 ΧϝϥΛىಈʜ actual:Android޲͚ͷ࣮૷ 6**NBHF1JDLFS$POU SPMMFSͰ࣮૷ʜ actual:iOS޲͚ͷ࣮૷ ࣮૷͕஫ೖ͞ΕΔ ΞϓϦ ,PUMJO ,PUMJO ,PUMJO
  17. PFͷAPIϥούͷଘࡏ   $BNFSB ŠŠŠŠŠŠŠŠ
 UBLF1IPUP *NH ڞ௨APIఆٛ(expected:࣮૷ແ͠) *OUFOUΛ౤͛ͯ
 ΧϝϥΛىಈʜ

    6**NBHF1JDLFS$POU SPMMFSͰ࣮૷ʜ ࣮૷͕஫ೖ͞ΕΔ ΞϓϦ $ $ $༻ϥού $༻ϥού $ "OESPJE4%, J044%,
  18. ը໘ඳըํࣜͱAPIఏڙํࣜʹΑΔ෼ྨ   ↑PFʹҕৡ ↓ಠࣗඳը ←PFͷAPIϥού༗ PFͷAPIϥούແˠ Titanium Mobile Air

    for Mobile RubyMotion※ Delphi Flutter Xamarin Kotlin/Native※ React Native ※ը໘ఆٛΛڞ௨Խ͢Δػೳ͸ͳ͍
  19. αϯϓϧ2:঎඼ݕࡧγεςϜ(ฐࣾࣄྫ)   ͱ͋ΔCRMͷWebϖʔδ WebView “Ψϫ”͸Xamarin.Forms Χϝϥىಈ ঎඼ίʔυ: BIJ002A 1.

    JavaScript→C#࿈ܞ 2. ڞ௨APIͰΧϝϥىಈɺ঎඼ΛࡱӨ 3. PFͷAPIϥούΛ࢖͍ɺ Android:Tensorflow
 iOS:CoreML Ͱը૾͔Β঎඼Λݕग़ 4. ঎඼ίʔυΛC#→JavaScript࿈ܞͰ Webϖʔδʹฦ٫ ݕࡧ