Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
モバイル開発における クロスプラットフォーム の期待と課題 降矢大地
Slide 2
Slide 2 text
降矢大地 Google Developers Expert @wasabeef_jp wasabeef CA Developer Experts Developer Productivity 室
Slide 3
Slide 3 text
•近年、またクロスプラット フォームが人気を集め始めて います。現在は主に Flutter と React Native が主要な市 場プレイヤーですが、クロス プラットフォームが何をもた らすのかを話します。 クロスプラットフォーム
Slide 4
Slide 4 text
•1. モバイルアプリ開発の現状と課題 •2. クロスプラットフォーム分野への期待と課題 •3. クロスプラットフォームの注目技術 Flutter、Kotlin MPP、React Native、.NET MAUI •4. メディア事業部としての今後の取り組み 今日話すこと
Slide 5
Slide 5 text
モバイルアプリ開発の現状と課題
Slide 6
Slide 6 text
• モバイルアプリ開発は成熟期でもあるので、致命 的な課題もなく可もなく不可もない現状。 • Jetpack Compose/Swift UI などの宣言的な UI を構築できる仕組みが来年くらいから安定化され るかも。 現状
Slide 7
Slide 7 text
• iOS/Android の機能仕様ずれ (認識ずれ、SDK・ライブラリ差のずれ) • Androidエンジニア不足の課題(例) • 開発期間の長期化 課題
Slide 8
Slide 8 text
Androidエンジニア不足の課題(例)
Slide 9
Slide 9 text
弊社も例外ではなく、Android と iOS のエンジニア数でバラン スが取れておらず Android アプリの開発が遅れることがある iOS 50 ਓ Android 40 ਓ Androidエンジニア不足の課題(例)
Slide 10
Slide 10 text
iOS 50 ਓ Android 50 ਓ 経営課題 その差、iOS 3 人で 1 プロダクトのアプリを作るとすると プロダクト 3 つ分の差がある
Slide 11
Slide 11 text
多くの会社が Android エンジニアの中途採用は年間 1 人するのもやっ との状態であり、弊社も去年から中途採用も即戦力より第二新卒を狙っ ていく方向にしたりしてみたが、大きな採用効果は得られていない + 10 ਓ Android Λ࠾༻ʁ iOS 49 ਓ Android 37 ਓ 難題 経営課題
Slide 12
Slide 12 text
クロスプラットフォーム分野への 期待と課題
Slide 13
Slide 13 text
• アプリ動作の安定性 (クロスプラットフォーム <= ネイティブ) • 将来性、先行き不安 • iOS/Android で共通の UI(悪くも) • iOS/Android の新機能への追従の遅れ? 課題
Slide 14
Slide 14 text
•開発元の企業がいかに 大企業だろうとエンジ ニアコミュニティに受 けが良くないと廃れて いった 将来性、先行き不安
Slide 15
Slide 15 text
• アプリ動作の安定性がかなり向上 (60 fps) • エンジニアのリソース確保 • 開発期間短縮 • 2020年、開発コミュニティの急速的な拡大 • iOS/Android で共通の UI(良くも) 期待
Slide 16
Slide 16 text
エンジニアのリソース確保
Slide 17
Slide 17 text
エンジニアのリソース確保 サーバエンジニア iOS エンジニア Web エンジニア Android エンジニア これまでの Swift/Kotlin アサインスタイル
Slide 18
Slide 18 text
ཧతͳΫϩεϓϥοτϑΥʔϜͷΞαΠϯελΠϧ サーバエンジニア アプリエンジニア Web エンジニア アサインプール とりあえず1人以上いれば iOS/ Android アプリ両方開発可能 エンジニアのリソース確保
Slide 19
Slide 19 text
サーバエンジニア アプリエンジニア Web エンジニア アサインプール 他のPJへ 余剰 エンジニアのリソース確保 ཧతͳΫϩεϓϥοτϑΥʔϜͷΞαΠϯελΠϧ
Slide 20
Slide 20 text
開発コミュニティの急速的な拡大
Slide 21
Slide 21 text
• 世界的に200万人以上のエンジニアが Flutter を使って いて毎月10%増加している • 利用数上位5地域は インド、中国、米国、EU、ブラジル • Google Play に既に100,000個、毎月10,000個以上の Flutter アプリがアップされている 開発コミュニティの急速的な拡大
Slide 22
Slide 22 text
Flutter の採用事例(国内)
Slide 23
Slide 23 text
• 社内初事例(国内?) • 2018 年 6 月サービス開始 (Flutter stable 1.0 のリリースは2018年 12 月) • 担当アプリエンジニア 2 人 REQU
Slide 24
Slide 24 text
Flutter の採用事例(国外)
Slide 25
Slide 25 text
༽ (Idle Fish) • アリババ傘下のフリマアプリ • カメラ機能で商品検索 • アプリ評価 ★ 4.6 DAU 2000万 • Flutter 事例でユーザ数が世界最大級
Slide 26
Slide 26 text
クロスプラットフォームの 注目技術
Slide 27
Slide 27 text
クロスプラットフォームの注目技術 • Flutter • Kotlin Multiplatform projects • React Native • .NET Multi-platform App UI (MAUI)
Slide 28
Slide 28 text
• Google によって開発 • 2018 年 12 月リリース • まだ現在も Breaking Changes はある • Dart • ステートフルホットリロード (高速開発) • 独自 UI (豊富で良く動く) Flutter
Slide 29
Slide 29 text
• グラフィックライブラリ • Android, Chrome, Firefox, Blink, Flutter で採用されている • Skia は Vulkan をバックエンドエンジンとして変更可能 • Android 9 以降、デフォルトのレンダラーは Skia になってい る(8 と 9 でUIが変わったのはそのため)。Flutter にする とレイヤーが増えるもののレンダラーは同じ Flutter and Skia
Slide 30
Slide 30 text
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 でも動作する
Slide 31
Slide 31 text
• Swift/Kotlin で良い開発体験をしてきたエンジニ アには Dart という言語は弱い。よく言えば簡 単。 • アーキテクチャの議論が活発(良くも悪くも) • 各 SaaS の SDK が無い場合がある Flutter の悪い点
Slide 32
Slide 32 text
• 2016 年に突如発表された • Zircon kernel ベースの OS • Android の負債を全てゼロするべく開発 されたと言われている • Google Nest デバイスは Fuchsia が乗っ ておりアプリは Flutter で作られている Flutter and Fuchsia
Slide 33
Slide 33 text
• Facebook によって開発 • JavaScript • 2015 年 3 月リリース • ホットリロード (高速開発) • 既に成熟した大きなコミュニティ • それぞれのネイティブ UI を呼ぶ • EXPO によるホットリリース(審査なし) React Native
Slide 34
Slide 34 text
• Web 色が強すぎた打ち出しだったために iOS/Android エンジニアからほとんど見向きもされていない。 • JavaScript !-> Native 呼び出しのブリッジが非同期実装 で扱いづらく、全てのモジュールをオープン状態でまっ ていないといけない。 ※今年内部実装変える発表あったので、また変わるかも React Native の悪い点
Slide 35
Slide 35 text
• JetBrains によって開発 • UI の共通化はせず、ビジネスロジックの共通化に特化し ている • 認証、ログなどの共通化 • 表に出てるサーバ側の Kotlin であればサバクラでモデル の共通化 Kotlin Multiplatform
Slide 36
Slide 36 text
JetBrains の野望として はクラサバのロジックを 全て共通化すること。将 来的には UI にも手を出 しそうな情報を小出しし ている。 Kotlin Multiplatform Kotlin/LLVM Kotlin/JVM Kotlin/JVM Kotlin/JS Common code
Slide 37
Slide 37 text
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)
Slide 38
Slide 38 text
• iOS エンジニアコミュニティに刺さってない。 • iOS のエンジニアも Kotlin と Gradle を覚えないと いけない。 • 以前は、Dispatchers.Main しか指定できなくてメイ ンスレッドしかなかったけど、1週間ほど前に PR マージされてたので、もう改善されてるかも。 Kotlin Multiplatform の悪い点
Slide 39
Slide 39 text
• Microsoft が開発 • 宣言的 UI • まだ今年の 5 月に発表されたばかりでこれからに期待 • MVU アプリアーキテクチャはモバイルアプリ界隈にとっ ては新しい風 • ステートフルホットリロード (高速開発) .NET Multi-platform App UI
Slide 40
Slide 40 text
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