Intelligent Technology's Technical Blog

株式会社インテリジェントテクノロジーの技術情報ブログです。

【Herlock】アプリ開発(テキスト表示とレイアー)

こんにちは、石尾です。

前回は、Herlockを触った程度で終わりました。
今回から、Herlockによるアプリの実装に関して投稿していこうと思います。

※前回同様に、Herlockはクローズドベータ版を利用しています。

Herlockの仕組み

Herlockは、JavaScriptだけで実装できると前回紹介しましたが、ネイティブアプリでよく利用するWebViewを使いブラウザ(HTML)表示をしている訳ではありません。JavaScriptエンジン自体を拡張して、描画はOpenGLにより行っています。

とすると、画面レイアウトの実装やその利用APIなど細かく覚える必要があるのでは!?と思いましたが、
描画レイアウトの構成は、Flashの表示リストやHTMLのDOMのようなツリー構造であるため、それほど理解しがたいことはないと思います。
(ただ、複雑な画面のアプリ作成の場合は、まだ判断しがたいですが、)

詳しく知りたい方は、株式会社ソニックムーブのブログを参照してください。
Herlockの内部的な仕組みと開発コンセプト | SONICMOOV LAB
【中級編】Herlockにおけるライブラリの使用 | SONICMOOV LAB
Javascript&OpenGLで作るネイティブアプリ

続きを読む

【Herlock】アプリ開発(アニメーション)

こんにちは、石尾です。

今回は、Herlockによるアニメーションのアプリ開発について投稿します。

※前回同様に、Herlockはクローズドベータ版を利用しています。

enterFrameイベント

Herlockによるアニメーションの実装する場合、enterFrameイベントを利用します。Flashでアニメーションを実装したことがある方は、enterFrameなんだ!と思ったかも知れません。
enterFrameイベントで登録された処理は、フレームレートで決められた回数だけ繰り返し処理されます。
フレームレートは、単位時間あたり、何個フレーム(コマ)が処理されるかを示す値です。1秒あたりのフレーム数でfps(Frames Per Second)という単位で表します。たとえば、30fpsだと、1秒あたり30個のフレームが処理されます。
パラパラ漫画をイメージしてください。30fpsだと、30ページをパラパラしたようなイメージです。fpsの数値が増えると、より滑らかなアニメーションになるだろうとイメージできると思います。

Herlockのフレームレートは、StageオブジェクトのframeRateプロパティで設定されています。デフォルトは、60fpsです。

アニメーションサンプル

プロジェクト作成時のテンプレートを「AnimationSample」に設定すると、次のコードが実装されたプロジェクトが作成されます。

var stage = new Stage( 640, 640 );
addLayer( new Layer( stage ) );

var image = new Image();
image.src = "assets/images/image.png";

image.onload = function() {

    var bd = new BitmapData( image );
    var bitmap = new Bitmap( bd );

    stage.addChild( bitmap );

    // animation
    stage.addEventListener( "enterFrame", function(){
        bitmap.x += 20;
        bitmap.y += 5;
        if( bitmap.x > 640 ) bitmap.x = -bitmap.width;
        if( bitmap.y > 640 ) bitmap.y = -bitmap.height;
    } );
    // animation
};

stageのイベント追加関数addEventListener()で、「enterFrame」イベントを設定しています。
その中で、画像の描画位置を変更しています。
※image.onload()で処理する理由として、読み込んだ画像からBitmapオブジェクトを生成するためです。

プロジェクトのファイル構成は以下のようになります。

{プロジェクトルートフォルダ}
│  main.js
│  README.md
├─app
│      
└─assets
    ├─images
    │      image.png
    │      
    └─sounds


アプリの実行イメージは次のようになります。水色背景「IMAGE」画像が左上か右下に移動します。

※さらに滑らかにするため、フレームレートの数値を上げようと思うかも知れませんが、携帯端末ディスプレイのフレームレートは60fpsだそうです。
Androidプログラミングの館

感想

Flashでアニメーションを実装したことがある方からすると、Herlockの仕様は使いやすいかも知れません。

※この投稿を作成している間に、Herlockのメンテナンスが日中に行われ、ビルドなどが出来なくなりました。まだ業務で利用していないので大きな問題になりませんが、このような対応も改善してもらえたらと思います。

引き続き、アプリの実装に関してレポートしていきたいと思います。

Firefox OSのアプリを作ってみました

こんにちは、張です。

モバイルOSというと、どうもAndroidiOSの話題で持ち切りになる気がしますが、最近その2大OSの牙城の一角を崩そうとする第3のOSの動きは注目を集めつつあります。今回第3のOSの一つと言われているFirefox OSのサンプルアプリを作ってみました。

Firefox OSのアプリの概要

開発方法

HTML5+CSS+Javascriptで開発します。普通のWeb開発とさほど変わりません。

分類

提供方式によって分ける場合:

  • ホスト型アプリ
    リソース(HTML、CSSJavascriptマニフェストなど)がWebサーバに置かれ、端末からHTTP(HTTPS)でアクセスして実行します。
  • パッケージ型アプリ
    リソースが一つのZIPファイルにまとめられて端末に配布され、端末上で実行します。

利用できるWeb APIによって分ける場合:

  • Webアプリ
    通常のWebアプリ。最低限のWeb APIしか利用できません。ホスト型でもパッケージ型でも可能です。
  • 特権アプリ
    信頼されたMarketplaceによってデジタン署名されたサードパーティーのアプリ。Webアプリで利用可能なAPIに加え、特権API(例えば連絡先関連)も利用できます。パッケージ型で提供されます。
  • 認定アプリ
    事業者やOEMによって認定されたシステムアプリ。ほとんどのWeb APIが利用できます。パッケージ型で提供されます(基本的にプレインストール)。
続きを読む