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 ex...
Search
Daichi Furiya (Wasabeef)
September 07, 2020
Programming
0
390
モバイル開発におけるクロスプラットフォームの期待と課題 / 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)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
6
2.1k
About Flutter Architecture
wasabeef
1
270
2023 Flutter/Dart Summary
wasabeef
0
85
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
190
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
3k
What it Takes to be a Flutter Developer
wasabeef
0
200
FlutterKaigi 2022 Keynote
wasabeef
1
620
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.4k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.2k
Other Decks in Programming
See All in Programming
明日から始めるリファクタリング
ryounasso
0
140
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
170
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
500
CSC305 Lecture 05
javiergs
PRO
0
210
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
180
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
160
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
0
1.3k
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.2k
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
190
Serena MCPのすすめ
wadakatu
4
1k
CSC509 Lecture 03
javiergs
PRO
0
340
ALL CODE BASE ARE BELONG TO STUDY
uzulla
25
5.9k
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
6
430
Six Lessons from altMBA
skipperchong
29
4k
Designing for humans not robots
tammielis
254
26k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
35
6.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Documentation Writing (for coders)
carmenintech
75
5.1k
Agile that works and the tools we love
rasmusluckow
331
21k
KATA
mclloyd
32
15k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