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
490
Flutterプラグインでdart:ffiを使ってみる
espresso3389
5
7.7k
FlutterのWebView プラグインどれ使えば?
espresso3389
2
2.2k
Flutterで動画配信するプラグインを作った話
espresso3389
4
2.5k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Six Lessons from altMBA
skipperchong
29
4.3k
Music & Morning Musume
bryan
47
7.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Scaling GitHub
holman
464
140k
エンジニアに許された特別な時間の終わり
watany
107
250k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The Pragmatic Product Professional
lauravandoore
37
7.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
210
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
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