Flutterでの経験報告

Flutterでの経験報告
写真クレジット:  flutter

今日は、Flutter に関する自分の経験について振り返りたいと思います。モバイル開発に触れずにバックエンドとフロントエンドの開発を10年以上行った後、モバイルプロジェクトに携わる機会を得ました。

まずは、少し背景を。

Jean-Baptiste Sagot と Valentin Tabary と一緒に、AI をテーマにしたプロジェクトを作りたいと思いました。いくつかのアイデアと忘れられないブートキャンプの後、親が子どもとの夜の読み聞かせを再開できるよう、没入型でパーソナライズされた方法で物語を語れるようにするというアイデアが浮かびました。 こうして TaleMe は誕生しました。

利用シーンを考えると、アプリはモバイルであるべきだとすぐに気付きました。子どものベッド脇やリビングのソファで物語を読むのにこれほど適したものはありません。ユーザー体験を最適にするには、ウェブアプリよりもモバイルアプリであることが重要でした。

ここからは Flutter に戻ります。

Flutter とは何か?

Flutter は Google によって作られたマルチプラットフォームアプリを作るための SDK/フレームワークです。Web、デスクトップ、モバイルにデプロイできます、すごい!

Flutter の開発には、Google が作ったプログラミング言語 Dart を使う必要があります。 言語の当初の目的の一つは JavaScript の代替を提供することでしたが、コミュニティにはあまり受け入れられませんでした。最終的に言語は複数のターゲット向けにコンパイルできることに注力する方向に進みました(実際には明らかに Flutter が主導しています :D)。 TypeScript や Java のような型付き言語を知っているなら、すぐに馴染めるでしょう。 コードではどうなるかというと、コンポーネント(widget と呼ばれる)が階層的に入れ子になっていく仕組みがあります。(React と同様です)

一番重要なのは、本物のネイティブモバイルアプリのような、滑らかで高性能なアプリに近づけるということです。

第一印象

第一印象は重要で、Flutter に関しては一目惚れでした。(すみません)

もっと真面目に言うと、ドキュメント、エコシステム、コミュニティといった要素は、たとえPoCでもプロジェクト開発に着手する前に重要な指標です。

現状では主に react-native と Kotlin Multiplatform が見られます。私の考えは次のとおりでした:

  • React-native は良いし、ツールや概念の一部はすでに知っています。でも JS ベースなので、同じことをする代替パッケージが数え切れないほどあって面倒です。毎日のようにライブラリを変えたくはありません。
  • Kotlin Multiplatform は有望ですが、やや若くて十分な実績がありません。Kotlin は Dart ほど惹かれません、好みの問題です。
  • Flutter は良い妥協点です。実績のあるフレームワークで、多くの真面目な企業が使っている(サイト上のデモを見る限り)し、かなり成熟しています。コミュニティは JS のそれよりずっと小さいですが、それでも非常に活発です。(つい数日前に Flutter Conf 2024 がありました)

いくつかの強みを挙げると:

  • ドキュメントは非常に良くできている。
  • Flutter とモバイルツールのインストールは明快です(Xcode/Android Studio の設定、エミュレータ、インスペクタ…)。
  • 必要な機能=パッケージ 🙏
  • ホットリロードは最高です。信じられないほど時間を節約できます。変更をして r または Shift-r を押すと、すぐに反映されます。本当に嬉しい。
  • コンポーネント(widget)のシステムは、すでに React を使っていれば瞬時に扱えるようになります。
  • ネイティブのパフォーマンスが得られ、本物のネイティブアプリをコンパイルします(Flutter アプリは Intel x64 でも ARM 命令でも機械語に直接コンパイルされます)

実績

前述のとおり、ネイティブのモバイル開発経験はゼロでした。

どのツールを使うか?どうやってアプリをビルドするか?ストアにどうデプロイするか?バージョン管理は?アップデートは?クラッシュは?アナリティクスは?テストは?環境の切り替えは?通知は?権限は?アプリ内課金やサブスクリプションは?・・・要するに、全部学ぶ必要がありました。

最初のバージョンをデプロイするのに(審査時間を含めて)4週間かかり、通知やアプリ内課金、サブスクリプションなどの機能を追加するのにさらに1か月かかりました。

ここでの趣旨は私のスキルを評価することではなく、Flutter が短時間で習得でき、十分に整備された道筋があるため、より重要なこと、つまり機能的で質の高いアプリを迅速かつ簡単に提供することに集中できるフレームワークであることを示すことです。

この経験談に興味があれば、いくつか提案があります:

  • TaleMe を試して感想を教えてください https://talemeapp.com ;
  • ストアにコメントを残して、私たちの認知を広げるのを手伝ってください ;
  • この投稿にコメントを残してください ;

Flutter や TaleMe における私たちの道のりについてもっと知りたい方は、ぜひフォローしてください。

参考資料

タグ

  • フラッター

  • ios

  • アンドロイド

  • 経験共有

この記事は

コメント

読み込み中...

Flutterでの経験報告 | DEMILY Clément