はじめに
モバイルアプリを作ったことはありますか?
私は今までモバイルアプリを3つだけ開発したことがあります。
開発期間はそれぞれ
半年
↓
4ヶ月
↓
3日
です。
3日は誤字ではありません。サーバーサイドのWebシステムも含めて3日です。
この記事では、モバイルアプリ開発の始め方を簡単に紹介しつつ、3つのアプリを作る中で感じた、AI時代にエンジニアとして大切だと感じたこと をお伝えします。
自分が作った3つのアプリ
1つ目:大学の学生向けポータルアプリ(開発期間:半年)
大学時代、先輩に誘われて開発しました。
私が通っていた大学には学生向けのWebサイトがいくつも点在していて、それぞれにログインするのが地味に面倒でした。それらを1つのアプリにまとめて、自動ログインできるようにするというものです。
先輩がサービスの設計とiOS版を担当し、自分はAndroid版を Kotlin × Android Studio で開発しました。
利用者は1,000人を超え、学部生の約5人に1人以上が使ってくれていました(うちAndroid版は3割程度)。初めてのアプリ開発で、右も左もわからない中で半年かけて必死で開発しました。
2つ目:業務での一般消費者向けアプリ(開発期間:4ヶ月)
入社1年目のときに案件として携わったアプリです。
別で動いている自治体の基幹システムの個人情報を住民の手元で確認できる、というアプリです。
React Native を使ってiOS版とAndroid版を同時に開発しました。現在のダウンロード数は600強です。
3つ目:個人開発のマップ系アプリ(開発期間:3日)
最近、個人的な悩みを解決するために作った位置情報を使ったアプリです。
React Native × Expo で開発し、サーバーサイドも含めてわずか3日で完成しました。
なぜこんなに速かったのか。もちろん、AIを使ったから です。
モバイルアプリ、何で作る?
「モバイルアプリを作りたいけど、何から始めればいいかわからない」という方向けに、主要なフレームワークを簡単に紹介します。
| フレームワーク | 対応OS | 言語 | 特徴 |
|---|---|---|---|
| Swift | iOSのみ | Swift | Apple公式。iOS向けの最適なパフォーマンス |
| Kotlin | Androidのみ | Kotlin | Google推奨。Android向けの標準的な選択肢 |
| Flutter | iOS / Android | Dart | Google製。独自のUIレンダリングで高いパフォーマンス |
| React Native | iOS / Android | JavaScript / TypeScript | Meta製。Webエンジニアが入りやすい |
特にこだわりがなければ、React Native をおすすめします。
- iOS版とAndroid版を 1つのコードベース で同時開発できる
- Expo というツールチェーンが非常に便利(後述)
- Reactに慣れているWebエンジニアなら学習コストが低い
Expoが便利
React Nativeの開発には Expo を使うのが今の主流です。
- Expo Go アプリをスマホに入れれば、ケーブル接続なしで実機テストができる
- ビルド・デプロイの設定が大幅に簡略化される
- OTA(Over-The-Air)アップデートで、ストア審査なしに軽微な修正を配信できる
ビルドの現実
FlutterでもReact Nativeでも、最終的なビルドには Xcode(iOS向け)や Android Studio(Android向け)が必要です。
ここで重要なのが、XcodeはmacOSにしか存在しない ということ。
Android StudioはWindows/macOS/Linuxに対応していますが、iOSアプリを作るならMacが必須です。「モバイルアプリを開発するならMacがいい」と言われる所以はここにあります。
(ただし、React Native × Expoなら EAS Build(Expoのクラウドビルドサービス)を使うことで、手元にXcodeがなくてもiOSアプリをビルドできます。シンプルなアプリであればWindowsでも開発は不可能ではありません。)
アプリの公開
ストアに公開するには、開発者アカウントの登録が必要です。
| ストア | 登録費用 | 備考 |
|---|---|---|
| App Store(iOS) | $99/年(約15,000円) | 年額制。毎年更新が必要 |
| Google Play(Android) | $25(約3,700円) | 初回のみの1回払い |
審査には注意が必要です。特にApp Storeは初回申請で1週間程度かかることがあり、差し戻しを何度か受けることも珍しくありません。ガイドラインへの準拠、プライバシーポリシーの整備、バグの少なさなどが審査のポイントになります。
── あとはAIに任せればいいんだ…
3つのアプリの開発期間をもう一度見てください。
半年 → 4ヶ月 → 3日
3つ目のアプリが3日で完成した理由は、フレームワークの進化でも、自分のスキルが上がったからでもありません。AIが使えるようになったから です。
完成したとき、嬉しさと、少しの悲しさがありました。
これまでやってきた努力はなんだったのか。
もちろん、過去の2つの開発経験が完全に無駄だったわけではありません。普段の業務でもAIの進化を目の当たりにしているので今更とも思えます。でも、本当に苦労して作ったアプリの記憶があるからこそ、虚無感を覚えました。
同時に、これからの現実も突きつけられました。
そこら辺の大学生が1人で、アプリを簡単に作って公開できてしまう時代が来た。 その事実を、身をもって体感しました。
AI時代のエンジニアに必要な意識
だからこそ、1人のエンジニアとして、これからは 開発者ではなく「サービス提供者」 である意識を持つことにしました。
私は普段の仕事は、自分の作るプロダクトが好きでやっているので、こういう結論になりました。
ビジネスサイドにも立って、どんなサービスが必要とされるか を考える。アプリの開発は、その過程にすぎません。どうせAIが一瞬で作ってくれるのだから。
もちろん、デプロイや保守運用まで考えると、まだエンジニアの力は必要です。でも、それもそう遠くない将来に自動化されると思っています。
この辺はもう100万回議論された話ですよね。
技術も学ばないといけないし、ビジネスやマーケティングといった文系の領域も学ばないといけないなと。
AIによって便利になったと見せかけて、大変になっとるやないですか。
モバイルアプリ開発をするのは、AI時代を生き残るための一歩のつもりです。 小さな一歩ですが。
なぜモバイルアプリなのか
そうそう、なぜモバイルアプリなのか。
人の日常に入り込めるから です。
天気予報、SNS、地図アプリ。どれもみんなスマホにアプリをインストールして使っています。わざわざブラウザでWeb版を開く人はほとんどいません。
モバイルアプリは、ユーザーのホーム画面に存在し続けます。プッシュ通知で再訪を促せます。オフラインでも動作させられます。日常の一部になれる のは、モバイルアプリだけの強みです。
そして何より、自分や身近な人の悩みを、自分の手で解決できる。
問題解決が大事なので、モバイルじゃないとダメなのではなく、Webもモバイルも作れる状態になっておこうということです。
「どんなアプリを作ればいいかわからない」なら、AIに相談すればいいのです。
そのために、自分が思ったこと、日々の悩み、ふと浮かんだアイデアを常にメモして、AIが読める場所に置いておく。たったそれだけです。
面倒に感じるかもしれませんが、AIがやってくれている作業量に比べたら大したことではありません。むしろ、それくらいしか人のやる仕事はなくなる と言っても過言ではないかもしれません。
あとは、意味があるのかないのかわからないけれど、とりあえず作ってみようという行動力でしょうか。私が今一番問われているのはそこな気がします。
まとめ
- モバイルアプリ開発は React Native × Expo を使えば、Webエンジニアでも始めやすい
- AI活用で開発期間は劇的に短縮された(自分の場合:半年 → 3日)
- だからこそ、サービス提供者としてエンジニアをやっていきたい
- モバイルアプリは人の日常に入り込める、最も身近なプロダクト
モバイルアプリを作ろう。