初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
近年、スマートフォンが普及し、メモ帳や家計簿、乗換案内といったさまざまな「アプリケーション」(以下、アプリ)を日常の中で使うことが増えてきました。しかし、そういったアプリを使う中で、不便な点を感じたことはないでしょうか。私は「メモ帳で作成したデータが常に更新日順に並んでしまうが、作成日順に並べ替えたい」と思ったことがあります。
そういった要望を思いついた場合、その要望を満たすようなアプリが見つかればいいのですが、デザインや機能がちょうど自分に合うアプリが見つかるとは限りません。
不便さを我慢しながら既存のアプリを使い続けてもよいですが、「自分が便利だと思うアプリを自分で作る」ことができれば、もっと快適にスマートフォンを利用できるようになります。自分でアプリを作るとなると難しそうですが、最近はアプリを開発するための環境も進化してきており、マウス操作でアプリの画面レイアウトを作成できるようになっています。このため、小規模なアプリなら初心者でも作れる時代になったといえるでしょう。
なお、一口に「アプリ」といっても、スマートフォンのアプリは「OS(Operating System)」によって、作り方が違います。2017年4月現在、スマートフォンで使われているOSは、シェア的に見ても、「iOS」と「Android OS」(以下、Android)の2つに大別されるといっていいでしょう。
このうち本連載では、Windowsのパソコン上で作れて、アプリストアに置かなくても自作アプリをインストールできる、Android端末向けアプリの作り方を紹介します。「今までアプリを作ったことがないけれど作ってみたい」「プログラミングを学びたい」という初心者の方を対象に、アプリの作り方やプログラミングの仕方を一から説明します。
なおiPhone向けのアプリの作り方については、下記連載を参照してください。
アプリを開発するために必要な手順は、大まかに分けると以下の2つです。
前者の動作指示書を作成する作業を「プログラミング」(Programming)、後者のアプリとしてインストールできる形式にする作業を「ビルド」(Build)といいます。連載初回の本稿では、このプログラミングとビルドがどのようなものなのかについて説明します。
アプリの動作指示書の例として、既にできているトランプゲームのアプリに「手札のカードを数字の小さい順に並べ替える」という機能を追加する場合を考えてみます(単純にするために、スペードやハートといったカードのスートは考慮しません)。
アプリで処理を行う場合、処理手順を具体的に指示してあげなければいけません。もしも、この並べ替え処理を、アプリで行うのではなく、誰かに頼むのであれば、どうするでしょうか。「数字の小さい順に並べ替えて」と一言伝えるだけで、その人は手札を見て、3と5の場所をすぐ入れ替えてくれるでしょう。
しかし、アプリで処理を行う場合、「数字の小さい順に並べ替えて」というような曖昧な指示をすることはできません。以下の例のように、並べ替えの手順を具体的に指示してあげなければいけません。
【1】カードを置く場所を「並べ替え前」と「並べ替え済」の2つ用意します。
【2】「並べ替え前」の先頭のカードを取り、「並べ替え済」に置きます。
【3】「並べ替え前」の先頭のカードを取り、「並べ替え済」の先頭のカードから順に見ていき、「並べ替え前」から取ったカードよりも大きい数字のカードを探します。
【4】「並べ替え前」から取ったカードよりも大きい数字のカードが見つかれば、そのカードの直前に置きます。「並べ替え済」のカードを最後まで見て行っても大きいカードがなければ、最後に置きます。
【5】「並べ替え前」のカードが残っていれば手順3に戻り、また同じことを繰り返します。
「数字の小さい順に並べ替える」という日本語で言えばすぐに済んでしまうことでも、アプリで処理を行うためには、このように「誰がやっても同じ手順となる」誤解のない指示書を作成しなければいけません。
日本語で処理の手順を書くと曖昧になってしまうため、アプリで処理手順を書くためには「プログラミング言語」(Programming Language)という専用の言語を使います。プログラミング言語で書かれた指示書を「ソースコード」(Source Code)と呼びます。アプリ開発の大半を占める作業は、この「ソースコード」と呼ばれる指示書を作成することであり、この作業を「プログラミング」と呼びます。
なお、プログラミング言語にはさまざまな種類があり、Androidアプリ開発では主に「Java」と呼ばれるプログラミング言語を使用します。「Javaを使って具体的に、どのようにアプリの処理を記述するか」については、次回以降の連載で学んでいきます。
Copyright © ITmedia, Inc. All Rights Reserved.