2011年10月26日水曜日

Titaniumで Windowのプロパティにした Objectはメソッドが使えないらしい

[Titanium]window.urlが駄目な理由 - もぎゃろぐ
ここからは推測なのですけど、そうやって生成されたWindowオブジェクトのプロパティに値を代入する(たとえば、win.obj = obj; のように)と、JavaScriptとObjectiveC/Java言語の壁を越えるために、いったんJSON文字列に変換されてしまいます。

結果としてメソッドは生き残ることが出来ないので、obj.setVar()がまともに動作しなくなります。

それだったらいっそ例外になってくれれば良いと思うのですけど、中途半端に動くあたり、もしかしたらJSON化じゃなくてもう少し別の実装になっているのかもしれない。

じゃあメソッドレスなDTOで渡して、受け取った方は常に最初にDTOから目的のObjectを生成する、という決めにすればよいのかな。一手間増えるけど。

Ti.APIの何か経由で渡せばいいとかいうのをどこかで見た気が...

2011年10月24日月曜日

スマートフォン(とケータイ)の位置情報取得の技術的な話

Galaxy SのGPSを調整してみる « All Giant Albino Penguin are belong to us
では、最近のケータイなどのGPSがやけに精度がいいのは何故かというと、それを補助するための様々な技術が導入されているからで、それがDGPS、gpsOne、A-GPSといったものです。

前半部分が勉強になった。

自分で何箇所かでためしたところ、こんな感じだった。(上の方が精度が良い)
  1. GPS
    • 精度は十数メートル
    • 測定に時間がかかる
    • おそらく測定に時間がかかりタイムアウトしたと思われるが、GPSが使える場所でもWi-Fiが使える場合はGPSが使われなかった(Wi-Fiからの位置取得をOffにしないとGPSでの測定ができなかった)
    • 屋内では使えない(窓際とかなら使える場合もある)
  2. Wi-Fi
    • 精度は数十メートル。田舎の方だとまた違うかも?
    • たまーに取得に失敗する
  3. 3G
    • 精度は数百メートル
  4. IPアドレス(固定LANのインターネット接続から)
    • 精度は100km以上
    • 国と大まかな地方が分かる程度。使い物にはならない

測定に時間がかかり意外に使えないGPS。そして意外に使えるWi-Fi。

2011年10月20日木曜日

Google Calendar Header and Navigation Switcherを Googleカレンダーの新しいデザインに対応させる

Broken with new look - Userscripts.org
Made the following modification to line 88. Now it hides the search box and other buttons.
88行目での隠す対象の指定を変更し、左側の非表示に関係しているif文を45行目あたりに入れる。
88行目はahbiさんが書いてあるのが一番省スペース。ビューの切り替え等のコントロールを残したいなら、「#vr-nav」を含めないようにすると良い。

2011年10月14日金曜日

Titaniumで URL

Titaniumメモ:カスタムURLスキームでの引数の受け取り方(修正) | マナブ・イガラシ
ちなみに、Titanium Mobileで作っているアプリはデフォルトでプロジェクト名でカスタムURLスキームが自動的に設定されている。

例えば、webSnapというプロジェクトなら、
SafariのURL欄にwebSnap:と入力すればそのアプリを起動することができる。

プロジェクト名がSchemeになるらしい。衝突したら?(候補から選択?)

パラメータの受け取り方も参考になる。

2011年10月13日木曜日

携帯電話の売れ筋ランキング

携帯電話の売れ筋情報|BCNランキング【月間】
集計期間:2011/09/01~2011/09/30

iPhoneやAndroidを含む日本での携帯電話の機種別の売り上げランキング。
ブレの大きい週間ランキングより、月間ランキングの方が参考になりそう。

量販店のPOSを元にしているとのことなので、新規契約が対象?
まあ少なくとも目安にはなるんじゃないでしょうか?

Titanium Mobileは本当の意味でネイティブコードを吐くわけではないらしい

Titanium Mobileセミナーに行ってきたのでそのメモ - I’m hungry
- 仕組み
アーキテクチャ
OSの上にJSインタプリタが乗ってる
Appleが提供しているJSインタプリタを使ってる
AndroidはオープンソースのJSインタプリタ使ってる
TitaniumがAPIとModuleを用意してるよ

Titaniumはよく「JavaScriptをネイティブコードに変換する」と言われるけど。
実際には、共通のJavaScriptを異なるプラットフォームで動かすためにJSインタプリタをVM的にクッションに使っているらしい。
まあ何を持ってネイティブというかは微妙かもしれないけど。少しはプリコンパイル的なこともしてるのかな?(CoffeeScript使う場合はしてそうか。)

Titanium MobileでJavaScriptが実行されるまでのソースコード追ってみた | KRAY Incという記事も。

2011年10月12日水曜日

Titaniumの Android用のアイコン画像

Appcelerator Developer Center - API for Titanium.Android.R (version 1.7.2)
drawable object

Drawable resources, see http://developer.android.com/reference/android/R.drawable.html

iPhone用はTitanium.UI.iPhone.SystemButtonの下に定数が並んでるが、Titanium.UI.Androidにはアイコン画像の定数は無い。

