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

モバイル開発におけるクロスプラットフォームの期待と課題 / Cross-platform ex...

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

Avatar for Daichi Furiya (Wasabeef)

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