Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モバイル開発におけるクロスプラットフォームの期待と課題 / Cross-platform expectations and challenges in mobile development
Search
Daichi Furiya (Wasabeef)
September 07, 2020
Programming
0
340
モバイル開発におけるクロスプラットフォームの期待と課題 / Cross-platform expectations and challenges in mobile development
Daichi Furiya (Wasabeef)
September 07, 2020
Tweet
Share
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
About Flutter Architecture
wasabeef
0
62
2023 Flutter/Dart Summary
wasabeef
0
21
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
110
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
2.3k
What it Takes to be a Flutter Developer
wasabeef
0
130
FlutterKaigi 2022 Keynote
wasabeef
1
490
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.2k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2k
Flutter Hooks, sometimes Jetpack Compose
wasabeef
3
1.7k
Other Decks in Programming
See All in Programming
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
5
330
AmperとFleetを使ったAndroidアプリ
yoppie
0
300
GoでParserを書く
karupanerura
3
390
FoodGram
iseruuuuu
0
230
株式会社ゼネテック
genetec
0
120
Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
unvalley
3
640
Slackワークフローで感謝を伝える機能/WiFi 自動接続/Figma to React Component/障害レポート君 Team3@NOT A HOTEL
nakaohiroshi
0
110
Try creating your own orderedmap
kazamori
1
280
2024 コーディング研修
ckazu
2
660
WebGLで始める コンピュータグラフィックス入門
heller77
0
390
GitHub Actionsの痒いところを埋めるサードパーティーランナー
dora1998
2
260
Jetpack Composeとデザインシステム
rmakiyama
0
230
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Ruby is Unlike a Banana
tanoku
96
10k
Infographics Made Easy
chrislema
238
18k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Designing the Hi-DPI Web
ddemaree
276
33k
Navigating Team Friction
lara
179
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Automating Front-end Workflow
addyosmani
1357
200k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
Why Our Code Smells
bkeepers
PRO
331
56k
Transcript
モバイル開発における クロスプラットフォーム の期待と課題 降矢大地
降矢大地 Google Developers Expert @wasabeef_jp wasabeef CA Developer Experts Developer
Productivity 室
•近年、またクロスプラット フォームが人気を集め始めて います。現在は主に Flutter と React Native が主要な市 場プレイヤーですが、クロス プラットフォームが何をもた
らすのかを話します。 クロスプラットフォーム
•1. モバイルアプリ開発の現状と課題 •2. クロスプラットフォーム分野への期待と課題 •3. クロスプラットフォームの注目技術 Flutter、Kotlin MPP、React Native、.NET MAUI
•4. メディア事業部としての今後の取り組み 今日話すこと
モバイルアプリ開発の現状と課題
• モバイルアプリ開発は成熟期でもあるので、致命 的な課題もなく可もなく不可もない現状。 • Jetpack Compose/Swift UI などの宣言的な UI を構築できる仕組みが来年くらいから安定化され
るかも。 現状
• iOS/Android の機能仕様ずれ (認識ずれ、SDK・ライブラリ差のずれ) • Androidエンジニア不足の課題(例) • 開発期間の長期化 課題
Androidエンジニア不足の課題(例)
弊社も例外ではなく、Android と iOS のエンジニア数でバラン スが取れておらず Android アプリの開発が遅れることがある iOS 50 ਓ
Android 40 ਓ Androidエンジニア不足の課題(例)
iOS 50 ਓ Android 50 ਓ 経営課題 その差、iOS 3 人で
1 プロダクトのアプリを作るとすると プロダクト 3 つ分の差がある
多くの会社が Android エンジニアの中途採用は年間 1 人するのもやっ との状態であり、弊社も去年から中途採用も即戦力より第二新卒を狙っ ていく方向にしたりしてみたが、大きな採用効果は得られていない + 10 ਓ
Android Λ࠾༻ʁ iOS 49 ਓ Android 37 ਓ 難題 経営課題
クロスプラットフォーム分野への 期待と課題
• アプリ動作の安定性 (クロスプラットフォーム <= ネイティブ) • 将来性、先行き不安 • iOS/Android で共通の
UI(悪くも) • iOS/Android の新機能への追従の遅れ? 課題
•開発元の企業がいかに 大企業だろうとエンジ ニアコミュニティに受 けが良くないと廃れて いった 将来性、先行き不安
• アプリ動作の安定性がかなり向上 (60 fps) • エンジニアのリソース確保 • 開発期間短縮 • 2020年、開発コミュニティの急速的な拡大
• iOS/Android で共通の UI(良くも) 期待
エンジニアのリソース確保
エンジニアのリソース確保 サーバエンジニア iOS エンジニア Web エンジニア Android エンジニア これまでの Swift/Kotlin
アサインスタイル
ཧతͳΫϩεϓϥοτϑΥʔϜͷΞαΠϯελΠϧ サーバエンジニア アプリエンジニア Web エンジニア アサインプール とりあえず1人以上いれば iOS/ Android アプリ両方開発可能
エンジニアのリソース確保
サーバエンジニア アプリエンジニア Web エンジニア アサインプール 他のPJへ 余剰 エンジニアのリソース確保 ཧతͳΫϩεϓϥοτϑΥʔϜͷΞαΠϯελΠϧ
開発コミュニティの急速的な拡大
• 世界的に200万人以上のエンジニアが Flutter を使って いて毎月10%増加している • 利用数上位5地域は インド、中国、米国、EU、ブラジル • Google
Play に既に100,000個、毎月10,000個以上の Flutter アプリがアップされている 開発コミュニティの急速的な拡大
Flutter の採用事例(国内)
• 社内初事例(国内?) • 2018 年 6 月サービス開始 (Flutter stable 1.0
のリリースは2018年 12 月) • 担当アプリエンジニア 2 人 REQU
Flutter の採用事例(国外)
༽ (Idle Fish) • アリババ傘下のフリマアプリ • カメラ機能で商品検索 • アプリ評価 ★
4.6 DAU 2000万 • Flutter 事例でユーザ数が世界最大級
クロスプラットフォームの 注目技術
クロスプラットフォームの注目技術 • Flutter • Kotlin Multiplatform projects • React Native
• .NET Multi-platform App UI (MAUI)
• Google によって開発 • 2018 年 12 月リリース • まだ現在も
Breaking Changes はある • Dart • ステートフルホットリロード (高速開発) • 独自 UI (豊富で良く動く) Flutter
• グラフィックライブラリ • Android, Chrome, Firefox, Blink, Flutter で採用されている •
Skia は Vulkan をバックエンドエンジンとして変更可能 • Android 9 以降、デフォルトのレンダラーは Skia になってい る(8 と 9 でUIが変わったのはそのため)。Flutter にする とレイヤーが増えるもののレンダラーは同じ Flutter and Skia
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 でも動作する
• Swift/Kotlin で良い開発体験をしてきたエンジニ アには Dart という言語は弱い。よく言えば簡 単。 • アーキテクチャの議論が活発(良くも悪くも) •
各 SaaS の SDK が無い場合がある Flutter の悪い点
• 2016 年に突如発表された • Zircon kernel ベースの OS • Android
の負債を全てゼロするべく開発 されたと言われている • Google Nest デバイスは Fuchsia が乗っ ておりアプリは Flutter で作られている Flutter and Fuchsia
• Facebook によって開発 • JavaScript • 2015 年 3 月リリース
• ホットリロード (高速開発) • 既に成熟した大きなコミュニティ • それぞれのネイティブ UI を呼ぶ • EXPO によるホットリリース(審査なし) React Native
• Web 色が強すぎた打ち出しだったために iOS/Android エンジニアからほとんど見向きもされていない。 • JavaScript !-> Native 呼び出しのブリッジが非同期実装
で扱いづらく、全てのモジュールをオープン状態でまっ ていないといけない。 ※今年内部実装変える発表あったので、また変わるかも React Native の悪い点
• JetBrains によって開発 • UI の共通化はせず、ビジネスロジックの共通化に特化し ている • 認証、ログなどの共通化 •
表に出てるサーバ側の Kotlin であればサバクラでモデル の共通化 Kotlin Multiplatform
JetBrains の野望として はクラサバのロジックを 全て共通化すること。将 来的には UI にも手を出 しそうな情報を小出しし ている。 Kotlin
Multiplatform Kotlin/LLVM Kotlin/JVM Kotlin/JVM Kotlin/JS Common code
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)
• iOS エンジニアコミュニティに刺さってない。 • iOS のエンジニアも Kotlin と Gradle を覚えないと
いけない。 • 以前は、Dispatchers.Main しか指定できなくてメイ ンスレッドしかなかったけど、1週間ほど前に PR マージされてたので、もう改善されてるかも。 Kotlin Multiplatform の悪い点
• Microsoft が開発 • 宣言的 UI • まだ今年の 5 月に発表されたばかりでこれからに期待
• MVU アプリアーキテクチャはモバイルアプリ界隈にとっ ては新しい風 • ステートフルホットリロード (高速開発) .NET Multi-platform App UI
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