去年2019年にネイティブアプリを開発する方法という記事を書きました。
その中では
- ネイティブ言語、ネイティブプラットフォーム
- React Native
- Flutter
の3つの方法を紹介していました。
2020年はどういう感じになりそうか、という実感を書いておきたいと思います。私はAndroidの開発方法については詳しくないので触れません。
選択肢としては、
- Flutter
- ネイティブ言語、新しいフレームワーク(Swift/SwiftUI)
- ネイティブ言語、従来のフレームワーク(Swift/UIKit)
という感じかなと思っています。
ちなみにGoogleトレンドで、Flutter, React Native, SwiftUIを比較してみるとこんな感じです。

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

FlutterはiOS, Android, Web, Desktopのクロスプラットフォームな環境に対してネイティブアプリを開発できるGoogle製のフレームワークです。プログラミング言語はDartを採用しています。
Flutterは2019年とても勢いがあったように感じました。2019年QiitaのアドベントカレンダーでもFlutterが購読数1位だったようです。
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)
Appleのサイトからスクリーンショット
WWDC2019で突然発表されたUIフレームワークがSwiftUIです。
ついに公式で宣言的シンタックスがサポートされました。
ReactやFlutterと同様、コンポーネントを組み合わせてViewを作っていく方式で、Stateの管理などもSwiftUIとCombineフレームワークでうまくできるようになっています。
個人的にリファレンスになるリポジトリはこちらのMovieSwiftUIです。
2019年にSwiftUIでアプリを1つ開発しましたが、コンポーネント指向でかけるところはいいものの、想定外の動きをする場合があったりして、もっとチップスが色々共有されてくるといいですね。
2020年、大規模で複雑なアプリをSwiftUIで作るのはまだ難しい部分もあるかもしれませんが、先取りで挑戦していく価値はあると思います。小規模なアプリならお試しで使ってみるのもいいと思います。
もっとSwiftUIネイティブのコンポーネントが増えてくると便利になってくるでしょう。 とはいえ、Twitter上ではiPodをSwiftUIでiOS上に再現された方もいて、うまく作ればかなり高機能なアプリも開発できます。
Turned my iPhone into an iPod Classic with Click Wheel and Cover Flow with #SwiftUI pic.twitter.com/zVk5YJj0rh
— Elvin (@elvin_not_11) November 27, 2019
3. ネイティブ言語、従来のフレームワーク(Swift/UIKit)

2020年でもネイティブアプリを開発するにはこれが一番シンプルな手段だと思います。
SwiftUIが発表されたものの、既存のアプリはまだほとんどUIKitベースでしょうし、UIKitでできていたことがSwiftUIだとなかなかできない、といったこともまだあるかなと思います。
既存のアプリがあったり、大規模になりそうなアプリを開発していくならUIKitにしておく方が安全かもしれません。とはいえ長期的に考えるとSwiftUIに移行していくと思うので、部分的にSwiftUIを導入するとか、SwiftUIに移行しやすい形でUIKitで開発する、という方法がバランス的に良さそうです。
以上、2020年にネイティブアプリを開発するオススメの方法を3つ紹介してみました。
新しい開発方法は色々と出てくるものの、開発者として開発していて楽しいものを選ぶことが大事だと思います。
もちろん食わず嫌いはよくないので、どのフレームワークも学んで試した上で、最近の潮流も含めどれが自分に合うかを見極めていけばいいと思います。
エンジニアリング アプリ開発 Swift UI Flutter Swift Dart
関連記事
-
2026/5/6
AIで個人アプリの開発を再開してみました
-
2025/9/21
iOSDC Japan 2025に参加しました
iOS
-
2025/3/28
Macのストレージに空き容量があるのに、実際には空き容量がない状態になっているとき
Mac Storage
-
2024/3/24
try! Swift Tokyo 2024
try! Swift Tokyo 2024の参加メモ
Swift
-
2023/1/31
SwiftUIでTabBarを非表示にする
SwiftUI TabBar
-
2023/1/14
Bootstrap5.3で追加されたダークモードに対応してみました
Bootstrap DarkMode
-
2021/2/17
brew upgradeで Your CLT does not support macOS 11というエラーがでた
homebrew macOS Big Sur
-
2020/12/1
Apple Silicon搭載 MacBook Pro M1で Homebrewとrbenvをインストールする
先日購入したApple Silicon搭載 MacBook Pro M1にこのブログをビルドするためにHomebrewとrbenvをインストールしたのでメモ。
Apple Silicon Homebrew rbenv
-
2020/11/27
Apple Silicon搭載のMacBook Pro M1が危うく文鎮化するところだったので記録
Apple Silicon搭載のMacBook Pro 13インチを仕事用に購入したのですが、クリーンインストールしたところ文鎮化しかけたので記録しておきます。
MacBook Pro Apple Apple Silicon M1
-
2020/6/23
Platform State of the Unionまとめ
Platform State of the Unioまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS