こんにちは、 NEXTSCAPE アプリチームの鈴木です。
今回はアプリチームで採用している、Flutter というマルチプラットフォームフレームワークについてご紹介します。主にアプリ開発の発注者(クライアント)向けに執筆していますので、よろしくお願いいたします。
そもそも Flutter とは
Flutter とは、Googleが開発している主にモバイルアプリ向けのオープンソースフレームワークです。1
したがって、「Android 、iOS 以外の第3のスマホが出た!」という訳ではなく、Android や iOS アプリを Flutter という仕組みで制作しているとご想像ください。2018年にリリースされた新しいフレームワークですが、後述する様々なメリットがあるため、弊社を含めて色々なアプリ開発会社が採用しています。
(もしかすると、普段皆様がお使いになっているアプリも Flutter 製かもしれません!)
メリット
アプリチームでは元々 Android と iPhone アプリを個別に制作しておりましたが、ここ2年ほどで積極的に Flutter を採用し始め、今後も基本的に Flutter を採用する方針です。それには下記のような理由があるためです。
1つのプロジェクトで Android と iPhone をそれぞれ作れる
アプリ開発会社、クライアント双方にとって一番大きいメリットだと思います。従来の方式では Android と iPhone アプリをそれぞれ開発やメンテナンスする必要があり、その分開発工数が増大していました。Flutter を採用した場合、Android と iPhone アプリを一元的に制作できるため、品質を落とさずに開発工数を削減できます。
以下に弊社での開発体制を掲載します。従来の方式よりコンパクトな体制になっていることが分かります。
Android と iPhone のリリースタイミングを合わせやすい
大きな機能のリリースなどで、Android と iPhone でリリースタイミングを合わせたいケースがあるかと思います。従来の方式ではそれぞれ開発しているため「Android は順調なのですが、iPhone が・・・」という事態が発生し、全体のリリース時期が遅れる可能性がありました。
Flutter を採用している場合、通常はリリース時期を同タイミングにしやすく、差異を最小限にできます。
デメリット
「メリットばかり強調されても・・・」と思われるかもしれません。ご懸念の通り、Flutter を採用する場合のデメリットも存在します。弊社ではそれを加味し、最終的には従来通りの開発手法を採用しますので、デメリットの影響が出ないようにいたします。
OS独自の機能は別途実装する必要がある
Flutter を採用した場合でも、全ての機能を一元的に制作することはできず、Bluetooth やカメラなどは従来通りの方法で作成する必要があります。それがプロダクトのメイン機能だった場合、従来よりも開発コストが増大してしまい、Flutter を採用する意味が薄れてきます。アプリチームでは事前にクライアントにヒアリングし、最終的に Flutter を採用するべきか判断します。
Flutter できる人を確保しにくい
こちらはアプリ開発側の都合ですが、Flutter が世に誕生して日が浅いため、通常のスマホエンジニアよりも採用しにくい傾向があります。また、チーム内で Flutter エンジニアが1人しか居ない場合、場合によっては開発がストップしてしまう恐れがあります。そのため、メリットは分かっているが中々採用できない場合もあります。
アプリチームではチームに熟練の Flutter エンジニアが複数名在籍していますので、組織的に安定して開発体制を維持することができますのでご安心ください。
STB2 ではスマホと操作感の差異があるため、利用しにくい
弊社では様々な STB アプリを開発していますが、全て従来の方式で開発しています。スマホアプリや Webアプリを作成できる Flutter ですが、STB アプリは対応していないケースや対応している or 採用するメリットが少ないためです。
おわりに
今回はアプリチームで積極的に採用している Flutter についてご紹介しました。
次回以降も Flutter やその他役立つ情報を提供できればと思いますので、今後ともよろしくお願いいたします。