「アプリを開発したいけど何から始めればいいか分からない」
僕がプログラミングを始めたばかりの頃は、よくそう思っていました。
- プログラミング言語?Java、Swiftって何?
- iPhone持ってないけど開発できるの?
- どうすればアプリを作れるようになるの?
知識がない人にとってはすべてが分からないことだらけです。
僕は今でこそWebサイトやスマホアプリを作るエンジニアをやっていますが、高校生ぐらいまではITやパソコンには無縁でした。
地元は大阪の端の方にあるど田舎、実家の1階は電波が届くけど2階はインターネット圏外、友達にメールするときはわざわざ1階に降りてメールを送る、そんな環境で過ごしていました。
ですがそんな僕も学生時代にプログラミングに出会い、かれこれ5年以上アプリ開発を経験してきて、それなりにアプリ開発の全体像というのが見えてきました。
今では公開されているアプリを見て「このアプリはこうすれば作れそうだ」という開発のイメージがつくようになっています。
なぜそのようなスキルを習得できたかと言うと、それは僕が「アプリ開発の基礎」を大事にしてきたからに他なりません。
かの有名なバスケットボール選手のマイケル・ジョーダンはこう言っています。
I don’t care what you’re doing or what you’re trying to accomplish. You can’t skip fundamentals if you want to be the best.
何をやっているか、何を達成しようとしているかは関係ない。もしあなたが一番を目指すのであれば、基礎・基本は絶対に外せない。
出典: I Can’t Accept Not Trying: Michael Jordan on the Pursuit of Excellence
基礎を大切にすることによって、発展知識の習得に大きな加速をつけることができます。
ここではアプリ開発の基礎・基本に基づいた「王道の学び方」をご紹介します。
この方法は僕がこれまでプログラミングを学習する中で、
- これは別に知らなくても大丈夫
- ここはあまり使われていない技術だから深く学ぶ必要はない
と感じた無駄な学習プロセスを削ぎ落とした最短でAndroid・iOS開発ができるようになるであろうステップです。
このステップを3ヶ月間続ければ知識ゼロからでも「一通りアプリが作れる」という状態になっていることでしょう。
ここでご紹介する方法は自分自身でプログラミングを行い、自分の思いのままのアプリを作るための方法論です。
もしあなたが、
「いや、別にがっつりプログラミングを学ばなくても、そこそこ質のいいアプリを作れればそれでいいんだけど」
と思うのであれば、第4章で「コーディングなしでもアプリを作る方法」をご紹介しているので、そちらをご参考下さい。
それ以外の「自分で手を動かしてアプリを作りたい方」は、今回ご紹介する「王道の学び方」を知って頂き、アプリ開発者への第一歩になって貰えれば幸いです。
目次
1. 僕が初めて作ったアプリ〜8ヶ月後に作ったアプリ
「全くの初心者がゼロからアプリを作ると3ヶ月でどれぐらいのものができるの?」
そう思う方もいるのではと思い、
- 僕が知識ゼロの状態から初めて作ったアプリ
- 3ヶ月目に作ったアプリ
- 8ヶ月目に作ったアプリ
の3つをご紹介します。
※すべてAndroidアプリです
1-1. 関学バスタイム(開発歴:2ヶ月、製作期間1ヶ月)
学生時代に作った、大学から最寄り駅までのバスの時刻表アプリです。
今見るととにかくダサいです…。
ですが当時はアプリをはじめて作った喜びから毎日このアプリを使っていました。
普段は自転車通学なのに、このアプリを使いたいがためにバスで通学するほどです。
Google Play Storeに公開していたので、総ダウンロード件数は50件ぐらいでしたね。
すごくニッチなアプリです。
1-2. FlashLight(開発歴:3ヶ月、製作期間1ヶ月)
関学バスタイムの次に作った、懐中電灯アプリです。
あなたはスマホアプリを作りたいと思ったきっかけは何ですか?
僕は「スマホアプリで一発当てて稼ぎたいから」でした。
学生時代に「Androidアプリで一攫千金するぜ!」みたいな邪(よこしま)な考えを持ってまして、「懐中電灯アプリって世界中どこでも使われてるし、需要ありそう!」と思いこのアプリを作りました。
ただ世の中はそんなに甘くないのです。
同様のアプリが既にストアに乱立していて、競合に埋もれてダウンロード件数は20件ぐらいに終わりました。
「ビジネスって競合に負けたら全然儲からないんだな」と身を持って学んだ思い出深いアプリです。
1-3. 脳トレクエスト〜Busrt〜(開発歴:8ヶ月、製作期間2ヶ月)
このアプリは僕にとって一番思い出深いアプリです。
当時は「パズドラ」や「モンスト」のようなソーシャルゲームが続々とストアに出始めた頃で、「ソーシャルゲームを作れば売れるかも!」という浅はかな欲望から生まれた脳トレアプリです。
元々「脳トレクエスト」というアプリ名で公開したかったのですが、既に同様の名前のソーシャルゲームがあったため、商標関係で訴えられたらどうしよう…と思い苦肉の策でつけた「Burst」です。
ちなみに「Burst」は僕が好きだったゴッドイーターBurstというゲームから来ています。(懐かしい…)
僕の友人がこの「脳トレクエスト〜Burst〜」にハマってくれて、周りの人にも勧めてくれた結果、5~6000件ぐらいダウンロードされるゲームになりました。
これぐらいのダウンロード数だと全然儲かりはしないのですが、色んな人が使ってくれて「アプリを作るのって楽しい!」と思った記憶があります。
僕がアプリを作る上で大事なことは基礎はもちろんですが、モチベーションの維持がとても重要だと思っています。
別に使いたくない、公開しようと思わないアプリを作っても楽しくないですよね?
どうせなら自分が作りたいアプリを作った方が楽しく学習を続けられて、目標が明確な分、学習の吸収率も格段に上がります。
アプリ開発を学ぶときは「これを作りたいんだ!」というイメージを持つことをおすすめします。
2. 初心者がAndroid・iOSアプリ開発ができるようになるまでの6ステップ
アプリ開発ができるようになるためには基礎を身につけることが大切です。
ここではアプリ開発の基礎を身につけるための6つのステップをご紹介します。
具体的には次のステップがあります。
- まずは作りたいものをイメージする(目安時間1時間)
- アプリ開発に必要な準備(目安時間2日)
- 先にプログラミング言語を学ぶ(目安時間2週間)
- 動画で学びながら実際にアプリを動かしてみる(目安時間2週間)
- アプリ開発の基礎を本で復習する(目安時間4週間)
- 実際に好きなものを作ってみる(目安時間4週間)
合計 約3ヶ月
何を・いつまでに・どこまでやればいいかを具体的に説明するので、1つ1つステップを確認していきましょう。
2-1. まずは作りたいものをイメージする(目安時間1時間)
まずは自分が何を作りたいのか、どのようなアプリを作りたいのかをイメージすることをおすすめします。
- メルカリのようなフリマアプリを作りたい
- Twitterのようなつぶやきアプリを作りたい
- RETRIPのようなメディアアプリを作りたい
いろんなイメージがあると思いますが、「こういうアプリを作る」というイメージを持つことがとても大切です。
これに次の2つの理由があります。
- 作りたいものをイメージすることで必要な機能の学習に集中できる
- 学習のモチベーションが上がる
という理由です。
作りたいものをイメージすることで必要な機能の学習に集中できる
プログラミングを学習する上で、よく使う知識、あまり使わない知識というのが存在します。
例えば、ボタンをタップした際にポップアップを表示する機能はどのアプリでもよく使われます。ですが、端末の傾きを測るセンサーなどはほとんどアプリでは使われていません。そのようなあまり使わない機能の学習に時間を割くのは非効率です。
自分が作りたいものをイメージすることによって、「あ、これを学べば自分が作りたいものを実現できそう」という意識付けになり、より集中して学習に取り組めるようになります。
逆に「これは自分の作りたいものにはあまり関係がなさそうだ」と思ったら、「こういう機能もあるのか」くらいの学習に留めておくとよいでしょう。
何を作るかイメージが出来ていないまま学習をするというのは、受験生が志望校や学科を決めずにとりあえず数学を勉強するようなものです。
まずは自分が「こういうアプリを作りたい」というイメージを持ちましょう。
学習のモチベーションが上がる
以降で進めるステップには多くの基礎、基本を身につけるステップがありますが、基礎の学習は少しつまらない作業もあります。
そんなときモチベーションになるのが「これを作りたい!」という欲求です。
メルカリのようなみんなが使うアプリを作れたらワクワクしませんか?
Instgramのようなキレイなアプリができればかっこよくないですか?
そういった作りたいものをイメージすることでつまらない基礎の学習にも集中して取り組むことができるでしょう。
Android、iOSどっちをつくればいいか
アプリ開発初心者の方が「AndroidかiOSアプリを作りたいのですが、初めはどっちを勉強するのがおすすめですか?」という質問をお受けする機会があります。
Android、iOSどちらを選んでも作れる機能に差はないため好みの問題ですが、もしどちらを作るか悩むなら下記を目安にするとよいでしょう。
Android
- Javaの学習経験がある
- PCがWindowsしかない(※Macでも問題はない)
- Android端末を持っている
iOS
- PCがMac
- iPhone端末を持っている
もし、あなたがアプリ開発者として就職や転職を考えている場合、Android、iOSどちらを学習するかは非常に悩ましいことかと思います。
日本のスマホ所有者の7割がiPhone所有者と言われていますが、大きいサービスではAndroid、iOS両方開発するケースが多いため、アプリエンジニアの需要は大して変わりません。
採用では、それよりも「自身でアプリを開発した」というプロセスの方が重視されるため、どちらを作るかは上のリストを参考に選ぶといいでしょう。
出典: iPhoneシェア率が異常!世界と逆をいく日本のスマホ市場【2018年7月】
2-2. アプリ開発に必要な準備(目安時間2日)
Android・iOS開発に事前に必要なツールは次の通りです。
Android開発で必要なもの
・インターネット環境
開発に必要なソフトやツールをインストールする際にネットでダウンロードすることがよくあります。そのため、インターネット環境は必須です。
・パソコン(WindowsでもMacでも可)
WindowsでもMacでも構いませんが、アプリ開発にはパソコンが必要になります。メモリはできれば8G以上が望ましいです。
・Java Development Kit (JDK)
Androidアプリを作るためのプログラミング言語であるJavaをPCにインストールする必要があります。Javaはこちらから無料でインストールすることができます。
・Android Studio (Android SDK)
Androidアプリ開発をする上で開発を楽にしてくれるツールです。このツール上でプログラミングを行い、実行することでAndroidアプリを起動させることができます。
Adroid Studioはこちらからインストールすることができます。
・Android端末(無くてもいい)
Android端末を持っていればその端末に開発したアプリをインストールすることができます。ただAndroid端末を持っていなくてもエミュレータという、PC上で動く仮装のAndroid端末を使ってそこでアプリを動かすことが可能です。
Android開発の現場ではGeny Motionというエミュレータをよく使います。「Geny Motion」はこちらからインストールすることができます。
iOS開発で必要なもの
・インターネット環境
Android開発と同様にインターネット開発は必須です。プログラミングで分からないことがあったときの調べる手段としてもインターネット環境は用意しておくとよいでしょう。
・Mac
iOSアプリ開発にはMacが必須になります。Windowsでは開発ができません。それは後述するXcodeというツールがMac上でしか動かないため、iOSアプリ開発にはMacが必須となります。
・Xcode
こちらはiOSアプリ開発に必要なツールです。このツール上でプログラミングを行い、実行することでiOSアプリを起動させることができます。
・iPhone端末(無くてもいい)
Androidと同様に、iPhone端末を持っていればその端末に開発したアプリをインストールすることができます。
ですがiPhone端末を持っていなくてもシミュレーターというPC上で動く仮装のiPhoneを使って動作を確認することができます。こちらはXcodeに標準で付いているため、特に別途インストールをする必要などはありません。
2-3. 先にプログラミング言語を学ぶ(目安学習期間2週間)
Androidアプリを作るにはJava、Kotlin、C#といったようなプログラミング言語がありますが、初心者であればJavaから始めることをおすすめします。
なぜなら、Android開発ではJavaでの開発が一番王道で、ネット上に情報が多くあるからです。
最近はKotlinというプログラミング言語を採用するケースも増えてきてはいますが、実際のプロジェクトでは依然Javaを採用されることが多いです。
また、ネット上ではJavaの情報がKotlinに比べて圧倒的に多く、初心者でKotlinを選んでしまうと「何かネットと書き方が違うんだけど…」ということになりかねないため、初心者はJavaから学習するのをおすすめします。
iOSアプリを作るならSwiftから学習するのがよいでしょう。
AndroidにとってJavaが王道であれば、iOSはSwiftが王道です。
具体的な学習方法としては、ドットインストールというサイトでJavaの動画を見て1つ1つ真似るのが一番おすすめです。
ドットインストールは動画でプログラミングを学べるサイトです。
このサイトの動画の良いところは、ほぼノンカットで動画が撮られているところです。
プログラミング中に間違ってエラーになった部分まで撮られているため、エラーが起きた際にどういった対処をしているのか、どのようなときにそのエラーが起きるかを理解することができます。
僕自身もプログラミング初心者のときはよくドットインストールを見て学習していました。動画1つあたりの再生時間も10分程度のため、疲労が貯まらず集中力を持続して学習に取り組めます。
初心者にとってはドットインストールは非常にわかりやすいため、初めはこのサイトで学習することをおすすめします。
Javaの動画はこちら
Swiftの動画はこちら
2-4. 動画で学びながら実際にアプリで動かしてみる(目安学習期間:2週間)
ドットインストールでプログラミングの言語の文法やルールを学んだあとは、いよいよアプリ開発に取り組んでいきます。
アプリ開発もまずはドットインストールでの学習がおすすめです。
プログラミングを初めて間もない頃はツールの使い方や、メニューの位置すらもわかりません。
本でそれらすべてを事細かく記載してはくれないので、ドットインストールのようなノンカットでプログラミングの作業を実況してくれるサイトを使って学習するのがおすすめです。
Androidの動画はこちら
iOSの動画はこちら
2-5. アプリ開発の基礎を本で復習する(目安学習期間:4週間)
ここまでのステップでプログラミング言語の文法とアプリ開発の基礎中の基礎を学びました。
この段階でアプリを起動してボタンを押せば画面を切り替えられるぐらいの簡単なアプリぐらいは作れるようになっています。
ですが、まだまだ作りたいものを作るにはほど遠いレベルです。
ここからは一気に自分が作りたいものに近づけていくための基礎を学んでいきます。
動画を学んだ後は本で体系的にアプリ開発の仕方を学んでいきます。
スマホアプリというのはボタンやテキストのような基本的なパーツの集合で作られていて、それぞれのパーツには名称や設定方法にルールがあります。
これらのパーツを見て「ここの入力フォームはこのパーツを使えばいい」というイメージができるようになれば、だんだんと思い通りのアプリを作れるようになってきます。
そしてそれらのパーツが体系的に、また網羅的に記載されている本を使って学習することがおすすめです。
僕がおすすめするのは次の本です。
Android開発初心者におすすめの本
この本のいいところは、簡単なサンプルを作りながらアプリ開発を進められるところです。
僕がエンジニアをやっていて一番感動したのは「自分で作ったアプリが、自分のAndroid端末で動いた瞬間」でした。
体型記録アプリやじゃんけんアプリなどを実際に作ってみて、自分のAndroid端末でそれが動作したときの感動はひとしおです。そのため初心者はこの本のサンプルアプリを作りながら学習を進めるとよいでしょう。
これらの本はアプリ開発をゼロからはじめて、Google Play Storeに公開する方法まで丁寧に記載されています。
また、これらの本はアプリで使うパーツが網羅的に記載されているため、開発で困った際の辞書代わりにもなる本です。
iOS開発初心者におすすめの本
この本はタイトルからすごいですね。絶対に挫折しない…。
iPhoneは結構途中で開発を挫折する人が多くいます。
なぜなら、XCodeの説明やSwiftの説明をさらっと流してしまう本が多いため、途中で「どうすれば本の通りいくか分からない」という状態に陥りがちなんですね。
この本は図や解説がとても豊富で読んでいて躓くところがほとんどありません。また、SNSアプリやカメラアプリなど作ってて楽しいサンプルが載っているため楽しみながら学習を進めことができます。
2-6. 実際に好きなものを作ってみる(目安学習期間4週間)
本を一通り読み、理解ができるようになったら、最終的に自分の好きなものを作ってみるとよいでしょう。
例えば、このような画面を作りたいとします。
「うーん、何だか難しそうだ」
最初はそう思うかもしれませんが、これらのパーツを細かく見てみると基本的なパーツの集合であることがわかります。
1つ前のステップで基本的なパーツの開発の作り方を学んでいれば、「このパーツはこう作ればいけるかも」というイメージが湧いてくるようになっているでしょう。
一見複雑そうな画面であっても、それらは結局単純なパーツの集合でしかありません。
1つ1つ、積み上げてきた基礎をベースに作りたいものを仕上げていきましょう。
3. さらなるレベルアップを目指すために必要なこと
2章で紹介した6ステップを忠実に実行するだけでも十分アプリを作る力は身につきますが、
「アプリエンジニアとして現場で活躍したい!スキルアップしたい!」
という場合は、次にご紹介するやり方で開発のスキルを上げていくのがおすすめです。
- エンジニアになりたい訳ではない
- 趣味程度のスキルで十分
- ちょっとこれまでの内容でお腹いっぱい
という方は読み飛ばしてください。
3-1. GitHubのソースコードから学ぶ
GitHubにはプログラミングのソースコードがたくさん載せられています。
次のソースコードは脱初心者を目指す方にはおすすめのソースコードです。
【Android】antoniolg/androidmvp
このプロジェクトではAndroidの現場でよく見かけるMVPパターンを極限までシンプルに書いたソースが記載されています。
MVPパターンとは、アプリ開発における一種のルールみたいなもので、ソースコードをより分かりやすく、拡張しやすく作るための設計手法になります。
このプロジェクトは10分もあれば一通りのソースコードを見ることができるため、初めてソースコードを読む方にもおすすめです。
【Android】googlesamples/android-architecture-components
このプロジェクトはアプリ開発におけるメジャーな設計手法を、それぞれ同じ単純なアプリで作ったものです。
上で紹介したandroidmvpと比べると少しレベルが高いですが、これらのソースコードを読みこなせるようになればAndroid開発現場で「何を書いているか分からない」というようなことはなくなるでしょう。
【iOS】iyadagha/iOS-mvp-sample
こちらは簡単なiOSアプリをMVPパターンで書かれたシンプルなアプリです。
このソースコードも非常に分かりやすく、脱初心者を目指す人にはおすすめです。
【iOS】marty-suzuki/QiitaWithFluxSample
こちらはプログラミングQ&AサービスのQiitaのリーディングアプリです。
実際の開発現場ではネットワーク通信することが多く、それら通信機能の作り方や、ソースコードの書き方は非常に参考になります。
3-2. 実際の現場で学ぶ
プログラミングのスキルを上げる最短ルートはやはり現場での実践です。
実践に勝るものはありません。
- 世の中で公開されているアプリがどのように書かれているのか
- ディレクトリの構成はどうなっているのか
- 少しこだわったデザインのアプリ作るにはどうしているの
現場のプロジェクトを通して学ぶことはとても多いでしょう。
3-3. Web開発を学ぶ
スマホアプリ開発をしていく上で「ネットで通信したアプリを作りたい」という思いが出てくると思います。
TwitterのコメントやInstgramの写真のように、ネットにアップされているものを他のユーザーが閲覧出来るようにするにはWeb開発の知識が欠かせません。
アプリ開発の幅を広げたいのであればWeb開発も学んでみることをおすすめします。
4. コーディングなしでもアプリを作る方法もある
2章~3章ではプログラミングを通じてスマホアプリを作る方法をご紹介しました。
ですが、実はプログラミングをしなくてもアプリを作れる方法があります。
もしも「プログラミングは別にできなくてもいいから、簡単に早くアプリを作りたい」
という考えをお持ちであればこれからご紹介するサービスを利用してみるとよいでしょう。
4-1. 実際の店舗の集客手段としてアプリを作りたいならYappliがおすすめ
Yappliを使えばショッピングアプリや、メディアのアプリを低価格で高速にアプリを作ることができます。
ブラウザでパーツや色を変更することができるため、プログラミングの学習は一切不要。
大手アパレル企業のアプリなどでも活用されており、豊富な機能が特徴です。
ただ、こちらは実際にメディアや店舗を運営している方向けのサービスであるため、個人で「ライトにアプリを作りたい」という場合には向いていません。
「実店舗の集客手段としてスマホアプリを使いたいんだけど」という人にとっては低価格で豊富な機能を実現できる素晴らしいサービスです。
4-2. 手軽に業務アプリを作りたいならappery.ioがおすすめ
ブラウザでパーツをドラッグ&ドロップするだけでアプリが作れるサービスです。
APIの設定や、データベースの設定などもできるため、本格的なアプリを作ることも可能です。
ですが海外のサービスであるため、あまり日本国内での事例があまりないのがネックとなります。
「ブラウザで手軽に業務をアプリを作りたい」という人にはおすすめです。
5. スマホアプリ開発への需要は高まる一方
アプリ開発を仕事にしたい、と思う人にとってはアプリ開発の今後の市場は気になるところ。
総務省の発表によると、スマホアプリ開発の市場は右肩上がりで拡大しており、今後も更に規模が大きくなっていくことが見込まれています。
あなたも日常生活の中でスマホアプリを使う機会が非常に多いのではないでしょうか?
- 友達に連絡するならLINE
- 写真をアップするならInstgram
- ちょっと暇な時にソーシャルゲーム
我々の生活の中にスマホアプリの存在が強く根付いてきています。
事実、僕はWebサービス・スマホアプリの開発の相談を受ける中で、「スマホアプリを作りたい」という企業がとても増えていると感じています。
ですが、Androidアプリ、iOSアプリを作れる会社というのはそう多くはありません。
エンジニアを数千人を抱える会社でさえ、「仕事量に対してAndroid、iOSを作れるエンジニアが全然足りない」という声も聞きます。
今はアプリ開発を学ぶことで、アプリ開発エンジニアとして新しいキャリアを築きやすい時代だと僕は考えています。
Android、iOSはまだ世に公開されて10年足らずの歴史の浅い分野です。
20年エンジニアとして働いてきたベテランであってもスマホアプリ開発はさっぱり分からない、という人は大勢います。
たとえ初心者であってもスマホアプリ開発という点ではベテランエンジニアと同じスタートラインに立つことが出来るのです。
ぜひ僕はアプリ開発を学ぶことをおすすめします。
まとめ
いかがでしたでしょうか?
最後にこれまでご紹介した「Android・iOSアプリ開発ができるようになるまでの6ステップ」をおさらいします。
- まずは作りたいものをイメージする(目安時間1時間)
- アプリ開発に必要な準備(目安時間2日)
- 先にプログラミング言語だけを学ぶ(目安時間2週間)
- 動画で学びながら実際にアプリを動かしてみる(目安時間2週間)
- アプリ開発の基礎を本で復習する(目安時間4週間)
- 実際に好きなものを作ってみる(目安時間4週間)
スマホアプリの開発は年々そのニーズが高まっています。
個人でアプリを作って楽しむもよし、アプリ開発者として新しいキャリア形成を目指すもよし
この記事があなたのアプリ開発への一歩になれば幸いです。
ぜひアプリ開発を楽しんでください!
コメント