Flutter 初めました

Swift は書けるんですが、Java/Kotlin は書けないこともあって、これまでは Expo (React Native) で Android アプリ開発の勉強してました。

ただ、

  1. npm のライブラリ管理が気に入らない
  2. 動的言語があまり好きでは無い
  3. React Native で開発したアプリはまだストアで公開はしてない、

という理由から、話題の Flutter をちょっと触ってみました。

2に関しては、TypeScript 勉強しろや!って、ツッコミもあるんですが、新しく言語覚えないといけない事には変わらないので、ま、いっかな、と。

で、今のところ、今後は Flutter メインで行こうと思ってます。

Flutter とは?

Flutter の説明は不要かなと思いますが、Google 主導で開発しているクロスプラットフォームのアプリ開発ツールです。一つのコードで、iOS でも Android でも動いてしまう、という優れもの(というか、弱者のツール)。同様のプラットフォームとしては、React Native とか、Xamarin とか。

React Native と比較されることが多いと思うのですが、この動画が一番わかりやすかったので、貼っときます。

Flutter 勉強する上で苦労したこと

React Native 使った事ある人なら、特に苦労はしないと思います。公式のチュートリアルいくつかやれば、概要は理解できるんじゃ無いかと。あとは個別に API ドキュメントとにらめっこ、って感じかな。

ただ、一点、State 管理方法の一つである、BLoC(Business Logic Components)については、ちょっと苦労しました。結局、Udemy のコースを買って、勉強しました。

Dart and Flutter: The Complete Developer’s Guide

BLoC については、出来あがったコードみても理解できず、ステップを踏んで勉強することで、ようやく理解できるように。Qiita に記事でも書こうかと思いましたが、似たようなのが既にあるし、そもそものニーズが少なそうなので、とりまペンディング。確かに、Redux に似ているっちゃ似てるんですが、、、ま、Redux に比べて、良い点、悪い点、両方ある感じがします。

Flutter の良いと思ったところ

最初にも書いたように、Android アプリの開発は、今後、Flutter で行こうと思ってます。理由ですが、こんな感じ。

  1. 標準ライブラリで出来る事が多い:React Native だと、大量の外部ライブラリを持ってこないと何もできないですが、Flutter だと標準ライブラリでそれっぽいアプリ作れるところまでは行けてしまう。Expo で書いてる時に、「ライブラリの更新して、全くアプリが動かなくなる」、という怖い経験をしたので、標準ライブラリが豊富な方が個人的には好み。
  2. 標準の UI セットが優秀:1とほぼ同じ内容ですが、UI デザインが苦手な私には、標準ライブラリ使うだけで、それっぽいのが出来るのは非常に嬉しいです。RN だと、NativeBase か React-Native-Elements が必須で、しかも、それぞれちょっと足りない、みたいな感想を持ってるので。とはいえ、ちょっとカスタマイズしよう、ちょっと凝ったアニメーション使おう、とかやると、Flutter でも大変って気がしてます(今ちょうど格闘中)。

ついでに、ダメな点も。

  1. Wi-Fi 経由でアプリを実機に送れない:Expo だと、同じネットワークに繋いでれば、手元のスマホですぐに試せたんですが、Flutter だと物理的に繋がってないと、実機にアプリが飛ばせません。実機と繋いでも、何かの拍子で接続が切れてしまうと、アプリも終了。これ、地味にめんどくさいです。これまで実機でテストしてましたが、今はシミュレーターでテストしてます。
  2. Dart: 全く流行っていない言語を覚えないといけません。ま、Java/Javascriptっぽいから、覚えるのは全然楽ではありますけど。ただ、Constructor にいろんな種類があって、いまだによく分かってない、とかありますけど。うちのエンジニアとも雑談してましたが、これ、TypeScript 使ってた方が、もっと流行ったような。。。

じゃ、Flutter 他人にも薦めるか?と聞かれると、答えは NO です。すでに RN やってる人は、わざわざ移るメリット無いかと(笑)。Dart 流行る気がしないし。


ということで、今回は、こんな感じのポエムで。

ところで、ブログ書いてて、「ですます」調で書いてるポストもあれば、「である」調で書いてるのもあるんですが、我ながらなんでだろ?どちらかに統一した方がいいのかな?

では。


comments powered by Disqus