2018年にリリースされた比較的新しいモバイルフレームワークの「Flutter」は、スマートフォンアプリの開発に特化しているフレームワークです。機能性と将来性の高さから、システム開発に導入するエンジニアも増えてきています。
Flutter開発の最大の特徴としては、iOSやAndroidなどスマートフォンのOSで利用することができるアプリケーションの開発が行える点です。一般的には主要OSであるiOSとAndroidにおいてアプリをリリースする場合、それぞれで開発を行う必要があります。しかしFlutter開発であればそれらを一度で開発できるなど、効率的なアプリ開発が可能になっています。
Flutter開発におけるプログラミング言語は「Dart」を使います。DartはGoogleによって開発された言語ですが、世界的に人気が高い「JavaScript」の設計を踏襲して作られています。言語としての人気はまだ高くありませんが、パフォーマンスとセキュリティ性の高さに優れており、JavaScriptと似た構文でのコーディングが可能です。そのため今後の普及を想定し、今から導入を進めている企業もあります。
Flutter開発の大きなメリットとしては、1つのコードでiOSとAndroid両方の開発が可能になるため、開発期間を短縮することが可能になります。また、コード量や作業工数が削減されることに伴い期間だけでなくコストも削減が可能です。
プログラムを書き換えたあと、即時にUIに反応させられる機能「ホットリロード」もFlutter開発のメリットです。プログラムを変更した際に、変更箇所を実機ですぐに確認することができるため確認に時間を要しません。
Flutter開発ではGoogleが推奨するマテリアルデザインを採用しており、プラットフォームに依存しない共通のUIデザインを可能にします。アイコンやアニメーションのデザインも豊富に用意されているため、視覚的に訴えかけるデザインにすることも容易です。
スマートフォンにおいて、一般的にデフォルトで搭載されているカメラやGPS、プッシュ通知などといった基本的な機能はFlutterと連携することが可能です。その一方でAndroidないしiOSで特有に機能を有している場合や、複雑な仕様かつ細かなカスタマイズが必要になるケースにおいては、それぞれのOSで個別に開発を進める必要が出てきます。
AndroidやiOSといったOSでは日々最新機能が更新されたり、新たな機能が追加されることがあります。Flutterにおいて、これらの最新機能やOSへの対応は基本的にリリース後となってしまうため、迅速な対応が難しいという現実があります。サービスによってはFlutterが向かないケースもあるため、事前によく検討を行ってから開発を進めるようにしましょう。
Flutter開発とネイティブアプリ開発の大きな違いとしては、やはりメリットでも挙げた「iOSとAndroidそれぞれで開発をしなくていい」という点があります。ネイティブアプリの開発においてはiOSとAndroidそれぞれでコーディングを行い開発する必要がありますが、Flutter開発では一度に両方へ対応するアプリケーションの開発を行うことができます。これによりさまざまな重複業務を削減することができ、大きなメリットを得ることができます。また、使用するコードも独特なものを使用はしていますが、広く認知されているJavaScriptを踏襲して開発されている「Dart」というプログラミング言語を使用するため、難易度はそこまで大きく変わりません。
異なるプラットフォーム上で同じ仕様のアプリケーションを動作させるクロスプラットフォームである「Flutter」が今注目を集めている理由としては、その利便性の高さやコストが挙げられます。「React Native」というフレームワークも同じくクロスプラットフォームの代表ではありますが、Facebookが手掛けるReact NativeよりもGoogleのFlutterの方が、より多くのプラットフォーム開発に対応している点やプラットフォームに依存しない共通のUIデザインを作ることが容易にできる点から、開発の利便性・コストといった優位性があるといえるでしょう。
「ほぼ日の學校」は、有名コピーライターの糸井重里氏が代表を務め、さまざまなコンテンツを企画・編集・製作・販売している企業「ほぼ日」が提供している動画コンテンツサービスです。アプリのリリース後、バラエティに富んだ講師陣の提供する多種多様な講義ラインナップに注目が集まり、既存ファンのほか新規ユーザーからも高評価を得ています。「日常的に楽しめるアプリ」として、多くのユーザーから好意的な意見が出ています。
参照元:https://monstar-lab.com/dx/portfolio/case_hobonichi/
リリースから10年が経過するじゃらんアプリのリプレイス事例です。開発においてはいくつかの課題に直面はしたものの、開発効率の向上と工数の削減という大きなメリットを得ることができています。開発工数のほか、要件検討工数・デザイン作成工数の削減も実現することができており、段階的移行を行っても大部分が共通化できているため移行コストも大きく削減できています。当該事例においては完全移行まで辿り着いてはいないものの、引き続きFlutterによる開発が進められています。
参照元:https://speakerdeck.com/rtechkouhou/flutteryi-xing-falseku-lao-to-cheng-riyue-etaxian-nide-raretamofalse
IT系人材に強みを持っている成功報酬求人メディア「Green」が提供しているAndroidアプリの事例です。他社でのプロダクト実績が増えてきていること、またアプリを作った経験のあるメンバーないしWebのフロントメンバーであれば少し勉強すればそこまで難しくないことから、Flutterによるアプリ開発に着手されました。2つの事業を掛け持ちし、初めての技術を使っているにも関わらず4か月でのリリースを実現したことも素晴らしい点です。
参照元:https://note.com/raykaga/n/n52c1ee039331
官公庁のための調査研究事業や民間へのマーケティング・コンサルティングなどを行っている日本能率協会総合研究所における、生衛業者に直接情報を届けるアプリ「せいえいNAVI」をリリースした事例です。iOSとAndroidそれぞれでのコードを用意する必要がないため、ワンリソースでの短期間開発を実現しています。さらにリリース後のメンテナンスコスト削減にも繋がっています。さらにフルリモートでも密な連携により、柔軟な対応で開発が進められた事例です。
参照元:https://www.techfirm.co.jp/cod/seieinavi
より人間中心の設計が求められる車の開発において、トヨタコネクティッドのエンジニアチームがUX/UIチームと連携し、コックピットなど次世代の車載コネクティッドシステムであるHMI開発に取り組んでいます。開発のしやすさや学習コストなどを軸に複数のフレームワークを比較検討した結果として、ウェブ開発者になじみやすいFlutterが採用されHMIの開発が進められています。
参照元:https://www.wantedly.com/companies/company_6327683/post_articles/319396