これから iOS アプリ開発をする人に伝えたいこと
先日、iPhone アプリをリリースしました rakuishi です。
僕は高専の授業で C 言語を一年間勉強した以外は、独学でプログラムを書いている初心者に毛が生えたレベルです。それでも授業・研究が終わってからコツコツとコードを書いて、なんとかアプリをリリースすることが出来ています。
この記事では、僕がそんな生活の中で感じたり、思ったコツ(?)のようなものを伝えられればいいなと思います。
1. 自分が本当に欲しいアプリの開発を目指す
「さて、アプリの勉強をしよう」と奮い立って、書店に出向いて iPhone アプリ開発に使えそうな参考書を買うのが普通だと思います。
そして、参考書を最初から読み進めながら、そこに載っているプログラムのコードを見て、動かして勉強していきます。これは、途中までは動いてるのが感動できて、なかなか楽しいのですが、途中で飽きてしまいます。
参考書に書いてあるコードをそのまま書いたらこう動くんでしょ、と勉強しなくても分かった気分になるからかと思います。
ですので、一通り参考書を眺めて、実装できそうな機能を自分で書いてみて、後は、自分が欲しいと思ってるアプリに近付けるために参考書からパーツを盗んでいくというのが、一番モチベーションを保てます。
基礎から積み上げる学習は大切だと思うのですが、咲かせたい花のために、必要な栄養素を求めて根を伸ばし吸い上げるように学んでいくほうが、アプリ開発を続けていく上でモチベーション的に大事だと思います。
一番身近な自分というユーザのためのアプリ開発を目指しましょう。
2. 日頃からこんなアプリあったらいいのにをメモする
App Store には、本当に様々なアプリが集まっています。
ですので、アプリが飽和している今、アイデア勝負が結構大事になってくると思います。しかし、アイデア勝負といっても難しく考える必要はなくて、日頃から、iOS に触れていて、こんなことできたらとかこんなのがあったらいいのにという感じでいいと思います。
しかし、急にこんなのあったらいいのにが口を衝いて出てくるのは難しいです。
そこで、日頃から浮かんだアイデアをメモするのを心がけておくといいです。僕は、FastEver というアプリから、Evernote にこんなアプリあったらいいのにというアイデアを溜め込んでいます。使えそうなアイデアは、月に 1 個ぐらい浮かびます。
多分誰にだって、こんなんできたらいいのになとか、このアプリは凄いんだけど、これあったらすげえよくなりそうというのを持っているはずです。
そういうのを忘れないためにもメモしましょう。
3. アプリの完成形を意識して、細かいパーツに分ける
さて、開発をしようと思ったときに、紙にアプリの UI を書きだして、実装したい機能もすべて書き出していきます。
僕が去年の夏に出した「StampTime」というアプリは、とあるアプリ開発本の中だけで開発できそうで、App Store にそんな単純な機能をもったアプリがなさそうだったので開発しました。このアプリの場合は、以下のような感じで、機能を書きだしていきました。
テキストフィールドを 2 つ設置。ボタンを 2 つ設置。テキストラベルに文字を表示。画像を表示。時間で更新。ボタンアクションを結び付ける。キーボードを隠すボタン・リセットボタン・インフォボタンを設置。クリップボードにコピー。アプリを終了してもデータが残る方法を検討。ピッカーでデータを選択。カレンダー配列を用意。
実際はもっと細かく分けていきますが、こんな感じで、単純そうなアプリに見えてかなり多くの機能を詰め込んでいることが分かります。
アプリ開発は、既存のコードの張り合わせでなんとかなるパッチワークみたいなもんです。上記で挙げた機能を実装していけばいつかは完成と呼べる形になります。
そして、なるべく毎日そのいずれかをクリアしていきます。
本当に小さいことでいいです。ボタンを配置するとか、ピッカーのデータ選択を学習するとか。で、書きだしたメモにチェックを入れます。
とても些細なことですが、終わりの見えないアプリ開発において、1日1日成長している実感ほど強い見方はないです。
4. 毎日コードを眺めて、諦める
プログラム開発では、詰まる場面が多々あります。
僕の場合、色々な方向から攻めてみても駄目な場合は、諦めて寝るといい感じでした。
そして、新しい明日の他人のような自分がその問題を解決するのに期待します。実際に、僕はこの諦めて、寝て、起きてからすぐにその問題にとりかかるようにしたら、出来なかったが出来ることが多々ありました。
そういう意味で、開発の時間を夜と朝に別けるというのはかなり利口なやり方なのかなと思います。
5. 日本語は情報が少ないので英語で検索する
自分が躓いていることは、多くの人が躓くポイントでもあります。なので、探せば答えが出てくるだろうという望みをもって、検索に掛ける(賭ける)のですが、それでも見つからない場合があります。
そこで諦める前に、英語で検索してみましょう。http://google.com/ から検索します。その際、日本語を含めてしまうと日本語ノイズが混ざるので、英語で。
単純に考えて日本語を使う人口と英語を使う人口は段違いなので、英語で検索することでだいたいの問題は解決します。
英語が苦手でも、ソースコードは不思議と読めるもので、単語の意味をちょこちょこ調べていけば意味が繋がりますし、翻訳にかけるのも自由です。英語の授業と違って、使えるものは何でも使えます。
特に、Stack Overflow は、世界中のプログラマの悩みが交わされている感じなので、オススメです。
おわりに
僕は、昔から何か作りたいなと思っていたのですが、その夢を一番感動できる形で実現できるデバイスが iPhone でした。
パソコン上で動くプログラムとは違って、常に肌身離さず持っている iPhone 上で自分の書いたコードが動いている体験は、他ではちょっと味わえないんじゃないかと思います。
以上が僕の伝えたかったことです。
この記事が、アプリを作ってみたいと夢見てる人の背中を押すことが出来れば幸いです。
↓ 僕はこの書籍を読んで勉強しました:)