はじめに

前回はプログラミングを習得する方法を説明しましたが、今回は実際に私がどうやってプログラミングを習得してアプリを開発したか話しますね〜

今までWindowsのアプリとiPhoneアプリを開発、公開したことがあります。今回は実際にiPhoneアプリ開発でどうやってプログラミングを習得したか説明します!

プログラミング初心者が参考になれば幸いです!

アプリを開発することを目標にする

以前の記事にも述べたのですが、プログラミングの習得で大事なのはアプリ、Webサービスを開発するためにプログラミングを取得することが目的であって、プログラミングを体系的に勉強することが目的ではないということです。

プログラミング言語の勉強ばかりでアプリ開発をしないというのは、例えば英語の単語、文法の勉強ばかりで、外国人と話す、英語の文献を読むなどの実践を行わないのと同じです。

プログラミング言語の機能は膨大なので、体系的に全部勉強しようとするもほぼ確実に挫折します。

なのでしっかり目的意識を持って、プログラミング言語の習得を目的ではなく、アプリ開発を目的にプログラミングを習得しましょう!

私の場合はiPhoneであるアプリを開発したいという思いがあってiPhoneアプリ開発するためにプログラミングの勉強から始めました。

 

初心者だった私がプログラミングを習得して、アプリ開発した実際の手順

1.作りたいアプリを考える

最初に作りたいアプリを考えました。以前からiPhoneアプリ開発をしたいと思っていたので、iPhoneアプリで開発することはまず決まりました。

次にどのようなiPhoneアプリを作るか?自分が使いたいアプリを考えてると… 

以前から複数のSNS(Twitter、Facebook、mixi)で同じ内容を投稿するのにいちいちそれぞれのアプリを立ち上げて投稿するのが面倒くさかったのを思い出しました。

そこで、Twitter、Facebook、mixiで一度に同じ内容を投稿するアプリを開発することにしました。

 

2.習得するプログラミング言語を決める

iPhone開発が決定することで、習得するプログラミング言語はすぐに決まりました。

当時iPhoneアプリ開発はmacでObjective-Cという言語でしか開発が出来ないのでObjective-Cの学習を始めました。

 

3.初心者向けの本で学習する

私は以下の本でObjective-Cの学習を始めました。

この本の内容を全部学習しようとすると時間がかかり過ぎるので、基本文法とXcodeの基本的な使い方を学習したら、そこでこの本の学習は終了しました。あとは実際にiPhoneアプリを開発していてわからない部分が出たら、この本を開いて解決方法がないか調べていました。

 

ちなみに今はSwiftという言語があるので、Objective-CよりSwiftの方が習得が容易でおすすめです。

4.アルゴリズム、データ構造を学習する

アルゴリズムとデータ構造はまともに学習するのは難しいので、プログラムの内容は読まずにこういうアルゴリズムとデータ構造があるんだな〜 というぐらいでさっと学習していきます。

それで何かアプリ開発で行き詰ったときに上記の本で調べることにしました。今回は上記の本に乗っているアルゴリズムとデータ構造を使うことはなかったですね。

 

5.リファレンス的な本を買う

いよいよアプリ開発に取り掛かる前に… 以下のようなリファレンス的な本を買いましょう!

こういった本は読んで一通り学習するのではなく…

例えば「画像を表示させたいけど、どうしたらいい?」とか

「地図を表示させたいけど、どうしたらいい??」とか

「位置情報を取得したいけど、どうしたらいい?」

などの疑問が出た時に、この本で調べるとすぐに使えるプログラムが記載されているので、アプリ開発でわからない部分が合った時にこの本で調べて、この本に記載されているプログラムを、自分のアプリのプログラムに流用します。

本だけではなくWeb上にもリファレンス的なページがあるのでそこも参考にするといいでしょう。

逆引きSwift

 

6.アプリ開発を開始!コアな部分から開発に取り掛かる

いよいよアプリ開発を開始します!コアな部分とはそのアプリに絶対必要な機能のことをいいますが…

さて、Twitter、Facebook、mixiに同時投稿を行うアプリでコアな部分はどの部分でしょうか?この場合は以下の機能が必須になってきます。

  • Twitterで投稿できること
  • Facebookで投稿できること
  • mixiで投稿できること

このようにコアな部分から開発を行うことによって、アプリ開発の実現性が早い段階からわかり、アプリ開発の問題点も早い段階から洗い出すことができます!

