今さら聞けない!アプリのつくり方

記事
IT・テクノロジー
「アプリのつくり方ってよく分からない」
「どうやってアプリ開発の依頼をしたらいいか分からない」
「アプリ開発依頼したことあるけどうまく購入まで至らない」

などの悩みを持ったことがある人向けの記事です。

こんにちは、maaarioです。普段はiOS開発をメインにしていて、
アプリ開発のサービスで出品したりしています。

この記事では、

・プログラミングでアプリをつくるとはどういうことか
・つくったアプリを、Storeでインストールできるまでの流れ

をご説明することで、アプリのつくり方を理解してもらえたら幸いです。
そして、開発依頼をしたい方のタメになれば良いなと思っています。

※プログラミングの話には詳しく触れませんのでご安心ください。

アプリ用プログラミングのコードを「ビルド」すると「アプリ」に

いきなり「ビルド」と言われてもよく分からない方もいると思います。

そこで、例を用いて説明をします。
「Wordで文書を書き、PDF形式で保存する」作業を想像してください。
スクリーンショット 2020-09-24 15.34.49.png

Wordは文書を書くためのツールです。
PDFは文書閲覧専用のファイル形式で、基本的に編集できません。

Wordで作成した文書をPDF形式に変換すると、第三者に書き換えられないようになるので、学校の授業の課題など、PDFで提出したことある人も多いのではないでしょうか。

アプリのつくり方も、同じようなものです。

アプリ用の言語で作成したものを、アプリ用の形式に変換すれば、アプリができます。このアプリ用の形式に変換することを、「ビルド」と呼びます。

また、Wordで書くものが「文章」であるのに対し、
アプリ用の言語で書くものは「ソースコード」と呼びます。
よく界隈では「コード」と呼ばれたりしていますね。

※「ソースコード」「ビルド」はアプリ以外のプログラミング(Web開発など)でも用いられている言葉であり、アプリ専用の言葉ではありません。

以下の例図は、左側が「ソースコード」、
右側がソースコードをビルドした「アプリ」の画面です。
※厳密には、この例図はPlaygroundというものです。今回は説明を省略。

スクリーンショット 2020-09-22 16.28.08.png

なんとなく分かってきましたでしょうか。
まとめると、Word->PDFの場合とアプリの場合を並べると以下になります。

・Wordファイル -> 変換 -> PDFファイル
・アプリソースコードファイル -> 変換(ビルド) -> アプリ

アプリの言語、ファイル形式の表

Wordは日本語だったり英語だったりで記入しますね。
アプリの場合はプログラミング言語で記入します。
まとめた表を以下に示します。

※アプリは主に2種類、iPhoneやMacPCなどApple製品の端末で利用できるiOSアプリと、Google製品の端末で利用できるAndroidアプリがあります。

スクリーンショット 2020-09-22 16.16.21.png

ポイントを箇条書きで記載します。

・iOSの主言語はSwift(昔はObjective-C)
・Androidの主言語はKotlin(昔はAndroid Java)
・Wordは1ファイルを.pdfに変換するのに対し、アプリは複数のファイルをビルドすることで完成版のファイル形式に変換します。

ビルドは厳密には、ただの変換ではない

ここまで「ビルド」とは、「アプリ用ソースコードを、アプリに変換すること」と説明してきました。間違ってはいませんが、厳密にはただ変換しているだけではありません。

そして、この変換を簡単に実現できるのは、AppleさんやGoogleさんたちのおかげなのです。

こちらでは簡単に説明します。この「ビルド」というのは、
PCが「とあるプログラミングシステム」を使って動作させているものです。

「とあるプログラミングシステム」は、

1. ソースコードに問題がないか確認し、
2. ソースコードを、機械(PC)が読んで分かりやすい機械語に翻訳し、
3. 機械(PC)が実行できる形(アプリ)に変換

をしています。

機械語の話は今回は詳しく話しません。例えば、
「とあるプログラミングシステム」を「炊飯器」、
「ソースコード」を「米と水」、
出来上がる「アプリ」を「ご飯」に置き換えて説明します。

「炊飯器」なしで「米」を「ご飯」にするのは大変ですよね。

われわれは「米と水」を用意(ソースコードを書く)すれば、
PCさんが「とあるプログラミングシステム」(炊飯器)のスイッチを押すことで、自動で「ご飯」(アプリ)が炊きあがる、というわけです。

この「とあるプログラミングシステム」をアプリ用につくってくれたのが、
Appleさん、Googleさんを始めとした方々です。
AppleさんGoogleさんたちのおかげで、われわれはアプリをつくれるのです。

この方々が界隈で「神」と言われるわけですね。

※「ビルド」に詳しく知りたい!という方はこちらの記事をオススメします。
https://proengineer.internous.co.jp/content/columnfeature/6308

つくったアプリを、Storeでインストールできるまで

ここまで、アプリ自体のつくり方を説明してきました。

ただ、ここまでを理解したからと言って、
手元のスマフォにつくったアプリが入れられるわけではありません。

アプリは、基本的には「Store」からインストールする必要があります。
iOSの場合は「AppStore」から、Androidの場合は「GooglePlayStore」からですね。

つまり、つくったアプリは、Storeにアップロードしたりする必要があるわけです。以下では、つくったアプリをStoreでインストールできるまでの手順を説明します。「Word->PDFの例の場合」「iOSの場合」「Androidの場合」の3ケースについて記載します。

Word->PDFの例の場合

先ほどはWordをPDFに変換する例を用いました。
この例を参考に、レポート課題を提出する以下の手順を想像してみてください。

