2020年にネイティブアプリを開発する方法

画像出典:Photo by Joel Filipe on Unsplash

開発

タグ アプリ開発 Swift UI Flutter Swift Dart

去年2019年にネイティブアプリを開発する方法という記事を書きました。

その中では

  1. ネイティブ言語、ネイティブプラットフォーム
  2. React Native
  3. Flutter

の3つの方法を紹介していました。

2020年はどういう感じになりそうか、という実感を書いておきたいと思います。私はAndroidの開発方法については詳しくないので触れません。

選択肢としては、

  1. Flutter
  2. ネイティブ言語、新しいフレームワーク(Swift/SwiftUI)
  3. ネイティブ言語、従来のフレームワーク(Swift/UIKit)

という感じかなと思っています。

ちなみにGoogleトレンドで、Flutter, React Native, SwiftUIを比較してみるとこんな感じです。 Compare

期間は2018年1月1日から2019年12月31日です。2019年9月~10月ごろにFlutterがReact Nativeを超えてきているような感じでしょうか。SwiftUIはWWDC直後は増えているもののここ最近は横ばいのようです。

1. Flutter

Flutter

FlutterはiOS, Android, Web, Desktopのクロスプラットフォームな環境に対してネイティブアプリを開発できるGoogle製のフレームワークです。プログラミング言語はDartを採用しています。

Flutterは2019年とても勢いがあったように感じました。2019年QiitaのアドベントカレンダーでもFlutterが購読数1位だったようです。

Qiitaのモバイルのカレンダーランキング

Flutterでは、WidgetとDartのStreamを組み合わせるBLoC(Business Logic Components)パターンというアーキテクチャが主流のようです。

このビデオがわかりやすかったです。

Google IOのビデオ Build reactive mobile apps with Flutter (Google I/O ‘18)

こちらの記事も Getting Started with the BLoC Pattern

これまでのクロスプラットフォームアプリ開発のフレームワークとは違った盛り上がりを見せているな、と言う印象のFlutterですが、2020年どうなるか注目です。

開発したアプリではBLoCパターンは使っていなかったので今後このパターンを使いつつ、個人でもFlutterでアプリ開発をしていきたいと思います。

2. ネイティブ言語、新しいフレームワーク(Swift/SwiftUI)

SwiftUI Appleのサイトからスクリーンショット

WWDC2019で突然発表されたUIフレームワークがSwiftUIです。

ついに公式で宣言的シンタックスがサポートされました。

ReactやFlutterと同様、コンポーネントを組み合わせてViewを作っていく方式で、Stateの管理などもSwiftUIとCombineフレームワークでうまくできるようになっています。

個人的にリファレンスになるリポジトリはこちらのMovieSwiftUIです。

MovieSwiftUI

2019年にSwiftUIでアプリを1つ開発しましたが、コンポーネント指向でかけるところはいいものの、想定外の動きをする場合があったりして、もっとチップスが色々共有されてくるといいですね。

2020年、大規模で複雑なアプリをSwiftUIで作るのはまだ難しい部分もあるかもしれませんが、先取りで挑戦していく価値はあると思います。小規模なアプリならお試しで使ってみるのもいいと思います。

もっとSwiftUIネイティブのコンポーネントが増えてくると便利になってくるでしょう。 とはいえ、Twitter上ではiPodをSwiftUIでiOS上に再現された方もいて、うまく作ればかなり高機能なアプリも開発できます。

3. ネイティブ言語、従来のフレームワーク(Swift/UIKit)

Swift

2020年でもネイティブアプリを開発するにはこれが一番シンプルな手段だと思います。

SwiftUIが発表されたものの、既存のアプリはまだほとんどUIKitベースでしょうし、UIKitでできていたことがSwiftUIだとなかなかできない、といったこともまだあるかなと思います。

既存のアプリがあったり、大規模になりそうなアプリを開発していくならUIKitにしておく方が安全かもしれません。とはいえ長期的に考えるとSwiftUIに移行していくと思うので、部分的にSwiftUIを導入するとか、SwiftUIに移行しやすい形でUIKitで開発する、という方法がバランス的に良さそうです。


以上、2020年にネイティブアプリを開発するオススメの方法を3つ紹介してみました。

新しい開発方法は色々と出てくるものの、開発者として開発していて楽しいものを選ぶことが大事だと思います。

もちろん食わず嫌いはよくないので、どのフレームワークも学んで試した上で、最近の潮流も含めどれが自分に合うかを見極めていけばいいと思います。


オススメ記事