FlutterでiOSアプリを作ってIn-House配布

9d9ab1b45680b4f673e398b2c394797d?s=47 Takashi Kawasaki
October 17, 2018
640

 FlutterでiOSアプリを作ってIn-House配布

9d9ab1b45680b4f673e398b2c394797d?s=128

Takashi Kawasaki

October 17, 2018
Tweet

Transcript

  1. FlutterでiOSアプリを作って In-House配布した @espresso3389 クミナス株式会社 川崎 高志

  2. 誰?  川崎高志 @espresso3389  クミナス株式会社 CEO  恵比寿の小さい会社です 

    C/C++歴30年程度(初心者)  C#歴10年程度  JS歴不明(入門以前) Flutter歴6カ月(初心者)
  3. iOS向けアプリを作った  iPadで複数のワコム製タブレットとBLE通信  落書きをPDFに合成してSVG/PDF/JPEGでサーバーに送信  タブレットと通信する部分もDartで書いた  ワコムのSDK使ってない 

    tuhiproject/tuhi + BLEパケットモニタで独自解析  サーバー詳細は知らん AWSの何か
  4. FlutterBlue (flutter_blue)  Bluetooth LEライブラリ(Android/iOS)  https://pub.dartlang.org/packages/flutter_blue  バグはかなりある(ユーザーコードで回避できる) 

    async/awaitで簡単に書ける!Swiftで書くよりは断然楽!
  5. 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,画像
  6. PDFを画像としてFlutter側 に渡す(Swift側)  CGPDFDocument/CGPDFPageで普通にRGBA画像を描画  CGContext→Data →NSData →FlutterStandardTypedData

  7. PDFを画像としてFlutter側 に渡す(Swift側)  CGPDFDocument/CGPDFPageで普通にRGBA画像を描画  CGContext→Data →NSData →FlutterStandardTypedData

  8. PDFを画像としてFlutter側 に渡す(Flutter側)  RGBAのデータをUint8Listとして受け取る  dart:ui.decodeImageFromPixelsでdart:ui.Imageに変換  WidgetのRawImageに渡す

  9. PDFを画像としてFlutter側 に渡す  pdf_render  https://pub.dartlang.org/packages/pdf_render  汎用処理にできるので、Flutterプラグインとして切り出し  AppDelegateが綺麗になる!

     現状はiOSのみ対応  Androidは、PDFiumで実装予定
  10. 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
  11. 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