ãTitanium Advent Calendar 2011ï¼å䏿¥ç®ãTitanium Mobileããã£ããã§ã¹ãã«ã¢ããã«ãªãã®ã§ã¯ï¼
ãã®è¨äºã¯ã@astronaughtsããä¼ç»ã®「Titanium Advent Calendar 2011」åãã«æ¸ãã¦ãã¾ãã
Who are you?
æ¬æ¥ã¯ãITã¨ã³ã¸ãã¢/ã¯ãªã¨ã¤ã¿ã¼ãªä»äºããã¦ããæ±è·è ã®æ¹ã対象ã«ãä»äºæ¢ãã®ãµãã¼ãããããã£ãªã¢ã³ã³ãµã«ã¿ã³ã(ã¨ã¼ã¸ã§ã³ãã¨ããæ¹ããã£ããæ¥ã人ãããããããã¾ãããï¼ã¨ããä»äºããã¦ã¾ããã¨ã³ã¸ãã¢ã§ã¯ãªãã§ãããç®æãã¨ããã¯ãã³ã¼ãã®æ¸ããITæ¥çå°éã®ãã£ãªã¢ã³ã³ãµã«ã¿ã³ããã§ãï½ï½
ãªãTitaniumãã£ã¦ãã®ï¼
Titaniumã§éçºããããã¨ããã£ããã£ããã¯ã以åããã¹ã£ããã¨(*1)ãããã®ã§ãããiPhone/Androidã¢ããªéçºã®åæã£ã¦ããã®ãæãããã£ãã®ã¨ãå人çã«æ¬²ããã¢ããª(*2ï¼ããã£ãããã
å®éãã£ã¦ã¿ã¦
Titaniumã¨ãããã¼ã«ããã£ããã¨ãªãå¨è¾ºã®è¦ç´ ã«ã¤ãã¦ãèå³é¢å¿ãæã¦ãããã«ãªããçµæèªåèªèº«ã®ç¥èã»çµé¨ã®ä¸ç©ã¿ãåºæ¥ãããªã¨æã£ã¦ã¾ãã以ä¸ãå ·ä½çãªãã¨ãããã¤ãããã¦ããã¾ãã
JavaScriptã®ç解度深ã¾ã£ã
javascriptプログラマのレベル10ã®ãããªå½¢ã§å¤å®ããã¨ãåãçµã¿ã¯ãããå½åã¯ã¬ãã«1,2ç¨åº¦ã ã£ãã®ã§ãããJavaScriptãã¶ã¤ã³ãã¿ã¼ã³çã®æ¸ç±ãèªãã ããä»äººã®ã³ã¼ã(æè¿ã ã¨tweetaniumのソースコードç)ãèªã¿é²ããä¸ã§ãJavaScriptèªä½ã®çè§£åº¦ãæ·±ã¾ã£ããã¨æã£ã¦ã¾ãã(*3)
éçºããä¸ã§ã®å¨è¾ºè¦ç´ ã®éè¦æ§ã«æ°ã¥ãã
èªåã§iPhoneã¢ããªä½ãä¸ã§ãªãªã¼ã¹å¾ã®ä¿å®æ§ã念é ã«ãããå ´åã
- ã©ãå®è£ ãã¦ããã°ãå¾ã èªã¿ãããã³ã¼ãã«ãªãã®ãã¨ããææ³ã«é¢ãããã¨(ããæè¿ã§è¨ãã°シングルコンテキストな書き方ã¨ãCommonJSãªã¹ã¿ã¤ã«ã«ãªããããã«GoogleAccountの認証部分に関してモジュールæ¸ãããã¨ãï¼
- ã¢ããªã±ã¼ã·ã§ã³éçºã®å¨è¾ºè¦ç´ (ä¾ãã°ãã¹ããã¡ã¼ã¹ãçãªã¢ããã¼ãã¨ããã½ã¼ã¹ã³ã¼ãã®ãã¼ã¸ã§ã³ç®¡çã®å¿ è¦æ§ã»ã»ï¼
ã¨ããäºã«ã¤ãã¦ãå®éæãåããã¦ãããã¨ã§ãèæè¦ãæã£ã¦çè§£ã§ãããã¨æã£ã¦ã¾ãã
æè§ãªã®ã§1ã¤ãããã¯TIPSçãªãã¨ãæ¸ãã¾ã
Titanium.UIé¢é£ã®è¨è¿°ã¯
//app.js var label1 = Titanium.UI.createLabel({ color:'#999', text:'I am Window 1', width:'auto' });
ã¿ãããªããããã£ã®è¨å®ãããè¨è¿°ãå¤ããªãã¨ã½ã¼ã¹ã®è¦éããæªããªããã¨ããããã¨æãã¾ãããæè¿èªåãèªãã tweetaniumãcommonjsExampleçã®ã½ã¼ã¹ã³ã¼ãå ã§å©ç¨ãã¦ãããã¯ããã¯ããã£ãã®ã§ããããç´¹ä»ãã¾ã
//app.js Ti.include("styles.js"); Ti.UI.createWindow($$.win1);
//styles.js var myAppUI = {}; (function(){ myAppUI.properties = { win1:{ title:'Tab 1', backgroundColor:'#fff' }, tab1:{ icon:'KS_nav_views.png', title:'Tab 1' }, //以ä¸ç¥ }; }).call(this); var $$ = myAppUI.properties;
èªåã使ããç¬èªã©ã¤ãã©ãªã®åå空éãstyles.jsã®1è¡ç®ã§å®ç¾©ãã¦ã¾ãã(ããã«ã¤ãã¦ã¯ã無名関数を使ったアプリのひな形ãåèã«ãªãã¾ãã)
éä¸ã®è¨è¿°ã¯ç¹ã«èª¬æãªãã¦ãOKã ã¨æãã®ã§å²æãã¦ãæå¾ã®è¡ã ã説æãã¾ãã
å°ã話ãããã¾ããJavaScriptã®ã©ã¤ãã©ãªã¨ãã¦æåãªjQueryã§
// Map the jQuery namespace to the '$' one window.$ = jQuery;
ã¨ããã³ã¼ããããã¾ãããjQuery.xx.ã¿ããã«ã¿ã¤ãããã®ã¯é¢åãªã®ã§ãjQueryãªãã¸ã§ã¯ãã®ã·ã§ã¼ãã«ããã¨ãã¦$ã¨ããã®ãå²ãå½ã¦ããã¯ããã¯ã使ããã¦ãã¾ããããã®ãã¯ããã¯ãtweetaniumãcommonjsExampleã§ãå©ç¨ããã¦ããããããæå¾ã®è¡ã®ãvar $$ = myAppUI.properties;ãã«ãªãã¾ãã
ãã®ããã以ä¸ï¼ã¤ã¯åãçµæãå¾ããã¾ã
Ti.UI.createWindow(myAppUI.properties.win1); Ti.UI.createWindow($$.win1);
ããã§ã½ã¼ã¹ã®è¦éããè¯ããªãã®ã§ãæè¿ã¯ãã®æ¸ãæ¹ããæ°ã«å ¥ãã§ãã
Titanium Mobileããã£ããã§ã¹ãã«ã¢ããã«ãªãã®ã§ã¯ï¼
ä½ãæ°ããäºã«ãã£ã¬ã³ã¸ãããã¨æã£ãå ´åãæåã®æ·å± ãé«ãããã¨ã
ããã£ã¼ãããªã«é£ãããªãããããããªããªãã¼ã
ã¨ãªããã¨æãã¾ãã
ã¾ããã£ã¬ã³ã¸ããçµæã®å§¿ãæ³åãã¦
ã身ã«ã¤ããã®ã¯ç¢ºãã«è¯ããã¨ã ãã©ãæããã¦ä»å¾ãèããã¨ãã®èº«ã«ã¤ãããã¨ãã©ãã¾ã§å½¹ç«ã¤ãã ãããã»ã»ã»ã
ã¨ãããããªç¶æ³ã ã¨ããã£ã¬ã³ã¸ããããªããªãããããã¾ããã(*4)
JavaScriptã§éçºã§ããTitanium Mobileã¨ããã®ã¯ãObjective-Cã®ããã«æ¯ã¹ãã°æåã®æ·å± ã¯ä½ããJavaScript(ã¨ä¾¿å©ãªã©ã¤ãã©ãªç¾¤ï¼ã®ç¿å¾ã«ãã£ã¦ããã®å¾ã®ãã£ãªã¢ãè²ã èãããããã¨ããæå¾ ãæã¦ãã®ãã¨æã£ã¦ã¾ãã
ããããã£ããã§ã¹ãã«ã¢ããã«ã¤ãªããããããªããã¨ããã®ããèªåã1å¹´ãã£ã¦ã¿ãçµé¨ããè¨ããããªã¨æã£ã¦ã¾ãã
Webãã¶ã¤ãã¼ãªäººãTitanium Mobileã§ã¹ããã©ã¢ããªä½ããããã«ãªãã¨ãä»ã®äººã¨ã®å·®å¥åè¦å ã«ãªãã¨æãã®ã§ããããã人ã«ãã£ã¬ã³ã¸ãã¦ãããããã§ãã
æå¾ã«
(äººææ´¾é£ä¼ç¤¾ã«å¤ãã¦ããã®ã«ã©ããã¨æããã©ï¼äººä»ãåããããã»ã©å¾æã§ã¯ãªãèªåã§ãããç·å¼µããªãããTitaniumオフ会ãTitanium新年会ã「Titanium Mobileで開発するiPhone/Androidアプリ」打ち上げ in 東京ãããã¦å®æçã«éå¬ããã¦ããTitanium Meetupã第0回から参加して全部で8回åå ãã¦ãæè¡è ã®æ¹ãéã¾ãã³ãã¥ããã£ã¨ãããã®ãå®ä½é¨ãæã£ã¦ç¥ããããã«ãªããèªåã®ä¸ç観ãåºãã£ãã¨æã£ã¦ã¾ãã
ç¹ã«ä»¥ä¸ã®æ¹ã ã«ã¯ä»å¹´ãä¸è©±ã«ãªã£ãã¨æãã®ã§ãã®å ´ãåãã¦ã礼ãããã¦ããã ãããã¨æãã¾ãã
- Meetupã宿çã«éå¬ããã ãã増井さん
- ãã¡ã®ä¼ç¤¾ã®æè¡ã»ããã¼ã§Titaniumã«é¢ããè¬ç¾©ï¼ã©ã¤ãã³ã¼ãã£ã³ã°ããã¦ããã ãã株式会社マウントポジションã®çãã
- èªåã®ããã°ãtweetã«ã³ã¡ã³ããªã©ããã ããé©åãªã¢ããã¤ã¹ãã¦ãããããTitaniumã®æ¸ç±æ¸ãããdonayamaãã
ææ¥ã¯sawada50ããã®çªã§ãããã©ããªå
容ã«ãªããæ¥½ãã¿ã§ãã!
(*1)Titaniumæ°å¹´ä¼ã§エンジニアでなくてもTitaniumならi phoneアプリ開発にチャレンジ出来るã¨ããå 容ã§LTããã¾ãã
(*2)ä½ãå§ãã¦1å¹´è¿ãçµéããã®ã§ãããæªã ã«ãªãªã¼ã¹ã®ç®å¦ããã£ã¦ãã¾ããã
(*3)Titanium Mobileã§éçºããã°JavaScriptã®ã¬ãã«ãä¸ããããã§ã¯ãªãã§ãããèªãã®ã«èª¿åº¦è¯ãåéã®ã½ã¼ã¹ã³ã¼ããããã«è¦ã¤ãã£ãã¨ããã®ãããããããã¾ãããï¼æ£ç¢ºã«çè§£ã§ãã¦ãããã©ããã¯ã¾ãå¥ã®è©±ã§ããã»ã»ï¼
(*4)以åèªãã 間合い上手 メンタルヘルスの心理学からã¨ããæ¬ã§ããã¨ããã®ãçµæäºæãã¨ããå¹åäºæãã¨ããã®ã§ãã®ããã説æãã¤ããã¨æãã¾ã