🔰基礎技術

スマホアプリを作るなら「iPhoneとAndroid」を同時に|モバイルアプリ開発の常識と「Flutter」

Webアプリ(SaaS)の開発、お疲れ様でした。
ブラウザで動くアプリも素晴らしいですが、やっぱりエンジニアの憧れといえば「スマホのホーム画面に自分の作ったアイコンが並ぶこと」ではないでしょうか?

通知を送ったり、カメラを使ったり、ネットがなくても動いたり。
モバイルアプリには、Webアプリにはない魅力とパワーがあります。

今日から新シリーズ「モバイルアプリ開発編」がスタートします。
第1回は、全体像の把握です。Web開発との違いや、避けて通れない「AppleとGoogleの壁」について解説します。

1. モバイルアプリ開発の「2つの塔」

Webの世界は「ブラウザ」という共通規格がありましたが、モバイルの世界は「iOS(iPhone)」「Android」という2つの巨大な塔に分断されています。

本来、これらは全く別の言語・別のツールで作る必要があります。

項目iOS (Apple)Android (Google)
開発言語Swift (スウィフト)Kotlin (コトリン)
必要なPCMac必須Windows / Mac
開発ツールXcodeAndroid 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を動かすための「環境構築」を行います。
少しインストールするソフトが多いですが、一緒に頑張りましょう!

-🔰基礎技術