Flutter基礎トピックス〜その1〜
前提
Flutterについて、備忘録的に雑にまとめたものになります。
Flutterの概要
Flutterとは複数のプラットフォーム向けのシステムを「1コード」で開発できるフレームワークである。
Google社が開発し、開発言語はDartを使用する。
対応プラットフォーム
- Mobile OS:iOS, Android
- Web(Modern Browser)
- PC OS:Windows, macOS, Linux
Flutterを活用する上で重要なこと
Point1: 当初のFlutterはモバイルアプリ向けに開発されていたこと。
Flutterがリリースされた当初はモバイルOSのみ対応でした。
今ではWebや、windowsといったPC向けOSのアプリも開発が可能になりましたが、ライブラリの対応状況などまだまだMobile向けが強い状況は変わりません。
Point2: 特定のプラットフォームでは、開発できないプラットフォームがある
Flutterを使えば、一つのコードで複数プラットフォームに対応できる。
ただし、実際にアプリにビルド(単一のアプリに変換)するには、単一のプラットフォームでは足りない。
例えば、Windows上ではiOSやmacOS向けのアプリが、macOSではWindows向けのアプリがビルドできない。
なぜなら、アプリに変換するために必要なSDKやIDEが特定のOSにしか対応していないためだ。
例えば、iOSやmacOS向けアプリにXcodeというIDEはmacOSにしか対応しておらず、またWindowsやLinuxのSDKもまたそれぞれのOS上でしか対応していないため、それぞれのOS向けのアプリを作成するにはそれぞれOSを用意する必要がある。
なお、AndroidについてはAndroid StudioというIDEが必要だが、WindwosやmacOS、Linuxに対応しているため、OSの制約は特にない。
Webについても最新のブラウザが必要という制約があるが、基本的に全PC向けOSに対応しているため、OSの制約はない。
Point3: Flutter周辺だけ知識を知っておけば良いというものではない。
FlutterやDartだけ学んでおけば、Flutterが対応するOS全てでアプリが作成できるというものではない。
近年はFlutter向けの3rd Party製ライブラリが充実し、Flutterだけで複数のプラットフォーム対応のアプリが作成できる環境が整いつつある。
ただし、それでもFlutterだけでは対応できない機能が存在したり、環境を構築する際やアプリの動作を確認する際に特定のOS向けの知識が必要だったりと、Flutterだけでなく、対応したいOS向けの知識が必要である。
Discussion