こんにちは、Kredo編集部です。
「アプリを作ってみたいけど、アプリの種類も言語もよく分からない、、、。」
「具体的には何をすればいいの?」
というプログラミング初心者のために、アプリ開発の方法を書いていきます。
記事のもくじ
プログラミングで開発できるアプリの種類
Webアプリの種類は大きく分けて以下の3種類です。
- Webアプリ
- ネイティブアプリ
- ハイブリッドアプリ
それぞれのアプリの特徴やメリット・デメリットを紹介します。
Webアプリ
Webアプリとは、インターネットのWebブラウザ上で利用できるアプリケーションの事を指します。
ブラウザとはChromeやInternetExploreなどのことです。 Amazonでの買い物や、求人サイトでのアルバイトに申し込むなど、普段から実は使っています。
インストールせずインターネット上で使用可能なので、端末のストレージを使わずに利用することができます。
メリット
- ダウンロードする必要がない
- 検索エンジンからの集客ができる
- リリースやアップデート時の審査がない
デメリット
- 利用機能が限定的
- 動作が遅い
- スマホのホーム画面に置けない
- インターネット環境が必要
ネイティブアプリ
iPhoneやAndroidなどにインストールして使うアプリです。
アプリと聞いて最初にイメージするのはこちらのアプリではないでしょうか。
AppstoreやGoogleplayでインストールするものは、ほとんどがこのアプリです。 ほとんどというのは中には違うものもあるということですが、それは次に紹介する「ハイブリッドアプリ」というものです。
ネイティブアプリのようにインストールして使うことができるアプリなのですが、少し違います。 詳しくははあとでご説明します。
ネイティブアプリの特徴としては、スマホの利点をフルに使っており、プッシュ通知などが可能という点です。 また、インストールするためインターネットが繋がっていなくても利用可能な点も特徴の一つです。
ネイティブアプリの中には、iphoneで使えるiOSアプリと、Andoroidで使えるAndroidアプリの2種類があります。
メリット
- プッシュ通知、GPSの利用などができる
- 動作が早い
- 継続的な利用を促せる
- アプリ内課金機能を使える
- インターネット環境が必要ない
デメリット
- 集客がしにくい
- リリース・アップデート時に審査がある
ハイブリッドアプリ
Webアプリとネイティブアプリを掛け合わせたものです。
ネイティブアプリのようにインストールして使うことができますが、Webアプリと同じ仕組みで作られています。
要はWebアプリ、スマホアプリにも対応しているアプリケーションのことです。
具体的にはhtml、CSS、Javascript、Rubyなどを使って中身が作られています。
メリット
- 一つのコードでiPhoneアプリとAndroidアプリの開発が可能
- 開発コストを抑えられる
- ネイティブアプリに近い細かい操作ができる
デメリット
- ネイティブアプリに比べると動作が遅い
- OSの機能全てが使える訳ではない
プログラミング初心者がアプリ開発する5ステップ
全てのアプリ共通の基本的な開発方法をご紹介します。
- 作りたいアプリをイメージする
- 学ぶ言語を決める
- 学習環境を準備する
- オンラインサイトや本を使って学習する
- 実際に好きなものを作る
1. 作りたいアプリをイメージする
まずは自分がどんなアプリを作りたいのかというのをイメージしましょう。
- メルカリのようなフリマアプリを作りたい
- Twitterのようなつぶやきアプリを作りたい
- RETRIPのようなメディアアプリを作りたい
など。
色々なイメージがあると思いますが、「こういうアプリを作る」というイメージを持つことがとても大切です。
イメージを持つことで、必要な機能の学習に集中できますし、学習のモチベーションにも繋がります。
2. 学ぶ言語を決める
どんなアプリが作りたいのか考えられたら次は、そのアプリを作るために学習する言語を決めましょう。
言語を決めるためには、作るアプリの種類を決めなければいけません。
ネイティブアプリの中でも、iOSかAndroidかでも必要な言語が変わります。
ここは好みなので、自分の作りたいものをイメージして、「どのアプリだと使いやすいか」「どんな人がそのアプリを求めているか」によって決めましょう。
Webアプリ
パソコンで作業する人のためのアプリであれば、Webアプリがいいでしょう。
検索から見つけてもらえる可能性がネイティブアプリに比べ高いので、集客という意味ではこのアプリがいかもしれません。
Webアプリを作る際に必要な言語は、
- HTML
- CSS
- JavaScript
- Ruby or PHP or Python
です。
言語は、大きく分けて「見た目を作る言語」と「中身を作る言語」に分けることができます。
<見た目を作る言語>
HTML・CSS:静的なアプリが作れる
JavaScript:動きを作れる
<中身を作る言語>
Ruby、PHP、Pythonのうちの一つを学ぶ
この中のおすすめはRubyです。
Rubyは日本人が作ったので、情報が日本語のものが多くプログラミング初心者にも学びやすい言語と言われています。
そして、Rubyを学習するならフレームワークの「Ruby on rails」も学習しましょう。 フレームワークを使うことで比較的簡単にアプリを作ることができます。
ネイティブアプリ
スマホで使えた方が便利なのであれば、ネイティブアプリがいいかもしれません。
iOSアプリかAndroidアプリでも学ぶべき言語が変わってきます。
端末はなくても作ることはできますが、自分が使いたいのであれば自分の持っている端末に合わせて言語を決めるのがいいでしょう。
【iOSアプリ】 Swift
いろいろな言語がありますが、おすすめはSwiftです。
以前はobject-cという言語も使われていたのですが、最近ではSwiftの方が主流になっています。
Swiftはコードが書きやすく読みやすく、高速です。
【Androidアプリ】 JAVA、Kotlin
Androidアプリの開発言語としては、JAVAとKotlinがあります。
「JAVA」はAndroidアプリを作る際の王道の言語です。
少し難しいのですが、この言語ができると後からKotlinを習得する際に比較的簡単に習得できるでしょう。
また、開発案件が多く、就職の際にも実績として示しやすいというのも特徴です。
「Kotlin」は開発案件が少ないのですが、難易度が低く初心者にはおすすめできる言語です。 とりあえずアプリを作ってみたい!できるだけ難しいことは避けたい方におすすめ。
ハイブリッドアプリ
Web言語を既に学んでいる人で、Web言語を使ってネイティブアプリのようなアプリが作りたいという方は、ハイブリッドアプリがいいでしょう。
ネイティブアプリに比べ、動作が遅いという欠点がありますが、ゲームなどの複雑なものや速度が求められるアプリでなければそこまで気にならない場合もあります。
ハイブリットアプリもWebアプリと同じく、
- HTML
- CSS
- JavaScript
- Ruby or PHP or Python
が必要です。
もしこれからこの言語を学ぶのであれば、ネイティブアプリを検討してみても良いかもしれません。
3. 学習環境を準備する
言語を学ぶための環境を準備する必要があります。
Webアプリ開発で必要なもの
・インターネット環境
開発に必要なツールなどをインストールする際に必要です。
・パソコン
MacでもWindowsでもどちらでも大丈夫です
・エディタ
コードを打ち込んでいくための環境を作る必要があります。 Webアプリの場合はエディタをインストールするだけで大丈夫です。
エディタの中ではATOMやSublimeがおすすめです。
・ファイル
アプリ作成のためのHtmLやCSSを保存しておくためのファイルを作成しましょう。
iOS開発で必要なもの
・インターネット環境
開発に必要なツールなどをインストールする際に必要です。
・パソコン
iOSアプリの場合Macが必要です。
・Xcode
こちらはiOSアプリ開発に必要なツールです。このツール上でプログラミングを行い、実行することでiOSアプリを起動させることができます。
・iPhone端末(できれば) iPhone端末があれば、開発したアプリをインストールすることが可能なので、あると便利ですが無くても大丈夫です。
iPhone端末を持っていなくても、PC上でどのように動くのかというシミュレーションをすることができます。(x-codeでできます。)
Android開発で必要なもの
・インターネット環境
開発に必要なツールなどをインストールする際に必要です。
・パソコン
MacでもWindowsでもどちらでも大丈夫です。
・Java Development Kit (JDK)
Androidアプリ開発に必要なJAVAという言語をここからダウンロードできます。
・Android Studio (Android SDK)
Androidアプリ開発を、楽にしてくれるツールです。
・Android端末(できれば)
Android端末があれば、開発したアプリをインストールすることが可能なので、あると便利ですが無くても大丈夫です。
Android端末を持っていなくても、PC上でどのように動くのかというシミュレーションをすることができます。
Geny Motionというエミュレータがよく使われます。
4. オンラインサイトや本を使って学習する
初心者におすすめのオンラインサイト
ドットインストール
Proogate
初心者におすすめの本
はじめてのAndroidプログラミング
絶対に挫折しないiPhoneアプリ開発「超」入門
5. 実際に好きなものを作る
インプットができたら次は、実際に手を動かして自分の作りたいアプリを作っていきましょう。
作ろうとすると分からないことが出てくると思いますが、それも調べながら少しずつ知識を身につけていきましょう。
プログラミング初心者がアプリ開発する際に気をつけるべきこと
目的を見失わない
アプリを作りたいと思ったきっかけは何ですか?
色々あるとは思いますが、
- アプリを作ってお金を稼ぎたい
- アプリを作ってみたい
- 自分が欲しいアプリがないから作りたい
- 何かスキルが欲しい
など、なんでもいいのですが、この目的を常に忘れないようにしましょう。
目的なくただ作るという作業になってしまうと、なんのためにアプリを作ってるのか分からなくなってしまい、辞めてしまう可能性があります。
エラーが繰り返し起こると、いくら最初はやる気があってもだんだんとモチベーションが下がってしまいます。
モチベーションが下がってしまうのはしょうがないので、その時にいかにもう一度あげることができるかが大事です。
そのためにも目標を忘れないようにしましょう。
時間をかけすぎない
完璧を求めると途中で嫌になってしまう可能性もありますので、3ヶ月以内で完成させましょう。
「自分で1からアプリを作れた」という経験がモチベーションになってその先のアプリケーション開発に繋がってきますので、まず一つ目は完成させることを目標にしましょう。
最初は自分が思っているように行かなくて当たり前です。
細かいところにこだわってずっと進めないとなかなか完成できませんし、途中で嫌になって辞めてしまっては意味がありません。
時間をかけ過げないようにしましょう。
作っていて楽しいものを作る
いくら需要があっても、自分が欲しいと思わないものや作っていて楽しくないものを作るのは苦痛ですよね。
特に最初に作るアプリは自分が一番欲しいと思えるアプリにすることで、そのアプリを求めるターゲット像が想像しやすいですし作りやすいと思います。
さらに、自分が欲しいものなので、「完成させて使う」というのを目標にするとモチベーションに繋がるかもしれません。
まとめ:プログラミング初心者でもアプリ開発は可能
プログラミング初心者でもアプリ開発は可能です。
さらにモチベーションの管理と学習時間の確保ができれば、独学でも可能です。
もう一度アプリの種類とアプリの作り方をまとめます。
- Webアプリ
- ネイティブアプリ
- ハイブリッドアプリ
- 作りたいアプリをイメージする
- 学ぶ言語を決める
- 学習環境を準備する
- オンラインサイトや本を使って学習する
- 実際に好きなものを作る
アプリを作ろうと思ったきっかけや目的を忘れず、アプリを作りあげましょう。