ということで、スマホアプリを作ると決意表明したので次に開発環境について考えいきます。
Android? iPhone?
まず、最初に考えるのは Android と iPhone(iPad) のどっち向けのアプリを作るか?
ちょっと調べた感じを表にしてみました。
Android | iPhone | |
海外シェア | 70.68% | 28.79% |
日本でのシェア※ | 38.45% | 61.35% |
審査 | なし | あり |
開発者登録費 | 25ドル | 99ドル/年 |
必須OS | Windows or Linux or Mac | Mac |
検索数(「アプリ開発 入門」) | 1550万 | 719万 |
※シェアは statcounter の2019年のデータより
なんとなく iPhone 向けの方がハードルが高そうだけれど、その分収益は高そう。
取り敢えず、始めてのアプリ開発なんで android がよさそう。(Mac 持ってないし
開発環境
ちゅーことで、今度は開発環境について考えていこう
ターゲットは android でいくことにしたけど、ゆくゆくは iPhone 向けにも公開したい。
というわがままな願いを解決する方法といえば
クロスプラットフォーム
ですね。
説明をウィキペディアより抜粋。
クロスプラットフォーム(英: cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。
ザックリ言うと、android 用に開発したアプリをそのまま iPhone で動かせれたりするようなイメージです。
実際には、プラットフォームが変わるとうまく動作しなかったり、見た目が違ったり、速度が遅かったりで、思い通りにいかないというのが世の常なんだけど、初心者からすればそんな高度な悩みは後回しでいいのです。
ということで、android と iOS をサポートするクロスプラットフォーム開発用のツールを探したところ、Flutter と Xamarin と React Native ってのが主流っぽい。
Flutter , Xamarin , React Native 比較
簡単に比較してみました。
Flutter | Xamarin | React Native | |
提供元 | Microsoft | ||
開発言語 | Dart | C# | JavaScript |
開発環境 | Android Studio / IntelliJ IDEA / VSCode | Visual Studio | Nuclide / VSCode / Expo |
UI | 独自UI | 独自UI / ネイティブUI | ネイティブUI |
人気度の動向(2017~2019) | 上昇 | 下降 | 横ばい |
独自UI / ネイティブUI というのは、プラットフォーム固有のオブジェクトでUIを描画/イベントハンドリングするか、開発環境に用意されたものを使用するかみたいな感じかな?
ネイティブUIは柔軟性があってプラットフォームに特化した描画などできる(あとレスポンスも早い?)けど、反面プラットフォームによってアプリのカスタマイズが必要になりそう。
独自UIの場合は、異なるプラットフォームで同じUIを提供できるみたいなイメージ。
人気度の動向は Google Trends で判断してます。
結論
Flutter に決めた!!
C# は仕事で使ったことあるので最初は Xamarin にするつもりだったけど、↓の理由で Flutter に決定。
- Android と開発元が同じ
- 人気急上昇
- 最近のプログラミング言語を使いたい
次回から Flutter の環境を構築するのです。
コメント