[Firefox OS][FxOS]Firefox OS Advent Calendar 2013完走しました!

 藪下@2課のFirefox OS普及委員です。

 Firefox OS Advent Calendar 2013無事完走しました!
 まあ途中紆余曲折あったようですがなんとか25日に25エントリ埋めていただけました。

Firefox OS Advent Calendar 2013
http://www.adventar.org/calendars/103

 まだまだ国内ではコミュニティも小さい中これだけ率先してエントリしてくださる方々がいるのは大変うれしいことだと思います。
 執筆にご協力頂いた24名の方々本当にありがとうございました。
 来年は国内でも端末が出るかも出ないかもの年でもあるのでこれからも盛り上げて行きましょう!

[Windows Phone][Windows RT]WPとRTが無料化しちゃうのですか?

 藪下@2課のガジェオタです。

 ちょっと眉唾なニュースですがWindows PhoneとWindows RTの無料化が検討されてるかも? という記事がありました。

Microsoft considers free versions of Windows Phone and Windows RT to battle Android
http://www.theverge.com/2013/12/11/5199446/microsoft-considers-free-versions-windows-phone-windows-rt

 真偽の程はともかく実現したら面白いですね。OS大好き藪下さんとしては中身読みたいのでいっそOSS化して欲しいなーと思ったり(チラッチラッ
 つーかこれが実現して端末一杯出てきたらまた藪下のお金と時間がなくなっていきますね。。。

[Firefox OS][FxOS]toast的なものを出すコード

丸山です。

Firefox OS勉強会でちらほらお話させて頂いてますが、
Firefox OSでtoastっぽいものを表示するコードについて、
改めて記載します。
(スライド記載分のみでは見にくいかと思いますので)

htmlファイル

<head>
<link rel="stylesheet" type="text/css" href="res/status.css">
</head>
<section role="status" id="toast" hidden>
	<p><progress></progress>  Connectiong<BR>      Server...</p>
</section>

上記で使用している「status.css」は以下よりダウンロードしてください。
http://buildingfirefoxos.com/building-blocks/status.html

jsファイル

function toastManager() {
}

toastManager.prototype = {
/**
 * 4秒後にToastを消す
 */
scheduleToast : function() {
	window.setTimeout(function() {
		document.getElementById("toast").hidden = true;
	}, 4000);
},

/**
 * closeするまで表示しっぱなし
 * (サーバ処理中などに使用)
 */
showToast : function() {
	document.getElementById("toast").hidden = false;
},

/**
 * 4秒後に消えるToastを表示
 */
showToastSchedule : function() {
	document.getElementById("toast").hidden = false;
	toastManager.prototype.scheduleToast();
},

/**
 * Toastの消去
 */
closeToast : function() {
	document.getElementById("toast").hidden = true;
},

/**
 * Toast内の文章を変更
 */
changeToastMessage : function(string) {
	var toast = document.getElementById("toast");
	while(toast.firstChild){toast.removeChild(toast.firstChild);}
	var text = document.createElement("p");
	text.innerHTML = string;
	toast.appendChild(text);
}
}

なお、発表に使用したスライドのURLは以下です。

[Firefox OS] Peak+の製造中止とRevolutionについて

この記事はFirefox OS Advent Calendar 2013 十二日目の記事です。

どうも。shintaniです。いつもTizenの記事ばかり書いていましたが、今回はFirefox OSの記事を書いてみました。

内容については、7月下旬に予約したのに、いつまでたっても届かなかったPeak+(最終的には製造中止)と近日中?に発売されるRevolutionについてです。

Peak+とは、Geeksphoneにより、当初2013年9月に発売を予定されていたFirefox OS端末です。
今年7月頃から予約受け付けが開始されましたが、発売日が延期に延期を重ね、最終的に今年の11月下旬に製造中止となりました。
ちなみに、社内でFirefox OS端末を購入することになり、購入手続きを私が担当していました。。。

Firefox OS搭載の最新端末について触れられるということで個人的に非常に楽しみにしていたのですが、製造中止ということで非常に残念でした。

が、

11月下旬頃、Peak+製造中止に伴い販売元のGeeksphoneからメールが届き、以下の中のいずれかの対応を行うことになりました。

  1. 予約代金の全額払い戻し
  2. 現在発売中のPeakと予約代金の差額の払い戻し
  3. 新しく発売されるFirefox OS 端末 Revolutionへの予約切り替え

これは、Revolutionへの予約切り替えを行うしかないと、3を選ぶ方針で、上司に進言を行い、
最近になりようやくRevolutionへの予約の切り替えが完了しました。

Revolutionについては、あまり多くの情報が得られませんが、Geeksphoneの公式サイトやこちらの記事によると、これまで同社より発売されてきた「Keon」や「Peak」より高速なプロセッサが搭載されることになりそうです。

Geeksphoneから届いたメールの文言を信じる限り、近日中に発売されるとのことでしたので、到着まで楽しみに待っていようと思います。

ちなみに、以下がメールの一部抜粋となります。

>The new device will be available soon. (訳:新しいデバイスは、すぐに利用できるようになります)

>The new device will be available soon. (訳:新しいデバイスは、すぐに利用できるようになります)

>The new device will be available soon. (訳:新しいデバイスは、すぐに利用できるようになります)

大事なことなので3回書いておきました。

また、Revolutionが無事届きましたら、このブログで感想を書かせていただければと思います。

[Firefox OS][Android][Scirocco Cloud]Scirocco CloudにFirefox OS端末が追加されたそうです

 藪下@2課のガジェオタです。

 スマホアプリをやっていると実機での検証大変ですよね。そんなの持ってねーよ! って端末でのバグ報告されて途方にくれたり。
 そんなお悩みを解決するScirocco Cloud面白いなーと思って見てたんですが、この度対応端末にFirefox OS端末が追加されました。

モバイルテストプラットフォーム「Scirocco Cloud(シロッコ・クラウド)」に 2013年冬モデル端末が登場!
http://www.sonix.asia/news_list/release/2013-12-11/

 ZTE Openが追加されてますね。残念ながらAlcatel One Touch Fireは入って無いですがまあ似たスペックなのでZTE Openで動けばうごくよね!
 Sciroccoは動きが早いですね。これはTizen端末とかも期待できるのかしら?(チラッチラッ

[Firefox]Firefox 26出来。Firefox OS v1.2は?

 藪下@2課のブラウザはFirefox派です。

 Firefox 26出てますね。忘れてました。

「Firefox 26」正式版がリリース、「Click to Play」がデフォルト機能に
http://gigazine.net/news/20131211-firefox-26/

 まあこのブログを読みに来る人だとFirefoxそのものよりもFirefox OSがどうなのかが本命ですよね。
 それはdynamisことMozillaのレッサーパンダさんが、もといMozillaのレッサーパンダことdynamisさんがアドベントカレンダーで書いてくれました!

Firefox OS Advent Calendar 2013 – 12/10
https://dev.mozilla.jp/2013/12/fxos-advent-calendar-20131210/

 そんなわけで端末に配信されるのはもう少し先ですね。
 でもZTE Openとかはテスト一週間ぐらいで済ますとかどこかで聞いたのでほんとにもう少しの辛抱ですよ!
 楽しみに待ちましょう。

[Ubuntu for Phone]Ubuntu Touchもパートナーシップを結んだようです!

 藪下@2課のガジェオタです。

 Ubuntu for Phone来ましたね!
 具体的な企業名は伏せられてますが、それにまた日本では出ないんでしょうが、最初からUbuntu touchが乗ってる端末が出るというだけで大違いです。

「Ubuntu Touch」OS、初のスマートフォンパートナーを獲得
http://japan.cnet.com/mobile/35041194/

 日本から買えるところだといいなー。いいなー。
 FxOSとかTizenとかSeilfishも控えてて2014年楽しみですね!

[Android] Android4.4(KitKat)で歩数計が追加されてる件について

とろ田わさび@2課です

とある理由から加速度センサーを使用した高精度な歩数計プログラムを作成しているのですが
移動平均等々の平滑化処理をかけてそろそろなんかいい塩梅に歩数がカウントできるようになってきたぞって時に
KitKat にStep Counter & Step Detector (歩数計, 歩行検知器でいいの?)
が追加されていることにたまたま気づいてしまいました

苦労したのに(苦労したのは自分ではないが)…と思いつつ、
もしかしたらソースコードなんかあったりしたら参考になるかも。
と考え、調べてみたのでチラ裏記事にしたいと思います

とゆことで早速、AOSPの所定の箇所をごにょごにょあさってみる…
あさってみる…
AOSPのframework/base/core/の…
ごにょごにょ…



ごにょごにょ…
ない…
うーん…

/frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml

<permissions>
  <feature name="android.hardware.sensor.stepcounter" />
</permissions>

こんなのは発見…

うーん…

それから15分ぐらいウロウロした結果、
これは加速度センサーと同じ作りか…
と気づきまして、
ひとまず次の結論に到達。

歩数計/歩数検知器は加速度センサーと同様、
ハードウェア実装された歩数計/歩行検知器デバイス(部品)から入力したデータを
Androidフレームワークがアプリまで渡してくれる仕組みであって、
N7(2012)でも KitKat を導入すれば歩数計が動くねんで!
ってワケではないっぽい

個人的には、加速度センサーの値を使用して、
歩数カウントしてくれるとかそんなんだと思ってたのでちょっとガックシ。

その後わかったのですが、現時点では N5(2013) でしか使用できないようです
今後、歩数計/歩行検知器に対応した端末を入手したら
サンプルアプリでも作ってその精度を確認してみたいと思います

以上、チラ裏でした
※行数だけは稼いだったw

TizenでAndroidのpreference代替機能を探してみた

この記事はTizen Advent Calendar 2013 九日目の記事です。

どうもshintaniです。今回は、TizenでAndroidのpreferenceの代替機能
を探してみた時の話を記載します。

はじめに

preferenceとは、Androidアプリ開発時にアプリで使用するパラメータを
保存する目的で使用されるものです。このpreferenceの代替機能がないか
調べてみました。

結論としては、Registryクラスのメソッドを使用することで、preference
の代替とすることができました。

Registryクラスとは

Registryクラスとは、レジストリファイルを作成したり、レジストリファイルへの
入出力を行う機能を提供しています。(Windosのiniファイルのようなものを管理するクラスというイメージ)

主なメソッド

・Construct()
 レジストリファイルのオープン(ない場合は作成)

・AddSection()
 セクションの追加

・AddValue()
 セクションへの値の追加

・SetValue()
 セクションに設定した値の変更

・GetValue()
 セクションに保存した値の取得

ソースコードを書いてみた

Registryクラスを利用する場合は、下記の流れで処理を行います。

1. レジストリファイルを作成する

2. セクションを追加する

3. パラメータの読み書きを行う

Registryクラスを利用してソースコードを書いてみましたのでご紹介します。

下記の例では、LteCheckerPreference()にて、レジストリファイルをオープンし、
setUseNotification()でパラメータの保存、isUseNotification()にてパラメータの取得を行っています。

LteCheckerPreference::LteCheckerPreference(void)
: PREFERENCE_NAME(L"lte_checker")
,PREF_USE_NOTIFICATION(L"use_notification")
,prefPathName(L"BLM.ini")
,sectionName(L"setting")
{
	result r;
	
	 //①"BLM.ini"ファイルをオープン(なければ作成)
	 r = pref.Construct(App::GetInstance()-&gt;GetAppDataPath() + prefPathName, "a+");
	
	 //②"setting"という名前のセクションを追加
	 r = pref.AddSection(sectionName);
}

void
LteCheckerPreference::setUseNotification(int use){
	result r;
	
	//③"setting"セクションに、"use_notification"キー、値を設定
	r= pref.SetValue(sectionName, PREF_USE_NOTIFICATION, use);
	
	//"use_notification"キーに該当するキーがなければ
	if(r == E_KEY_NOT_FOUND) { 
		//④"setting"セクションに、"use_notification"キー、値を追加
		r = pref.AddValue(sectionName, PREF_USE_NOTIFICATION, use);
	}

	r = pref.Flush();
}

int
LteCheckerPreference::isUseNotification(void){
	result r;
	int use = 0;
	
	//⑤"setting"セクションの、"use_notification"キーに対応する値を取得
	r = pref.GetValue(sectionName, PREF_USE_NOTIFICATION, use);

	if(r == E_KEY_NOT_FOUND || r == E_DATA_NOT_FOUND ){
		use = 1;
		r = pref.AddValue(sectionName, PREF_USE_NOTIFICATION, use);
	}

	return use;
}

感想

他にも良い方法はあるかも知れませんが、Androidのpreferenceのようにパラメータの保存・取得を簡単に行う方法をご紹介しました。C++でイチから書くよりソースコード量が少なくすみますので、パラメータ保存・取得を簡単に行いたい方は、是非試してみてください。

Haida UX!!

北村です。ひょんなことからFireFox OSのAdvent Calendarに参加することになってしまったため、無い知恵を振り絞って書いてみます。

MDNやMozillaのwikiなどを見ていたところ、近々UXの大々的な変更があるとのことことです。
何でも「MozillaのDNAに従って根本的に異なるユーザー・エクスペリエンスを提案する」だそうで。
そんなMozillaの意気込みが感じられる?Haida UXについて調べて見ました。

主な対応は
・データの扱いがIndexedDBからDatastoreに変わる
・UXが一新される(Rocket Barの対応などなど)

なお、Datastore APIはDropboxが公開しているAPI基本はdabaseにkeyとvalueのセットでデータを格納する点などはIndexedDBと変わりませんが、IndexedDBに比べて使い方は非常にシンプルなようなのでアプリの実装なども楽になるのではと期待しています。
(間違ってました。。)

Datastore API(gecko/dom/datastore)はひとつのデータを複数のアプリで使うことを前提に作成されたIndexedDBのラッパー的なWeb APIのようです。
“read-only”モードや”read/write”モードでのデータのストアができるようになり、データを安全に扱えるようになりそうです。

次にUXの変更ですが、

・アプリを画面上でswipeすることでで切り替えることができる”Edge gestures”
・Browserアプリの変更
・スライドバーやヘッダートグルスイッチなどの各部品の見た目の変更
・Rocket Barの対応
・Homescreenの切り替えの対応(今でも切り替えるための機構は入っているので、切り替えように複数のHomescreenアプリが作られる?)
など様々な変更を考えているようです。

ちなみに”Haida”はカナダ・ブリティッシュコロンビア州に居住する先住民族のハイダ族からとっており、アルファベット”G”の次で何かイケてる言葉、、、ってことでこの名称になったらしいです。
(ハイダ族の何がイケてるかは???ですが。。。)

Roadmapによると2014年2月末にはFxOS1.4(Haida feature dev.)としてお目見えするみたいなので、リリースされた際にはMozillaの意気込みを是非見てやろうと思ってます。