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
Flutterとの1年
Search
najeira
September 02, 2018
Technology
4
1.3k
Flutterとの1年
najeira
September 02, 2018
Tweet
Share
More Decks by najeira
See All by najeira
Flutter with Platform
najeira
4
1.2k
Google I/O 2019 Extended Tokyo - Flutter
najeira
1
140
Flutter APP DOJO 2019-04
najeira
1
170
Flutter List View 概要
najeira
0
930
Flutter / Google I/O 2018 報告会 信州
najeira
0
240
仕組みを知れば怖くない! Flutter入門
najeira
16
7.6k
FlutterでAndroid/iOS両対応のアプリ開発
najeira
0
4.2k
Google I/O 2017 報告会 Firebase/Cloud
najeira
1
150
Google I/O 2017 報告会 Flutter/Dart
najeira
1
270
Other Decks in Technology
See All in Technology
2024/4/26 コンピュータ歴史博物館解説告知
toshi_atsumi
0
210
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
480
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
340
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
180
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
27
5.8k
JSON攻略法.pdf
miyakemito
8
4.8k
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
290
〜小さく始めて大きく育てる〜データ分析基盤の開発から活用まで
kniino
0
2.1k
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
380
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
360
KubeCon EU 2024 Recap “Kubernetes Policy Time Machine: Where to Next?”
ryysud
0
200
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
330
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Facilitating Awesome Meetings
lara
42
5.6k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Done Done
chrislema
178
15k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Transcript
Flutter との1 年 GDG DevFest 2018 Tokyo @najeira
Flutter との1 年 Flutter をアプリ開発(プロダクション)に 使い始めてから1 年と少し経った 開発にまつわる四方山話
Agenda どういうアプリを作ったか? なぜFlutter を選んだか? 使ってみての感想 OSS としてのFlutter
作ったアプリ CARTUNE (車のコミュニティ)
なぜFlutter を選んだか? 高い開発効率 すばやく試行錯誤(リリース)したい 少人数での開発 Android/iOS の両方でリリースしたい → クロスプラットフォームSDK を使いたい
検証 Flutter を利用して開発できるか事前に検証 1 画面を試しに実装 ネイティブとの連携
写真グリッドを試しに実装 ※スクリーンショットは最新のもので、検証版とは多少異なります
写真グリッドを試しに実装 重要な機能となる1 画面を選んで実装してみた Flutter 初心者でも1 日で実装できた さわってみて パフォーマンスには問題なかった
ネイティブとの連携 Flutter ⇔ ネイティブ
ネイティブとの連携 ネイティブ(Activity/ViewController )の 画面へ遷移することができるか確認した これができれば、Flutter で実装できなくても いざとなったらネイティブ実装でなんとかなる
CARTUNE でのネイティブ画面 WebView お知らせ、ヘルプ 写真Picker Android / iOS のプラットフォーム固有の 機能(API)
を使うため 写真編集 OpenCV を使っているため Flutter で実装できない画面は少なかった
写真Picker Android は Intent でギャラリー系アプリを起動 iOS は Photos フレームワーク
写真編集 OpenCV を使ってナンバー検出して隠す Android JNI を経由するためネイティブ側で実装 ※おそらくFlutter でも画面は実装できる
ネイティブとの連携 分かりやすく分けると UI に関するものは Flutter でできる そうでないものはネイティブ側で作る
使ってみての感想
よかったこと
コードの共有 画面数で数えると: 95% コード(Dart) でみると: 70% ※写真編集で使っているOpenCV 関連コードが多くDart が70% にとどまる
開発効率 ホットリロードがとても便利
困ったこと
機能的な課題 不十分な箇所があった(改善してきている) [Fixed] 動画再生がない [Fixed] 一部のマイナー文字で落ちる [Fixed] 複数行テキスト入力がない フォント選択が日本語にならないことがある IME
や入力欄の挙動がネイティブと違う 広告SDK との連携がいまいち テキストまわりが多い
テキストまわり CARTUNE ではテキスト入力欄はネイティブ側で実装 Flutter 側の画面で 投稿・入力ボタンを押すと ネイティブの Activity / ViewController
が起動 テキスト入力して OK すると Flutter に入力した文章が渡される あとはそれを使って処理を実行
その他バグとの遭遇 Issue 報告 Pull Request Flutter(Dart 部分) のバグは 回避して UI
を作れば OK だいたいワークアラウンドがある C++ で書かれたエンジン部分のバグは 直すしかないことが多い →CARTUNE ではパッチをあてて使っている
OSS としてのFlutter
OSS としてのFlutter GitHub: utter/ utter Stars: 35,963 Commits: 11,701 Contributors:
238 今月だけでも: 272 commits, 47,173 additions, 14,296 deletions, 691 closed issues ※2018/08/27 時点
Contribution CONTRIBUTING . md があるので読む コードを変更する (必要に応じて)テストを追加する テストを実行する あとは GitHub
のプルリクエスト
Contribution utter/engine 側は準備が必要 C++ で書かれているのでビルドツールを準備 あとは utter/ utter と同じ ※こちらもCONTRIBUTING
. md があるので読めばOK
まとめ CARTUNE というアプリをFlutter で作り、継続してア ップデートできている 開発効率が高いのがよい バグなどはあるが、改善されていっている 開発は活発、OSS なので自分でなおせる