僕がプログラミングを始めたばかりの頃は、よくそう思っていました。プログラミング言語?Java、Swiftって何?iPhone持ってないけど開発できるの?どうすればアプリを作れるようになるの?知識がない人にとってはすべてが分からないことだらけです。僕は今でこそWebサイトやスマホアプリを作るエンジニアをやっていますが、高校生ぐらいまではITやパソコンには無縁でした。地元は大阪の端の方にあるど田舎、実家の1階は電波が届くけど2階はインターネット圏外、友達にメールするときはわざわざ1階に降りてメールを送る、そんな環境で過ごしていました。そんな僕も学生時代にプログラミングに出会い、かれこれ5年以上アプリ開発を経験してきて、それなりにアプリ開発の全体像というのが見えてきました。今では公開されているアプリを見て「このアプリはこうすれば作れそうだ」という開発のイメージがつくようになっています。そのようなスキルを習得できたかと言うと、それは僕が「アプリ開発の基礎」を大事にしてきたからに他なりません。かの有名なバスケットボール選手のマイケル・ジョーダンはこう言っています。best.何をやっているか、何を達成しようとしているかは関係ない。あなたが一番を目指すのであれば、基礎・基本は絶対に外せない。Excellence基礎を大切にすることによって、発展知識の習得に大きな加速をつけることができます。ここではアプリ開発の基礎・基本に基づいた「王道の学び方」をご紹介します。この方法は僕がこれまでプログラミングを学習する中で、これは別に知らなくても大丈夫ここはあまり使われていない技術だから深く学ぶ必要はないと感じた無駄な学習プロセスを削ぎ落とした最短でAndroid・iOS開発ができるようになるであろうステップです。このステップを3ヶ月間続ければ知識ゼロからでも「一通りアプリが作れる」という状態になっていることでしょう。ここでご紹介する方法は自分自身でプログラミングを行い、自分の思いのままのアプリを作るための方法論です。「いや、別にがっつりプログラミングを学ばなくても、そこそこ質のいいアプリを作れればそれでいいんだけど」と思うのであれば、第4章で「コーディングなしでもアプリを作る方法」をご紹介しているので、そちらをご参考下さい。それ以外の「自分で手を動かしてアプリを作りたい方」は、今回ご紹介する「王道の学び方」を知って頂き、アプリ開発者への第一歩になって貰えれば幸いです。僕が知識ゼロの状態から初めて作ったアプリ3ヶ月目に作ったアプリ8ヶ月目に作ったアプリの3つをご紹介します。関学バスタイム(開発歴:2ヶ月、製作期間1ヶ月)学生時代に作った、大学から最寄り駅までのバスの時刻表アプリです。今見るととにかくダサいです...。当時はアプリをはじめて作った喜びから毎日このアプリを使っていました。普段は自転車通学なのに、このアプリを使いたいがためにバスで通学するほどです。Storeに公開していたので、総ダウンロード件数は50件ぐらいでしたね。すごくニッチなアプリです。FlashLight(開発歴:3ヶ月、製作期間1ヶ月)関学バスタイムの次に作った、懐中電灯アプリです。あなたはスマホアプリを作りたいと思ったきっかけは何ですか?僕は「スマホアプリで一発当てて稼ぎたいから」でした。学生時代に「Androidアプリで一攫千金するぜ!」みたいな邪(よこしま)な考えを持ってまして、「懐中電灯アプリって世界中どこでも使われてるし、需要ありそう!」と思いこのアプリを作りました。世の中はそんなに甘くないのです。同様のアプリが既にストアに乱立していて、競合に埋もれてダウンロード件数は20件ぐらいに終わりました。「ビジネスって競合に負けたら全然儲からないんだな」と身を持って学んだ思い出深いアプリです。脳トレクエスト〜Busrt〜(開発歴:8ヶ月、製作期間2ヶ月)このアプリは僕にとって一番思い出深いアプリです。当時は「パズドラ」や「モンスト」のようなソーシャルゲームが続々とストアに出始めた頃で、「ソーシャルゲームを作れば売れるかも!」という浅はかな欲望から生まれた脳トレアプリです。「脳トレクエスト」というアプリ名で公開したかったのですが、既に同様の名前のソーシャルゲームがあったため、商標関係で訴えられたらどうしよう...と思い苦肉の策でつけた「Burst」です。ちなみに「Burst」は僕が好きだったゴッドイーターBurstというゲームから来ています。(懐かしい...)引用:Amazon.com僕の友人がこの「脳トレクエスト〜Burst〜」にハマってくれて、周りの人にも勧めてくれた結果、5~6000件ぐらいダウンロードされるゲームになりました。これぐらいのダウンロード数だと全然儲かりはしないのですが、色んな人が使ってくれて「アプリを作るのって楽しい!」と思った記憶があります。僕がアプリを作る上で大事なことは基礎はもちろんですが、モチベーションの維持がとても重要だと思っています。別に使いたくない、公開しようと思わないアプリを作っても楽しくないですよね?どうせなら自分が作りたいアプリを作った方が楽しく学習を続けられて、目標が明確な分、学習の吸収率も格段に上がります。アプリ開発を学ぶときは「これを作りたいんだ!」というイメージを持つことをおすすめします。初心者がAndroid・iOSアプリ開発ができるようになるまでの6ステップアプリ開発ができるようになるためには基礎を身につけることが大切です。ここではアプリ開発の基礎を身につけるための6つのステップをご紹介します。具体的には次のステップがあります。何を・いつまでに・どこまでやればいいかを具体的に説明するので、1つ1つステップを確認していきましょう。作りたいものをイメージする(目安時間1時間)まずは自分が何を作りたいのか、どのようなアプリを作りたいのかをイメージすることをおすすめします。メルカリのようなフリマアプリを作りたいTwitterのようなつぶやきアプリを作りたいRETRIPのようなメディアアプリを作りたいいろんなイメージがあると思いますが、「こういうアプリを作る」というイメージを持つことがとても大切です。これに次の2つの理由があります。作りたいものをイメージすることで必要な機能の学習に集中できる学習のモチベーションが上がるという理由です。作りたいものをイメージすることで必要な機能の学習に集中できるプログラミングを学習する上で、よく使う知識、あまり使わない知識というのが存在します。ボタンをタップした際にポップアップを表示する機能はどのアプリでもよく使われます。端末の傾きを測るセンサーなどはほとんどアプリでは使われていません。そのようなあまり使わない機能の学習に時間を割くのは非効率です。自分が作りたいものをイメージすることによって、「あ、これを学べば自分が作りたいものを実現できそう」という意識付けになり、より集中して学習に取り組めるようになります。逆に「これは自分の作りたいものにはあまり関係がなさそうだ」と思ったら、「こういう機能もあるのか」くらいの学習に留めておくとよいでしょう。何を作るかイメージが出来ていないまま学習をするというのは、受験生が志望校や学科を決めずにとりあえず数学を勉強するようなものです。自分が「こういうアプリを作りたい」というイメージを持ちましょう。学習のモチベーションが上がる以降で進めるステップには多くの基礎、基本を身につけるステップがありますが、基礎の学習は少しつまらない作業もあります。そんなときモチベーションになるのが「これを作りたい!」という欲求です。メルカリのようなみんなが使うアプリを作れたらワクワクしませんか?Instgramのようなキレイなアプリができればかっこよくないですか?そういった作りたいものをイメージすることでつまらない基礎の学習にも集中して取り組むことができるでしょう。Android、iOSどっちをつくればいいかアプリ開発初心者の方が「AndroidかiOSアプリを作りたいのですが、初めはどっちを勉強するのがおすすめですか?」という質問をお受けする機会があります。Android、iOSどちらを選んでも作れる機能に差はないため好みの問題ですが、もしどちらを作るか悩むなら下記を目安にするとよいでしょう。AndroidJavaの学習経験があるPCがWindowsしかない(※Macでも問題はない)Android端末を持っているiOSPCがMaciPhone端末を持っているもし、あなたがアプリ開発者として就職や転職を考えている場合、Android、iOSどちらを学習するかは非常に悩ましいことかと思います。日本のスマホ所有者の7割がiPhone所有者と言われていますが、大きいサービスではAndroid、iOS両方開発するケースが多いため、アプリエンジニアの需要は大して変わりません。採用では、それよりも「自身でアプリを開発した」というプロセスの方が重視されるため、どちらを作るかは上のリストを参考に選ぶといいでしょう。アプリ開発に必要な準備(目安時間2日)Android・iOS開発に事前に必要なツールは次の通りです。開発に必要なソフトやツールをインストールする際にネットでダウンロードすることがよくあります。そのため、インターネット環境は必須です。・パソコン(WindowsでもMacでも可)WindowsでもMacでも構いませんが、アプリ開発にはパソコンが必要になります。メモリはできれば8G以上が望ましいです。(JDK)Androidアプリを作るためのプログラミング言語であるJavaをPCにインストールする必要があります。Javaはこちらから無料でインストールすることができます。SDK)Androidアプリ開発をする上で開発を楽にしてくれるツールです。このツール上でプログラミングを行い、実行することでAndroidアプリを起動させることができます。Studioはこちらからインストールすることができます。・Android端末(無くてもいい)Android端末を持っていればその端末に開発したアプリをインストールすることができます。Android端末を持っていなくてもエミュレータという、PC上で動く仮装のAndroid端末を使ってそこでアプリを動かすことが可能です。Motionというエミュレータをよく使います。Motion」はこちらからインストールすることができます。iOS開発で必要なもの・インターネット環境Android開発と同様にインターネット開発は必須です。プログラミングで分からないことがあったときの調べる手段としてもインターネット環境は用意しておくとよいでしょう。・MaciOSアプリ開発にはMacが必須になります。Windowsでは開発ができません。それは後述するXcodeというツールがMac上でしか動かないため、iOSアプリ開発にはMacが必須となります。・XcodeこちらはiOSアプリ開発に必要なツールです。このツール上でプログラミングを行い、実行することでiOSアプリを起動させることができます。・iPhone端末(無くてもいい)Androidと同様に、iPhone端末を持っていればその端末に開発したアプリをインストールすることができます。iPhone端末を持っていなくてもシミュレーターというPC上で動く仮装のiPhoneを使って動作を確認することができます。こちらはXcodeに標準で付いているため、特に別途インストールをする必要などはありません。先にプログラミング言語を学ぶ(目安学習期間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分程度のため、疲労が貯まらず集中力を持続して学習に取り組めます。初心者にとってはドットインストールは非常にわかりやすいため、初めはこのサイトで学習することをおすすめします。動画で学びながら実際にアプリで動かしてみる(目安学習期間:2週間)ドットインストールでプログラミングの言語の文法やルールを学んだあとは、いよいよアプリ開発に取り組んでいきます。アプリ開発もまずはドットインストールでの学習がおすすめです。プログラミングを初めて間もない頃はツールの使い方や、メニューの位置すらもわかりません。本でそれらすべてを事細かく記載してはくれないので、ドットインストールのようなノンカットでプログラミングの作業を実況してくれるサイトを使って学習するのがおすすめです。アプリ開発の基礎を本で復習する(目安学習期間:4週間)ここまでのステップでプログラミング言語の文法とアプリ開発の基礎中の基礎を学びました。この段階でアプリを起動してボタンを押せば画面を切り替えられるぐらいの簡単なアプリぐらいは作れるようになっています。作りたいものを作るにはほど遠いレベルです。ここからは一気に自分が作りたいものに近づけていくための基礎を学んでいきます。動画を学んだ後は本で体系的にアプリ開発の仕方を学んでいきます。スマホアプリというのはボタンやテキストのような基本的なパーツの集合で作られていて、それぞれのパーツには名称や設定方法にルールがあります。これらのパーツを見て「ここの入力フォームはこのパーツを使えばいい」というイメージができるようになれば、だんだんと思い通りのアプリを作れるようになってきます。それらのパーツが体系的に、また網羅的に記載されている本を使って学習することがおすすめです。僕がおすすめするのは次の本です。引用:Amazon.comこの本のいいところは、簡単なサンプルを作りながらアプリ開発を進められるところです。僕がエンジニアをやっていて一番感動したのは「自分で作ったアプリが、自分のAndroid端末で動いた瞬間」でした。体型記録アプリやじゃんけんアプリなどを実際に作ってみて、自分のAndroid端末でそれが動作したときの感動はひとしおです。そのため初心者はこの本のサンプルアプリを作りながら学習を進めるとよいでしょう。Storeに公開する方法まで丁寧に記載されています。これらの本はアプリで使うパーツが網羅的に記載されているため、開発で困った際の辞書代わりにもなる本です。引用:Amazon.comこの本はタイトルからすごいですね。絶対に挫折しない...。iPhoneは結構途中で開発を挫折する人が多くいます。XCodeの説明やSwiftの説明をさらっと流してしまう本が多いため、途中で「どうすれば本の通りいくか分からない」という状態に陥りがちなんですね。この本は図や解説がとても豊富で読んでいて躓くところがほとんどありません。SNSアプリやカメラアプリなど作ってて楽しいサンプルが載っているため楽しみながら学習を進めことができます。実際に好きなものを作ってみる(目安学習期間4週間)本を一通り読み、理解ができるようになったら、最終的に自分の好きなものを作ってみるとよいでしょう。このような画面を作りたいとします。最初はそう思うかもしれませんが、これらのパーツを細かく見てみると基本的なパーツの集合であることがわかります。1つ前のステップで基本的なパーツの開発の作り方を学んでいれば、「このパーツはこう作ればいけるかも」というイメージが湧いてくるようになっているでしょう。複雑そうな画面であっても、それらは結局単純なパーツの集合でしかありません。1つ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のリーディングアプリです。実際の開発現場ではネットワーク通信することが多く、それら通信機能の作り方や、ソースコードの書き方は非常に参考になります。実際の現場で学ぶプログラミングのスキルを上げる最短ルートはやはり現場での実践です。実践に勝るものはありません。世の中で公開されているアプリがどのように書かれているのかディレクトリの構成はどうなっているのか少しこだわったデザインのアプリ作るにはどうしているの現場のプロジェクトを通して学ぶことはとても多いでしょう。Web開発を学ぶスマホアプリ開発をしていく上で「ネットで通信したアプリを作りたい」という思いが出てくると思います。TwitterのコメントやInstgramの写真のように、ネットにアップされているものを他のユーザーが閲覧出来るようにするにはWeb開発の知識が欠かせません。アプリ開発の幅を広げたいのであればWeb開発も学んでみることをおすすめします。コーディングなしでもアプリを作る方法もある2章~3章ではプログラミングを通じてスマホアプリを作る方法をご紹介しました。実はプログラミングをしなくてもアプリを作れる方法があります。「プログラミングは別にできなくてもいいから、簡単に早くアプリを作りたい」という考えをお持ちであればこれからご紹介するサービスを利用してみるとよいでしょう。実際の店舗の集客手段としてアプリを作りたいならYappliがおすすめ引用:YappliYappliを使えばショッピングアプリや、メディアのアプリを低価格で高速にアプリを作ることができます。ブラウザでパーツや色を変更することができるため、プログラミングの学習は一切不要。大手アパレル企業のアプリなどでも活用されており、豊富な機能が特徴です。こちらは実際にメディアや店舗を運営している方向けのサービスであるため、個人で「ライトにアプリを作りたい」という場合には向いていません。「実店舗の集客手段としてスマホアプリを使いたいんだけど」という人にとっては低価格で豊富な機能を実現できる素晴らしいサービスです。手軽に業務アプリを作りたいならappery.ioがおすすめ引用:appery.ioブラウザでパーツをドラッグ&ドロップするだけでアプリが作れるサービスです。APIの設定や、データベースの設定などもできるため、本格的なアプリを作ることも可能です。海外のサービスであるため、あまり日本国内での事例があまりないのがネックとなります。「ブラウザで手軽に業務をアプリを作りたい」という人にはおすすめです。スマホアプリ開発への需要は高まる一方アプリ開発を仕事にしたい、と思う人にとってはアプリ開発の今後の市場は気になるところ。総務省の発表によると、スマホアプリ開発の市場は右肩上がりで拡大しており、今後も更に規模が大きくなっていくことが見込まれています。出展:http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h30/pdf/n1100000.pdfあなたも日常生活の中でスマホアプリを使う機会が非常に多いのではないでしょうか?友達に連絡するならLINE写真をアップするならInstgramちょっと暇な時にソーシャルゲーム我々の生活の中にスマホアプリの存在が強く根付いてきています。事実、僕はWebサービス・スマホアプリの開発の相談を受ける中で、「スマホアプリを作りたい」という企業がとても増えていると感じています。Androidアプリ、iOSアプリを作れる会社というのはそう多くはありません。エンジニアを数千人を抱える会社でさえ、「仕事量に対してAndroid、iOSを作れるエンジニアが全然足りない」という声も聞きます。今はアプリ開発を学ぶことで、アプリ開発エンジニアとして新しいキャリアを築きやすい時代だと僕は考えています。Android、iOSはまだ世に公開されて10年足らずの歴史の浅い分野です。20年エンジニアとして働いてきたベテランであってもスマホアプリ開発はさっぱり分からない、という人は大勢います。初心者であってもスマホアプリ開発という点ではベテランエンジニアと同じスタートラインに立つことが出来るのです。僕はアプリ開発を学ぶことをおすすめします。まとめいかがでしたでしょうか?最後にこれまでご紹介した「Android・iOSアプリ開発ができるようになるまでの6ステップ」をおさらいします。作りたいものをイメージする(目安時間1時間)アプリ開発に必要な準備(目安時間2日)先にプログラミング言語だけを学ぶ(目安時間2週間)動画で学びながら実際にアプリを動かしてみる(目安時間2週間)アプリ開発の基礎を本で復習する(目安時間4週間)実際に好きなものを作ってみる(目安時間4週間)スマホアプリの開発は年々そのニーズが高まっています。個人でアプリを作って楽しむもよし、アプリ開発者として新しいキャリア形成を目指すもよしこの記事があなたのアプリ開発への一歩になれば幸いです。参入ハードルの低いビジネスモデルです。実際にサービスを始めてみると紹介者は多いけどなかなかマッチングまで発展しないリピーターが増えない毎月数件マッチングするけど全然儲からないそんな問題に直面するケースがほとんど。過去には「500万円かけて作ったマッチングサイトが1件も売れずに撤退した」というケースもあります。進悟マッチングサイト専門の受託開発ベンチャー「株式会社ロボラボ」のCEO兼CTOこれまで登録したマッチングサイトは300件以上、費やしたお金は300万以上。Eatsで頼むマッチングサイトオタク。マッチングサイト愛が行き過ぎた結果、マッチングサイト専門の受託開発ベンチャーを立ち上げてしまう。「最高の出会いが最善の人生を作る」をモットーに最高のマッチングサイト開発に拘り続ける。得意分野はマッチングサイトの高速開発。・スマホアプリ開発など、30件以上のサービス開発に携わり、2件のバイアウトされた案件に関与する。日々の日課はマッチングサイトの情報収集。嫁にメルカリの使用感を質問しまくり、嫌な顔をされる。reserved.検索:Menuマッチングスタートアップシステム開発マッチングハックについてお問い合わせ。