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
400
[技育CAMPアカデミア]Flutterで 本当にiOS _ Android両方いっぺんに開発できるのか?
teamLab
PRO
April 15, 2024
Tweet
Share
More Decks by teamLab
See All by teamLab
[FlutterKaigi2024]ステートマシンで実現する高品質なFlutterアプリ開発
teamlab
PRO
0
180
[iOSDC 2024]クロスプラットフォーム普及増加。SwiftでiOS開発はもうやらないのか....?
teamlab
PRO
0
700
チームラボの画像処理エンジニアチーム
teamlab
PRO
2
150
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
740
iOSエンジニアに求められる役割について
teamlab
PRO
0
1.4k
[DroidKaigi 2022]チームラボでみる受託開発の面白さ
teamlab
PRO
0
2.5k
Kotlin Multiplatform Mobile でiOSとAndroidの実装差異を無くす
teamlab
PRO
0
4.6k
teamLab Saiyo Deck
teamlab
PRO
4
2.3M
Featured
See All Featured
Facilitating Awesome Meetings
lara
50
6.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Code Reviewing Like a Champion
maltzj
520
39k
Docker and Python
trallard
40
3.1k
Unsuck your backbone
ammeep
668
57k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Making Projects Easy
brettharned
115
5.9k
Designing Experiences People Love
moore
138
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
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