SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

キーパーソンインタビュー(AD)

Flutterによるアプリ開発は今後一般的に、それでも導入事例が少ない理由とは? 内製化支援を行うゆめみが解説

  • このエントリーをはてなブックマークに追加

Flutterによるクロスプラットフォーム開発が一般化していく理由とは

 ではなぜ、ゆめみはFlutterを活用したクロスプラットフォームでのアプリ開発が一般化されると考えたのか。

 「ネイティブアプリ開発だとiOSやAndroidなどプラットフォームごとにコードを書く必要があるが、Flutterだと1ソースで、Android、iOS対応はもちろん、Webやデスクトップ対応も可能となるため、Flutterの習熟度にもよるが開発工数を半分近く減らすことも不可能ではない。どのような案件でも仮に同じ品質なら、工数がかからないに越したことはない。だからクロスプラットフォームは魅力的に映る。クロスプラットフォームフレームワークといってもXamarinやReact Nativeなどいろいろあるが、Flutterはそれらの中でも開発体験が良い   という評価を受けている。だからFlutterが一般化していくと考えたのだと思います」(小野氏)

 また室山氏は「これまでも、開発者に限らずプロダクトオーナーも含め、プラットフォームごとに開発するのではなく、一つのコードで複数プラットフォーム向けにアプリを提供できないか挑戦してきました。というのも、モバイルアプリユーザーの目が肥え、顧客の要求レベルも高まっているものの、その一方で開発費用が大きくなるわけではありません。費用対効果が重視される傾向にある中で、クロスプラットフォームフレームワークに注目が集まるのは自然な流れだと思います。またクロスプラットフォームフレームワークを採用することで、複数プラットフォーム向けにおける開発体験が統一されます」(室山氏)

 Flutterを使う最大のメリットである「開発体験の良さ」には具体的にどんな特徴があるのか。

 「ホットリロード機能はその代表例です」と小野氏。ホットリロード機能とはコードの変更を瞬時にUIや動作に反映させるというもの。一般的にiOSやAndroidネイティブアプリ開発では、コーディング後にビルドして実行し、UIや動作を確認する。その確認までの時間が「プロジェクト規模によるが、短いもので数十秒、長いものだと数分かかることもある」と小野氏は言う。だが、Flutterであれば、コードを変更してホットリロードをかけると、数秒程度で反映されるのだ。「ネイティブアプリの開発に比べ、開発と確認のサイクルが非常にスムーズになります。私の場合、UIを2~3倍の効率で組むことができました」(小野氏)

 またFlutterは他のクロスプラットフォームフレームワークに比べ、ビルド周りのトラブルが少ないのも特徴だという。「Flutterを使うことで、余計な時間を使うことがなくなり、開発のストレスが少ないです」(小野氏)

 FlutterはOSSなので、コードを書いているときにその動作がよく分からなくても、ソースを見れば理解が進む。例えばiOSのネイティブアプリ開発に欠かせないUIKitフレームワークだとブラックボックス化しており、うまく動かないときに勘に頼るような工夫が必要になることもある。Flutterではそういうことが発生しづらい、自信を持って確実な処理が書けるという。

 小野氏のこの意見に室山氏も大きくうなずく。「モバイルアプリの開発では、UIの実装は避けて通ることはできません。ホットリロード機能の提供により、FlutterはUIの構築が非常にやりやすい。Androidの世界でもインスタントランという、似たような機能を導入しようとしたが、動作がバギー(バグが多い)で開発体験が悪く、使われなくなりました。そのほかにも、Flutterの開発体験の良さに貢献しているのが、公式ドキュメントの充実度。Flutterは公式ドキュメントを読めば、理解できるという信頼感があります。また開発コミュニティも活発に活動しており。そこで提案され、議論された内容が本体に取り入れられるというエコシステムもできています」(室山氏)

 Flutterで開発をしていて、「仕様的にできないこと、苦手なことはほとんどない」と小野氏。ネイティブの処理をする大抵のプラグインはすでに用意されており、たとえなくても、自分でネイティブの処理を書き、Flutterのコードとつなげればなんとかなるという。「多少手間がかかることがあっても、Flutterのせいで開発が行き詰まるような事態に陥ることはありません」(小野氏)

