📘

Flutter基礎トピックス〜その1〜

2024/01/16に公開

前提

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