はじめに
以前 JavaScript で作成していたアプリを Android 向けにリリースしようかと考えています。
候補としては、Kotlin, ReactNative, Flutter の 3 つになります。
ということで、それぞれの特徴を調べて、自分用のメモとして以下に纏めてみました。
※これまでたくさんの方が比較されてきたかと思いますが、自分で書いてみた次第。
Kotlin
- Java Virtual Machine 上で動作するオブジェクト指向言語。
- Java と比較すると、簡潔で安全性が高い。
- Java と互換性が高い、JVM 言語の一種。
- Java のプログラムやJava用のライブラリ、フレームワークなどを流用できる。
- プログラム作成後はコンパイルして使用する。(変更から反映まで時間を要する場合がある。)
React Native
- JavaScript のライブラリであるため、iOS/Android 両方のアプリを開発可能。
- ホットリロードと言って、コードの変更点を保存して瞬時に反映することができる。
- React を使用した人には学習が容易である。(逆に、Java 開発経験者は、JavaScriptをいちから学習する必要がある。)
- 発生するエラーが、ReactNative と JavaScript の階層でのエラーがあり、解決に時間を要する・エラー箇所特定のしにくさがある。
Flutter
- iOS/Android 両方のアプリを開発可能。
- ReactNative と同様、ホットリロード機能がある。
- Dart といいうプログラミング言語を新しく習得する必要がある。(ただし、設計は JavaScript を踏襲しているとのこと。)
- 情報が少ないために解決に時間を要する場合がある。
- Googleのスマートディスプレイの OS 「Cast OS」の後継と考えられるFuchsia にて、アプリ開発のフレイムワークとして採用されている。
結論
Android だけでなく iOS での開発を考慮することができ、JavaScript を触ったことがある私としては、React Native が良いかなーとなりそうでした。
しかし、発生するエラーがどの階層かすぐに判断できず解決に時間を要することがあるということと、将来性を考えると、Flutter が最適と考えました。
最後に
Flutter はこれから機能が充実してくるため、勉強していくのが楽しみです。
参考
Kotlin
・Kotlin 公式ページ
・Wikipedia
・TOPSIC
React Native
・React Native 公式ページ
・Udemyメディア