
Flutter入門
Flutterとは何か?
Flutterは、単一のコードベースからモバイル、Web、デスク トップ、および組み込みデバイス向けの美しくネイティブにコン パイルされたアプリケーションを構築するためのオープンソー スUIツールキットです。
参考: https://github.com/flutter
つまり、、
Flutterとは、
- UIツールキットです
- オープンソースです
- 単一のコードベースからモバイル、Web、デスクトップ、およ び組み込みデバイス向けのアプリケーションを構築することができます
「単一のコードベースからモバイル、Web、デスクトップ、およ び組み込みデバイス向けのアプリケーションを構築することができます 」とは?
上記図のように、1つのソースコードから、複数のプラットフォームのアプリケーションを構築できることを言います。
このようなものを一般に「クロスプラットフォーム」と言います。
代表的なクロスプラットフォーム
現在、mobileアプリケーション開発における、代表的なクロスプラットフォームには、以下のようなものがあります。
Flutter
主な言語: Dart, 開発会社: Google, リリース時期: 2017年5月頃
React Native
主な言語: java Script, 開発会社: Facebook, リリース時期: 2015年3月頃
Xamarin
主な言語: .NET, 開発会社:Microsoft, リリース時期: 2013年11月頃
クロスプラットフォームのメリット
クロスプラットフォームのメリットには、以下のようなものが挙げられます。
- 開発工数が少なくなる
- 開発チームが小さくできる
- 機能追加等がしやすい
- 各プラットフォームでリリースタイミングが合わせやすい
など...
クロスプラットフォームのデメリット
反対に、クロスプラットフォームのデメリットには、以下のようなものが挙げられます。
- ネイティブ開発に比べると、パフォーマンスが悪くなる
- 各OSの最新機能への対応が遅くなる
- OS固有の機能の開発が少し困難
など...
どんな時に使う?
では、上記を踏まえ、クロスプラットフォームであるFlutterは、どのような時に使用するのが良さそうでしょうか?
筆者の考えを、以下に挙げます。
- 少ないチームメンバーでサービスを開発したい
- MVPを素早く開発したい
- 各プラットフォームで機能差を発生させたくない
- 音声加工, 動画加工等, ネイティブ固有の機能を伴う要件が少ない
- 社内の開発スタックを共通化したい
など...