firefox

【第三極モバイルOS】FirefoxOSのアプリ開発基礎知識

こんにちは。6月からHackistに仲間入りした新顔の川崎です。

 

最近、FirefoxOSとかTIZEN(タイゼン)とかいう言葉を良く聞くようになってきましたね。

「これらの単語は一体なんなの?」という方の為にざっくり説明しますと、これらはAndroidやiPhoneに続く「第三極モバイルOS」とか言われるスマートデバイス向けの新しいOSになります。

 

まだキャリアから端末も発売されていないので一般には浸透していない状態ですが特徴としてGoogleやAppleのような所謂、”提供者”である巨人の縛りが無い、「オープンな」OSとして業界内で話題になっており、その使われ方も注目を集めています。

 

では実際に第三極OSが既存OSと何が違うのか、という事や、アプリの作り方、そしてビジネス面のメリット/デメリット等をこのブログで連載形式でお届けしたいと思います。

第一回となる今回は第三極モバイルOSの筆頭でユニークな仕組みを持ったFirefoxOSについて書いて行きます。

 

 

FirefoxOSとは

ブラウザのFiefoxは既にWebの世界で市民権を得ているので知っている人も多いと思いますが一応説明させて頂くと、Firefoxは「Mozilla」という非営利団体が提供しているオープンソースのWebブラウザになります。

そのブラウザのアーキテクチャを採用して、Webプラットフォームのモバイル向けOSとして作られたのがFirefoxOSになります。

 

既に開発者向けには「Peak」と「Keon」という名前で端末が発売されています。

見た目や操作感はAndroidに結構近いです。

 

2013年2月に開催されたMobileWorld Congressでは世界中の通信事業者から18社がFirefoxOSを指示すると表明しました。日本ではKDDIが、端末メーカーとしてはLGやHuawei等が名乗りを上げています。

 

 

Webプラットフォームってどういう事?

FirefoxOSの特徴として「Webベースである」という事が良く語られます。

その理由は様々な視点から語られますが、ざっくり言うとアプリをHTML5等のWeb技術で動かしており、ウェブブラウザのエンジンを利用してダイレクトにウェブアプリを動かすモバイル端末を動作させる、という所にあります。

ただ、前述した説明だけだと少々抽象的で、FirefoxOSの本質が見えていないので、もう少し掘り下げて見てみましょう。

 

端末に搭載されるOSは大きく分けると3つの構成で分けられます。各構成の役割は①画面表示をする部分(UI)、②処理を行う部分(エンジン)、③全体を取りまとめる土台(カーネル)となっています。

FirefoxOSはそれぞれの構成を独自に作成した物を利用しており、上から「Gaia」「Gecko」「Gonk」と名付けています。

 

出典:FirefoxOSアーキテクチャ

https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Platform/Architecture

 

Gaia(ガイア)

上記図の一番上にあるのがGaiaです。Firefoxでは表示を行うViewをHTMLベースで作っています。これがまず1つ、Webベースであると言われる理由になります。

 

Gecko(ゲッコー)

GeckoはFirefoxが誇るエンジンになります。ブラウザもプログラムの集合体であり、Web上で動作する為の処理を司るのがエンジンになります。ブラウザの世界ではOSS(オープンソースソフトウェア)であるWebkitに始まり、近年も進化続けています。オープンソースであるFirefoxはW3Cで進められているHTML5の標準化を待たずして独自に進化をしているので、最先端のWebエンジンであると言えます。FirefoxOSは処理を解釈するエンジン部分がこのGeckoになるのでWebベースという事です。

 

Gonk(ゴンク)

上記のGaiaとGeckoは基本的にはWebブラウザのFirefoxと同じアーキテクチャを採用していますが、それだけでは当然端末を動かす事は出来ません。FIrefoxOSでは端末の制御等を行うためにGonkが居ます。

GonkはLinuxを採用しており、その実態はAndroid4.0のカーネルを流用しています。既にOSSとして提供されているAndroidから必要なカーネルだけを持ってくるあたりはとても賢い選択だなと思います。

 

 

結局、Androidと何が違うの?

FirefoxOSはWebアプリケーションを動作させる為に様々な最適化がされています。AndroidやiPhoneは非常に高機能ですが、動作させる為に色々と複雑な仕組みが載って、動作させる為の端末スペックもハイエンドになっています。それに対してFIrefoxOSは無駄な物を削ぎ落としたスマートな作りになっているので、結果として超軽量なプラットフォームになっているのです!

 

 

 

ローエンド(低スペック)端末向けと言われるFirefoxOS

FirefoxOSはローエンド端末や途上国に向いているという情報をよく見ます。とはいえMozillaさんは非営利団体なので、特に「◯◯に向けた端末」等を指定している訳ではありません。ローエンドと言われている理由は動作する端末スペックによります。

Android4.0は動作させるのには端末のメインメモリ(RAM)が1GBないし2GB必要になります。

前述したように高機能化を進めたが為に出て来たしまった制約です。

 

メモリ1GB以上ハイスペック端末は端末価格が高く、国によっては「高過ぎて売れない」というケースが出てきます。それに対してWebベースのFirefoxOSはメモリが256MBでも512MBでも軽快に動作します。その為、端末性能に依存せずにOSを載せる事が出来るので、世界的に注目されているOSになります。

※余談ですが、Androidも5.0で低スペック動作可能になると言われているので、そのあたりの棲み分けについても今後が楽しみです

 

 

Webベースのアプリだけどサクサク動作する理由

Webベースのアプリだと動作が遅いんじゃないのか?という疑問を持つ方がいるかも知れません。FirefoxOSではasm.jsというJavaScriptを事前に型付き言語に処理する仕組みを採用している為、実行速度がとても速くなっています。

asm.jsはブラウザ版の最新バージョンであるFirefox22でも対応するそうなので、そこで実際に速度を体感してまた別途記事にしたいと思います。

 

 

FirefoxOSのアプリ開発に専用ツールは必要ない!

モバイルのアプリケーション開発では専用のデベロッパーツールであるSDKを利用する場合がほとんどでしたが、FirefoxOSの場合はそんな事はありません。

① エディタ

② Firefoxのブラウザ

③ Firefoxブラウザのアドオン(Simulator)

 

この3つだけです。

 

エディタはVimでもDreamWeverでもeclipceでも単純テキストに対応しているメモ帳でも大丈夫です。つまり、ブラウザさえあればシミュレータで動かす事が出来ます。

AndroidやiOSは高機能な統合開発環境がSDKとして提供されていますが、高機能が鵜故に習得コストがかかります。

その反面、FirefoxOSの開発環境のハードルの低さはかなり魅力的であると思っています。

 

今回はFirefoxOSの概要について書いてきましたが、次回記事では「エミュレータでのアプリ作成方法」を書いて行きたいと思います。