最近、仕事でFlutterを使う機会があり、調べたりしながら開発を行っているという状態にある。ここでは、Dart/Flutterについて説明してみたい。
Flutterとは
Flutterは、Googleにより提供されているモバイルアプリ向けアプリケーションフレームワークであり、2017年5月11日に最初のバージョンがリリースされたのち、2018年12月4日に最初の正式版がリリースされた、比較的新しいフレームワークと言える。このフレームワークの特性として、iOSとAndroidの両方に対応することができるという点があり、一部のプラットフォームに依存する処理を除けばほとんどの場合同じコードでiOSとAndroidの両方で動くアプリを開発することができる。
今日においては主にiOS及びAndroid向けのアプリ向けの開発が可能であるが、将来的にはWindowsやmacOS、GNU/Linuxシステムなどのデスクトップアプリ向け、及びウェブ向けの対応も進められているとのことである。
エンジン部分を除き、基本的にはDartと呼ばれるプログラミング言語で開発を行うものの、AndroidやiOSなどのプラットフォームに依存する処理を行う場合には、 PlatformChannel
の仕組みを使ってネイティブAPIを呼び出す処理も行える。
Dartとは
Flutterアプリを作成するときに使うプログラミング言語「Dart」は、2011年10月にGoogleよりリリースされたプログラミング言語であり、元々はJavaScriptが抱えていた問題点を解決させるために開発された経緯から、Webでの開発に強みを置いていた。当初はGoogle Chrome向けにDartの動作環境(DartVM)を組み込む計画が立てられていたが、普及は進まぬまま2015年にはChrome向けのDartVMの開発は中止、AltJSとしては競合のTypeScriptが2017年にGoogleの標準言語として承認されたことからも、長らく低迷が続いていた。
Dartに転機が訪れるのは、2018年2月にDart 2が発表されたことに続き、前述のFlutterが発表されたことで、クロスプラットフォームアプリの開発言語として注目を浴びるようになった。
DartはJavaScriptの代替となることを目的としながらも、その言語仕様はむしろJavaやC#などのクラスベースのオブジェクト指向プログラミング言語に近いものとなっている。
最後に
Dart/Flutterは最近注目を浴びたばかりの新しいアプリ開発の組み合わせであり、まだ発展途上の様子がうかがえる。クロスプラットフォームのアプリ開発としては一つのコードでiOSとAndroidの両方にも対応できるという大きな利点があり、プラグインもかなり揃っているが、プラットフォームに依存した処理が多い場合はあまりメリットを感じにくく、場合によってはフルネイティブで行った方がいい場合もあるだろう。
とはいえ、凝ったアプリでなければ、Flutterで大体のことはできてしまえるくらいには十分強力なフレームワークであるので、プラットフォーム間の違いを小さくしたい場合は使ってみると良いだろう。
次回は開発環境の準備について書いてみたい。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。