モバイルアプリ開発において、第一のハードルは iOS に対応するのか、Android に対応するのかを選ぶことかと考えていました。
しかし、最近ではモバイルアプリ開発におけるクロスプラットフォーム対応可能なフレームワークが賑わっている印象です。
HTML5による開発
クロスプラットフォーム(iOS/Android)対応可能な開発環境といえば、CordovaをはじめとするHTML5による開発フレームワークかと思っていました。
HTML5によって、iOSでもAndroidでも見栄えの良いUIを提供できるという一方で、基本的にはWebView上で動作するアプリケーションになるかと思います。
WEBアプリケーションでも近年のスペックが高いスマートフォンでは高速に感じられる様になったかと思います。
ただ、ネイティブなUIなどが利用できず、コアな機能を必要とする場合には力不足かな...と敬遠していました。
ネイティブ開発環境
そんな中、モバイルアプリ開発の案件を対応した際に、「React Native」という開発環境の存在を知りました。
だいぶ以前から、Facebookが開発しており、様々な有名サービスで採用されていることから話題になっていたかと思います。
実際に利用してみると、非常に便利で簡単にアプリ開発を行うことができます。
特に「ホットリロード」によるリアルタイム開発やJavaScriptによる比較的手軽なコーディングも敷居が低い印象です。
しかし、最近ではReact Native離れがあるらしく、選定対象としては外れている一面もある様です。
ただし、React Native離れがある一方で、React Native自体は成長を続けており、今後も需要の高い存在になる様に感じます。
トレンドとなる開発環境
しかし、新たにサービスを開発するならばネガティブな印象の少ない開発環境を選びたい物です。
React Nativeは既存サービスが撤退することが目立っており、「大丈夫かな?」と感じてしまいます。
そこで、対象になるのがGoogleが開発する「Flutter」です。
モバイルアプリ開発における課題の一つと考えているのは「UI」の一貫性です。
FlutterにおいてはGoogleが提唱する「マテリアルデザイン」を踏襲したUIコンポーネントを利用することで、一貫性のあるUIデザインが可能と考えます。
多くの開発者は「機能」を満たすことはできるかもしれません。
しかし、デザインやエクスペリエンスといった部分についてはデザイナーの様な専門家の存在も必要になってきます。
Flutterとマテリアルデザインによって、デザインに対する意識を学びながら開発が行えるともいえます。
デザインを意識しない開発
様々なデザインの考え方がある中で、「マテリアルデザインで作りましょう」と提示されることにより、機能の開発に専念できます。
困ったときには「マテリアルデザインとは何か」を調べながら進めれば良いのではないでしょうか。
Flutterによって組織による開発だけではなく、個人でのモバイルアプリ開発も捗る印象です。
UIのデザインとはセンスが問われる物であったりします。
それらのセンスがある一つの指針(マテリアルデザイン)の中で解釈することとなり、目指すべきサービスの方向性も見えてくるかもしれません。
新しいサービスや仕組みを思いついてもそれらを生かすUIデザインも必要になるのが亜rプリ開発です。
Flutterによって敷居は下がるのかと思います。
まだまだ発展途上
ただし、Flutterはまだまだ発展途上の様です。
例えば、React Nativeと比べるとできないことがあったりします。しかしながら、開発は非常に活発でそれらは時間の問題です。
Flutterの開発に注目していれば、いずれ必要な物が提供されそうです。
それらは時間の問題かと考えます。
開発者はFlutterによる開発を積極的に取り入れて一つのスキルとして十分な物になりそうに感じています。