未経験者・初心者向けのスマホアプリ制作のプログラミングの入門ガイドです。iPhoneやAndroidなどのスマホアプリを開発するために何が必要か、どんなスキルや知識が必要か、学習方法について話しています。iPhoneやAndroidのプログラマを目指している方、アプリ開発をしてみたい方にとって、このページが始めの一歩になればと思います。
※ 本ページはプロモーションが含まれています。
プログラミング未経験者が、iPhoneやAndroidなどのスマホアプリを開発するために何が必要か、どんなスキルや知識が必要か、どう学習していったらいいかなどを話していきたいと思います。
iPhoneやAndroidアプリを作る事ができれば、日本、そして世界中に配信する事ができます。そのためアプリ開発のスキルは、個人の趣味だけでなく、仕事としても魅力的なスキルになると思います。アイデアがあって個人の趣味としてアプリ開発のプログラミングに挑戦してみたいと考えている方、仕事としてアプリ開発のプログラマになりたいと考えている方、もしくはアプリ開発のプログラマを入り口としてIT業界のエンジニアとしてやっていきたいと考えている方は是非参考にしてみてください。
スマホアプリを作るために必要な物は何か?そして、開発するために必要なスキルや知識は何でしょうか?
まず当然ですが、学習したり実際にプログラミングをして開発するためのパソコンとネット環境が必要になります。スマホやタブレットでプログラミング開発をするのは、はっきり言って厳しいです。スマホやタブレットは、サービスを利用するための物です。プログラミングをしてアプリを提供する側に回るにはパソコンが必須です。
スマホやタブレットでプログラミングについて簡単な事を調べたり学習する事は可能だと思いますが、プログラミング学習は、やはり自分の手でコードを書いて動かしてみる事が大切ですし、そうしないとプログラミングスキルも身につきませんので、やはりパソコンは必須だと思います。
パソコンについてですが、androidアプリはWindows・Macのどちらでも開発&リリースする事は可能性ですが、iPhoneアプリの開発は現状Macに付属しているXcodeという開発環境を使うのが王道(近道)です。iPhoneアプリの入門書や入門サイトを見ても、ほとんどがMac/XcodeでiPhoneアプリを開発しているので、情報が多いという意味でもプログラミング初心者がiPhoneアプリを開発する場合、Macを使ったほうが良いと思います。
次に、必要なスキルや知識についてですが、アプリ開発をするためのプログラミングスキルが必須です。プログラミング自体が未経験の場合、スマホアプリ開発の入門書や入門サイト・オンラインプログラミング講座的な物でプログラミングの基礎と一緒にアプリ開発を学習する必要があると思います。どのプログラミング言語が良いかは、またこの後すぐに説明します。
そして、アプリ開発のためのプログラミング以外で、どうしても知っておいた方が良い技術的な知識やスキルですが、HTML・CSS・Javascriptなどの基本的なウェブ関係のスキルです。そして、サーバとの通信をするアプリなら基本的なネットワーク系の知識やサーバサイドのサービス作成などが必要になってきます。また、自分でサーバを用意するばら、サーバ周りのインフラ知識やスキルも必要になります。
ただこういった知識はサーバと通信する必要がないスマホアプリならば必要ないですし、プログラミング未経験者やIT知識のない人がいきなりこれらを全て習得するとなるとその時点で嫌になってやる気をなくしたり、時間も相当かかってしまうと思うので、まずは、アプリ開発のプログラミングスキル習得に集中して、その他のスキルや知識は必要になったら勉強していけば良いと思います。
HTML・CSS・Javascriptやサーバサイド・ネットワークについての基礎知識については別ページでも説明していますので、そちらも参考にしてみてください。
未経験からウェブサイト、ウェブサービスを作るための入門ガイド
続いて、アプリ開発のための必要なプログラミングスキルについて、もう少し詳しく説明していきます。開発するためのプログラミング言語はiPhoneとAndroidで違ってきます。
まずAndroidですが、JavaかKotlinが選択肢に入ってきます。元々、Android開発といえばJavaでしたが、新しいプログラミング言語のKotlinが誕生して、2017年10月にAndroidの開発環境であるAndroid Studioのバージョン3.0でKotlinを標準開発言語の1つとして採用した事から、注目されるようになってきました。Androidアプリ開発の入門書で紹介されているプログラミング言語もこの2つが多いですし、Androidアプリ開発の仕事を見ても、この2つのどちらかのプログラミングスキルを要求されていますので、Androidアプリの開発したい方は、JavaかKotlinのどちらかを学習した方が良いと思います。
個人的にはKotlinは新しい言語ですので今後どうなるかはわからないという不安は少しありますが、Kotlinで学習したプログラミングスキルは十分他の言語でも使えると思うし、特にKotlinはJava仮想マシンというモノの上で動作してJavaと親和性が高いので、Kotlinを学習したあとにJavaを学習するのは、わりととっつきやすく感じると思います。ちなみにこれは反対も言えると思います。Javaを学習したあとにKotlinを学習するのは、とっつきやすく感じるはずです。
あと、Javaについてですが、JavaはAndroid開発のためだけの言語ではなく、昔から様々な場面で使われている言語です。ウェブアプリやサーバサイドでもJavaはよく使われますので、Javaのプログラミンスキルを身に着けた場合、応用が効くという面でメリットがあります。
次にiPhoneですが、SwiftとObjective-Cが選択肢に入ってきます。Objective-Cは昔からある言語で、Swiftは2014年に登場した新しいプログラミング言語です。この2つを比較すると、一長一短あると思いますが、今はSwiftの方が勢いがあります。
特にプログラミング未経験者がゼロからiPhoneアプリを開発しようとするなら、Swiftの方がプログラミング初心者にとって学習しやすい、とっつきやすい言語として評判がありますので、単純に学習コストが少なくてすみます。そういった意味でも、iPhoneアプリ入門者はSwiftの方が良いと思います。
あと、iPhoneとAndroidの両方に言えることですが、ゲームアプリを開発するならUnityというゲームエンジンを使うのが一般的です。そして、UnityではC#というプログラミング言語を採用しています。ゲームアプリを開発してみたい方は、Unity+C#の組み合わせが良いと思います。
Googleトレンドでの過去5年のプログラミング言語別の動向についてです。これが、人気度を表す全てとは思いませんが、1つの尺度になると思います。上でも書きましたが、Javaはスマホアプリ開発以外にもよく使用される言語ですので、このチャートには載せていません。
チャートを見ると、やはりObjective-CよりもSwiftの方が注目度が高いです。そして、Kotlinも安定した人気度を保っている事がわかります。
続いて、サーバサイドの開発で使われるプログラミング言語についてです。上の方でも書きましたが、スマホアプリだけで完結するなら、サーバサイドについては必要ありません。ただ、サーバと通信するようなアプリの場合、サーバサイドのプログラミングスキルも必要になってきます。仕事で開発するスマホアプリや、Google PlayやApp Storeで公開されているようなスマホアプリのほとんどが、サーバサイドの開発もしているはずです。ですので、サーバサイドについても触れておきます。
サーバサイドのプログラミング言語の選択肢は、アプリ開発のプログラミング言語と比較すると多くあります。そんな中で、プログラミング未経験者やほとんど経験のない方は、やはり入門者用の本やネットの情報が多いメジャーな言語を選択する事をお勧めします。
未経験者・入門者によく使われるサーバサイドのプログラミング言語は、PHP、Java、Rubyあたりだと思います。この3つであれば、入門者・初学者向けの情報も多いです。他には、Python、Go、Scala、Javascriptなどがあり、これらは実際の仕事の開発現場でも選択肢に入ってきます。
ちなみに、「ハッカーになろう」という優秀なプログラマ・ソフトウェアエンジニアを目指す人のための道標のような有名なページがあるのですが、ここではプログラミング言語を何も知らない場合、Pythonをおすすめしています。ドキュメントが充実していて、初心者にもそこそことっつきやすく、入門言語として最適だという事です。
自分で習得したいプログラミング言語を決めているのならそれを学習したら良いと思いますが、ただ特にプログラミング言語を決めていないという状況ならば、PHP、Java、Ruby、Pythonあたりから選択してみてはいかがでしょうか。
プログラミングの未経験者がスマホアプリ開発で、アプリ側だけでなく、サーバ側のプログラミングを同時に勉強してスキルを身に着けようとするのは、結構な時間も労力もかかります。人によっては挫折してしまう可能性があるので、それはとても勿体ないです。実際の仕事でも、アプリ側とサーバ側で分業されているプロジェクトがよくあるくらいです。
それでも、やる気があって両方ともやってみたいという方は是非チャレンジしてみて欲しいと思いますが、プログラミング未経験者はまずは何か1つに集中して学習したほうが良いと思います。アプリ開発をしたいなら、やはりアプリ側のプログラミングに集中すべきかなと思います。
Javaについては別ページでも書いていますので、Javaプログラミングを勉強してみようと考えている方は参考にしてみてください。
Javaプログラミングガイド
Javaでウェブ開発を始めるには
これまでにスマホアプリを開発するためのに必要なスキルなどを書いてきました。それで、プログラミングの未経験者・入門者が、自分でスマホアプリを作るために具体的に何から始めたらいいのでしょうか?
作りたいスマホアプリがすでに決まっているいないに関わらず、まったくの未経験ならまずはアプリ開発のための基本的なプログラミングについて一通り学習する必要があります。
学習方法は、個人的にはやはり入門者向けの本で学習するのが一番良いと思います。入門書の良い所は、まずは題材が決まっている事です。
例えば、おみくじなどの簡単なアプリ、スマホのセンサを利用するサンプルアプリなどを作りながら、アプリ開発のための基本的なプログラミングスキルを身につけていく本であれば、作る題材も決まっていますので、本に書かれている事を真似て自分の手でプログラミングをしながらアプリを作っていけます。
ただ、アプリの題材が決まっている入門書の場合、プログラミングの基本や文法についての説明がおろそかになっている事があるので、文法や基本について書いてあるプログラミングの入門書をあわせて読むのがお勧めです。例えば、Javaでandroidアプリを開発したいのなら、JavaでAndroidのアンプリアプリを開発するための入門書と一緒にJavaの入門書を読むのがいいかもしれません。
プログラミング初学者は、最初はとにかく人のコードを読んで真似して作る。そして自分で少しプログラミングコードを変更して試す。これを繰り返しながら学習するのが良いと思います。「ハッカーになろう」でも、プログラミングスキルを上達するコツは、コードを読むこと、そしてコードを書くことと言っています。そして、アプリ開発のためのプログラミングの基本がわかってきたら、自分が作りたいスマホアプリを開発すればいいわけです。
また、本以外のネット上の情報を調べる事にも慣れた方が良いと思います。ネット上で調べて学習しながらプログラミングをしていく事は、未経験・入門者だけでなく、経験のあるプログラマでも同じです。
あとは、入門書などを読みながらの独学に限界を感じる、もしくは人の力を借りて少しでも速く学習したいのなら、オンラインのプログラミング講座の受講を検討するのも良いと思います。良い学習教材があるだけでなく、プログラミングを勉強していてわからない事があれば周りに聞ける環境があるというのは、入門者・初心者にとっては心強いはずです。
たった1日で基本が身に付く! Androidアプリ開発超入門 [改訂2版] Kindle版
Javaを使ったAndroidアプリ開発の入門書です。実際にビンゴアプリを作ることをゴールとしていますので、楽しみながら学習できます。
作ればわかる!Androidプログラミング Kotlin対応 10の実践サンプルで学ぶAndroidアプリ開発入門 Kindle版
Kotlinを使ったAndroidアプリ開発の入門書です。Androidのセンサやアラーム機能を使ったサンプルアプリを作成しながら学習する本となっています。とりあえず何かAndroidアプリを作ってみたい、サンプルプログラムが見たいという方には良いと思います。
絶対に挫折しない iPhoneアプリ開発「超」入門 第8版 【Xcode 11 & iOS 13】 完全対応 Kindle版
Swiftを使ったiPhoneアプリ開発の入門書です。iPhoneアプリ開発のための環境構築から丁寧に説明していますし、Swiftのプログラミングの基本についても書いています。また、App Storeに公開するまでの手順についての説明もありますので、一通りの流れがつかめるはずです。