JavaScriptってアプリ開発にも使えるの?
HTML・JavaScriptの知識を再活用してアプリを開発したい
JavaScriptを使ってアプリ開発できるツールやサービスを知りたい
一般的にWeb開発とアプリ開発というのは、プログラミング手法はもちろんのこと扱うツールや考え方も大きく異なります。
しかしながら、使い慣れたWeb開発の知識をアプリ開発に活用できれば可能性は大きく広がりますよね。実は、最近の傾向としてHTML / JavaScriptを活用したアプリ開発が盛んに行われるケースが増えています。
しかし、これらの開発手法はどのようなもので一体どんなツールを活用すれば良いのでしょうか?
そこで、この記事では初心者でも今日からHTML・JavaScriptを活用したアプリ開発の基礎知識について分かりやすく解説していきますので、ぜひ最後まで読んで理解を深めて頂ければ幸いです。
一人でも多くの方がJavaScriptを使ったアプリ開発の不安を解消できれば幸いです。
基本的なアプリ開発とは?
まず最初に一般的なアプリ開発の流れについて見ていきましょう!
アプリ開発は主に【iOSアプリ】と【Androidアプリ】の2種類に分かれるのが基本です。それぞれで開発手法や使われるツールが異なるので、基本的な概要を以下にまとめておきます。
iOSアプリの場合
- 使用言語:Swift(Objective-C)
- 開発環境:Xcode
- 必要な登録:Apple Developer Program(11,800円 / 年)
- 必要なOS:Mac OSX
Androidアプリの場合
- 使用言語:Java
- 開発環境:Android Studio(JDK)
- 必要な登録:Google Playデベロッパー(25$ / 初回のみ)
- 必要なOS:Windows, Mac OSX, Linux
アプリを開発するうえで、iOSに対応するのかAndroidに対応させるのかで使用するプログラミング言語が違うことに注意してください。また、どちらも作業を効率化する専用の開発環境が用意されているのは大きな特徴でしょう。
ちなみに、アプリをストアに公開する際に有料のアカウント登録が必要になりますが、開発自体は無料で行えることもポイントです。
このように一般的な手順に沿ってアプリ開発を行う場合には、iOS / Androidそれぞれに専用の開発エンジニアや環境が必要になってしまうのが現状でしょう。
ハイブリッドアプリについて
この章では、Web開発の知識をそのままアプリ開発に活用する手法について見ていきましょう。主に、ハイブリッドアプリの仕組みや効率化するためのサービスなどを学習していきます。
HTML/JavaScriptの組み合わせによる開発手法
前章ではJavaやSwiftなどを利用した一般的なアプリ開発をご紹介しましたが、HTML・JavaScriptを利用してアプリ開発を行うのがハイブリッドアプリと呼ばれている手法です。
(もちろんCSSも活用できます)
実は、iOS / Androidにはもともと標準でWebページを表示するWebViewという機能が搭載されています。この機能を利用してWebアプリをまるで普通のアプリみたいに動作させるわけです。
さらに、Cordvaというフレームワークを活用することで、スマホに搭載されているカメラやGPSなどのネイティブ機能もJavaScriptから利用することができます。これにより、通常のアプリ開発と変わらないUIや機能を提供できるわけです。
HTML / JavaScriptによるアプリ ↑ WebView ↑ Cordvaフレームワーク ↑ スマホのネイティブ機能
ハイブリッドアプリの特徴をここでおさらいしておきましょう!
- Web開発の知識をそのままアプリ開発に活用できる
- スマホのカメラやGPSなどのネイティブ機能を使える
- iOS / Android向けアプリを同時に開発できる
このようにとても便利なハイブリッドアプリですが、WebViewを使った表示のため動作はあまり速くありません。そのため、速度が重要視されるゲームなどへの開発にはあまり向いていないので注意しましょう。
開発効率を上げるサービス・ツール
ハイブリッドアプリは、自分の好きな環境を用意して独自にプログラミングすることで開発を行うことができます。しかし、作業をより効率化してくれるサービスやツールが提供されているのでいくつかご紹介しておきます。
【 monaca 】
ハイブリッドアプリの開発に必要な環境がすべてクラウド上に用意されており、ユーザーはブラウザからアクセスするだけでプログラミングからアプリのリリースまでを一括して作業できるのが大きな特徴です。
そのため、WindowsマシンだけでもiOSアプリを開発してリリースすることが可能です。また、アプリのテストなどに便利なデバッガーも提供されているので、スマホの実機ですぐにアプリを試すこともできます。
【 Ionic 】
Angularをベースにハイブリッドアプリを効率よく開発するためのオープンソースプロジェクトとして進められているフレームワークです。開発環境の構築やデバッグに加えて、実機での確認やUIツールキットなども提供されています。
すべて無料で利用できるという大きなメリットがあるのですが、基本的に英語のドキュメントを見ながら作業を進めることになるので学習コストは少し高めです。
※URL:https://ionicframework.com/
PWAによるアプリ開発
この章では、最近注目され始めているアプリ開発手法としてPWAについてご紹介します。主に、基本的な仕組みやその開発手法について学習していきます。
PWAとは?
PWAはProgressive Web Appsの略称で、スマートフォンなどのモバイル端末からWebページをスマホアプリのように使うことができる仕組みのことを言います。主に、Googleが中心となって進められています。
PWAを取り入れたWebページは以下のようなメリットがあります。
- スマホのホーム画面に配置できる
- キャッシュによる高速表示
- ストアの審査不要で配布可能
- オフライン対応
- プッシュ通知の利用
- GPSの活用
- アプリ内決済機能
- など…
このPWAを支えている重要な技術としてServiceWorkerがあります。これは、普通のJavaScriptとはまったく異なる時間軸(ライフサイクル)で実行されるJavaScriptの実行環境です。
簡単に言うと、このServiceWorkerがページの読み込み時やプッシュ通知を受信した時などのイベントを検出して任意の処理を実行できるようにしてくれるわけです。これにより、キャッシュの高速化やオフライン対応・プッシュ通知の受信を実現しています。
PWA開発の基本
それでは、実際にPWAを開発する際に必要となるものは何なのでしょうか。
最低限、必要なものとしては以下の通りです。
- HTMLファイル
- ServiceWorkerファイル
- マニフェストファイル
HTMLファイルは一般的なWebページを構成するためのものですね。
ServiceWorkerファイルというのは、先ほど解説した別の時間軸で実行されるJavaScript環境のことです。ファイルの中身は、ページが読み込まれた時などさまざまなタイミングによるイベント処理を記述したものになります。
マニフェストファイルは、主にPWAアプリの基本情報が記載されたJSONファイルのことです。このファイルでさまざまなプロパティを設定することで、スマホのホーム画面にPWAアプリを配置することも可能になります。
ファイルの名称はmanifest.jsonとして、linkタグを配置するだけで導入できるので簡単です。
このように基本的なPWAであれば、自分の好きな開発環境からすぐにでも作業に取り掛かれるくらい導入は簡単です。
まとめ
今回は、HTML / JavaScriptによるアプリ開発の方法やツールについて学習しました!
最後に、もう一度ポイントをおさらいしておきましょう!
- 一般的なアプリ開発はJava / SwiftなどOSによって手法が異なる
- ハイブリッドアプリはスマホに標準搭載のWebViewを使う
- PWAはスマホ向けにWebページをアプリのように扱える仕組み
上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!