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でiOSアプリを作ってIn-House配布
Search
Takashi Kawasaki
October 17, 2018
1.6k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FlutterでiOSアプリを作ってIn-House配布
Takashi Kawasaki
October 17, 2018
More Decks by Takashi Kawasaki
See All by Takashi Kawasaki
Flutter向けPDFビューア、pdfrxのpdfium WASM対応について
espresso3389
0
520
Flutterプラグインでdart:ffiを使ってみる
espresso3389
5
7.7k
FlutterのWebView プラグインどれ使えば?
espresso3389
2
2.3k
Flutterで動画配信するプラグインを作った話
espresso3389
4
2.5k
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.4k
Accessibility Awareness
sabderemane
1
170
Discover your Explorer Soul
emna__ayadi
2
1.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
30 Presentation Tips
portentint
PRO
1
360
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
A Tale of Four Properties
chriscoyier
163
24k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
370
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
490
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
FlutterでiOSアプリを作って In-House配布した @espresso3389 クミナス株式会社 川崎 高志
誰? 川崎高志 @espresso3389 クミナス株式会社 CEO 恵比寿の小さい会社です
C/C++歴30年程度(初心者) C#歴10年程度 JS歴不明(入門以前) Flutter歴6カ月(初心者)
iOS向けアプリを作った iPadで複数のワコム製タブレットとBLE通信 落書きをPDFに合成してSVG/PDF/JPEGでサーバーに送信 タブレットと通信する部分もDartで書いた ワコムのSDK使ってない
tuhiproject/tuhi + BLEパケットモニタで独自解析 サーバー詳細は知らん AWSの何か
FlutterBlue (flutter_blue) Bluetooth LEライブラリ(Android/iOS) https://pub.dartlang.org/packages/flutter_blue バグはかなりある(ユーザーコードで回避できる)
async/awaitで簡単に書ける!Swiftで書くよりは断然楽!
PDF処理 with iOS Core Graphics Platform Channelを利用 PDFのテンプレートに落書きを合成
PDFを画像としてFlutter側に渡す Writing custom platform-specific code with platform channels https://flutter.io/platform-channels/ CGPDFDocument (Core Graphics; iOS) dart:ui.Image dart:ui.decodeImageFromPixels(Uint8List RGBA) (#9184) RawImage プレビューは、RawImageとCanvasをStackで重ねた PDF Vector PDF,画像
PDFを画像としてFlutter側 に渡す(Swift側) CGPDFDocument/CGPDFPageで普通にRGBA画像を描画 CGContext→Data →NSData →FlutterStandardTypedData
PDFを画像としてFlutter側 に渡す(Swift側) CGPDFDocument/CGPDFPageで普通にRGBA画像を描画 CGContext→Data →NSData →FlutterStandardTypedData
PDFを画像としてFlutter側 に渡す(Flutter側) RGBAのデータをUint8Listとして受け取る dart:ui.decodeImageFromPixelsでdart:ui.Imageに変換 WidgetのRawImageに渡す
PDFを画像としてFlutter側 に渡す pdf_render https://pub.dartlang.org/packages/pdf_render 汎用処理にできるので、Flutterプラグインとして切り出し AppDelegateが綺麗になる!
現状はiOSのみ対応 Androidは、PDFiumで実装予定
Flutterの生産性 良いところ ListView.builder最高だぜ async/await最高だぜ Hot Reload最高だぜ
悲しいところ 地雷踏みまくり/master常用 デバッグできなくなる(#20184) ビルド中にSIGSEGV(#21685) -exportArchiveできなくなる(#22306) 中華フォント関連(#21667 and others) なんかよくわからん奴※ applicationWillTerminateをハンドルできない List<int>のメモリ消費が不安 なんか微妙にType-unsafe context, this.context, await
Flutterの生産性 良いところ ListView.builder最高だぜ async/await最高だぜ Hot Reload最高だぜ
悲しいところ 地雷踏みまくり/master常用 デバッグできなくなる(#20184) ビルド中にSIGSEGV(#21685) -exportArchiveできなくなる(#22306) 中華フォント関連(#21667 and others) なんかよくわからん奴※ applicationWillTerminateをハンドルできない List<int>のメモリ消費が不安 なんか微妙にType-unsafe context, this.context, await