Flutter-introduction
フラッター-はじめに
一般に、モバイルアプリケーションの開発は複雑で困難な作業です。 モバイルアプリケーションを開発するために利用できる多くのフレームワークがあります。 AndroidはJava言語に基づくネイティブフレームワークを提供し、iOSはObjective-C/Swift言語に基づくネイティブフレームワークを提供します。
ただし、両方のOSをサポートするアプリケーションを開発するには、2つの異なるフレームワークを使用して2つの異なる言語でコーディングする必要があります。 この複雑さを克服するために、両方のOSをサポートするモバイルフレームワークが存在します。 これらのフレームワークは、単純なHTMLベースのハイブリッドモバイルアプリケーションフレームワーク(ユーザーインターフェイスにHTML、アプリケーションロジックにJavaScriptを使用)から、複雑な言語固有のフレームワーク(コードをネイティブコードに変換する手間のかかる作業)に及びます。 これらのフレームワークには、単純さや複雑さに関係なく、常に多くの欠点がありますが、主な欠点の1つはパフォーマンスの低下です。
このシナリオでは、Dart言語に基づいたシンプルで高性能なフレームワークであるFlutterは、ネイティブフレームワークではなくオペレーティングシステムのキャンバスで直接UIをレンダリングすることにより、高いパフォーマンスを提供します。
Flutterは、すぐに使用できるウィジェット(UI)を多数提供して、最新のアプリケーションを作成します。 これらのウィジェットはモバイル環境向けに最適化されており、ウィジェットを使用したアプリケーションの設計はHTMLの設計と同じくらい簡単です。
具体的には、Flutterアプリケーション自体がウィジェットです。 Flutterウィジェットは、アニメーションとジェスチャーもサポートしています。 アプリケーションロジックは、リアクティブプログラミングに基づいています。 ウィジェットにはオプションで状態があります。 ウィジェットの状態を変更することにより、Flutterは自動的に(リアクティブプログラミング)ウィジェットの状態(古いものと新しいもの)を比較し、ウィジェット全体を再レンダリングする代わりに、必要な変更のみでウィジェットをレンダリングします。
完全なアーキテクチャについては、今後の章で説明します。
Flutterの機能
Flutterフレームワークは、開発者に次の機能を提供します-
- モダンでリアクティブなフレームワーク。
- Dartプログラミング言語を使用し、非常に簡単に習得できます。
- 迅速な開発
- 美しく滑らかなユーザーインターフェイス。
- 巨大なウィジェットカタログ。
- 複数のプラットフォームで同じUIを実行します。
- 高性能アプリケーション。
フラッターの利点
Flutterには、高性能で優れたモバイルアプリケーション向けの美しくカスタマイズ可能なウィジェットが付属しています。 すべてのカスタムニーズと要件を満たします。 これらに加えて、Flutterは以下で説明するように多くの利点を提供します-
- Dartには、アプリケーションの機能を拡張できるソフトウェアパッケージの大きなリポジトリがあります。
- 開発者は、両方のアプリケーション(AndroidプラットフォームとiOSプラットフォームの両方)に対して1つのコードベースのみを記述する必要があります。 _Flutter_は、将来的に他のプラットフォームにも拡張される可能性があります。
- Flutterのテストは少なくて済みます。 単一のコードベースのため、両方のプラットフォームに対して自動化されたテストを一度書くだけで十分です。
- Flutterはシンプルであるため、高速開発に適しています。 そのカスタマイズ機能と拡張性により、さらに強力になります。
- Flutterを使用すると、開発者はウィジェットとそのレイアウトを完全に制御できます。
- Flutterは、すばらしいホットリロードを備えた優れた開発者ツールを提供します。
フラッターの欠点
その多くの利点にもかかわらず、フラッターには次のような欠点があります-
- Dart言語でコーディングされているため、開発者は新しい言語を習得する必要があります(習得は簡単ですが)。
- 現代のフレームワークは、ロジックとUIを可能な限り分離しようとしますが、Flutterでは、ユーザーインターフェイスとロジックが混在しています。 スマートコーディングを使用し、高レベルモジュールを使用してユーザーインターフェイスとロジックを分離することで、これを克服できます。
- Flutterは、モバイルアプリケーションを作成するためのもう1つのフレームワークです。 開発者は、人口が非常に多いセグメントで適切な開発ツールを選択するのに苦労しています。