開発
タグ アプリ開発 Swift UI Flutter Swift Dart
去年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つ紹介してみました。
新しい開発方法は色々と出てくるものの、開発者として開発していて楽しいものを選ぶことが大事だと思います。
もちろん食わず嫌いはよくないので、どのフレームワークも学んで試した上で、最近の潮流も含めどれが自分に合うかを見極めていけばいいと思います。
オススメ記事
-
2020/12/1開発
Apple Silicon搭載 MacBook Pro M1で Homebrewとrbenvをインストールする
先日購入したApple Silicon搭載 MacBook Pro M1にこのブログをビルドするためにHomebrewとrbenvをインストールしたのでメモ。
-
2020/11/27開発
Apple Silicon搭載のMacBook Pro M1が危うく文鎮化するところだったので記録
Apple Silicon搭載のMacBook Pro 13インチを仕事用に購入したのですが、クリーンインストールしたところ文鎮化しかけたので記録しておきます。
-
2020/6/23開発
Platform State of the Unionまとめ
Platform State of the Unioまとめ
-
2020/6/23開発
WWDC2020キーノートまとめ
WWDC2020 キーノートまとめ
-
2020/5/31開発
GitHub Pagesで無料ブログを作成する - Part4 自分のオリジナルのテーマを作る
Jekyllでは既存のテーマを使うこともできるのですが、さらに一歩踏み込んで、自分で既存のテーマをカスタマイズしたり、テーマを作ることもできます。
-
2020/5/28開発
GitHub Pagesで無料ブログを作成する - Part3 Jekyllの設定をカスタマイズする
前回の記事では、Jekyllのテーマを利用する方法と記事を追加する方法を紹介しました。今回はさらにJekyllをカスタマイズしていきますが、確認を簡単にするためにまずJekyllをローカル環境で実行する方法を紹介します。
-
2020/5/26開発
GitHub Pagesで無料ブログを作成する - Part2 Jekyllを使ってみる
JekyllはGitHub Pagesで使用することができる静的サイトのジェネレータです。Jekyllを使うことで、Markdownで書いたブログの記事やhtmlで作ったページをビルドして、公開用のhtmlとして生成することができます。
-
2020/5/24開発
GitHub Pagesで無料ブログを作成する - Part1 GitHubにリポジトリを作ってサイトを公開する
以前、GitHub Pagesでブログを運用し始めてから4年くらいたったというブログを書いたのですが、概要を書いただけで具体的な構築方法はあまり記述していなかったので、何回かに分けてブログを作っていく方法を書いていきたいと思います。
-
2020/1/3開発
FirebaseでCloud Storageに画像をアップロードする
今FirebaseとReactでアプリを開発中で、画像をアップロードする部分を作ったのでメモ。
-
2019/12/14開発
GitHub Pagesでブログを運用し始めてから4年くらいたった
このサイトはGitHub Pagesで運用しています。運用を開始してから4年くらいたったので、GitHub Pages運用のTipsでも書いておこうかと思います。
MasamichiUeta
ソフトウェアエンジニアです。ソフトウェアエンジニアリング、アプリ開発、趣味などについて書いてます