背景
スマホアプリを作ってはみたいが、色々作る手法がありどれが何が違うかが正直わからなかった。
事前に何で作るかどんなものがあるのかを調べたので簡単にまとめた。
前提
クロスプラットフォームでの作成は経験がないので
これから開発にチャレンジした後に、メリットデメリットについては追記する可能性がある。
あくまで現時点の認識した内容を書き留めているため、認識が違うところがあればリクエストください。
それぞれのぱっと見の特徴をあげているだけなので、記載粒度は比較のために粗くしてます。
筆者の経験度
Java,C#は現場経験あり。
AndroidJava,Swiftに関しては触りだけ勉強したことがあり。
kotlinはandroidJavaからConvertしたことがあるのでそこまで確認していない。
クロスプラットフォーム開発とは?
ワンソースで複数のプラットフォーム(iOS、Android)に対応したアプリを開発できる。
ここではスマホアプリ開発のことだけ書きたいので、スマホアプリ以外の対応プラットフォームについては省略。
ネイティブアプリ開発とは?
通常通りプラットフォームによりそれぞれ別の言語で開発が必要になり
ソースもそれぞれで管理することになる。
androidアプリ開発であれば、Kotlin。
iOSアプリ開発であれば、Swift。
のように別々でソースを作成するため、それぞれで同じ動作や表示を処理するためには別のソースで管理し、書き方ももちろん異なる。
クロスプラットフォームでの開発
flutter
開発言語:Dart言語も新しく覚える必要あり
動作確認方法:AndroidStudio,Xcode両方で準備必要
android動作確認:Android Studio、IntelliJ IDEA、Visual Studio Codeで対応可能
使う場合には拡張機能の設定が必要
iOS動作確認:コマンドライン上でそれぞれのIDEで読み込むためのアプリを作成して立ち上げる
Xamarin
開発言語:C#でそのまま開発できる
動作確認方法:VisualStduioだけで対応可能
ReactNative
開発言語:Reactベース
動作確認方法:AndroidStudio,Xcode両方で準備必要
android動作確認:このとき拡張機能で動作できるようにする
iOS動作確認:コマンドライン上でそれぞれのIDEで読み込むためのアプリを作成して立ち上げる
ネイティブアプリでの開発
開発言語:kotlinまたはSwift
androidアプリはAndroidStudio,iOSアプリはXcode両方に分けて開発が必要
動作確認も開発した環境で確認する
kotlinはJavaと親和性が高いため、AndroidJavaで書いたソースをkotlinに置き換える機能もある
最後に
今の段階ではそれぞれのメリデリは、その人の得意領域に寄りそう。
私であればC#のスキルがあるため、Xamarinで開発を始めるのがコストが少ないと感じた。