Quadrophenia

R社の新人エンジニア数人が更新しているブログです

初心者が4ヶ月半でアプリを申請するまでにやったこと

こんにちは、@keimaejima です。
ここ4ヶ月半ほど、Port Loungeという動画共有アプリをつくってきまして、先日やっとアップルストアへの申請にこぎつけました。
portlounge.jp
会社の仲間と3人で、インフラ&バックエンド、デザイナー、iOS&webアプリという担当でやってきました。
仕事をしながらの開発だったため、割と効率性を意識してやってきました。今回の記事では、アプリ開発初心者だった僕がやってきたことを参考にした書籍やwebページと一緒に時系列で簡単にまとめてみました。
これからアプリを作ろうと思っている人の参考になれば幸いです。

前提

まず前提として、僕はiOSアプリの開発は初体験でしたが、プログラミグ自体には経験がありました。学生時代に2年ほど簡単な受託開発(PHP)をしていたのと、会社に入ってからは3ヶ月間の開発研修(Java)を受講しています。
ですので、プログラミング自体が初心者の方はドットインストールでRubyなどの言語に簡単に触れてみて、プログラミングとは何かについて雰囲気を掴んでおいた方が良いと思います。
あとは、何らかの形で通信を行うアプリを作りたい人は、この本を読んでおくと良いと思います。クライアントとサーバーの関係はwebもアプリも原理的には同じなので、参考になると思います。
www.amazon.co.jp

導入期

アプリを開発しようと決めてから、まずはこのサイトに沿って簡単なToDoアプリをつくってみました。アプリ開発の全体像がなんとなく掴めます。また、実機で動く簡単なアプリが実際に作れるのでなんだか「これはいけるのでは」と前向きな気持ちになれます。
easyramble.com

次にこの本を読みました。Swiftの基本的な文法から、メジャーなライブラリーの使い方まで、初心者だけではなく本格的にアプリ開発をはじめてからも使える知識が詰まっています。
www.amazon.co.jp
この本は実際にサンプルアプリを開発しながら学習をすすめていく形式で書かれています。僕は、この本を一通りすすめた後も、Swiftの文法についてまとめてある章(4章)を繰り返しリファレンスとして使っていました。
ただ、注意して欲しいのが、Swiftは2015年9月にメジャーバージョンアップが行われましたが、この本はSwift2.0には対応していないということです。
そのため、下記のような情報を参考にしつつ、文法を読み替えていくことが必要です。
qiita.com

開発期

さて、いよいよ開発に入っていきます。
開発中はとにかく、書く→つまずく→調べるの繰り返しですので、いかにこのサイクルを早く回せるか、そしてつまずきの時間を短くできるかがポイントになってきます。
ここでは、僕は以下のようなことを気にしていました。

(1)一定時間考えてわからないことは人に聞く
これは結構重要だと思います。プログラミングをしていてわからないことがあるとつい自分の力だけで解決しようとしがちですが、数学や物理と一緒で一人で考えてずっと答えが出ないことでも、一瞬で解決できるということがよくありました。
僕の場合は長くても2時間自分でチャレンジして解決できないときは人に聞いていました。
職場の知人に聞いたり、下記のサイトにはすごくお世話になりました。
teratail.com
stackoverflow.com
teratailは日本語のQ&Aサイトとしては一番良いと思います。しかし、やはり英語版のStack overflowが質・量ともに最高です。
コードを貼って、簡潔に説明をすれば意味をくみとってもらえるので、そんなに英語力も必要ないと思います。

(2)情報取得の幅を広げてみる
また、この時期にはSlideshareで必要な情報を調べて、そのSlideをつくった人に連絡をとってみるみたいなこともやっていました。
www.slideshare.net
先にも書きましたが、詳しい人に聞くと一発で解決できることが沢山ありました。

(3)ライブラリについてはこまめに調べる
これは、いわゆる「車輪の再発明」をしないために気をつけていたことです。既にライブラリとして提供されているのに、同じようなものを作ってしまうのは勉強にはなるかもしれませんが、「アプリを完成させる」という目的を達成するためには時間の無駄です。
qiita.com

デバッグ、ユーザーテスト

さて、ある程度アプリが形になったら、デバッグとユーザーテストを行っていきましょう。
チームメンバーなどにアプリをシェアするときには、Deploygateを使っていました。
deploygate.com
いちいちxcodeを経由しなくてもアプリを渡すことができるのでとても便利です。
Deploygateでアプリを入るするためには、配布先デバイスのUDIDをすべて登録しなければならないことに注意してください。
qiita.com

申請

テストが済み、いよいよ申請です。
申請については、こちらに載っている通りに進めていくだけで十分でした。
akira-watson.com

画像やアプリの説明文章など、用意しておかなければならないものが多いので、アプリの開発途中で一度こちらに目を通し事前に素材を用意しておくとスムーズだと思います。

現状

実は、このブログを書いている途中でリジェクトをくらってしまい、現在再申請に向けてアプリの改修を行っているとこです。
CGM系のアプリは、コンテンツの質の維持、不正なユーザーの適正な排除など色々と気を使う必要があるみたいです。
無事アプリが審査を通過したら、リジェクトで指摘された点などについてまた追記したいと思います!
それでは、みなさんも楽しいアプリ開発を!