見出し画像

初心者がiOSアプリ開発を整理してみる

 私は本業では主にWebアプリ開発を中心としており、技術セットとしてはRuby on Rails、vue.js、AWSが基本的な武器となっています。

 あとはUnityを使ったAR開発なんかもうちのチームのお仕事だったり。

ビジネス分野としても完全なBtoBということもあり、今までiOS、Androidの開発に触れることがありませんでした。

 というわけで完全な初心者の私が己の興味だけでまとめてみました。

開発言語

■Objective-C 

・最近はもうあんまり

■Swift

・今からはじめるならここから?

・破壊的アップデートがちょこちょこあり、まだ不安定ではありそう

・ここらへんが便利そう


■Xamarin mac(C#)

・ちょっと前にはちょこちょこ聞いたけど、最近あまり聞かない

■ React Native

・React+Redux?

■ Flutter

・マルチプラットフォーム(iOS、Android)開発のためにちらほら使われている。

・Google提供のツールキット

環境構築

・Xcodeを入れる(Macでの開発の場合)

・Swiftを入れる

企画

[ここはいつものお仕事と変わらないので具体的には割愛]

・アイディアを思いついたら、調査!調査!!調査!!!

・主にインセプションデッキ、仮説キャンバスを書いてアイディアの精度をあげる

・場合によってユーザーストーリーマッピングをしたりも

・有料/広告/アプリない課金/無料 のどれにするかを考える

App Store審査ガイドラインに違反してないか確認

仮説検証

[ここもいつものお仕事と変わらないので具体的には割愛]

・ペルソナを決めて、仮説検証。

要件定義 / デザイン

[ここもいつものお仕事と変わらないので具体的には割愛]

・Product Backlogを作って、ワイヤーフレームを書く

・ワイヤーフレームはAdobe XDで書くのが個人的には好き

・ストーリーを見直したり、ペーパープロトタイプを作ってユーザーテストしたり

・ UI/UXに関してはAppleが公式に「iOSヒューマンインターフェースガイドライン」を読むと良さそう


設計 / 実装

・「iOSクリーンアーキテクチャ」や「ヘキサゴナルアーキテクチャ」あたりを調べるとベストプラクティスが分かりそう

・Storyboardを使って画面をつくり、そこにコードでアクションを書いていく

QA / ユーザーテスト

・開発中はCrashlytics Beta、DeployGate、自前でのAd-Hoc配信でテストをする様子

・Xcodeのシミュレータを使って確認する

・実機テストの場合は、iOS Developer Program(有料)へ登録した後にテストを実行します。パフォーマンステストもできる(Xcode6以降)

審査提出 / リジェクト対応

・iTunesConnect, DeveloperCenterで申請を行う。

・リリースするためにはAppleにDeveloper登録をする必要がある(8,400円/年)

・分かりやすい(けど見づらい)記事を発見



リリース

・リリース後の計測はこんな感じでできるらしい


学べるチュートリアルサイト


参考資料


主にPjM、PO、セールスエンジニア、AWS ソリューションアーキテクトなどを務める。「映像業界の働き方を変える」をモットーにエンジニア組織を超えたスクラムの導入、実践に奔走。DevLOVEなど各種コミュニティーにおいてチームビルディングやワークショップのファシリテーションを行う