狠狠撸

狠狠撸Share a Scribd company logo
TiでiOSアプリを
ぬるく開発していた
 私がAndroidの
洗礼を受けたお話
自己紹介
? いそべこうすけ(@k0sukey)
? 静岡県から来ました
? オープンスマイルという会社で働いてい
 ます

? TiPlatformConnectとかTiIconicFont
 とか作っています
TCMD取りました
? いつまでたっても
 バッヂをDLでき

 ないので早くくだ

 さい?
Android Deep Dive
     67% ...
Ti.UI.ImageView
? 例えば、アイコン画像をldpi/mdpi/hdpi(/
 xhdpi)と用意するのが面倒なのですが、
 Font Awesomeで幸せになれました

? カスタムフォントですので、ImageViewで
 はなくLabelになります。fontSizeでサイ
 ズも思いのままです。マジAwesomeです
Ti.UI.Window
? heavy/light weight windowの2種類がある
? createWindowする時に、fullscreen/
 navBarHidden/modal/
 windowSoftInputModeのいずれかを指定
 するとheavyweight windowになる

? TabGroupからwindow開くと常に
 heavyweight window
Ti.Android.Intent
? heavyweightなwindowの場合、
 Ti.Android.currentActivity.startActivityForR
 esultのcallbackが該当のwindowで呼び出され
 ない

? どこかのlightweight windowがfocusされた時
 にcallbackが呼び出される

? 当初、TabGroupでアプリを作っていたのです
 が、常にheavyweightなため作り直しました
Ti.UI.TextField
?   createWindowでwindowSoftInputModeを
    Ti.UI.Android.SOFT_INPUT_STATE_HIDDENしていないとwindowを開いた瞬間に
    キーボードが出現する。blur()してもダメ。その瞬間にfocusイベントが発火する

?   var tf = Ti.UI.createTextField();

    tf.addEventListener( focus , function(){

      console.log( Fired focus event );

      tf.blur();

    });

    tf.addEventListener( blur , function(){

      console.log( Fired blur event );

    });
Ti.Blob
? Ti.Filesystem.getFileで画像を開いて
 も画像として扱われない。ただのファ
 イルです

? mimeTypeはimage/jpegになっている
 くせにwidth/heightが取得できない。
 0だったりnullだったり
Ti.Geolocation
?   Ti.Geolocation.getCurrentPositionでたまにnullが返ってくる。条件は
    ないです。忘れた頃にやってきます

?   var gps = function(data){

         if (!data.error) {

             Ti.Geolocation.removeEventListener( location , gps);

             // data.coords.longitude

             // data.coords.latitude

         }

    };

    Ti.Geolocation.addEventListener( location , gps);
Ti.Map
? 1アプリ1MapViewという制約がある。例え
  ばタブ型のアプリで各windowにMapView
  を貼ったままにするとアプリがクラッシュ

? 結局ImageViewへGoogle Static Map
  にして、タップするとMapViewのみの
  windowを開くことに。そのwindowを閉じ
  た時にremove&nullでOK
Ti.UI.TableView
?   重すぎ。結局Ti.UI.ScrollViewでそれっぽく作った

?   セパレータの水平線が1pxに見えたり2pxに見えたり
    と   現象。スクロールすると今まで1pxだった線が
    2pxになったり

?   高さの異なるrowをセットすると、スクロールインジ
    ケータがグニョグニョ伸縮する。たぶん画面に表示さ
    れている部分だけのrowからインジケータのサイズを
    算出している?(だから重たいんじゃないの...?)
ついでにACSの
 お話も少々...
リファレンス
? ACSについては2つある。いつもの
 docs.appcelerator.com/titanium/
 2.1/と、cloud.appcelerator.com/
 docs/api/v1/

? whereの$ltとか$gt以外に、ドキュメ
 ントになくてもMongoDBのものがそ
 のまま使えたりしました
管理ツール
? 型がdictionaryのものを見る
 と hoge => fuga とか、それPHPでprint_rし
 てね...?

? ちゃんと成形して hoge : fuga にしても、
 stringとして hoge => fuga で保存されます。
 結局curlで直しました

? 最終的にJS SDKで自前の管理ツール作りまし
 た
JS SDK
? ?ledsは文字列。jsonではない
? でもjsonでもOKな場合がある。
 coordinatesを含まなければOK

? 含むとstatusがOKで返ってくるけど、
 データが登録されないという 現象。
 エラー扱いではないです。OKです
ありがとうございました!

More Related Content

Meetup tokyo.20120924

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n