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
490
[技育CAMPアカデミア]Flutterで 本当にiOS _ Android両方いっぺんに開発できるのか?
teamLab
PRO
April 15, 2024
Tweet
Share
More Decks by teamLab
See All by teamLab
ぴよぴよFlutterエンジニアから見た 会社の楽しいところをありったけ
teamlab
PRO
0
13
社内のFlutterテンプレートをリニューアルした話
teamlab
PRO
0
23
"ほどよい自動化"はあなたの開発を豊かにする
teamlab
PRO
0
66
半年開発してわかった自動テストの価値
teamlab
PRO
0
40
History APIの魅力と危険性
teamlab
PRO
0
42
レビュー経験ほぼ0だった自分が レビューで心掛けていること
teamlab
PRO
0
39
Web関連の仕様書を読むモチベーション
teamlab
PRO
0
37
[FlutterKaigi2024]ステートマシンで実現する高品質なFlutterアプリ開発
teamlab
PRO
3
880
[iOSDC 2024]クロスプラットフォーム普及増加。SwiftでiOS開発はもうやらないのか....?
teamlab
PRO
0
980
Featured
See All Featured
Side Projects
sachag
452
42k
Why Our Code Smells
bkeepers
PRO
335
57k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Being A Developer After 40
akosma
89
590k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
29
2.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Automating Front-end Workflow
addyosmani
1367
200k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
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