読者です 読者をやめる 読者になる 読者になる

こたつにっき

Unityで遊びつつメモとか書きます

学園祭アプリを作った話

プログラミング アプリ制作 Swift

どうもこんにちは。

 

アドベントカレンダーをすっぽかした男、kotatuです。

 

言い訳から始めます。

普通カレンダーの左端に自分の名前があったら、月曜日に担当なんだな?って思いますよね?

f:id:kotatu99:20161212181905p:plain

思わないか。上にSUNって書いてあるし。

 

そんな話は置いておいてすっぽかしすいませんでした

今日は某大学学園祭のためのナビゲーションアプリを作った話を書こうと思います。

新宿祭アプリ-学園祭ナビゲーション

新宿祭アプリ-学園祭ナビゲーション

  • Takuto Kamiura
  • ナビゲーション
  • 無料

 こちらのアプリです。

過ぎた学園祭の残り香を味わいたい方はどうぞ。

いつ公開停止するか分からない部分はご了承ください。

 

はじまり

irorio.jp

今年5月、こんなニュース記事を見かけました。

東京大学の学園祭「五月祭」向けのアプリを東大生が作ったみたいな記事ですね。

アプリはこちら

 

僕「ほーん、面白そうじゃん」

 

僕「東大生に作れるなら僕でも作れるだろ!」

 

 

 

 

東大生に作れるなら僕でも作れるだろ!

 

 

 

酔ってんのかな?

 

よく分からない情報伝達によりアプリ開発の決意をしました。

多分、休日の朝だったので寝ぼけていたんだと思います。

 

アプリ開発のの字も知らない僕はiPhoneアプリを開発するために本を買いに行きました。

まずはお金をかければモチベーションが後からついてくる理論です。

 

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第4版【Swift 2 & iOS 9】完全対応

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第4版【Swift 2 & iOS 9】完全対応

 

絶対に挫折しない超入門と書いてあったのでこの本を買いました。

実際挫折しなかったのでタイトル詐欺ではないと思います。

 

開発

上記の本を使ってアプリ開発のお勉強をしました。

本の【Swift2対応】という表記からも分かるように、アプリはSwiftで作ります。

SwiftはApple開発の結構新しいプログラミング言語です。というわけでアプリはiPhone専用です。Android…?

Swiftも触ったことのない言語だったので構文からお勉強。

 

とりあえずAPI叩いてデータ取ってくるのとかをアプリに使うだろうということでググる

ascii.jp

他はアプリ画面設計のPlaygroundやらもいじりつつ。

f:id:kotatu99:20161212194656p:plain

画面遷移・設計

 

その後、データを置くサーバーの構築を先輩にお願いし一安心。

気づけば夏休みを迎えます。

 

夏休みの僕は走る自動販売機開発に忙しく、全然開発してませんでした。 

kotatu99.hateblo.jp

 

9月の後半、サーバーのAPI構築も安定したので企画データの取り込みやらを作り始めます。

 

が、段々モチベーションが低下してきたので10月はほぼ空白期間です。

大学各部署にアプリ開発してるという挨拶回りはしていたので、自分の首を絞めていた期間がここです。

 

ちなみに、理想のリリーススケジュール(11月19日から学園祭なのでそこがデッドライン)が

  • 8月 開発完了

  • 9月 α版提出

  • 10月 本番データ入力

  • 11月 AppStoreリリース

ですが実際出来たのは

  • 8月 開発完了

  • 8月 α版提出

  • 10月 本番データ入力

  • 11月 AppStoreリリース

これだけでした。

11月が近づくにつれ、流石に焦った僕は写真機能・Twitter投稿・オススメ表示を実装。

 

ついに11月11日、最初のAppStore審査に提出します。

以下が僕の安定版リリースまでの道のりです。下から見てね。

f:id:kotatu99:20161212200608p:plain

これ、僕が最初に提出した11日は金曜日の夜なんですが、これはタイミングとして最悪でした。

なぜかというと、アプリをAppleに提出すると、審査はカリフォルニアで行われます。

カリフォルニアは金曜朝。ここを逃すと審査されるのが月曜日以降になってしまう!

そう、Appleの審査は土日休みなのです。ホワイト企業かよ

 

企業としては羨ましいですが、Appleが月曜の朝イチで審査してくれても僕が確認できるのは月曜夜!開発者としてこれはヤバイもっと余裕持って審査出せよ

