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
370
モバイル開発におけるクロスプラットフォームの期待と課題 / 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
5
1.2k
About Flutter Architecture
wasabeef
1
190
2023 Flutter/Dart Summary
wasabeef
0
51
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
150
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
2.8k
What it Takes to be a Flutter Developer
wasabeef
0
170
FlutterKaigi 2022 Keynote
wasabeef
1
570
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.3k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.1k
Other Decks in Programming
See All in Programming
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
770
선언형 UI에서의 상태관리
l2hyunwoo
0
270
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
200
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.9k
Rubyでつくるパケットキャプチャツール
ydah
0
180
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
410
QA環境で誰でも自由自在に現在時刻を操って検証できるようにした話
kalibora
1
140
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
2.8k
Оптимизируем производительность блока Казначейство
lamodatech
0
960
ErdMap: Thinking about a map for Rails applications
makicamel
1
700
自動で //nolint を挿入する取り組み / Gopher's Gathering
utgwkk
1
100
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
How STYLIGHT went responsive
nonsquared
96
5.3k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Designing Experiences People Love
moore
139
23k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
360
For a Future-Friendly Web
brad_frost
176
9.5k
The Cult of Friendly URLs
andyhume
78
6.1k
Building Applications with DynamoDB
mza
93
6.2k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