はじめてFlutterでアプリをリリースした感想
以前、iOSのアプリをリリースしました。今回はFlutterでiOS向けアプリを開発、リリースをしたのでその感想です。
※iOSアプリを作った経験に基づき、あくまで個人的な感想です。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F20217%2Fbb1e4ebe-50fe-ff59-8b72-707d3cc0a7d8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4c07e0ee8ad8083a02e53d25e99788a7)
Flutterとは
Flutter allows you to build beautiful native apps on iOS and Android from a single codebase.
https://flutter.dev
Flutterは単一のコードをiOSとAndroidのアプリを開発できるフレームワークです。Flutterの開発元はGoogleで、Dartという言語でコーディングします。
なぜFlutter?
モバイルのクロスプラットフォームもフレームワークとしてはReactNativeなどもありますが、Googleが開発中の新OSであるFuchsiaのアプリはFlutterでという噂もあり、興味が湧いたのでFlutterでの開発を行いました。
Flutterでよいと思うこと
-
すべてをコードで管理する
Flutterでは画面の構成も含めてすべてコードで記述します。
そのためiOSのようにストーリボードでデザインするか、
コードで書くかを迷うことはないです。
また、FlutterStudioというツールが公開されており、
GUIで画面をデザインできるツールがあります。
今回はFlutterStudioで大まかにデザインして、
そこからカスタマイズしていきました。 -
ホットリロード
コードの変更を再ビルドすることなくシミュレータに反映することができます。全ての変更がホットリロード可能ではないですが、変更をすぐに確認できる点はメリットです。 -
パッケージが豊富
すでにいろいろな機能がパッケージとして公開されています。
pubspec.yamlというyamlファイルにパッケージを指定し、更新することで利用できます。iOSのCocoaPodsに似ていますが、Flutterでは標準でパッケージ管理の機能があります。
Flutterで困ったこと
- ネイティブ側コードの制限
パッケージがなく、ネイティブの機能を利用したい場合は、ネイティブのコードを書く必要があります。ネイティブのコードを書く場合は、
MethodChannelという仕組みを使ってNative側の機能を呼び出します。Native側に渡すデータの型の制限などもあり、試行錯誤が必要な場合があります。
まとめ
Nativeでの実装を減らしていくことで、
Flutterの良さが出せると感じです。