仕事のニーズは、いくつかのクライアントは、書き込みにページのフラッターを使用するので、あなたはフラッターQAの知識を調べる必要があり、そのため、インストールは、書き込みやデモの基本をフラッター研究含まれた、第二部では、インストールと構成の環境です。
-
フラッターは、 Googleが立ち上げたオープンソースのモバイルアプリケーション開発フレームワーク、クロスプラットフォーム、高忠実度、高性能のシリーズ
フラッターのより包括的な理解のために、最初にすべての私たちは、クロスプラットフォームのフレームワークであるかを知る必要があります
まず、クロスプラットフォーム技術および他のクロスプラットフォームのフレームワーク
ネイティブアプリケーションは:システムが提供するSDKのAPIを開発ツールと言語をサポートし、直接呼び出すために適切なプラットフォームを使用して、特定のアプリケーション(などのiOSやAndroidなど)特定のモバイルプラットフォームを指します。
長所:プラットフォームのすべての機能にアクセスすることができ、このようなGPS、カメラとして、;高性能、複雑なアニメーションは、優れたユーザーエクスペリエンスを実現することができます。
欠点:動的更新は難しい、バージョンセンド更新(または修正プログラム)をアップグレードする必要性を、デュアルプラットフォーム、開発理由と大きなコストをテストします。
これら二つの欠点のネイティブ開発、動的なクロスプラットフォームのフレームワークの数の誕生
現時点では、3つのタイプがあります
- ネイティブH5 +(混合開発フレームワーク:コルドバ、イオン、マイクロチャネル・アプレット)
- JavaScript開発+ネイティブレンダリング(ネイティブ、Weex、高速なアプリケーションと反応)
- 自绘UI+原生(QT for mobile、Flutter)
1、H5+原生
また、ハイブリッド開発として知られ、これらは主要なアプリケーションで共通している、もちろん、我々はまた、アプリを使用しています
主な原則:APPにおけるH5により部分的には、ネイティブのページロードコントロールによって達成負荷のWebViewに、ダイナミックはH5によって更新します
WebViewのは限られた権限を持つサンドボックスのように、基本的にブラウザカーネルなので、ほとんどのシステムのための能力は、アクセス権を持っていないのに対し、WebViewの中で実行されているH5コード、
通常、プリミックスフレームワークは、ネイティブコードで、システムのAPIにアクセスするためのいくつかの機能を実現して、JavaScript呼び出しのためのWebViewにさらされています。
欠点は、達成するために、パフォーマンスの低下は難しいだろう、複雑なユーザインタフェースやアニメーションです
2、JavaScriptのネイティブレンダリング開発+
JavaScript言語RN使用して、4月に2015年オープンソースのクロスプラットフォームのモバイルアプリケーション開発フレームワークを(RNと呼ばれる)ネイティブでのFacebookに反応
RNをし、同じことを原則反応し、反応することにより、フラッターもアイデアを伝える、インスピレーションを得ました
ネイティブネイティブコントロールのレンダリングを反応させる、性能がはるかに優れたアプリケーションを混合よりH5であるが、言語をスクリプトJSによって制限されるので、効率を向上させることが必要であり、レンダリングがネイティブコントロールに依存し、また、システムの更新に依存し、ネイティブUIシステムによって影響されます制限
3、自绘UI+原生
異なるプラットフォームに統一されたインタフェースを達成するために、UIレンダリングエンジンによって描画されたクロスプラットフォームフレームワークのこのタイプに属するフラッタは、ネイティブ制御システムによらず、異なるプラットフォームUIの一貫性を達成することが可能です。
セルフ塗装エンジンは、クロスプラットフォームのUIの問題を解決するために、それは他のシステムを呼び出す機能を必要とする場合は、まだネイティブ開発に関与する必要があります
(あなたがシーンをしたい場合は、我々がテストしたネイティブアプリケーションの権利の譲渡は、あなたが次のことに注意を払うことができるとき)
欠点は、動的更新することができない、または更新をアップグレードするために、柔軟かつ容易に高性能の利点を維持します
要約すると:
技術タイプ | UIのレンダリング | 演奏 | 開発効率 | ダイナミック | フレームの代わりに |
---|---|---|---|---|---|
H5+原生 | WebViewのレンダリング | 一般的な | 高いです | サポート | コルドバ、イオン性 |
ネイティブレンダリングのJavaScript + | ネイティブレンダリングコントロール | 良いです | で | サポート | RN、Weex |
自绘UI+原生 | レンダリングシステムのAPIを呼び出します | 良いです | ハイフラッター、低QT | デフォルトでサポートされていません | QT、フラッター |
二、Flutter
フラッターの利点の概要
- コスト削減を動作させるためのデュアルプラットフォームのコード
- 開発効率を向上させるために熱過負荷機能(フォローアップがデモすることにより、特定の熱的過負荷を示すであろう)
- ビルトインの使用エンジン、レンダリング、高いパフォーマンスをレンダリング
図枠フラッター
(DART .FlutterためのC / C ++コード軽量つだけのコアを組み合わせて(他のほとんどのシステムで実装さ、ジェスチャー、アニメーション、フレーム、ウィジェットなど)、開発者が容易に読み取ることができ、変更、置換又はフレームシフト)を除きます
いくつかの基本フラッター
1、フラッター利用開発言語:ダーツ
ダートは、JavaおよびJavaScriptを描画オブジェクト指向言語、ガベージコレクション、である、およびJava静的な文法は、このようなタイプの定義として、非常に似ている、そのような機能としてジェネリック医薬品、および多くの他のような動的特性、およびJavaScript、などの関数宣言、スタイル特性、非同期サポート。
(ダート言語における具体的な手の込んだ拡大)
図2に示すように、熱過負荷(デモデモ)
-
コードの変更を実行した後、「停止」ボタンを押さないと、アプリケーションが実行を継続してみましょう。
-
コール保存(CMD-S / CTRL-S)、またはホットリロードボタンをクリックして、デバイスを確認します(稲妻⚡️アイコンが付いたボタン)が新しいコードに瞬時に変更されました
3、すべてがウィジェットです
AndroidとiOSには、対応するメンバは、Viewクラスの品種です。
フラッターコンセプト、部材の構造だけでなく、さまざまな要素を使用しました。フラッターコンポーネントアーキテクチャは、継承されたのではなく、より多くの組み合わせを使用するため、より強力で柔軟なコンポーネントアーキテクチャ。フラッター公式ドキュメントを書いた:
でフラッターが、動作は(例えばGestureDetectorなど)の部分です。InheritedWidgetは、状態管理のために使用することができ、AnimatedWidgetアニメーションを構築するために使用されます。
三、ダートシングルスレッドモデル
Javaでは、例外が発生し、プログラムがキャッチされていない場合、プログラムは終了しますが、これはダーツのJavaScript、またはではありません。
Javaは例外と例外がキャッチされていないいずれかのスレッドトリガーのプログラミング言語、マルチスレッドモデルである、それは出口のプロセス全体を引き起こします。しかし、ダートとJavaScriptは、彼らがシングルスレッドモデルである、ではありません。
ダートでは、このようなIOなどのイベントキュータスクでは、外部事象のすべては、タイマーは、クリックして、マイクロタスクは、通常、内部ダートから派生している間、イベントを描き、マイクロタスクは非常に少ない、その理由は、マイクロからですマイクロタスクがあまりにも多く、長く、最も直感的なGUIアプリケーションの実行時間の合計、より長い遅延のイベントキュータスクは、カードのパフォーマンスを比較したものであるならば、それはマイクロタスクキューがあまりにもされないことを保証するために持っている必要があり、優先度の高いタスクキュー長いです。それは私たちができる、ということに注目すべきであるFuture.microtask(…)
マイクロタスクの方法を挿入するタスクをキューイング。
タスク例外が発生したと捉えていないときにイベントループでは、プログラムが終了していない、結果は実行されませんコードの現在のフォローアップミッションの直接の結果であり、それは、タスク例外があるありますこれは、他のタスクの実行には影響しません。
四、国家のライフサイクル
状態は、順番に初期化を実行します:コンストラクタ> initState> didChangeDependencies>ウィジェットのビルド、この時間は、ページのロード