Reflectly の Flutter で、Android と iOS の美しいモバイル エクスペリエンスをすばやく開発

Reflectly は人工知能を使って、ユーザーが日々の考えや問題を構造化して振り返ることができるようサポートします。日記をあらゆるケースに使える万能のアプローチではなく、Reflectly がユーザー一人ひとりに合わせた日記エクスペリエンスを提供することで、リピート利用を促し、メンタルヘルスを日常生活の一部にするよう促しています。

Reflectly が iOS で初めてリリースされたとき、アプリの Android バージョンに大きな関心がありました。小規模なチームは、2 つのプラットフォームをサポートすること、増え続けるユーザーベースに高速で一貫性のある優れたエクスペリエンスを提供することに関して多くの課題に直面していました。Reflectly がその美しいデザインとユーザー エクスペリエンスを自慢していることを考えると、チームが新しいソリューションを見つける必要があることは明らかでした。

実施内容

大きな問題があったにも関わらず、Reflectly iOS アプリは短期間でユーザーベースを構築していました。6 か月かけて既存の実装を修正し、コードベース全体を放棄してゼロから始めることに決めました。

当初、最も安全なソリューションは 2 つの新しいネイティブ アプリを構築するように見えましたが、エンジニアが 2 人だけではうまく機能しません。「Android アプリを別に構築する余裕がなかったので、アプリをシャットダウンするか放棄するかを真剣に検討し、iOS アプリに集中しました」と、共同創設者で CTO の Daniel Vestergaard 氏は語ります。

そのときに、チームは Flutter を見つけました。「少しの間 Flutter を試した後、チームはクロス プラットフォームの整合性、ほぼ瞬時にステートフルなホットリロード、プラットフォームの優れたツール、高パフォーマンスに魅了されました」と、CTO で共同創業者の Daniel Vestergaard 氏は述べています。また、チームは Flutter の「簡単で読みやすく、ドキュメントが充実しているコード」も高く評価しています。

その時点で、同社はすぐに本題に入ることにしました。Reflectly の 2 人のエンジニアが Flutter コードの最初の行を作成してからわずか 2 か月半で、Reflectly 2.0 が Android と iOS の両方に同時にロールアウトされ始めました。その間に、アプリを完全に書き換えられただけでなく、プレミアムな定期購入全体の実装やカスタムの状態管理ソリューションなど、いくつかの大規模な新機能も開発できました。

結果と知見

Reflectly 2.0 にはさまざまな Android デバイスと iOS デバイスのユーザーから多くの肯定的なフィードバックが寄せられ、その多くがアプリの新しい洗練されたデザインとデザインを高く評価しています。Flutter で再リリースされた Android Reflectly のアプリは、Play ストアでの星の数の平均 3.2 から平均 4.3 に上昇しました。これは、Apple の「New Apps We Love」のリストにも掲載されました。当初の低評価の原因は、主にクラッシュ、ジャンク、見た目の不一致があったため、Flutter で解決できたと考えています。「要するに、平均評価の改善、そして [Flutter リリース] 後の Android ダウンロードが数十万件(場合によっては数百万件)増加したのは、Flutter によるものだと考えています。なぜなら、アプリを保持し、動作を安定させ、iOS と同等の機能を持つことができたからです」と、Vestergaard 氏は述べています。

Flutter はすべてのピクセルを直接ペイントするため、チームはプラットフォーム間のレンダリングの違いを気にする必要はありませんでした。これにより、共通のコードベースを維持しながら、必要に応じて iOS と Android 固有の UI を記述できます。また、開発チーム全体で単一の質の高い体験に専念できるようになった今、Reflectly は開発時間を 50% 短縮し、隔週のリリースから週 1 回のリリースに移行して、両方のプラットフォームで同時に新機能をリリースできるようになりました。

Flutter について

Flutter では、誰でも 1 つのコードベースからあらゆる画面用の美しいアプリを構築、テスト、デプロイできます。今すぐ始めましょう