投稿

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 WikiTitanium Command-Line Interface Referenceまずは準備。node.jsのInstallが必要らしい。私はAlloyを試したときにInstall済みなのでそちらの記事を参考に。MacにMacPortsをInstallしてnode.jsの環境を設定 for Alloynode.jsがIntasllされている環境だと、自動でInstallされるみたい。使い方。Project Folderに移動して下記Commandを実行
$ cd Documents/Titanium\ Studio\ Workspace/hoge
$ titanium build -p ios --log-level traceOptionの意味は
$ titanium build -h
が一番詳しい。< Related Posts >iOS SimulatorからPOSTしているDATAを確認(Network監視)Command LineからTitanium Mobile AppをCompile(build)するMacにMacPortsをInstallしてnode.jsの環境を設定 for Alloy

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参考にしたのは下記SiteThe Need for Speed: Profiling PHP with XHProf and XHGuiInstall XHProfPECL(ピクル)に対応しているので、Install自体は簡単。
# pecl install xhprof-0.9.2設定Fileを作成
# vi /etc/php.d/xhprof.iniextension=xhprof.so# /etc/rc.d/init.d/php-fpm restartInstall XHGuipreinheimer/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'] = 'myserver'; // ※変更
$_xhprof['namespace'] = …

[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 Codevar 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.UI.FILL,
    height: Titanium.UI.SIZE��…

[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++) {
            links[i].onclick = fu…