Webアプリ(SaaS)の開発、お疲れ様でした。
ブラウザで動くアプリも素晴らしいですが、やっぱりエンジニアの憧れといえば「スマホのホーム画面に自分の作ったアイコンが並ぶこと」ではないでしょうか?
通知を送ったり、カメラを使ったり、ネットがなくても動いたり。
モバイルアプリには、Webアプリにはない魅力とパワーがあります。
今日から新シリーズ「モバイルアプリ開発編」がスタートします。
第1回は、全体像の把握です。Web開発との違いや、避けて通れない「AppleとGoogleの壁」について解説します。
1. モバイルアプリ開発の「2つの塔」
Webの世界は「ブラウザ」という共通規格がありましたが、モバイルの世界は「iOS(iPhone)」と「Android」という2つの巨大な塔に分断されています。
本来、これらは全く別の言語・別のツールで作る必要があります。
| 項目 | iOS (Apple) | Android (Google) |
|---|---|---|
| 開発言語 | Swift (スウィフト) | Kotlin (コトリン) |
| 必要なPC | Mac必須 | Windows / Mac |
| 開発ツール | Xcode | Android Studio |
「えっ、じゃあ2回も同じアプリを作らないといけないの? 言語も2つ覚えるの?」
そう思った方、安心してください。個人開発者がこの問題を解決するための「クロスプラットフォーム」を後ほど紹介します。
2. Webアプリと何が違う?(技術・構成)
Next.jsなどのWebアプリ開発と、モバイルアプリ開発。作られるものの構造はどう違うのでしょうか。
違い①:更新のスピード感
- Webアプリ: サーバーのコードを更新すれば、世界中のユーザーが一瞬で最新版になります。
- モバイルアプリ: ストアの「審査」を通し、ユーザーに「アップデート」ボタンを押してもらわないと最新版になりません。バグを出した時の修正が大変です。
違い②:スマホ機能へのアクセス
Webアプリはセキュリティ上、スマホ本体の機能にはあまり触れません。
一方モバイルアプリは、許可さえあればカメラ、GPS、連絡先、プッシュ通知、バイブレーションなどを自由に制御できます。
違い③:画面の作り方
WebアプリはHTML/CSSでデザインしますが、モバイルアプリはOS専用の部品(ウィジェットやコンポーネント)を組み合わせて画面を作ります。
そのため、Webアプリよりも「ヌルヌル動く」リッチな操作感が実現できます。
3. 救世主「Flutter」という選択肢
個人開発でiOSとAndroidを別々に作るのは、コスト的に不可能です。
そこで登場するのが、Googleが開発した「Flutter(フラッター)」です。
Flutterを使えば、「Dart(ダート)」という1つのプログラミング言語で書いたコードを、iOSアプリとAndroidアプリの両方に変換(ビルド)してくれます。
- 学習コストが半分: 覚える言語は1つだけ。
- Google製: Firebaseとの相性が抜群に良い。
- Dart言語: JavaScriptやTypeScriptに似ているので、Webアプリ開発者ならすぐ馴染める。
このシリーズでは、この「Flutter」を使って開発を進めていきます。
4. リリースにかかる「お金」と「審査」の話
最後に、お金と審査の話をしておきます。
アプリをストア(App Store / Google Play)に公開するには、「登録料」と「審査」が必要です。
| 項目 | App Store (Apple) | Google Play (Android) |
|---|---|---|
| 登録料 | 年額 99ドル (約15,000円〜 / 毎年) | 一回 25ドル (約4,000円 / 初回のみ) |
| 審査の厳しさ | 非常に厳しい (デザインや機能不足で落ちる) | 比較的寛容 (最近は少し厳しくなった) |
| 審査期間 | 1日〜3日程度 | 数日〜1週間程度 |
特にAppleの「毎年課金」は個人開発者にとって大きなハードルです。
ですが、そこを乗り越えてリリースできた時の「信頼感」や「ブランド力」はWebサイトの比ではありません。
まとめ:まずは環境構築から!
モバイルアプリ開発は、Webアプリ開発に比べて少し準備が大変です。
しかし、Flutterを使えば、最小限の労力で2つの巨大市場(iPhoneユーザーとAndroidユーザー)にアプローチできます。
次回は、実際にあなたのパソコンでFlutterを動かすための「環境構築」を行います。
少しインストールするソフトが多いですが、一緒に頑張りましょう!