狠狠撸

狠狠撸Share a Scribd company logo
まだ残っていた
Alloy地雷原始末記
福原和朗 @kazurof
2014-01-24

Titanium もくもく会 #15
2

発表者について
? 福原和朗 @kazurof
? アクシオヘリックス株式会社

http://www.axiohelix.com

? エンジニア募集中です。

? 客先常駐で開発やってます
? JavaでWebサービス

? 手持ちの携帯
? 2008年モデルのガラケー (SH906iTV)
? Nexus 5 EM01L ? NEW!!

? Titanium歴
? 2013年10月7日から。今日で110日目。
3

本日の発表内容
? Alloy Framework開発でハマったところを並べます。
? これから始める人の参考になれば。
? Windows
? Android

? 以前も似たような発表をしました。
? 興味のある方どうぞ。

http://www.slideshare.net/kazurof/alloy-minefieldsettlementstory
4

発表の形式
? 現象
? なにがあった
? 原因
? どうしてこうなった
? 対策
? どう解決した
? 教訓
? 学べることはないか
5

おしながき
1. 別画面をopenできない件
2. TableViewで行に設定した値が取れない件
3. UI部品の表示制御ができない件
4. アプリからホストOSへアクセスできない件
6

1. 別画面をopenできない件
7

現象
? 別画面への遷移
8

現象
? できない。
? こんなエラーメッセージが上がる。
9

原因
? こんな xmlを書いていた。

ここ注目!
10

対策
? xmlを修正。
11

教訓
? 睡眠時間重要!
? 注意力散漫にならないように。

? 整形式判定してないのかも

? 水木しげる
12

2. TableViewで行に設定した値が取れない件
13

現象
? TableViewの行をクリックした際、
ハンドラでTableViewRowに設定
した値が取れたり取れなかったり
する。
14

補足
? 行を表現するコントローラ
15

原因
? イベントオブジェクトの source プロパティで値を取っていた。
? イベント発生源のDOMオブジェクト
? DOM構造に依存
16

対策
? sourceからではなく row プロパティから値をとる。
? イベント発生した行(TableViewRow)
17

教訓
? 動きだけでなくAPI仕様書をちゃんと見る。
? http://docs.appcelerator.com/titanium/3.0/#!/api
? デバッガに頼りすぎるの禁止
18

3. UI部品の表示制御ができない件
19

現象
? ページ遷移時においてUI部品
の表示非表示を制御したい。
が、できない。
? 消す処理ができない。常に表
示される。

このラベルを
消したい
20

原因
? Titanium.UI.View の hide() 関数を使っていた。
21

対策
? Titanium.UI.View の visible プロパティを使う。
22

参考

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-visible
http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-method-hide
23

教訓
? API仕様書だけでなく動きをちゃんと見る。
? visible プロパティを使う。
? hide() 関数は忘れてよいかも。
24

4. アプリからホストOSへアクセスできない件
25

現象
? アプリからホストOSへHTTP接続したい。
? が、できない。
? 以前(androidsdk)は出来ていた。

? 今は Genymotion へ移行した。
? Ipアドレスを、10.0.2.2 から 192.168.56.1
へ変更。
? Genymotion 的に間違えていないはず。

? 別のサーバへの接続はできている。

アプリ

HTTP

ゲストOS
(Genymotion)

Glassfish4

ホストOS(Windows)
26

原因(?)
? 動作している環境にはすでに192.168系のネットワークがある。
? 固定のルーティング設定もしてある。
? route –p add 192.168.0.0 MASK 255.255.0.0 1??.??.??.??

? IPアドレスの衝突警告が上がってきた。
27

対策
? 衝突しないように別のIPアドレスを
設定
? 192.168.56.200

? アプリからは、ホストOSに元から
あったIPアドレスを使うよう設定
? 複数人で開発すると使いにくい?
28

教訓
? 長いものには巻かれろ
? 既に稼働している環境は変えにくい。

? 痴颈谤迟耻补濒叠辞虫はネットワーク接続を新たに作る挙动。
29

まとめ
1.
2.
3.
4.

睡眠時間重要!
動きだけでなくAPI仕様書をちゃんと見る。
API仕様書だけでなく動きをちゃんと見る。
長いものには巻かれろ。
ご清聴ありがとうございました
まだ残っていた础濒濒辞测地雷原始末记
福原和朗 @kazurof 2014-01-24

More Related Content

まだ残っていた础濒濒辞测地雷原始末记