★「デザイナーの私が、どうやって1本目のiPhoneアプリをリリースできたのか?」を書いてみました。
私は2年前に体を壊して会社を辞め、現在フリーランスとして活動しています。
去年はWebデザイナーとしてそれなりの成績を上げたのですが…。
まだまだ足りない!
(まぁ理由はいろいろあります…)
そこで、突然思い立ち…
iOS(iPhoneとかiPadとか)のアプリ開発を始めました。w
しかし「元々プログラム側の人間ではなく、デザイン側の人間」なので、「何をどうしたらいいのか、何から始めたらいいのか、全く見当がつかない」という状態…。
そんな中、約1ヶ月半かけて初めてのアプリ「AnimatorTool」をリリースすることができました!
そこで、この記事では「デザイナーの私が、どうやって1本目のiOSアプリをリリースできたか」を「様々なつまずきPoint」を交えて書いてみます。
経験無し!
最初に「よし、やってみよう!」と思い立ったのはいいのですが、その時点で…
アプリ開発の経験が全くありません!(爆)
さて、どうしたものでしょう。w
とは言うものの、「無鉄砲に計画した」訳ではなく…。
「全くない」と言うのは語弊があります…。(^_^;
プログラム経験は「ほぼ」ありません
私はデザイナーなので、プログラムの経験は「ほぼ」ありません。
プログラム経験といえば…
- 25年くらい前。
MacのHyperCard(知ってる方はほぼ居ないのでは?w)で「WhatIf!?」というアーケードゲームを模倣したカードゲームを作りました。 - 5年くらい前。
会社に居た頃、色々な作業の自動化を簡単なプログラムで作りました。 - 1年前。
Webデザイナーを始めて「JavaScriptとかjQueryを覚える必要があった」ので、「(また)WhatIf!?」の模倣を今度はWebアプリとして作りました。
という程度の経験です。
そういう意味では「プログラミングは得意かもしれない?と勝手に思っている人」だと思ってください。w
ですが、「この程度の経験で、スマホアプリ開発に手を出していいのか!?」という疑問が拭えません…。
下手をすれば「何から何まで分からずじまいで、何も完成しなかった」という結果が容易に想像できます…。orz
それでも「1年前に、Webのゲームを作った」経験がかなりの自信になっていました。
「自分ならできる!」と勝手に思っていたのですが、「勝手な自信」というのは結構強力で、全くわからない分野に土足で踏み入る勇気を与えてくれました。ww
それが最初の原動力です。
最初の一歩(見切り発車もいいけど…)
「案ずるより生むが易し」とも言うので、「とりあえず、本を読みながら始めてみよう」と思い、最初に読んだのが↓この本です。
本を読む前に、ネットで色々と検索し、なんとなく得た知識で「iOSはXcodeというアプリを使って開発し、AndroidはAndroidStudioというアプリを使って開発する必要がある」ことはわかっていました。
で、なぜこの本を選んだかと言うと…
このCocos2d-xはその二つ(iOS用とAndroid用)を同時に作ってしまうツールなのです!
何と素晴らしい!!
で、早速本の通りに作り始め、チュートリアルを終えると…。
できました。チュートリアルで作る「カードゲーム」はできましたけど…
C++が全く理解できない!
つまり「プログラムが読めない(自分の力では理解できない)」という状態になりました…。
少なからず「プログラム」と言われる部分は読める自信があったのですが、C++は「何が書かれているのかわからない」…。
というか、ちょっと特殊?(それともこれが普通?)な書き方なので、全く理解できません…。
何しろ「文法がわからない」のです。ww
「プログラムが読めない」と言うことは…
「誰かが書いたプログラムの断片をコピペ(本に書かれている内容をそのまま書き写すなど)すれば、その機能は実現できる」のですが、「自分が作りたいものを、どうやれば実現できるのか考えること自体が不可能」です。
つまり…
クリエイティブ性がゼロ!
(新しいものを構築することが不可能)
ってことで…
これでは自分が思った通りにアプリを作ることが出来ないことに気づきました…。
途中までは「C++を覚えるぞ!」って意気込んで勉強していたのですが、その最中…
「これって、いつになったら思ったものが作れるようになるのだろう?…」
と思うようになり、挫折…。
諦める(辞める)のは早いほどいい!
※私の持論。「結果的に辞めるなら、新しいことをさっさと始める方がいい」という意味です。w
とは言うものの、少なからず「自分には無理なのかな?」というショックもあり、「3ヶ月ほど、アプリ開発を諦めていた」時期がありました。w
その後「できるかも?」と思い直したのは、少し冷静になって…
「初めてのiPhoneアプリ開発」という感じのタイトルの本を立ち読みした時です。
初めての?初めてでもできる!?本当に???
どんなカテゴリーの本でも「初めての」シリーズってありますよね?
「初めてのiPhoneアプリ開発」という感じのタイトルの本は結構多く出ています。
※ほんの一部です。
この本達の中から自分にあった・自分が理解できるベストな本を探さなくてはなりません…。w
タイトルに「初めての」とか「挫折しない」とか書かれていても正直「どれが自分にあっているのか」がわかりません…。
最初に挫折したcocos2d-xの本だって「はじめてでもよくわかる!」ですが、個人的にはわからなかったので、一抹の不安がよぎります…。orz
「初めて本(初心者向けの「初めての〜」というタイトルの本)」を選ぶポイント
実は先の挫折で理解したことがありました。
- 自分のレベルにあっているものを探す
- 想定読者を見極める
- 一冊で済ませようとしない
- 段階を経る
- 立ち読みする
- 最新の開発環境を対象に書かれた「新しい本」を選ぶ
です。
自分のレベルにあっているものを探す
まぁ、そのためには自分のレベルを知らなくてはならないのですが。w
多くの場合、初歩の初歩で必要な基礎知識(iPhoneアプリ開発はXcodeを使うとか、Objective-CやSwiftという言語を使うとか)はほぼネットで見つけることができます。
もっと言うと「じっくり時間をかけて検索をすれば、自分の理解度(レベル)が徐々に上がり、ネットからかなりの情報を得ることができる」とも言えます。ほんとで。
しかし、最初の頃は「ネットで書かれている情報は断片的(わかる人対象に書かれている)」であったり、初心者には理解できない単語が多く、その結果「全くわからない」という状態になってしまいます。
これが「ネットの情報を検索した時点で挫折する原因」です。
つまり「ネットの情報が理解できるようになるためには、それなりの基礎知識が必要」なんです。
そういった基礎知識もうまく検索して「自分のレベルに見合うページに出会う事が出来たら」理解できます。
しかし、正直なところ…
ネットだけでスムーズに理解できるようになる(自分が何を必要としていて、なんて検索したら目的の情報が出てくるのかを理解する)のは初心者には困難です。
そこで「初めて本」のお世話になることにします。
自分のレベル とは…
- Xcodeってなに?Swiftってなに?って状態
- アプリってプログラムと画像(画面)はどうやってつながるの?
- プログラムはJavaScriptとかで経験があるけど、アプリにするときのアプローチがわからない
とかそんな感じの違いです。
1.ならそこから書き出している本が必要で、
2.ならそういう事をより詳しく書かれている本が必要で、
3.ならそういう人を対象に書かれている本が必要です。
つまり「自分のレベルを知る」のが重要なのではなくて、「自分のレベルにあった本を選ぶ」のが重要なのです。
想定読者を見極める
多くの「初めて本」には「想定されている読者(読む前に必要な知識)」が書かれています。
(先ほどのcocos本には書かれていませんでした…いいえ、そこを責めるつもりはありません…自分のミスですw)
例えば…
この本は、初歩のプログラミング経験(if then文やfor文を使ったことがある)があり、これからiOSアプリを作り始めようと思っている人を対象に書かれています。
という感じの記述があります。
そういう想定を読んで、自分のレベルに合った本を選びましょう。
それよりも、もっと初歩の場合。
「なんとなくネットで情報を集めながら、気になった単語を随時調べる」とかやると「徐々に知識がたまっていく」のが実感できます。
しかし「初歩の初歩対象で、順序立てて書かれた本が欲しい」のであれば…。
表紙デザインがかわいらしかったり、タイトルに「サルでもできる」とか「小・中学生でもできる」とか書かれた本を物色してみるといいです。
※↑出版日が古いのでご注意ください。
※表紙は意外と重要で、シンプルなものは「学術的に書かれている本」で、上級者向けです。POPなものは「より初心者向けに書かれている」事が多いです。そういう意味では、第一印象で「ピンと来たものを選ぶ(ジャケ買い)」のはあながち間違っていないのカモ知れません。w
この手の本は「最初の一歩をとても低く想定して書かれています」ので、確認してみてください。
ただ「本当は少しだけ知っているんだけど、最初はこういう本がいいかな?」と思って買ったりすると…
「そんなことは知っとるわー!」
となるので、こちらもご注意ください。w
本を読んでいてもそうなんですが、結局「ネットを調べるのが上手になる必要がある」と思います。
どちらかと言うと「自分が欲しい情報を表示させるためには、どんなキーワードを書いたらいいのかわかってくる」ので、その段階までは急がず順序を追って、予備知識を貯めましょう。
ある程度の基礎知識がたまって、初めて「初めて本の想定読者が理解できるようになる」とも言えるのです。
一冊で済ませようとしない・段階を経る
これまた重要なんですが…。
急ぎすぎると何も得られなくなります。
先の私の挫折がコレです。w
「初めて本」で身の丈に合わないものを選んだ場合、多くの用語自体が理解できず、「まるで英語の本を読んでいるかのように、ネットで用語を調べながら読まなくてはならなくなる」ため、読んでいられなくなります。w(それでも我慢して読了したら、効果はあるんでしょうか??)
また、そのような本を買ってしまった場合、その前のレベルの本(つまり辞書w)が必要になるのですが、「それがどれだかわからない」という事態に陥ります…。
なので、「今の自分が理解できる本」を選ぶようにしましょう。
そして「一冊目を読み終えた時、新たな疑問が生まれます」。これが二冊目へのアプローチです。このように「段階を経て本を読み進める」ほうが良いです。
近道しようとすると、もっと遠回りする結果になるかも知れません。「急がば回れ」ですよ。w
立ち読みする
前述とかぶりますが、ここまでのことを理解するためには少なからず「立ち読み」が必要です。
私もAmazonから本を買うことが多いのですが、この手の「初めて本」はジャケ買いすると失敗します。w
最近ではAmazonでも「立ち読み」できる本があり、特に「読者想定」や、「目次」が全て見えるものはとても選びやすく、私もAmazonでジャケ買いすることが時々あります。w
まぁそういう時は「当たったらおめでとう」レベルの買い物になってしまうのですが…。(^_^;
プログラムの「初めて本」を選ぶ際、一番重要なのは…
- 自分の知りたい内容が重点的に書かれているのか
- 自分が理解できる書き方をされているか
なので、Amazonの立ち読みだと物足りないことがあります。
私は本を探す場合、最初はAmazonを使います。立ち読み機能とか、評価をじっくり読んで、最初に幾つかの本に絞り込みます。
※正直なところ、この時点では評価は役に立ちません。w 個人的な意見なので。w ただ、良い評価が出ている本は「立ち読み候補」としています。
その後、最寄りの「大きな本屋さんへ電話して、在庫があるか確認してから見に行く(買うかどうかわからないけどと一言言って、取り置いてもらう)」ようにしています。
そして実際に立ち読みをしながら、以下の点をチェックします。
- 自分のレベルに合っているか?(読みやすいか?)
- 自分の知りたいことが書かれているか?(内容が多岐にわたりすぎて、知りたい内容が少なすぎないか?)
- 少し読んで、理解できそうか?
どの本が自分に合っている本なのか確認するためには、立ち読みして、納得してから購入しましょう!
本来立ち読みとは「その本が自分の欲しい内容なのか確認するためのもの」なのですから。(…多分あってると思います。w)
最新の開発環境を対象に書かれた「新しい本」を選ぶ
プログラムの「初めて本」の場合、この「新しい本」は非常に重要です。
2017.3.1時点のiOSで言うと…
Xcode 8
Swift 3
を謳っているものでないと、後から後悔します。w
理由は…
- 今から始めるとすると、開発環境(iOSなら、Xcode)は最新のものしか手に入りません
- 故に古い本を選んだ場合「本に沿って作業を進めると、必ず途中で自分で解決できない問題が発生」します
その問題とは…
- 「開発環境のレイアウトが違っていて、クリックしなくてはならない場所が見つけられない」とか…
- 「Code(プログラム)が古くて、エラーが発生するけど治せない」とかです。
プログラム(及び開発環境)は日々進化し続けており、故に古い本の情報は「現在手に入る開発環境とは違う物」なので、「自分で解決できない問題」に直面し、先に進めなくなります。
必ず最新の開発環境を調べ、それに即したVerで書かれた本を選びましょう。
(なのでプログラム本は出版するタイミングが難しいのです…)
つづく
ちょっと長くなってしまったので、続きは「その2」にします。w
次は「私が選んだ本」から始まります。