コスト面でも優れるFlutter、それでも導入が進んでいないワケ

 Flutterで得られるメリットは、このような技術面だけではない。クロスプラットフォーム対応による、さまざまな観点での工数削減というビジネス面でのメリットもある。一つのコードでiOS、Android双方のアプリが開発できるというコストメリットに加え、教育コストも「Flutterの開発言語であるDartは癖がなく馴染みやすいので、容易に習得できると思います」(小野氏)と言うように、人材育成にかかるコストもKotlinやSwiftよりも低減できるのではと指摘する。また室山氏は「Dartであれば、Javaエンジニアからの移行は比較的容易にできるはず」と言う。「Flutterは人的リソースが有効に活用できる技術だと思います」(室山氏)

 iOS、Androidのネイティブアプリ開発者が移行する場合、「多少、戸惑いがあると思う」と小野氏、室山氏は口を揃える。Dartは習得が簡単と話したが、Swift、Kotlinと比べると機能面ではやや劣るからだ。とはいえ「Flutterの成長に伴い、Dartも活発な進化を遂げている」と小野氏。例えばnull安全はその一つで、小野氏が触れた当初はそこに不満があったが、今は対応されている。「唯一、不満点があるとすれば、Kotlinのデータクラスのような仕組みがないこと。それが備われば、元々愛用していたSwiftと比べてトータルで実用上不便に感じることは個人的にはほとんどないレベルです」(小野氏)

 技術的、ビジネス的にもメリットのあるFlutterに対する関心は高まっているものの、導入がスムーズに進んでいないこともある。その背景にあるのが「Flutterに精通したモバイルエンジニアが少ないこと」と小野氏は言う。使ったことのある開発者は増えているが、本格的なプロダクション経験を積んだFlutterエンジニアはあまり市場にいないからだ。室山氏も「モバイルエンジニアは自社プロダクトを抱えている有力な企業に属しているケースが多い印象。だから習熟したFlutterエンジニアを探すのはハードルが高い。Flutterは学習ハードルが低い技術なので、社内でできる人を増やしていくアプローチがふさわしい。そういう企業を支援するために、当社はFlutterを活用した内製化支援サービスの提供を開始したのです」(室山氏)

内製化支援サービスでFlutter開発を自走できる組織に

 同社の内製化支援サービスは次のようなメニューが用意されている。

  1. モバイルアプリ技術選定支援(Flutterを採用するかどうか含めたモバイルアプリ開発における技術選定などの支援)
  2. デザイン支援(「人間中心設計」の考え方を取り入れたサービス設計から、Flutterに即したUIデザインの作成まで幅広く支援)
  3. 開発内製化体制(Flutterエンジニアによる開発の内製化支援。部分的にネイティブアプリの技術が必要な場合にも対応)
  4. グロースハック(データ分析を行った上で、グロースハックの支援)

 「このサービスはお客さま内でFlutterを活用した開発が自走できるようにするのがゴールです。例えば開発内製化体制というサービスでは、新規アプリ開発の立ち上げを支援するだけではなく、既存アプリの開発支援の場合は、既存資産を生かしてFlutterに移行していくことを支援します」(室山氏)

 開発体制内製化の支援でも、Flutterに習熟したエンジニアがいる/いないでアプローチは変わる。まず、Flutterに習熟したエンジニアがいない企業には「2つのアプローチがある」(小野氏)という。一つはプロトタイプ、もしくはリスクの低い社内アプリから採用し始める方法。「実際に作りながら、学んでいくという方法です」(小野氏)

 2つ目は工数を本来の1.5~2倍確保して取り組む方法。「前半は学習フェーズと割り切り、壊すことになっても良い前提で作ります。勘所をつかんだところで、必要に応じて作り直すのです。いずれにしてもいきなり本格的なプロダクション開発に採用してしまうと、途中で破綻したり、バグだらけで収拾がつかなくなったり、うまくいかなくなりがちです」(小野氏)

 習熟したエンジニアがいる場合は、「その人にプロジェクトをリードしてもらい、さらにゆめみがサポートすることで、他のメンバーはプロジェクトを進めながらFlutterを効率良く習得していけると思います」と小野氏。

 今後、ますますモバイルアプリ市場は活性化していく。異なるデバイスのアプリを一つのコードで開発できるクロスプラットフォームフレームワークの活用が加速していくことは間違いない。そしてFlutterは数あるクロスプラットフォームフレームワークの大本命ともいえる。

 「ゆめみの内製化支援サービスを通して関わる開発者のFlutter習熟度を高め、私がサポートする余地のないぐらいの人材を多数、育成していきたいですね。そのためには私自身もさらにFlutterの習熟度を高め、知見提供に貢献したいと思います」(小野氏)

 「Flutterの採用を検討する企業はこれから増えていくと思います。ゆめみもFlutterを推していく。その結果、Flutter界隈、ひいてはモバイルアプリ界隈が盛り上がり、モバイルアプリ市場が拡大することで、関わる全員にとってハッピーな未来を迎える。内製化支援サービスでそんな未来に導きたいと思います」(室山氏)

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
キーパーソンインタビュー連載記事一覧

もっと読む

この記事の著者

中村 仁美(ナカムラ ヒトミ)

 大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15362 2022/02/14 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング