はじめに
最近の業務でクロスプラットフォーム開発のフレームワークの一つであるFlutterに触れるようになってきたので、自分が学んだことを整理するためにもここにまとめていこうと思います。
クロスプラットフォーム開発
まず、クロスプラットフォームとはAndroidやiOS、WindowsやMac OSなど異なる環境でも一つの開発言語をもとに同じ仕様のアプリケーションを動かすことを可能にするフレームワークのことを指します。
本来はAndroidではJavaやKotlin、iOSではObjective-CやSwiftといった言語を使用して、それぞれのIDE(Android StudioやXcode)で開発を進めていく必要があります。
そのため、両方のプラットフォームに対応したアプリを開発する場合はソースコードがプラットフォーム間で別れてしまい、開発工数がかかってしまったり、メンテナンスのコストがかかってしまったりします。
クロスプラットフォーム開発ではプラットフォーム間で共通の言語を使用するため、前述したコストを抑えることが期待できます。
クロスプラットフォーム開発のフレームワークにはReact NativeやXamarinなどいくつか存在しますが、この記事ではFlutterに焦点をあてていきます。
要点
クロスプラットフォーム開発とは異なるプラットフォーム間で同じアプリケーションの開発を可能にするフレームワークのこと。
Flutterとは
Flutterは2018年にGoogleからリリースされた、モバイルアプリ開発向けのクロスプラットフォーム開発フレームワークです。モバイルアプリ向けと書いたように、最大の特徴は「AndroidとiOSのアプリを同時に開発することができる」です。
その他の代表的な特徴としてはホットリロード機能が搭載されていることも挙げられます。これは、プログラムを変更した際に、即座にUIへと反映することができる機能です。
従来のアプリ開発ではプログラムに変更を加えて確認する際に、その都度ビルドを行う必要があるために時間がかかってしまいましたが、Flutterではその必要がなく、効率的に開発を進めることが可能になります。
Flutterの開発言語にはDartを使用します。これは元々JavaScriptの代替言語として2011年に登場した言語であり、JavaScriptやJavaと似ている文法となっているので、これらの経験がある方にとっては理解がしやすいことが特徴です。また、OS固有の実装が必要な場合(Push通知など)は各OSの開発言語で実装を行うこともできます。
要点
Flutterはモバイルアプリ開発向けのクロスプラットフォーム開発フレームワークのこと。
開発言語はDartを使用する。
ホットリロード機能によって効率的に開発することができる。
メリット
- AndroidとiOSで同じ仕様のアプリを同時に開発することができるため、開発コストが削減される。
- 基本的に共通言語を使用するため、仕様変更や運用保守のコストが削減される。
- ホットリロード機能が搭載されているため、開発効率が良い。
デメリット
- Dart言語を使用するため、学習コストがかかる場合がある。
- 比較的新しめの技術であるため、従来通りの開発と比べると情報が少ない。
- 各OS固有の不具合などが発生するとその原因を見つけにくい。
まとめ
Flutterの特徴とメリット・デメリットについて簡単にまとめてみました。徐々に普及してきているようで、日本語で書かれた情報も増えてきているので、モバイルアプリ開発に興味のある方は調べてみると良いと思います。私もまだまだ勉強を始めたばかりなので、これから始める方は一緒に頑張っていきましょう!
参考