アプリを作るためにこれからプログラミング学習を始めようと考えている人は多いのではないでしょうか
ただし、アプリにも複数の種類が存在します。種類によって使用する言語が異なるので注意が必要です。
この記事ではアプリ制作とは何かという概要から、必要なスキルや知識をまとめました。是非、参考にしてください。
アプリの種類
アプリは、大きく分けて3種類に分類されます。
- WEBアプリ
- ネイティブアプリ
- ハイブリッドアプリ
それぞれにどのような特徴があるのか、見ていきましょう
①:WEBアプリ
WEBアプリとは、インターネット(WEB)経由で利用するアプリケーションのこと。YoutubeやGmailが代表例です。
WEB経由なので端末へのインストールはせず、処理自体はGoogle Chromeなどのブラウザが行っています。
スマートフォンやパソコンなどデバイスやOSに依存せずだれでも利用できるのでターゲットが限定されていません。そのため、制作しやすいアプリです。
2.ネイティブアプリ
世間一般でアプリと言えば、スマホなどにインストールするアプリです。これをネイティブアプリと呼んでいます。ネイティブアプリは、ネットワーク経由で利用するWEBアプリケーションとは違い、インターネットにアクセスする必要はありません。
ネイティブアプリは、プログラムの本体が端末にインストールされることで使えるようになります。
ネイティブアプリには、端末によって使えるものと使えないものがあります。これは、ネイティブアプリの仕組みによるものです。
たとえば……私はAndroidを使っていますが、Suicaアプリがインストールできない端末です。そのため、泣く泣くICカードをピッとして改札を通っています。
3.ハイブリッドアプリ
ハイブリッドアプリは、ここまで紹介したWEBアプリとネイティブアプリの良いところを組み合わせた特徴を持っています。
①WEBアプリの仕組み
アプリを作るために、まず、アプリの仕組みを理解しておく必要があります。アプリの仕組みを簡単に説明すると以下のとおりです。
- ユーザーがブラウザ上で検索や画像クリックなどの要求をする
- 要求されたブラウザがサーバーにリクエストを送る
- リクエストに応じてサーバーがプログラム通りの処理を実行。HTMLをブラウザに返す
これらの処理の過程で……必要であればデータベースを操作したり、データの取得や追加、更新、削除などを行うこともあります。
WEBアプリ制作に必要な知識
ここまででアプリの概要を簡単に説明しました。
上記でサーバーやデータベースという言葉が出てきましたが、以降の部分で具体的に必要な知識について紹介していきます。読み進めるためにまず以下の二つの用語を理解してください。
- フロントエンド
- バックエンド
簡単に説明しますね
・フロントエンド
フロントエンドとは、ユーザーがWEBアプリにアクセスしたときに見える部分、直接操作できる部分です。
・バックエンド(サーバーサイド)
バックエンドとは、ユーザーが入力した情報などに基づいてサーバー側で処理を行い結果を返答したりデータを保存する、いわゆる見えない部分です。
では、アプリ制作に欠かせないものを流れに沿って紹介します。
一般的なWEBアプリ制作の流れ
①:HTML/CSSで見た目(フロントエンド)を整える
HTMLとはWEBページの構造や装飾を決めるのに使われる言語です。見出しや画像、ボタンの位置や任意の文字を太文字にするなどを自在にレイアウトを決められます。
CSSは、HTMLと組み合わせて使われる言語です。色を付けたり文字や画像、余白のサイズなどのデザイン部分を担当します。
②:Javascriptで動きを付ける
Javascriptは、WEBページに動きを付けるためのプログラミング言語です。
HTMLやCSSと同じようにブラウザ上に変化をもたらすもので……たとえば、スマホの画面上部に表示されるお知らせのポップアップ機能。これは、Javascriptで作られています。
③:データベース(Mysqlなど)を操作する
データベースとは、大量のデータを管理しいつでも利用しやすいようにまとめた仕組みやデータの集合体のことです。
WEBアプリケーションでは、ユーザーの要求に応じてデータベースへ情報を記録したり、取り出して表示したりします。
たとえば、amazonで検索をすると、いくつもの商品が一覧となって出てきますね。あれは、入力した商品名が、データベースに登録してある商品名と合致した結果を表示しています。
④:バックエンド(サーバーサイド)でさまざまな機能を実装する
続いてバックエンドの作業です。
バックエンドでは、ユーザーが必要とするさまざまな機能をイメージして実装していきます。たとえば、多くのサイトで使用されているログイン機能などです。
これは個人情報の流出になりかねないため、複雑な作りにする必要があります。
WEBアプリ制作に使用するもの
続いては、プログラミング言語以外にアプリ制作で使用するものを紹介します。それぞれ、ある程度の専門知識が必要となります
フレームワークを使う
フレームワークは、アプリ制作時によく使う汎用的な機能をまとめて提供してくれるものです。
あらかじめ用意されている骨組みに従うことで、簡単にプログラムを構築できます。
代表的なフレームワークを紹介しましょう。
- Rubyのフレームワーク:Ruby on Rails
- PHPのフレームワーク:CakePHP/Larabel
- Javaのフレームワーク:Spring
フレームワークを使えば何倍も効率よく制作ができます。
たとえば、Ruby onRailsには、データベースの操作に使う命令文であるSQLを直接書かなくても、データベースを操作できる構文が用意されています。
Githubでソースコードを管理する
GithubはGit(ソースコードを管理するツール)をWEB上で他の制作者と共有して使えるツールです。
アカウントが必要ですが無料で利用できます。
アプリを作る過程でコードをいったんセーブするというとわかりやすいでしょうか
アプリ制作は、すべての機能を実装するまでに何日も何か月もかかります。だから、なるべく効率良く作業をしたいものです。
Githubを使えば、コードを体系的にフォルダ分けして保存したり、ほかのメンバーと共有して改変したりできるので、より効率的な作業が望めます。
Linuxコマンド
LinuxはWindowsやMacなどのOSの一種で、アプリ制作におけるサーバーとしての用途で使われます。
Gitなどのコマンドやファイル管理などで使用します。
Linuxに実行させる命令文をキーボードで入力したものをコマンドと呼ぶのですが、代表的なものにはこのようなものがあります。
- Ls:ファイルの一覧などディレクトリ内の情報が確認ができる
- Mkdir:ディレクトリを作成する
- Cp:ファイルやディレクトリをコピーする
いますぐに必要な知識ではありませんが、いずれはあなたも使用するでしょうから簡単に覚えておいてください
②ネイティブアプリの仕組み
上記したように、ネイティブアプリにはスマホアプリもPC用のアプリもあります。
PC用のアプリにはメーラーやWordなどがありますが、この記事ではスマホアプリについて紹介します。スマホアプリの動く仕組みはこのようになっています。
- ユーザーがスマホ上で何かを要求する(音楽アプリの再生ボタンをタップする)
- ボタンがタップされたときに動かす処理をする(ボタンが押されたら曲を流すという処理)
- 結果が返される(曲が流れる)
ユーザーは「再生ボタンを押したのだから曲が流れて当たり前」と思うかもしれません。でも、この流れを作るためには、実にさまざまな工程を踏んでいます
スマホアプリ制作に必要な知識
スマホアプリはAndroidアプリとiOSアプリの2つに大別されます。
iPhone(iPadやMacでも)上ではiOSというOSが動作し、Android端末上ではAndroidというOSが動作しています。
OSとはオペレーションシステムの略で、基本的な動作(アプリのインストールの実行や起動)を行う役割を担っている部分です。このOSに対応した言語選びと開発ツール、開発用のパソコンや、テスト用のスマホの準備が必要となります。
WEBアプリの部分で触れているGitやHTML/CSS、データベースなどの知識はスマホアプリ制作においても必要な知識です。合わせて学習するのが望ましいですね
データベースが必要となるアプリは、私たちの身近な例を挙げるとメルカリやFacebookなどがあります。
これらのアプリは販売している商品や購入した商品、登録している住所や口座情報など膨大な個人情報のデータをデータベースを利用し、連動・管理しています。
スマホアプリ制作に必要な言語やツール
iOSアプリ開発に使用されるプログラミング言語
iOSアプリは次の2つのプログラミング言語をメインに開発されています。
Swift
Swiftは、2014年にApple社が開発した使いやすくなじみやすい言語です。WebアプリもiPhoneアプリも開発できるため汎用性が高いのが特徴です。
Objective-C
Objective-Cは、Swiftより前から使われているiOSアプリの主要な開発言語です。癖が強く学習コストの高い言語なので、初心者が学ぶのは不向きかもしれません。
iOSアプリ開発のために使用されるツール
Xcode
Xcodeは、iOS開発専用のツールで、アプリを構成するファイルやアプリを動かすことができます。
Androidアプリ開発に使用されるプログラミング言語
Androidアプリは次の2つのプログラミング言語をメインに開発されています。
Java
Javaは、守備範囲が広く安定的な需要がある人気の言語です。20年以上前に作られたものですが、生産性の高さから今でもさまざまな分野で利用されています。
Kotlin
Kotlinは、2017年にAndroidアプリの公式言語に認定された流行りの言語です。Javaと同じJVMという仮想環境で動作するため、Javaで作ったものは全て使えます。Javaでは難しい表現になってしまうコードも比較的きれいに書ける。そんな特徴もあります。
Androidアプリ開発のために使用されるツール
Android Studio
Android Studioは、Android開発専用のIDEです。IDEとは、システム管理に便利なソフトウェアのことです。
アプリ開発の費用面についての紹介
アプリを制作しリリースするにはGooglePlayやAppleStoreに登録する必要があります。それぞれに費用が発生します。
iPhoneアプリは年間11,800円、Androidは初回のみ25ドルです。
決して安くはありませんが、開発者向けの便利な機能を使うこともできるのでリリースまで行う意気込みのある方は最初に払っておきましょう
一番大事なのは作りたいもののイメージ
ここまでアプリ制作に必要な具体的なスキルやツールを紹介しました。
しかし、もっとも大切なのは、どのようなものを作りたいのか……そのイメージです。
作りたいもののイメージがハッキリしていればしているほど、何を学べば良いのかも明確になり、学習効率も上がります。
最初はシンプルなアプリがおすすめ
ただし、最初から複雑なアプリを作ろうとすると、挫折してしまう原因になるかもしれません。作りたいものを作ろうという結論は変わらないのですが、最初は仕組みを理解する意味で、シンプルなものから試してみることをお勧めします。
簡単なものが作れたら基礎の部分は理解できたはずなので、自分の実際に作ってみたいものを考えていきましょう。
まとめ
アプリを作るのは面白そう!楽しそう!と飛び込んでみた皆さんの中には、学ぶべきことが意外に多く驚いてしまった方もいると思います。
しかし今は、完全初心者でもアプリを作れるように、情報やアプリなどが充実しています。
アプリ制作において最低限身につけておくべき知識や、制作の大まかな流れをつかむまでは意外と時間がかかってしまうと思います。
しかし、普段私たちが何気なく使っているサービスの仕組みが理解できるようになるのは面白く、自分自身でも似たようなものが作れるようになるのは感動があります。この記事では簡単にしか紹介していませんが、アプリ制作は奥が深いため、一つ一つの概念やツールの使い方などを丁寧に理解することを心掛けながら挑戦してみてください。