アプリ開発未経験の学生がアプリをリリースするまでの2ヶ月半をまとめてみた。

インターンの様子(写真)
初めまして、ジェネシックスでインターン中の坂田(@huin)です。

年明けにECナビのエンジニアブログでナビの子会社PeXで経験したことを記事にさせてもらったのですが、
1月末からジェネシックスにてiOSアプリ開発の勉強をさせてもらっています。

先週末ようやく初めて作ったアプリ「iレポート管理」がリリースされました。
レポートの提出に追われる大学生向けのレポート(提出物)管理アプリです。

このアプリの開発には1月末にアプリ開発経験ゼロの状態から始めてリリースまで約2ヶ月半がかかりました。今回は、この場を借りてその2ヶ月半の振り返りをさせてもらいたいと思います。
(期間的には2ヶ月半ですが、週2で出社なので実日数はもうすこし少ないです)

なにはともあれObjective-C/iOSの勉強 : (1ヶ月)

C言語の経験はあるとは言えObjective-Cなど使ったことはなかったので、
まずObjective-CやiOSアプリ開発の勉強から始めました。参考にした書籍や資料は以下のとおりです。

  1. 入門Objective-C 2.0 (翔泳社)
  2. iOS プログラミングガイド(Apple)
    • iOS ヒューマンインターフェイスガイドライン
    • iOS ViewControllerプログラミングガイド
    • iOS TableViewプログラミングガイド
  3. iPhone SDKアプリケーション開発ガイド(オライリージャパン)

1.ではObjective-C自体(クラス宣言/実装からカテゴリ、プロトコルまで)の勉強を、2.はUI周りの仕様について、最後の3.(の第3章)とAppleが用意しているSample Codeを使って具体的な実装について勉強していった感じです。Appleのプログラミングガイドは今回読んだのは主に上に挙げたものだけですが、他にも大量に用意されているので、時間を見つけて少しずつ読んでいくつもりです。

何を作るか? : (3週間)

2月末からどんなアプリを作るかを考え始めたのですが、今回のアプリ制作で一番苦労したのは実はここです。最初はシンプルなタスク管理アプリを作ろうと考えていました。自分自身色々なタスク管理系アプリを使った経験があるのと、タスク管理系アプリというだけで基本的な機能やUIはなんとなく思いつくのですぐに実装に取り掛かれると思ったからです。ですが、それが間違いでした。

Appleの「iOS ヒューマンインターフェイスガイドライン」の中に優れたアプリケーションを作るための設計戦略として”アプリケーション定義ステートメント”について説明されています。

“アプリケーション定義ステートメント”
アプリケーション定義ステートメントは、アプリケーションの主要な目的とその対象を、簡潔かつ 具体的に宣言したものです。

簡単に(僕の解釈で)いうと、”誰”が”なんのために”そのアプリを使うのかを簡潔に説明したものなのですが、上に書いたように今回の場合ユーザーや利用シーン・目的などは全く考えずにタスク管理アプリを作ろうと考えていました。しかし、(UIや機能も含めて)そのアプリが良いかどうかはこのアプリケーション定義ステートメントが定まっていないと評価のしようがありません。同じタスク管理アプリでも使うのは大学生なのかビジネスマンなのか、元々タスク管理やライフハック等の知識のあるユーザが使うのか、それとも全くの初心者が使うのかといった条件によって最適なアプリは変わります。作り手としてはより多くの人に使ってもらいたいと思うので、なるべく多機能にしようとか万人受けするようなUIデザインにするような方向に行きがちなのですが、それをやってしまうと作る過程(今回は特にUI)で”どっちの方が良いのか”という判断ができずに、結局全てのユーザにとってハマらないアプリになってしまいます。

ということを、最初にプロデューサーさんに言われていたにもかかわらず、自分の中に落とし込めないまま企画を練ってしまい、痛い思いをしました(笑) 結果としてアプリケーション定義ステートメントは”大学生が使う提出物管理アプリ”となったのですが、さらに大学生といってもどういう大学生なのかという部分も考えて作ってあります。

そして、次に画面設計に移るのですが、デザイナーさんからアドバイスをもらって計3度作り直したため、ここでもかなり時間がかかってしまいました。

結局アプリのディレクションと画面設計の部分で3週間(5,6日分)を費やしてしまいました。元々この部分は簡単に終わらせるつもりだったので、それがなかなか終わらないという状況は苦しかったです。

あとは作るだけ : (1ヶ月)

実際にコードを書き始めたのは3月の2週目からです。UIだけでもなるべく早く作ろうと思ってはいたのですが、やはり思ったようには進みませんでした。

苦労したのはレポートの提出日を設定する日付ピッカーの動作です。「iレポート管理」では日付が入る部分をタップするとキーボードの様に下から日付ピッカーが出てくるのですが、この部分は自分でアニメーションを作ってます。Mobile SafariでWebページのSelectフォームをタップしたときはピッカーが下から出てくるので簡単にできると思っていたのですが、完全な勘違いでした。今思うとなんてことない処理ですが作ってる最中はリファレンスやネットを漁りながら悶々としていました。

それに加えてやはりメモリ管理はなかなか素直にいかず”EXC_BAD_ACCESS”メッセージと格闘してました。というかまだ完全には理解できてないので、Appleのプログラミングガイドで補強するつもりです。

まとめ

「iレポート管理」の開発では企画段階から、UIデザイン、実装までと、全体的な意味で「アプリ開発」を経験することができました。勉強という視点で一番経験値になったのはディレクションの部分でプロデューサーさん(@yusuke_suzuki)とデザイナーさん(@mikihirocks)に意見をもらいながら作れたことです。”開発=コードを書くこと”の勉強が目的であったり、自分だけが使うアプリを作るのであれば一人の方が効率的だと思いますが、AppStoreでのリリースを目指すのであれば、企画やデザインの部分もしっかりと考えないと、誰も使ってくれないアプリになってしまうのかなと思います。苦労はしましたが、その視点を持てたというのは今回の開発一番の経験でした。

とまとめてみましたが、ようやくアプリを一つリリースしただけの初心者なので、今回学んだ視点を持ちつつ、技術的にももっと勉強していきたいと思います。

最後になりましたが、今回制作した「iレポート管理(無料)」ぜひお試しください!!

2 Responses to アプリ開発未経験の学生がアプリをリリースするまでの2ヶ月半をまとめてみた。

  1. ピンバック: ECナビのインターン Treasure の思い出。 | HuIn.Log

  2. ピンバック: 新卒向けUXデザインワークショップ レポート « ジェネシックスブログ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。