このコアな部分の開発がアプリ開発全体で一番時間がかかる部分になります。諦めずにじっくり取り組んでいきましょう!

 

7.わからない部分が出てきたらどうするか?

いきなりわからない部分が出てきました。Twiter、Facebook、mixiにプログラムでどう投稿するかがいきなりわかりませんでした^^; 上記の本にも載っていません。

この場合はどうしたらいいのでしょうか?ネットで地道に調べたり、サンプルプログラムをダウンロード、地道にどういったプログラムになっているか、サンプルプログラムを解析していくしかないですね〜

 

・Twitter投稿のサンプルプログラムを探す

Twitterはなかなかネットで情報が少なかったのですが、いろいろ調べると以下のページにサンプルプログラムがあるので、それを流用しました。

iOSアプリでTwitterのタイムライン取得・ツイートを行う

 

・Facebook投稿のサンプルプログラムを探す

FacebookはiOS用のSDK(ソフトウェア開発キット)があり使い方の日本語で丁寧に解説しているので、比較的ラクに開発できます。

スタートガイド – iOS用SDK

 

・mixi投稿のサンプルプログラムを探す

mixiもiOS用のSDKがあり日本語での解説もあったので、これもラクに開発できました。

mixi API SDK for iOS

 

8.コアな部分に機能を追加していく

コアな部分を開発できたら山場は超えました!あとはどんどん機能を追加していきます。私の場合は以下の機能を追加していきました。

  • Twitter投稿、Facebook投稿、mixi投稿のプログラムを1つに統合する
  • メイン画面の設定、テキストボックス、ラベル、ボタンなどを配置する
  • メイン画面から設定画面の移動など、画面遷移の部分の開発
  • アプリで設定した内容を保存しておく部分の開発など…

 

9.アプリが完成したらテストを行う

アプリが完成したら、テストを行います。iPhoneを実機を動かす方法は以下の記事を参考にしてください。

実機でテストを行う– Xcodeの使い方5

テストを行う方法は1冊の本が書けるほどなので、簡単に説明すると以下のテスト方法があります。

・単体テスト

1つの関数の単位で正常に動作するか確認するテストです。

・結合テスト

複数の関数を組み合わせて実行される機能が正常に動作するか確認するテストです。

・総合テスト

アプリ全体の動作をチェックします。正常に動くかチェックするだけではなく、通常ではありえない使い方をわざとして不具合が出ないかテストを行ったり、わざと高負荷の状態を作り出し不具合が出ないかテストを行ったりします。

 

10.アプリを公開する

テストで不具合がなければいよいよアプリをAppStoreに公開します。

最初にAppStoreに公開するにはAppleの審査があります。

その審査に通るためにAppleからインタフェースガイドラインという資料があるので、その資料のとおりにアプリができているかチェックします。

iOSヒューマンインターフェースガイドライン

全部読むのは大変なので、自分のアプリにある要素の部分だけ読んでいきます。問題のある部分があればアプリを修正していきました。

 

AppStoreにアプリを公開する手順は意外と面倒です。とにかくネットで調べて公開する方法を調べました。TechAcademy [テックアカデミー]の以下の記事が参考になります。

iPhoneアプリをAppStoreでリリースする方法

 

まとめ – この方法でプログラミング習得するメリット

この方法で私はアプリを開発してAppStore公開までできました。この方法では以下のメリットがあります。

  • 学習部分を最小限に抑るので、短期間でアプリ開発が行える。私は2週間で学習からアプリ公開までできました!
  • 学習を最小限に抑えるので、途中で挫折しにくい
  • わからない部分が出てから調べて学習するので、学習したことが身につき忘れにくい

 

ただ自分でわからないことを調べたり、サンプルプログラムを読むことは初心者では厳しい場合があるので、自分だけで調べて開発するのが厳しいと思った時は質問できる人がいるとすんなり開発できます。

最初だけプログラムの学校などで先生などにどんどん質問してアプリ開発して、アプリ開発に慣れてきたら自分だけで調べて開発できるようになるので、最初だけプログラムの学校を利用するという手もアリだと思います。

↓のプログラムの学校は一人一人にメンターがつきどんどん質問ができ、iPhoneアプリ開発の講座もあるのでおすすめです。

TechAcademy [テックアカデミー]