Mediumに書いた記事の日本語版となります。
2020/01/01追記 2020はこちら 2020年にネイティブアプリを開発する方法 —
AppleがAppStoreを開始してから10年が経ちました。たくさんの人々がアプリを使っていますし、2019年もこのアプリプラットフォーム上で多くのイノヴェイションが生まれると思います。
これまで様々なプラットフォームで色々なフレームワークを使ってアプリを開発してきました。今はSwiftでiOSアプリを開発していますが、過去にはWindowsアプリを開発していたり、ReactやVueといったフレームワークでWebアプリを開発したり、ReactNativeやFlutterでマルチプラットフォーム向けのネイティブアプリを開発したりしました。過去数年の間に、色々なツールが出てきては消えていきましたが、2019年にアプリを開発するとしたら以下の3つかなと思っています。
1. ネイティブ言語、ネイティブプラットフォーム
iOSだと、Swift(かObjective-C)、Xcode、UIKitです。
Androidだと、Kotlin(かJava)、AndroidStudio(か他のIDE)、Android SDKです。
2019年でもネイティブアプリを開発するにはこれが一番シンプルな手段だと思います。
ツールやSDKや開発言語は公式でサポートされていて、それぞれ統合されていますし、最新のAPIを使ったりするのももちろん簡単にできます。フレームワークのバージョンを管理する手間や、よくわからないエラーに悩まされることもありません。それにデバイスに最適化されたUXを開発することにフォーカスすることができます。
ただ、ずっと言われているように、iOS,Androidの両方のプラットフォームそれぞれにアプリを開発する必要があります。
2. React Native
React NativeはiOS, Androidのマルチプラットフォームに対してネイティブアプリを開発できるFacebook製のフレームワークです。
React NativeはReactと同じコーディングスタイルなので、JavaScriptやReactをよく知っているWeb開発者のかたは取り組みやすいと思います。Reactを知らない場合は、まずReactを学ぶ必要があります。
Reactで有名なアーキテクチャはReduxのようなFluxアーキテクチャで、スケーラブルなアーキテクチャでアプリを開発していきたい場合には、アーキテクチャやライブラリについても学ぶ必要があります。その分時間はかかります。
3. Flutter
FlutterはiOS, Androidのマルチプラットフォームに対してネイティブアプリを開発できるGoogle製のフレームワークです。ネイティブアプリだけでなくWebアプリも開発できるようです。
Flutterは2018年に多くの開発者に注目されたと思います。私も去年Flutterでアプリを開発しました。
FlutterのコーディングスタイルはReactに似ていて、コンポーネントベースのUI(Flutterではウィジェットと言います)、ホットリロード、マルチプラットフォームなどが特徴です。
が、Flutterのもっとも特徴的な点はDartを開発言語として採用している点だと思います。(Go言語ではなく
Flutterでアプリを開発するまではDartは書いたことがありませんでしたが、C#、Java、JavaScriptなどの経験があればDartを書くのは難しいことではないと思います。
Flutterはマテリアルデザインのスキャフフォールディング(テンプレート機能のようなもの)があるので、マテリアルデザインのアプリを作りやすくなっています。2019年新しいアプリを開発するならFlutterは考慮する価値があると思います。
以上、2019年にネイティブアプリを開発するオススメの方法を3つ紹介してみました。
私としては長期的な視点で開発する場合には、やはり 1. ネイティブ言語、ネイティブプラットフォームがいいかなと思います。React NativeやFlutterはプロトタイピングに向いていると思っています。というのも、すぐに綺麗なアプリを作ることはできますが、スケーラブルなアーキテクチャ設計にするのはなかなか難しいのではと思うのと、最新のAPIに追従していくのが難しいと思うからです。
ただ、開発者として開発していて楽しいものを選ぶことが大事だと思います。
エンジニアリング アプリ開発 Swift React Native Flutter
関連記事
-
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
-
2020/6/23
WWDC2020キーノートまとめ
WWDC2020 キーノートまとめ
WWDC2020 Apple アップル iOS macOS watchOS tvOS
-
2020/5/31
GitHub Pagesで無料ブログを作成する - Part4 自分のオリジナルのテーマを作る
Jekyllでは既存のテーマを使うこともできるのですが、さらに一歩踏み込んで、自分で既存のテーマをカスタマイズしたり、テーマを作ることもできます。
GitHub Pages ブログ
-
2020/5/28
GitHub Pagesで無料ブログを作成する - Part3 Jekyllの設定をカスタマイズする
前回の記事では、Jekyllのテーマを利用する方法と記事を追加する方法を紹介しました。今回はさらにJekyllをカスタマイズしていきますが、確認を簡単にするためにまずJekyllをローカル環境で実行する方法を紹介します。
GitHub Pages ブログ