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
[技育CAMPアカデミア]Flutterで 本当にiOS _ Android両方いっぺんに...
Search
teamLab
PRO
April 15, 2024
0
590
[技育CAMPアカデミア]Flutterで 本当にiOS _ Android両方いっぺんに開発できるのか?
teamLab
PRO
April 15, 2024
Tweet
Share
More Decks by teamLab
See All by teamLab
推論された型の移植性エラーTS2742に挑む
teamlab
PRO
0
190
ぴよぴよFlutterエンジニアから見た 会社の楽しいところをありったけ
teamlab
PRO
0
100
社内のFlutterテンプレートをリニューアルした話
teamlab
PRO
0
94
"ほどよい自動化"はあなたの開発を豊かにする
teamlab
PRO
0
130
半年開発してわかった自動テストの価値
teamlab
PRO
0
81
History APIの魅力と危険性
teamlab
PRO
0
89
レビュー経験ほぼ0だった自分が レビューで心掛けていること
teamlab
PRO
0
73
Web関連の仕様書を読むモチベーション
teamlab
PRO
0
73
[FlutterKaigi2024]ステートマシンで実現する高品質なFlutterアプリ開発
teamlab
PRO
3
1.2k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
For a Future-Friendly Web
brad_frost
179
9.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
42
2.4k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Done Done
chrislema
184
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Balancing Empowerment & Direction
lara
1
240
A Tale of Four Properties
chriscoyier
159
23k
Fireside Chat
paigeccino
37
3.5k
Transcript
Flutterで本当に iOS / Android同時開発できるのか? チームラボ株式会社 スマートフォンチーム 除村 武志
【前回発表内容】 アイディアを形に! 【超入門】スマホアプリ開発〜リリースまでの流れ をご紹介 https://note.team-lab.com/n/n5dd111122c84
Today’s Program 01 04 02 05 03 はじめに 06 ネイティブ開発はどれくらい大変なのか
Flutterのクロスプラットフォームの仕組み OS依存部分をどうするか パッケージ利用デモ 作りたいアプリに必要なパッケージを探してみよう 07 まとめ
はじめに 01 02 03 04 05 06 07 01
Flutterで本当にiOS / Android 両方いっぺんに開発できるのか? 今日のテーマ
けっこうできる
None
使ってる人がたくさん ↓ じゃあ問題なし!
使ってる人がたくさん ↓🤔? じゃあ問題なし!
Flutterのメリット・デメリット 1ソースコードで両OSのアプリを開発 することができる 各OSの新機能や仕様変更への追従 に時間がかかる 片方のOSにしかない機能を実装する のが大変 😄 😢 クロスプラットフォーム
Flutterのメリット・デメリット 1ソースコードで両OSのアプリを開発 することができる 各OSの新機能や仕様変更への追従 に時間がかかる 片方のOSにしかない機能を実装する のが大変 😄 😢 クロスプラットフォーム
具体的には???
Bluetooth, カメラ, フォトライブラリ, オーディオ, ビデオ, 顔認証, GPS, 傾きセンサ, アニメーション, Webページ
連携, 有料アイテム, サブスクリプション・・・
自分の作りたいアプリは 本当にFlutterで大丈夫? 🤔 Bluetooth, カメラ, フォトライブラリ, オーディオ, ビデオ, 顔認証, GPS,
傾きセンサ, アニメーション, Webページ 連携, 有料アイテム, サブスクリプション・・・
ネイティブ開発は どれくらい大変なのか 02 02 03 04 05 06 07 01
各OSの違い(1) 言語が違う iOS
各OSの違い(1) 言語が違う iOS EASY 文法の違いなどはそれなりにあるが、基本似てるので片方分かればもう片方は簡単に学べ る
各OSの違い(2) 開発環境が違う iOS Xcode Android Studio
各OSの違い(2) 開発環境が違う iOS Xcode Android Studio EASY できることに大きな違いはないので、各機能がどこにあるかを覚えればなんとかなる
各OSの違い(3) 仕組みや作法が違う
各OSの違い(3) 仕組みや作法が違う テキストを表示するときどうするか? 画面遷移するときどうするか? データを端末に保存するときどうするか? GPSやBluetoothを使いたいときどうするか? フォトライブラリにアクセスしたときどうするか? etc. すべてにおいてやり方が違う!
各OSの違い(3) 仕組みや作法が違う テキストを表示するときどうするか? 画面遷移するときどうするか? データを端末に保存するときどうするか? GPSやBluetoothを使いたいときどうするか? フォトライブラリにアクセスしたときどうするか? etc. すべてにおいてやり方が違う! しかも、日々変化する!
各OSの違い(3) 仕組みや作法が違う テキストを表示するときどうするか? 画面遷移するときどうするか? データを端末に保存するときどうするか? GPSやBluetoothを使いたいときどうするか? フォトライブラリにアクセスしたときどうするか? etc. すべてにおいてやり方が違う! VERY
HARD しかも、日々変化する!
けっこう大変😵 やっぱりネイティブ開発は
両OS同時開発したい やっぱりFlutterで
Flutterのクロスプラット フォームの仕組み 03 04 05 06 07 01 02 03
https://docs.flutter.dev/resources/architectural-overview#platform-embedding
https://docs.flutter.dev/resources/architectural-overview#platform-embedding 自作プログラム(Dart)
https://docs.flutter.dev/resources/architectural-overview#platform-embedding 自作プログラム(Dart) 何かいろいろ橋渡し プラットフォーム固有処理 OS等ごとにここを取り替え
https://docs.flutter.dev/resources/architectural-overview#platform-embedding 自作プログラム(Dart) made by
あまりに Google様頼み なのでは? 🤔
あまりに Google様頼み なのでは? 🤔 Bluetooth, カメラ, フォトライブラリ, オーディオ, ビデオ, 顔認
証, GPS, 傾きセンサ, アニメーション, Webページ連携, 有料 アイテム, サブスクリプション・・・
そうでもない
OS依存部分をどうするか 04 02 03 04 05 06 07 01
Platform Channels https://docs.flutter.dev/resources/architectural-overview#platform-embedding
Platform Channels https://docs.flutter.dev/resources/architectural-overview#platform-embedding Android / iOS ネイティブコードを書 ける! Flutter側から呼び出せる
Android / iOS ネイティブコードを 書ける!
Android / iOS ネイティブコードを 書かなきゃ いけない!
両OS同時開発は やはり幻想なのか・・・? 😢
そうでもない
Flutter Native Plugin
Platform Channels https://docs.flutter.dev/resources/architectural-overview#platform-embedding ここを パッケージ化 できる 🎉 Flutter Native Plugin
||
パッケージ化できる
パッケージ化できる ↓ 配布できる
パッケージ化できる ↓ 配布できる ↓ 実際にめっちゃ配布されてる
パッケージ化できる ↓ 配布できる ↓ 実際にめっちゃ配布されてる ↓ 自分で作らなくていい🎉
パッケージ利用デモ 05 02 03 04 05 06 07 01
パッケージの利用は簡単 1. パッケージ名を調べる(後述) 2. 設定ファイル(pubspec.yaml)に書く 3. コマンド実行(pub get) 4. 🎉
作りたいアプリに必要な パッケージを探してみよう 06 02 03 04 05 06 07 01
pub.dev ほとんどのFlutterパッケージはここ ググってもだいたいここにたどりつく
• pub.devを検索、あるいはGoogle検索 • LIKES/PUB POINTS/POPULARITYを チェック • GitHubで最終更新日時もチェック
まとめ 07 02 03 04 05 06 07 01
・・・の前に補足 • 申請・設定関係はAndroid/iOS両方の知識が 必要、これは避けられない • Android/iOSそれぞれのUI指針に完全に従 いたいなら二度手間になる可能性 • ゲームや3DはUnity, Unreal等の方が無難
まとめ • パッケージを活用することでFlutterでカバー できる範囲は大幅に広がる • Flutterを使うべきかどうかの判断にパッケー ジの有無は大きな指標になる • パッケージの評価やメンテナンス状況を確認し よう
CREDITS: This presentation template was created by Slidesgo, and includes
icons by Flaticon, and infographics & images by Freepik ご清聴ありがとうございました 本日はチームラボによるアカデミアにご参加いただき、 誠にありがとうございました!
EOF