はじめに
自分はWeb系のエンジニアです。
スマホアプリ開発経験は0です。
今回、Webの技術でスマホアプリを開発する現場に常駐することになったので、
自分で調べたことをまとめます。
自分のアウトプット用なのと、
同じ感じの人の助けになればと思います。
理解が間違っているところがあれば、ご指摘頂けると嬉しいです。
基礎知識
スマホのOSは__Android__と__iOS__がある。
日本ならiPhoneが多いけど、iPhoneだけ対応ってことは少ない。
Webと違いリリースは、サーバにデプロイして完了とはならない。
androidならPlayストア、iOSならApp Storeにアプリを公開する。
そのため、GoogleやAppleなりの審査がある。
つまるとこ、android用、iOS用で作らないといけない。
クロスプラットフォームな開発できるFWでも、プログラムは共通だけど、
リリースする際にAndroidとiOSで、それ用にビルドしてあげないといけない。
基本、__Android Studio__と__Xcode__は必要って認識で大丈夫だと思う。(現場によって異なるけど)
Android スマートフォン
ユーザがアプリをスマホに入れるなら基本的に__Playストア__からアプリをインストールする。
Playストアからアプリを配布するには__Google Play Developer__に登録が必要。
Playストアにアプリを公開するには?
__Google Play Console__というPlayストアへのAppの提出、Appの管理ができるサービスがある。
Google Play Consoleで以下を実施。
- アプリ情報を登録
- apkファイルをアップロード(※apkファイルではなくAndroid App Bundleを推奨)
- レーティングを設定する
- 価格と販売/配布地域を設定する
- Appを審査へ提出
- App ステータスの確認と審査で出た問題を解決する
- 審査が承認されたらPlayストアに公開される。
※Android App Bundleを推奨。
2021年8月より、Google Playでの新規アプリの公開はAndroid App Bundleで行う必要がある。
アプリのコンパイル済みコードとリソースがすべて含まれた公開形式。
APKの生成と署名はGoogle Playが行う。
Google PlayはApp Bundleから、デバイス設定毎に最適化したAPKを生成、配信する。
それにより、個々のデバイスでAppを実行するのに必要なコードとリソースだけがDLされる。
Developerは、多様なデバイスのサポートを最適化する為に複数のAPKをビルド、署名、管理する必要がない。
apkファイル?
apk Android Application Packageの略。
ZIP形式でアーカイブファイルの一種。
拡張子は.apk
決まった手順でAndroid端末にアプリをインストールできるファイル。
ビルド後にできるファイルと思えば大丈夫。
作成方法(ビルド方法)はコマンドかAndroid Studioを利用。
僕がいる現場は、ビルドする時だけAndroid Studioを使っている。
コマンドでするにもAndroidのsdkが必要だから、Androi Studioはインストールした方が楽だった気がしますが、
もっと楽な方法はあるかもしれません。
iPhone
ユーザがアプリをiPhoneに入れるなら__App Store__からアプリをインストールする。
App Storeからアプリを配布するには__Apple Developer Program__に登録が必要。
App Storeにアプリを公開するには?
__App Store Connet__というApp StoreへのAppの提出、Appの管理ができるサービスがある。
App Store Connectで以下を実施。
- 契約書に同意し、税金と銀行口座情報を入力する。
- ユーザを追加して役割を割り当てる
- Appを追加してビルドをアップロードする
- 価格および配信状況を設定する
- Appを審査に提出する。
- App ステータスの確認と審査で出た問題を解決する
- 審査が承認されたらApp Storeに公開される。
細かいところは、Appleの公式のガイドラインで確認してください。
少し混乱したのが、Appleの場合、Appをアップロードするのにアーカイブファイルを作成してアップロードするみたいな方法は一般的ではないみたい。
XcodeからGUIでビルドを実行して、そのままApp Store Connnectにアップロードできる。
アーカイブファイルを作成してアップロードする方法もあるようです。
開発フロー
企画
↓
要件
↓
設計・実装
↓
ビルド
↓
テスト
↓
審査
↓
リリース
上記の流れで開発していく。
企画、要件、設計・実装の流れはWEBとさほど変わらない。
大きく異なるのはビルドとテスト。
自分はクロスプラットフォームな開発ができるFWを使って開発している現場だが、
ビルドをandroid用、iOS用でビルドする。
このビルドが大変、混乱した。
色々な方法があると思うが自分がいる現場は以下。
Android
Android Studioでapkファイルを作成する。
adb(Android Debug Bridge)コマンドがかかれたbatで実機にインストールする。
iOS
Xcodeでプロジェクトを開く。(FWでios用のプロジェクトは作成済み)
Xcodeから実機にインストールする。
テスト
実機で動作確認を行う。
デバックは、USBでPCに接続して、下記で確認を行う。
android
Chrome Inspector
iOS
Safari Inspector
おわりに
ざっくりと当たり前のことを書きましたが、OSによってビルド方法が異なる、審査っていう工程があるっていうのを認識して
その周りを学習しないといけないです。
IonicやReact NativeとかはWebが分かるなら大丈夫だよーっていうのを信じたら痛い目にあいました。