Flutter入門

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を素早く開発したい
  • 各プラットフォームで機能差を発生させたくない
  • 音声加工, 動画加工等, ネイティブ固有の機能を伴う要件が少ない
  • 社内の開発スタックを共通化したい

など...