1. レポートをWordで作成
2. WordファイルをPDFに変換
3. PDFを管理局(先生)に提出
4. 管理局(先生)がPDFの中身をチェック
5. レポートがホームページ(WEBサイト)に掲載、誰でもインストールできるように

この例をフロー図にしています。

スクリーンショット 2020-09-15 0.38.41.png

このフロー図を参考に、iOS・Androidの場合をみていきます。

iOSの場合

iOSの場合は以下のようになります。
スクリーンショット 2020-09-15 0.38.50.png

この手順を経ると、iPhoneやiPad,Macなどでアプリをインストールできるようになります。

補足:

・実際にはアップロードに証明書が必要だったりと、もっと複雑ではあります。
・実際には「ビルド」にもいくつか種類があったりします。
・この手順は、アプリ新規作成だけでなく、更新も全く同じ手順になります。

Androidの場合

Androidの場合は以下のようになります。
スクリーンショット 2020-09-15 0.38.58.png

この手順を経ると、Android端末でアプリをインストールできるようになります。

補足:

・iOS同様、実際には証明書が必要だったりします。
・iOS同様、実際には「ビルド」にもいくつか種類があったりします。
・iOS同様、アプリ新規作成だけでなく、更新も全く同じ手順になります。
・この手順を踏まえなくても、ストア以外からアプリをインストールする手順が存在するのが、iOSと異なる特徴と言えます。今回は説明を省略。

(ちなみに)iOS,Android両方同時に作成できる場合!?

iOS, Androidそれぞれプログラミングするのって大変ですよね。
そこで世の中には、iOS, Android両方まとめてつくれるシステムがあります。
このシステムは「クロスプラットフォーム」と呼ばれたりしています。

代表的なものを列挙します。

・Monaca
・React Native
・Flutter
・Xamarin

そして、これらもインストールまでの手順は基本的に同じです。

異なる点は、「アップロード用ファイルに変換」の手順で、
iOS用形式・Android用形式の2つのファイル両方とも作成できるというところです。

クロスプラットフォームは非常に便利です、しかし、もちろんデメリットもあります。
両方同時にプログラミングをするので、iOS専用またはAndroid専用の機能を実現するのは難しかったりします。また、iOS, Androidは毎年新しい機能が作られ、常に進化しています。その新しい機能は、クロスプラットフォーム側が対応してくれないと、実現ができず、かなり時間がかかるという点もデメリットです。
細かい部分を気にしない場合は、クロスプラットフォームが便利と言えます。

※ちなみに、Yappliというシステムも存在しますが、これはフローも作り方も大きく異なります。プログラミングを全くせずに、アプリを作ることが可能になっています。詳しくはYappliのホームページを御覧ください。

まとめ
アプリをつくって、手元に届くまでの説明をしてきました。
「アプリのつくり方」なんとなく、お分かり頂けましたでしょうか。

私の方でもアプリ開発依頼を承っております。
新規アプリの作成、既存アプリの修正の2つ出品しております。


ぜひご利用ください。
ここまで読んでいただきありがとうございました!

(おまけ)アプリをストアに乗せるには、お金がかかる!?

アプリをストアに出すためには、お金がかかります!

マンションに住む際に家賃を払う、
のと同じだと思うと分かりやすいかもしれません。

誰かの所有領域を使わせてもらうのに、お金を払うという感覚です。
iOSのストア(AppStore)の所有者はAppleさん、
Androidのストア(GooglePlay)の所有者はGoogleさんです。

iOSでは、Apple Developer Programに登録する必要があります。
https://developer.apple.com/programs/
これは年額99$です。毎年更新時に支払う必要があります。

Androidでは、developer accountに登録する必要があります。
https://play.google.com/apps/publish/signup/
これは25$で、買切です。1度買ってしまえば再度購入する必要はありません。

Androidの方がiOSより価格は良心的と言えるでしょう。

(おまけ)Storeを通さなくても、手元のスマフォにアプリを入れられる!?

Storeを通さなくても、アプリをスマフォに入れることができます!

ただ、Storeを通さないことでデメリットがあります。

・他ユーザにインストールされる機会が、Storeに比べると全然ない
・(iOSの場合)利用期限がある

もちろんメリットもあります。

・手軽に手元のスマフォにアプリを入れられる!
・Storeを通す手間が必要ない

では簡単にアプリをスマフォに入れる方法をご紹介します。
(詳しい手順は今回省略します。)

スクリーンショット 2020-09-23 10.10.24.png

補足:

・iOS,Androidともに、PCとスマフォを直接接続して、PCでビルドする方法があります。ビルドはそれぞれの開発ツール(iOSはXcode, AndroidはAndroid Studioが主)を使うと、ボタンひとつで簡単にビルドできます。
・アプリ配布ツールを利用すると、多くの人が簡単にアプリをインストールできるようになります。特に、Firebase App Distributionは無料で利用できるので便利です。ただ、Firebaseアカウント作成だったり端末の登録だったりと、最初はそれなりに手間がかかります。
・完成版のファイル形式(iOSは.ipa、Androidは.apk)を、PCとスマフォを直接接続して、インストールする方法があります。
・【お金について】Androidの方は、基本無料で可能です。しかし、iOSについては、アプリをインストールする端末のID(UUID)を、事前にApple Developer Programに登録する必要があります。Apple Developer Programを使うためにはお金を払う必要があるので、やはりiOSの場合は無料というのは厳しそうです。

もし自分だけ、身の回りだけにアプリを配れればいい、というケースでは上記の方法が良いと思われます。逆にアプリを他の人にも使ってもらいたい、という場合はStoreに出すのが一番良い気がします。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す