投稿

12月, 2012の投稿を表示しています

Titanium SDK 3.0からのTitanium CLIを使ってみる

イメージ
Titanium SDK 3.0のReleaseに新しいcommand-line interface(CLI)が含まれていたので使ってみた。 Titanium SDK 3.0.0に関してはOfficial Siteを参考に。 Release Notes Titanium SDK 3.0.0 - 12/14/2012 環境: Titanium SDK 3.0.0, node.js v0.8.16, titanium@3.0.22   今までも可能だったけど、いくつか設定が必要だった。詳しくは 前の記事 を参考に。 3.0.0からのTitanium CLIを使うとProjectの作成、BuildまでをCommand-lineで完結できるようになる(Titanium Studioを起動する必要がない)。 参考にしたSite. Titanium Command Line Utility Specification - Community - Appcelerator Wiki Titanium Command-Line Interface Reference   まずは準備。 node.jsのInstallが必要らしい。私はAlloyを試したときにInstall済みなのでそちらの記事を参考に。 MacにMacPortsをInstallしてnode.jsの環境を設定 for Alloy node.jsがIntasllされている環境だと、自動でInstallされるみたい。   使い方。 Project Folderに移動して下記Commandを実行 $ cd Documents/Titanium\ Studio\ Workspace/hoge $ titanium build -p ios --log-level trace Optionの意味は $ titanium build -h が一番詳しい。     < Related Posts > iOS SimulatorからPOSTしているDATAを確認(Network監視) Command LineからTitanium Mobile AppをCom

XHProf + XHGuiをInstallしてPHPの実行結果を監視、解析する

イメージ
XHProfが便利と教えてもらったのでInstallしてみたときの覚書。 環境: CentOS 5.8, PHP 5.3.19, XHProf 0.9.2 (beta), nginx 1.2.5, mysql 5.5.28, Graphviz 2.12 参考にしたのは下記Site The Need for Speed: Profiling PHP with XHProf and XHGui   Install XHProf PECL(ピクル)に対応しているので、Install自体は簡単。 # pecl install xhprof-0.9.2 設定Fileを作成 # vi /etc/php.d/xhprof.ini extension=xhprof.so # /etc/rc.d/init.d/php-fpm restart   Install XHGui preinheimer/xhprof@GitHub からDownloadする。mysql serverはInstallしてある前提。 どこかに配置してconfigを設定 # cd /opt/xhprof/xhprof_lib/ # cp config.sample.php config.php # vi config.php $_xhprof['dbtype'] = 'mysql'; // Only relevant for PDO $_xhprof['dbhost'] = 'localhost'; $_xhprof['dbuser'] = 'root'; $_xhprof['dbpass'] = 'password'; // ※変更 $_xhprof['dbname'] = 'xhprof'; $_xhprof['dbadapter'] = 'Mysql'; // ※変更 $_xhprof['servername'] = 'mys

[Titanium Mobile] WebView内のScrollを無効(Disable)にする

イメージ
WebViewを画面の中に組み込んでクリックは有効にしたいけど、スクロールは無効するTips。 環境: Titanium SDK 2.1.4 「scrollable」は効かなかった。「disableBounce」だけではダメ。「touchEnabled」はClickも無効になってしまう。 Official Forum ではhtml内に document.ontouchmove = function(event){ event.preventDefault(); } を記述する方法があるけど、親の画面のスクロールまで無効にしてしまう。 そこで、辿り着いたのがhtmlのCSSに html, body {overflow:hidden;} を記述する。これで大丈夫そう。 Sample Code var html = []; html.push('<!DOCTYPE html>'); html.push('<html>'); html.push('<head>'); html.push('<style>'); html.push(' html, body {overflow:hidden;}'); html.push('</style>'); html.push('</head>'); html.push('<body>'); html.push(content); html.push('</body>'); html.push('</html>'); var view = Titanium.UI.createWebView({     html: html.join(''),     disableBounce: true,     width: Titanium

[Titanium Mobile] WebView内のLinkをClickしたときにSafariで開く

イメージ
WebView内のリンクをクリックしたときに遷移せず、イベントだけアプリに通知して、ブラウザを起動する方法。 環境: Titanium SDK 2.1.4 下記のようにHTML内にイベント通知用のJavaScriptを埋め込む。 // // HTMLを生成 // var html = []; html.push('<!DOCTYPE html>'); html.push('<html>'); html.push('<head>'); // window.onload用のJavaScriptを追加 html.push(getOnloadJavaScript()); html.push('</head>'); // Add body content html.push('<body>'); html.push(content); html.push('</body>'); html.push('</html>'); webview = Titanium.UI.createWebView({     html: html.join('') }); // // window.onloadで実行するJavaScriptを文字列で返す // var getOnloadJavaScript = function() {     // 全てのaタグのonclickイベントにフックする     var linkClick = function() {         var links = document.getElementsByTagName('a');         for (var i=0; i<links.length; i++) {