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
670
[技育CAMPアカデミア]Flutterで 本当にiOS _ Android両方いっぺんに開発できるのか?
teamLab
PRO
April 15, 2024
Tweet
Share
More Decks by teamLab
See All by teamLab
FlutterのVRT画像生成をDockerで 実行しようとして失敗した話
teamlab
PRO
0
50
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
190
スケールする組織の実現に向けた インナーソース育成術 - ISGT2025
teamlab
PRO
3
240
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
1
800
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
870
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
660
推論された型の移植性エラーTS2742に挑む
teamlab
PRO
0
380
ぴよぴよFlutterエンジニアから見た 会社の楽しいところをありったけ
teamlab
PRO
0
200
社内のFlutterテンプレートをリニューアルした話
teamlab
PRO
0
150
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Being A Developer After 40
akosma
91
590k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Gamification - CAS2011
davidbonilla
81
5.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
189
55k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Speed Design
sergeychernyshev
32
1.1k
GraphQLとの向き合い方2022年版
quramy
49
14k
Six Lessons from altMBA
skipperchong
28
4k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
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