Upgrade to Pro — share decks privately, control downloads, hide ads and more …

仕組みを知れば怖くない! Flutter入門

najeira
April 18, 2018

仕組みを知れば怖くない! Flutter入門

najeira

April 18, 2018
Tweet

More Decks by najeira

Other Decks in Technology

Transcript

  1. ほとんどの場合は Material / Cupertino / Widgets を使う ここが Reactive framework

    になっている ※ あとは Animation 仕組みを知れば怖くない!Flutter 入門 8
  2. Rendering / Painting など UI の基本的な実装 上位の Material / Cupertino

    / Widgets が使う アプリから直接使うことは、 まずない 仕組みを知れば怖くない!Flutter 入門 9
  3. プラットフォー ム間の差異 UI は基本的に同じになる プラットフォー ム標準に寄せて、 Flutter 内部で変えている箇所はある AppBar の中央寄せ(iOS),

    左寄せ(Android), 矢印 デフォルトの画面遷移のアニメー ション iOS 風UI の Cupertino パッケー ジ プラットフォー ムごとにUI 調整が要らないので楽 仕組みを知れば怖くない!Flutter 入門 13
  4. ネイティブとの差異 iOS の標準UI とは違いもある スクロー ルの加減速 計算もFlutter 自前なので微妙な違いを感じる人も いるかも? Cupertino

    パッケー ジにまだ無いものもある 随時追加されている 仕組みを知れば怖くない!Flutter 入門 15
  5. ネイティブとの差異 ※ 個人的なおすすめ 基本はマテリアル・ デザインで作る 要所で( 少しだけ)iOS 風を出す 下タブ ナビゲー

    ションバー のボタンをテキストにする 画面遷移のアニメー ション 一覧のもっと見る矢印 仕組みを知れば怖くない!Flutter 入門 17
  6. utter/engine Flutter のUI フレー ムワー ク部分はDart で実装 各プラットフォー ムで動作させるために C++,

    Java, ObjC で書かれた utter/engine がある ※ 別リポジトリ、 もちろんOSS 仕組みを知れば怖くない!Flutter 入門 20
  7. Android とのGlue FlutterApplication (extends Application) FlutterActivity (extends Activity) FlutterView (extends

    SurfaceView) 単一のActivity があり そこに画面いっぱいのSuerfaceView が載っている Flutter は、SuerfaceView に描画している 仕組みを知れば怖くない!Flutter 入門 21
  8. iOS とのGlue FlutterAppDelegate (extends UIApplicationDelegate) FlutterViewController (extends UIViewController) FlutterView (extends

    UIView) 単一のFlutterViewController があり そこに画面いっぱいのUIView が載っている UIView にはCAEAGLLayer が載っている Flutter は、CAEAGLLayer に描画している 仕組みを知れば怖くない!Flutter 入門 22
  9. Flutter も Activity / UIViewController の一種 別の Activity / UIViewController

    を表示 同じ画面でネイティブのUI を重ねる ということが可能 あとはネイティブの通常の開発と同じ ※UI を重ねるのは最終手段 仕組みを知れば怖くない!Flutter 入門 23
  10. ※ 個人の感想です 最初にFlutter を調べてみたときに 「 ブラウザの別実装」 なのではないか、 と思った ブラウザではHTML, CSS

    でUI を作っていたのを 最初からUI を作ることを念頭に置いて実装したのが Flutter 仕組みを知れば怖くない!Flutter 入門 28
  11. ブラウザ HTML のDOM ツリー をレンダリングする HTML はプラットフォー ムに依存しないので クロスプラットフォー ムで動作する

    Flutter Widgets ツリー をレンダリングする Widgets は自前なので クロスプラットフォー ムで動作する 仕組みを知れば怖くない!Flutter 入門 29
  12. utter/engine (Flutter の下回りのC++ 部分) Copyright にChromium Authors やApple Inc があったり

    namespace blink だったり 仕組みを知れば怖くない!Flutter 入門 30