最近やっていること: Flutter日記

こんにちは。2018年は一度も更新がなく気づくと2019年。早いですね。うらぴこさん元気ですか。

最近は、FlutterというiOS/Android向けにアプリを作ることが出来るフレームワークに興味がありましてちょこちょこと触っています。

https://flutter.dev/

これは練習で書いているおもちゃアプリ: https://github.com/ymegane/TapTapTap2

(タップやドラッグしたところに円が出てさーっと消えていくだけのアプリなんだけど、
基本的な画面の作りや座標系、非同期処理、アニメーションまで実現しないと実は書けないので、練習で書くのに割と適してるんですよ : )

FlutterはGoogleが提供していて、Fuchsiaという次期モバイルOSなんだかいつものGoogle社内競争の産物なのかわからない謎の新OS向けアプリケーションのSDKとしても知られていて、もしも今後Fuchsiaがメジャーになることがあれば大勝利かもしれません。

FlutterはDart言語で開発するんですが、これも既存の経験がある言語に比べて独特というわけでもなく、すんなり書き始めることができています。

https://www.dartlang.org/guides/language/language-tour


さらに開発環境もSDKとVSCodeとVSCode PluginがあればOKというお手軽さ。
FormatterやLinter、TestSuiteからパッケージ管理、パフォーマンス系のデバッグツールまで一通り揃っていて、さすがGoogleやでという感じです。(一部はDartのエコシステムです)

難点は、宣言的に記述するUIのうち、PaddingやOpacityなんかもView(FlutterではWidget)のプロパティではなく一つのWidgetとして宣言する必要がある点でしょう。

これはつまりどんなWidgetが存在するかあらかじめ知っておく必要があるということです。
そうでないと製品レベルのUIを組み上げることは難しいと思います。
しばらく書いていれば常套手段が溜まってきてそれなりにスラスラ書けるようになると思いますが、最初は途方に暮れましたし、今でも発見があります。

アニメーションもちょっと直感的じゃないと思うけど、これは慣れの問題じゃないかと思います。

また、これから始めてみようという方に注意点があるとすれば、結局iOS, Androidの知識も必要ということです。

少なくともリリースビルドするときには各OSのビルド設定を直接行う必要がありますし、既存のライブラリにない各OSの機能を使いたければ、Pluginなり各OS向けの連携コードを実装する必要があります(よく使いたくものは大体あります。)。

ちょっとビルドが通らないみたいなときに、Xcode/Android Studioを開いて設定を確認すれば問題が解消することもあります。

これはReactNativeなんかもそうなので、クロスプラットフォーム開発での常識かもしれません。

でも、そんなことは些細なことで、ここまで手軽にクロスプラットフォームなアプリ開発ができる環境が用意されていることは、素直に喜んでいいと思います。
公式のドキュメントも割と充実していますし。

そんなわけで、今年はしばらくFlutterをメインに触っていきたいな〜という気持ちです。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA