見出し画像

Flutterのすゝめ - 5

今回はこのNubankが行なった調査のコンディショナルなところの確認と、総括を行なってみたいと思います。

サンプルアプリ

彼らは評価のために、現在ライブのアプリの一部機能(画像はNubankのレポートから引用)を実際に開発しました。

画像1

メインスクリーンは2つ。ユーザーが入金する金額を入力し、その入金結果を表示するものです。画面としては少ないが、フロントエンドのアーキテクチャーも事前に定義し(画像はNubankのレポートから引用)、コンポーネントを実装しました。

画像2

・Navigator: Containerの表示/非表示、Container間のデータやり取り
・Containers: Viewをラップし、そのステート管理やバリデーションロジック、クリップボードへの貼り付けやサーバーサイドへのリクエストを実行
・View: レイアウト情報やボタン押下検知やenable/disable

開発者アンケート

開発者体験を評価するために、関わった開発者にアンケートをとっています。忙しい彼らに答えてもらう必要があるため、シンプルかつ少ない量の質問内容となっています。

快適性
・どのプラットフォームを使いましたか?(Flutter, RN, KN)
・快適に使えましたか?(5段階)
・IDEは快適でしたか?(5段階)
・エラーメッセージは読み易かったですか?(5段階)

生産性
・主観的にみて、生産性はこのPOCを通してどうでしたか?(5段階)
・コードベースでアーキテクチャーや構造を理解しやすかったですか?(5段階)

学習性
・ドキュメントの記載はわかりやすかったですか?(Yes, Somewhat , No)
・オンラインで調べても問題解決しなかったことはありましたか?(Yes, No)
・もしそうなら、どんな問題ですか?(自由記述)
・オンラインの情報の品質はどうでしたか?(5段階)
・ラーニングカーブでいうとどんな感じですか?(5段階)
・同様の作業をまたしないといけない場合、どのぐらい次はできそうですか?(5段階)

総括

総じてNubankは開発者体験を重視し、その結果がFlutterという選択肢であったのだと思います。開発者体験において何度も出てきたのが「依存性/dependency」。ことReact Nativeにおいては、コア以外の多くはコミュニティーにより開発されるものであり、なおかつコアも薄いので、普通の画面開発やテストに必須なものも3rd partyに依存してしまっています。従って、諸々OSのバージョンが上がったりすると、それぞれが動くかどうか確認/対応する時間がかかるために、後々面倒が起こる可能性があります。

React Nativeで起こっていることは、月日が立ってコミュニティが成熟したが故のことであって、後々Flutterも同じ道を辿るものでしょうか?ここはGoogleのポリシーによるのでしょうね。重要なところは引き続き自分たちでグリップするのか、コミュニティに移管するのか。現在のところはReact Nativeではコミュニティでサポートされているようなところも(画面遷移やテストフレームワーク等)、Flutterではコアに内包されているようです。

このNubankのケースのtake awayとしては、自社にとって重要となる評価項目を優先度つけて洗い出すことから始めたのは、彼らにとって単なるジェネリックな星取表ではわからないインサイトになったと思います。また、Flutterのテストを中心としたインフラの充実さや、3rd partyとの依存性の範囲は、様々な観点の中でも注目するポイントに感じました。

この記事が気に入ったらサポートをしてみませんか?