Android および iOS 用のクロスプラットフォーム アプリケーションを設計するための Google のフレームワークである Flutter が、リリース プレビュー 2 で利用可能になりました。最初の安定バージョンは間もなく登場する予定です。
ご存知ないかもしれませんが、Google Play からダウンロードしたアプリはさまざまな方法で設計されている可能性があります。
最もよく知られ、最も普及しているのは、と呼ばれるアプリケーションです。ネイティブGoogle が提供する SDK を使用します。このソリューションの利点は、Android の機能を最大限に活用しながら、最高のパフォーマンスを提供できることです。ただし、コストがかかるという大きな欠点があります。サービスが iOS でも利用できると想像してください。2 つ目の同一のアプリケーションを開発する必要があります。次に、会社は 2 つのチームを採用し、管理する必要があります。単純化すると、同じものを 2 回目に開発することになります。これに加えて、両方のプラットフォームで動作が期待どおりであることを確認するために多数のテストを実行する必要があります。
クロスプラットフォーム アプリケーション
ネイティブの選択が間違いなく最善である場合、使用するというアイデアフレームワークマルチプラットフォームが急速に登場しました。企業は、これを開発コストを削減しながら、可能な限り両方のプラットフォームに固執しようとする優れた方法であると考えています。これまで、さまざまなソリューションがこの戦いを戦ってきました。
思いつく最も単純な方法は、Web を利用することです。Web はすべてのプラットフォームと論理的に互換性があるからです。この魅力的な選択肢は、机上ではパフォーマンスが最適ではないため、実際にはそれほど魅力的ではありません。さらに、必ずしもすべての API が利用できるわけではなく、開発者はさまざまなバージョンの WebView (Web ページを表示する内部コンポーネント) を何らかの方法で管理する必要があります。
他の解決策としては、ネイティブに反応するは、Facebook を利用して、Web 言語 (JavaScript) から始めて、Android と iOS のネイティブ ビューを使用して、両方の世界を満たすように努めます。エクスペリエンスは非常に優れていますが、これらのアプリケーションはまだ優れていません。原住民。これは、アプリケーションを電話用に最適化するのではなく、ユーザーが実行するときにコードが解釈されることを意味します。
フラッター?
フラッターというのは、フレームワークGoogle が開発したもので、最も新しいものです。その結果、エンジニアは既存の各ツールの長所と短所を観察して、本質だけを抽出することができました。
この名前は、あなたにもよく知られているかもしれません。これは、フクシア/アンドロメダ。実はこれフレームワークすべてのユーザーインターフェイスに使用されます。しかし現在、Flutter は、Android および iOS (Windows/Mac/Linux もサポートされています) のクロスプラットフォーム ネイティブ アプリケーションを設計できる機能で最もよく知られています。
Flutter チームは主に Web (特に Chrome) 出身であり、その哲学をモバイルの世界に適応させようと努めてきました。これを行うために、彼らは Chrome と Android のすべてのテキスト管理に不可欠なエンジンである Skia に依存しました。
プログラミング言語としての Dart
Google は Dart を含む多くのプログラミング言語を作成しました。これはあなたにとって何の意味もないかもしれません...そしてそれを隠さないようにしましょう、それは忘れられ始めていました。しかし、Flutter の出現以来、この言語は色を発見し、さらには色を経験するようになりました。バージョン2.0。
Google が Dart を選択したとすれば、それは 2 つの動作モードを提供しているためです。 1 つ目は AOT と呼ばれます (時代を先取りして) を使用すると、各プラットフォームのネイティブ アプリケーションを生成できます。したがって、コードが動作するアーキテクチャに合わせて直接最適化されるため、競合他社と比較した場合、Flutter の利点は強力です。
2 番目の動作モードは JIT (Just-In-Time) と呼ばれ、開発中にホット リロード機能を提供します。ネイティブ Android アプリケーションを設計する機会があったなら、おそらく、それぞれのアプリケーションを設計するまでにかかる時間を恐れたことがあるでしょう。建てる。 Flutter のホット リロードの考え方は、各変更の間にわずか数ミリ秒 (最悪の場合は数秒) を要するだけでこの問題を解決することです。これにより、アプリケーションの開発が大幅に高速化されます。
これら 2 つのモードに加えて、Dart は割り当てと「ガベージ コレクター」、つまりメモリ内の使用されなくなったオブジェクトの削除の管理においても非常に効率的です。
偏見
React Native とは異なり、Google は最も複雑なソリューション、つまりすべてのグラフィック コンポーネントを Flutter で再作成することを選択しました。膨大な量の作業が必要となるこの方向には、大きな利点があります。開発者は、さまざまなプラットフォーム上で常に望ましいレンダリングを確実に行うことができます。 Holo とマテリアルが時間の経過とともに進化し続けている Android でのバージョン管理を終了します。
一方、これは、アプリケーションで Flutter を使用する場合、このコードを組み込む必要があることを意味し、最終的な apk/ipa が重くなります。
ただし、Flutter はバージョン 4.1 以降のすべての Android デバイスで動作するため、これはそれほど大きな欠陥ではありません。実際、ネイティブ Android 開発者は、さまざまな OS バージョンでマテリアル コンポーネントのメリットを享受したい場合、同じことを行う義務があります。
iOS では、iPhone と iPad はバージョン 8.0 以降、32 ビット モデルと 64 ビット モデルで互換性があることに注意してください。
どこにでもあるウィジェット
他のシステムとは異なり、Flutter は次のことを提供します。信じられないほどの量のウィジェット(数百)。設計者によって開発されたアイデアは、ウィジェットは独自のタスクのみを実行すべきであるというものです。
テキストの場合を考えてみましょう。テキスト ウィジェットは画面上にテキストのみを表示できます。背景色を変更したり、画面上の位置を管理したりすることはできません。これらの他の 2 つのタスクは、他の特殊なウィジェット専用になります。この偏見こそがこの作品の強みであるフレームワーク、信じられないほどのパフォーマンスを引き出します。
この原則により、Flutter は誰でも理解できるようになります。もちろん、開発者はアプリケーションの設計を続けますが、デザイナーがアプリケーションに興味を持つ可能性があると容易に考えられます。
以下は、テキストとアイコンを中央揃えで表示する例です。
中心(
子: 列(
子供たち: [
Text('Hello, World!')),
アイコン(Icons.star、色: Colors.green)
】
)
);
Google Play からダウンロードできるデモ アプリケーションがあります。
iOS の場合は残念ながら、Apple がこのタイプのアプリケーションを拒否しているため、アプリケーションを自分でコンパイルする必要があります。
Flutter ギャラリー以外にも、公式 Web サイトで見つけることができます。いくつかの注目のアプリケーション。 Google は特に、中国で 5,000 万人のユーザーにアプリケーションを展開した Alibaba の事例を挙げ、Flutter が現在運用に入るのに完全に堅牢であることを証明しています。
非公式ディレクトリには、コミュニティによって開発されたアプリケーションもリストされています。itallwidgets.com。
リリースプレビュー 2
Flutter プロジェクトは、最初のベータ版の公開に対応して、今年の初めから本格的に始動しました。その後、6 月末のリリース プレビューに至るまで、数多くのバージョンが次々とリリースされました。この段階は、安定した最終バージョンに近づくことを示します。
先週の水曜日、Flutter チームは 2 回目のリリース プレビューを発表しました。番組では:iOS インターフェイスを使用したウィジェットのカタログ(Cupertino) さらに提供されるのは、アプリケーションをフォアグラウンドにせずに Dart/Flutter コードを実行する可能性、またはアプリケーションのサイズを約 30% 削減する可能性です。
これは安定版を待つ間の最後のリリース プレビューであり、論理的には数週間以内にリリースされるはずです。
もっと知りたいですか?
この紹介に興味をそそられ、Flutter について知りたいと思われましたか?すべてが説明されています公式ウェブサイトで。
同時に、水曜日(9月26日)の夕方、アンコードラボはパリで開催されるため、Flutter を発見し、最初のアプリケーションを開発できます。無料登録はこのリンクから直接行うことができます。