調べたら「特急審査」というシステムがあるそうなので、Appleにメール出しました。英語で。Appleにメール出せて僕は嬉しかったです。

文章はほぼこちらに載っていたものそのままです。

モーグ株式会社 – AppleにiOSアプリの緊急審査をしてもらう方法

19日からイベントだからアプリ出したいの!お願いします。

私たちがアプリをリリースできないのはとても悲しいことです。

 とりあえず英語の教科書風な日本語をGoogle翻訳にブチ込んで念じながらメールを送りました。

 

通りました。

f:id:kotatu99:20161212202042p:plain

多分このExpedite Requestって奴ですね。Expediteをググったら「早めます」と出てきたので、そうだと思います。

「このシステムは丁度こんな時の為にあるんだよ!任せろ!でもいつでも適用されるわけじゃないからな!(意訳)」

みたいなことが書いてありました。多分。

 

 みんなは月曜の夜に審査に出そう。

 

そんなメールが来た10分後にレビュー通過!リリースできるぞ〜〜〜!!!

 

 

 

 

 

 

 

 

 

 

 

バグ発見

 

 

 

 

 

 

 

直します。隅々まで確認してから審査出そうね。

f:id:kotatu99:20161212202830p:plain

結局最終版が配信準備完了になったのは学園祭2日前の17日でした。セーフ!

  

アプリ機能

ここで説明しないとこのアプリがどんな物だったのか永遠に闇の中へ葬られるので解説します。

 

まず、アプリを起動すると大きめのセルが出てきます。

f:id:kotatu99:20161213091738g:plain

これは日ごとに更新のオススメ画面。

タップすると企画ページや、芸能人が来る企画の場合は特設ページへ誘導します。

 

f:id:kotatu99:20161213092507g:plain

トップでスワイプすると、企画一覧のカテゴリ毎表示。

企画をタップで詳細が出ます。

f:id:kotatu99:20161213093008p:plain

詳細画面の下部3つのアイコンは左から

写真シェア・お気に入り・ランキング投票

お気に入りした企画は右下MyPage(ハートアイコン)でまとめて見ることができます。

ランキング投票はカテゴリ毎の表示に「ランキング」が有るのでそこへ適用。得票数が多い企画ほど上に出てきます。

 

 写真シェアはこんな感じ。写真撮るとハッシュタグ&企画名付きでTwitter投稿画面が出てきます。

f:id:kotatu99:20161213093937g:plain

投稿すればそのまま写真付きで投稿。

パクリ元参考にした「五月祭アプリ」は写真投稿をアプリ内で完結させていたんですが、なにぶんアプリ開発に携わっているのが僕と先輩の2人だけで不適切画像のチェックが出来そうにないのでTwitterへ流すことにしました。

 

お次はマップ画面。

階ごとの企画を表示します。

f:id:kotatu99:20161213093221g:plain

 

機能としてはこんな所です。

 

反省

アプリDL数は200弱でした。リリースを早くしてもっと宣伝に時間をかけたかったですね。

今回のアプリ開発を説明するのに重要な画像です。

f:id:kotatu99:20161213095339j:plain

このグラフ、なんだと思いますか?

 

 

 

 

 

 

僕のアプリ開発へのやる気です。

f:id:kotatu99:20161213095341j:plain

 

進捗を重ねるとこうなります。

f:id:kotatu99:20161213095343j:plain

 

出だしの燃えてた時期の貯金で何とかリリースにこぎつけました。

「全体の8割を、2割の時間で終わらせる」

 のが仕事を終わらせるコツと、元マイクロソフトプログラマー中島聡さんが著書で述べていますしね。

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である

 

 多分ニュアンスが違う気がしますけど。仕事が終わってよかったです。

 

上には書いてないですが、Swiftが2から3になってエラーが出まくったり、設定変更しろとかAppleに怒られたり(写真撮影にカメラ使う警告を出してなかった)色々書ききれない事もありました。ぶっちゃけアプリ開発はしんどかったですが、

アプリリリースという実績が解除できて嬉しかったです。これからまたAppStoreの登録に必要な100ドルの元を取るために何かアプリ作ろうと思います。

 

 

 

納期無しがいい

 

 

 

でも納期無いと作れない

 

 

 

二律背反

 

 

 

 

〜おわり〜