KitchenSinkで探したら、CloseボタンのアイコンはTitanium.Android.R.drawable.ic_menu_close_clear_cancelを使っていた。
Titanium.Android.R.drawableを通して、Androidのネイティブの定数を使っているようだ。
でもリンク先にも実際のアイコン画像が載ってないので分かり辛い...

2011年10月11日火曜日

Titanium Studioで 「問題が発生したため、emulator-arm.exe を終了します。」

今から1時間で,Androidアプリの開発環境を構築し,Windows上でサンプルを動作させる手順 - 主に言語とシステム開発に関して
※なお,「エミュレータは起動するが,エミュレータ上のボタンをクリックしようとすると,エミュレータがハングする」という場合がある。

「問題が発生したため,emulator-arm.exeを終了します。」

というエラーメッセージで強制終了してしまうのだ。
この原因は単なるメモリ不足なので,いったんWindowsを再起動してからEclipseだけを立ち上げ,慎重にエミュレータを起動すればOK。

そうなのか。でもメモリに余裕はありそうだが...

2011年10月7日金曜日

jQueryの次の世代、 新世代JavaScriptライブラリたち

5 JavaScript Libraries You'll Love
Backbone, for adding structure to large JavaScript-based web apps.
Underscore, a utility-belt library that adds functional programming features to JavaScript.
Knockout, a great way to simplify your user interfaces.
Sugar, which extends the JavaScript language with a wealth of useful methods.
CoffeeScript, a language that compiles down to JavaScript and is really nice to work with.

CoffeeScriptなんてもうJavaScriptの範疇に入らないかも。

Google Libraries APIが未だに YUI 3.4を配布しない

Google Libraries API - Developer's Guide - Google Libraries API - Google Code
Yahoo! User Interface Library (YUI)
name: yui
latest version: 3.3.0 (view older versions)

もう3.4.1が出たのに、まだ3.3のまま。もう更新しないのかな。

YUI3 Calendarで日本語がサポートされたらしい

YUI 3.4.1 is now live » Yahoo! User Interface Blog (YUIBlog)
Japanese language support for Calendar and Console, courtesy of YUI contributor Ryuichi Okumura.

どうやるんだろう?localeに"ja"をセットするのかな?(参考:Calendar Class - YUI Library
ポップアップ(Datepicker)対応はまだかな。
でもそれでもjQeury UIのDatepicker使うかなー

2011年10月6日木曜日

Titaniumの Kitchen Sinkの階層図

逆引きKitchenSink
逆引きKitchenSink

メモ。

Androidブラウザからアプリを起動したりデータを渡す方法

たくまけい: Androidの標準ブラウザで開いたHTMLから自作アプリを起動してみた
ブラウザーから起動された場合、getIntent().getData()でUriを取得することができる。

メモ。データはQueryStringで渡せそう。

2011年10月5日水曜日

jQuery Mobileで動的に li要素を追加する場合の装飾

jQueryMobileのかゆいところに手が届くお作法メモ at HouseTect, JavaScriptな情報をあなたに
ul要素を含むHTMLを装飾したい場合はlistview()を使い、li要素しかない場合はlistview('refresh')を使います。

動的にアイテムを追加した場合、listviewに対してlistview("refresh")する。なるほど。やはり需要があるのね。

2011年10月4日火曜日

jQuery Mobileで動的に追加した要素を装飾する方法

jQueryMobileのかゆいところに手が届くお作法メモ at HouseTect, JavaScriptな情報をあなたに
「Ajaxでデータを取得して画面にappendするときにHTMLを装飾したい!」という場合にすごく有力なメソッドがこのpage()です。
以下のサンプルのようにjqmのdata-roleを含んだHTMl文字列をappendして、page()を実行するとまるっと装飾されます。

後で試す

Phonegap 1.1で HelloWorld

Get Started Guide « PhoneGap
Right click on AndroidManifest.xml and select Open With > Text Editor
Paste the following permissions under versionName: (view image below)

PhoneGap Fanからダウンロードすると0.9.5だが、本家の最新版は1.1だった。
1.1はPhoneGap Fanの0.9.5のインストール方法(Android編)では動かなかった。
AndroidManifest.xmlが違うためのようだ。本家の説明どおりに変更したら動いた。

Chrome dev版で日本語の表示がおかしかったけど治った

All other plastics : |_・)づ Google Chrome dev-m 16.0.891.0 日本語表示の不具合><
|_・)づ Google Chrome dev-m 16.0.891.0 (Windows)の日本語表示にて、現在、日本語フォントの表示が崩れて読めないという不具合が発生しています。

そうそう、先週くらいからおかしくなっていい加減対策しようかと調べたらやはりアンチエイリアスか。
どうしようかと思ってたらちょうどUpdateがあり、治った。なんというタイミング。

2011年10月3日月曜日

国産のPhonegapの対抗馬?

FrontPage - jsWaffle
jsWaffle は、HTML5/JavaScript/CSS を使って Android アプリを制作する フレームワークです。

iPhoneには非対応(未対応?)らしい。

ブログ アーカイブ

カテゴリー