まさ@ブログ書き込み中

まさの英語、プログラミング、考えごとについて色々書きます。

【メリットとデメリットも説明します】iPhoneアプリとWebアプリのプログラミングの違い【言語・考え方】

f:id:masaincebu:20180809072638j:plain

 

アプリをつくるためにプログラミングを勉強したいけど、いろんなプログラミング言語があってどれにしたらいいかわからない。スマホアプリとインターネットで使えるアプリはどう違うの?

 

そういった疑問に答えます。

 

僕は1年半、Webアプリをつくるためのプログラミングを勉強してきました。就職する前から自分でアプリを制作したり、開発案件を受注してWebアプリを作ってきました。そして最近、きっかけがあってiOSアプリをつくるための勉強をしています。

 

今回はその経験から学んだiPhoneアプリとWebアプリの違いを紹介していきたいと思います。この記事を読んで、どっちを勉強すべきか考えてみてください。

 

もくじ

 

iOSアプリとWebアプリの違い

一般的にiPhoneアプリ(以下iOSアプリといいます)と呼ばれているものは、Apple社が提供するデバイスであるiPhoneとiPadで使えるアプリケーションのことを指します。

 

皆さんがiOSアプリを利用する時はApp Storeでアプリケーションをインストールして使っていると思います。ここがWebアプリとの大きな違いです。

 

というのも、WebアプリはWeb(≒インターネット)を通して使えるアプリケーションだからです。自分が使っているデバイス機器(PCやスマホ)へのインストールは不要です。Webブラウザ(Google ChromeやYahoo、Internet Explorer)にURLを打ち込めばそのアプリケーションを使うことができます。インストールは不要です。

 

ちなみに、アプリケーションとは簡単にいうとある目的につくられたソフトウェアのことを指します。デスクトップアプリケーションとWebアプリケーションの違いについてはこの記事を2分くらいでさくっと読んできてください。

Webアプリケーションってなに?【Web技術入門1】 - まさ@ブログ書き込み中

 

iOSアプリとWebアプリの作り方の違い

iOSアプリとWebアプリの違いは、大きく分けてプログラミング言語と操作のされ方の観点から考えると良さそうです。

 

プログラミング言語

iOSアプリはObjective-CとSwiftというプログラミング言語でつくることが可能です。Objective-CはiOSアプリ制作のために古くから使われてきた言語で、SwiftはAppleが開発したプログラミング言語です。

 

Webアプリはいろんな言語でつくることが可能ですが、認知度や市場の大きさからいうとRuby・PHP・Javaが有名どころです。 また、後に述べますが、Webアプリでは実際の処理の部分と見た目のデザインの部分は別の言語で実装されています。見た目の部分はHTML・CSS・JavaScriptでつくられます。

 

操作のされ方

先ほど紹介したようにiOSアプリはインストールをして利用します。iPhone上で動かすため、操作はiPhoneが搭載している機能を使って行われます。画面をタッチしたり、キーボード入力をすることなどがそうです。

 

そのため、iOSアプリ開発ではWebアプリとは違って画面の見た目の部分をパーツを置いていくようにつくっていきます。Xcodeというツールのライブラリから必要なパーツをくっつけていくイメージです。

 

Webアプリは、先ほど紹介したHTMLやCSS、JavaScriptによって見た目の部分をつくり、インターネットを介して操作のやり取りをします。例えばリンクを押した時には「◯◯のページを取ってくる」というリクエストがサーバーに送られ、サーバーが「このページね」とページをクライアントに返します。

 

iOSアプリはiPhone用につくられているのでiPhoneの機能を使って簡単に色々なパーツを使って見た目の部分をつくれるのに対し、Webアプリはそれらをコーディングする必要がある、というのがポイントです。

 

それぞれのメリットとデメリット

さて、これらの情報を踏まえた上でiOSアプリとWebアプリ開発のメリットとデメリットを考えてみましょう。

 

iOSアプリ

メリット
  • 比較的簡単にiPhoneの操作や機能を活用して実装できる
  • (アプリにもよるが)ユーザーに使われる頻度が多くなる
デメリット
  • iPhoneでしか使えない

 

Webアプリ

メリット
  • インターネットが繋がってさえいれば、どのデバイスからでも利用できる
  • デバイスに依存しないので、技術力の価値が下がりにくい
デメリット
  • スマホから利用しづらい
  • iOSアプリと比べてフロントエンドの勉強が必要(HTML/CSS/JavaScript)

 

もちろんですが、それぞれ一長一短あります。iOSアプリは僕らの生活の中で何度も利用されることが考えられますが、かつてガラケーのためのプログラミング言語やフレームワークが廃れていったように、iPhoneとは違う発想のデバイスが出てきた時にその言語は役に立たなくなってしまいます。

 

iOSアプリとWebアプリ、どちらを勉強するべきか?

結論から言うと自分がやりやすければどっちでもいいと思います。

 

いろんなプログラミング言語が世の中にあり、いろんなプログラミング言語について多くの人がメリットやデメリットの話をしますが、結局最初に学ぶプログラミング言語は「大学で教えていたから」「自分の師匠が使っていた言語だから」「面白そうだったから」といった理由で決まっていることが多いです。

 

皆さんがつくりたいアプリの性質や、近くに聞けそうな人がいるかどうか、やりやすいかどうかで決めてもいいのではないでしょうか。

 

多くの人がプログラミングに興味を持っても学習を継続できません。その事実から考えると大事なのはiOSかWebかというより、ちゃんと自分のものにするまで学習を継続できるかどうかだと思います。

 

もしWebアプリに興味がある方は、この記事を参考にしてください。

【サイトの作り方】僕が実践した初心者向けHTML&CSS学習法【入門】 - まさ@ブログ書き込み中

Ruby/RailsでWebエンジニアになるためのプログラミング学習法【入門】 - まさ@ブログ書き込み中