Flutter
Flutterとは?

主にアプリケーションの表示・操作画面(UI:ユーザーインターフェース)を開発することに主眼を置いたフレームワークで、単一のコードからAndroid、iOS、Windows、macOS、Linux、Webブラウザのそれぞれに適した配布形式のアプリケーションを作成できる。
コーディングには独自の「Dart」と呼ばれるプログラミング言語を用いる。これはWebブラウザのスクリプトで標準的なJavaScriptを元に考案された言語で、型システムの改善などで性能やセキュリティ、大規模開発などでJavaScriptの抱える問題を緩和している。
従来、アプリケーションのUI部分は手続き的なコードで記述することが多かったが、Flutterでは宣言的な記法が採用されており、開発者はどのようなUIにしたいかを定義するだけで、各プラットフォームに適したUIを生成するコードに自動的に変換される仕組みとなっている。
UIは「ウィジェット」(widget)と呼ばれる構成要素の組み合わせとして定義される。テキスト、図形、画像、ボタン、アイコン、メニュー、レイアウトなど様々なウィジェットが用意されており、Androidのマテリアルデザインを実装した「Material Components」、iOS風デザインを実装した「Cupertino」など、特定環境に馴染むデザインのウィジェット群も用意されている。
各プラットフォームにおける表示・描画機能を実装した「Flutterエンジン」は、Google社の「Skia」ライブラリを基盤としている。ネイティブコードのように高速な実行を可能にしながら、プラットフォーム間の差異を吸収して同じように振る舞わせることができる。各プラットフォーム固有の機能にアクセスする仕組みも用意されている。
初版は2017年に発表され、当初はAndroid向けとiOS向けを同じコードで開発できるモバイルアプリ向けフレームワークだったが、2021年のFlutter 2でデスクトップ向け、Web向けも開発できるようになった。BSDライセンスに基づいてオープンソースとして公開されており、WindowsやmacOS、Linuxで開発することができる。