読者です 読者をやめる 読者になる 読者になる

TitaniumMobile勉強記

Web系エンジニア向けのキャリアアドバイザーやってましたが現在はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連(Node.js、Titanium)あたり

Android向け開発での気付きについて今後書いていきます

申請したCraftBeerFanですがまだ In Review にならないので、少なくともあと1週間はかかるかなと見積もってます。

その間に、サポートページ作ったり、本番環境へのお店データ登録&修正作業とかやらないといけないことが多々あるのですが、以前から着手しようと思って中々手がついてなかったCraftBeerFanのAndroid版の開発に本腰いれることにしました。

f:id:h5y1m141:20130816074826p:plain

作り始めてまだ数日ですが、2つほど気づいたことがあるので簡単に触れておこうと思います

スクリーンサイズ

世の中的には iPhone4sユーザがまだまだ結構いると思ったのと、所有してる端末が

  • iPhone4s(iOS 5.x系)
  • iPhone5(iOS 6.x系)

ということもあり、これら端末で動作確認をしながらCraftBeerFanの開発をしていました。

その際には、iPhone4sとiPhone5の画面の縦の長さが異なる部分だけ考慮すれば問題なかったのが、Android向けに開発するとなると、縦の長さはもちろん、横幅も端末毎に様々あるので、何を基準にすればいいのか正直戸惑ってました。

Androidのdip(dp)ってpxに換算すると何なのさ!-めんどくさいのでDip Calc作りました-というエントリや、その他関連する情報を見てるうちにちょっとづつですが整理できてきました。

  • Androidには、ldpi mdpi hdpi xhdpi xxhdpiという5つの解像度があるみたいなので、そのうちのどれをターゲットにするか自分なりに決める

  • Galaxy S II のような画面横幅が480ピクセルの機種(上記ブログにならうと480系)と、INFOBARのような画面横幅が540ピクセルの機種(上記ブログにならうと540系)というのがあるため、横幅についても別途考慮したUIを考える

という感じでしょうか。

iPhoneAndroid 両方で汎用的に使えるコードが意外と少ない

自分はAlloy使わずTitanium Classicな環境で、自分なりにModelとViewとControllerとを分割して作ってスタイルで開発しています。

ModelとControllerは当然のことながらiPhoneAndroid 両方で今のところ汎用的に使えてるのですが、今回作ってるアプリが意外とUI部分についての記述が多く、iPhone向けに作ったファイルをそのまま修正なしに利用するのは残念ながら難しそうです。

しかも、上記で触れたAndroidのスクリーンサイズやAndroidのUIガイドラインことも考慮してUIを考える必要ある点を踏まえると、そのまま流用するというよりも、ゼロベースで作ったほうがも良いのかなと思ってます

Android向け開発をしてて、気づいたことについて、今後買いていこうと思います

Ti.UI.ImageViewのimageプロパティにイメージのパスを設定する時にはTitanium.Filesystem.resourcesDirectory + "image/sample.jpg"みたいにしないといけない所など、Android向けに作る時に気をつけないといけない部分が色々ありそうです。

自分はこれまでずっとTitaniumではiPhone向けしかやっていませんでしたが、Android向け開発をやり始めて、気づいたことが大なり小なりたくさん出てきそうなので、そういった所をこれからブログで書いていこうかと思います