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

モバイル開発におけるクロスプラットフォームの期待と課題 / Cross-platform expectations and challenges in mobile development

モバイル開発におけるクロスプラットフォームの期待と課題 / Cross-platform expectations and challenges in mobile development

Daichi Furiya (Wasabeef)

September 07, 2020
Tweet

More Decks by Daichi Furiya (Wasabeef)

Other Decks in Programming

Transcript

  1. iOS 50 ਓ Android 50 ਓ 経営課題 その差、iOS 3 人で

    1 プロダクトのアプリを作るとすると プロダクト 3 つ分の差がある
  2. • 世界的に200万人以上のエンジニアが Flutter を使って いて毎月10%増加している • 利用数上位5地域は インド、中国、米国、EU、ブラジル • Google

    Play に既に100,000個、毎月10,000個以上の Flutter アプリがアップされている 開発コミュニティの急速的な拡大
  3. • 社内初事例(国内?) • 2018 年 6 月サービス開始 (Flutter stable 1.0

    のリリースは2018年 12 月) • 担当アプリエンジニア 2 人 REQU
  4. • Google によって開発 • 2018 年 12 月リリース • まだ現在も

    Breaking Changes はある • Dart • ステートフルホットリロード (高速開発) • 独自 UI (豊富で良く動く) Flutter
  5. • グラフィックライブラリ • Android, Chrome, Firefox, Blink, Flutter で採用されている •

    Skia は Vulkan をバックエンドエンジンとして変更可能 • Android 9 以降、デフォルトのレンダラーは Skia になってい る(8 と 9 でUIが変わったのはそのため)。Flutter にする とレイヤーが増えるもののレンダラーは同じ Flutter and Skia
  6. Flutter and Skia 対応プラットフォーム • Windows 7, 8, 8.1, 10

    • macOS 10.10.5 or later • iOS 8 or later • Android 4.1 (JellyBean) or later • Ubuntu 14.04+, Debian 8+, openSUSE 13.3+, or Fedora Linux 24+ • もちろん iOS でも Windows でも動作する
  7. • 2016 年に突如発表された • Zircon kernel ベースの OS • Android

    の負債を全てゼロするべく開発 されたと言われている • Google Nest デバイスは Fuchsia が乗っ ておりアプリは Flutter で作られている Flutter and Fuchsia
  8. • Facebook によって開発 • JavaScript • 2015 年 3 月リリース

    • ホットリロード (高速開発) • 既に成熟した大きなコミュニティ • それぞれのネイティブ UI を呼ぶ • EXPO によるホットリリース(審査なし) React Native
  9. • Web 色が強すぎた打ち出しだったために iOS/Android エンジニアからほとんど見向きもされていない。 • JavaScript !-> Native 呼び出しのブリッジが非同期実装

    で扱いづらく、全てのモジュールをオープン状態でまっ ていないといけない。 ※今年内部実装変える発表あったので、また変わるかも React Native の悪い点
  10. • JetBrains によって開発 • UI の共通化はせず、ビジネスロジックの共通化に特化し ている • 認証、ログなどの共通化 •

    表に出てるサーバ側の Kotlin であればサバクラでモデル の共通化 Kotlin Multiplatform
  11. Kotlin/Native - Target Platforms iOS (arm32, arm64, simulator x86_64) macOS

    (x86_64) Android (arm32, arm64) Windows (mingw x86_64, x86) Linux (x86_64, arm32, MIPS, MIPS LE, Raspberry Pi) WebAssembly (x86_64)
  12. • iOS エンジニアコミュニティに刺さってない。 • iOS のエンジニアも Kotlin と Gradle を覚えないと

    いけない。 • 以前は、Dispatchers.Main しか指定できなくてメイ ンスレッドしかなかったけど、1週間ほど前に PR マージされてたので、もう改善されてるかも。 Kotlin Multiplatform の悪い点
  13. • Microsoft が開発 • 宣言的 UI • まだ今年の 5 月に発表されたばかりでこれからに期待

    • MVU アプリアーキテクチャはモバイルアプリ界隈にとっ ては新しい風 • ステートフルホットリロード (高速開発) .NET Multi-platform App UI