書評:JavaScriptとTitanium MobileではじめるiPhone/Androidアプリプログラミング
日本語で読むことができるTitanium Mobile解説本の第三弾が出ましたので、ざっと目を通した感想を書きます。
JavaScriptとTitaniumではじめる iPhone/Androidアプリプログラミング 【Titanium Mobile SDK 2.1 & Titanium Studio 2.1 対応】
- 作者: 森真吾
- 出版社/メーカー: マイナビ
- 発売日: 2012/09/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
全ページフルカラー
やっぱりフルカラーは見やすいので嬉しいです。画面キャプチャはもちろんですが、プログラムコードも色分けされていると見やすいですね。ドギツイ色を使ったフルカラー本もありますが、本書は全体的に落ち着いた色使いでポイントが分かり易いです。
とにかく丁寧な解説
入門書の多くは、その書籍で扱っているツール類の説明から始まることが多いのですが、この本はツールの前提プロダクト(具体的にはJDK)のインストール方法やPCのシステム要件まで丁寧に書いてあります(しかも写真付き!)。もちろんツールの使い方やコードの説明も細かく書いてあります。Titanium Mobileを知っている人であれば当然のことかもしれませんが、初めての方には嬉しい内容だと思います。
ちょっとした「あれっ?」もフォロー
本の通りにやっていても、「あれっ?本に書いてないメッセージが出た」ということは良くあります。原因が環境依存だとフォローしきれないのですが、その部分もメモや補足として可能な限り書いてあります。この辺りも初心者の方には嬉しところだと思います。
iPhoneとAndroidの画面が並んで掲載されている
実行結果画面がiPhoneだけとかAndroidだけという訳ではなく、両方載っていることで、iPhoneアプリを作成できないWindowsユーザにも配慮されています。また、横に並んで掲載されているので違いも一目で分かります。
まとめ
扱っている内容、デザイン、色使い、話の展開のどれをとっても現時点でのTitanium Mobile入門書の決定版という感じです。本書の「はじめに」にも書かれていますが、Titanium Mobileへの第一歩なので、この本の内容でトップセールスアプリを作成することは難しいかもしれませんが、その第一歩としては間違いない書籍だと思います。
Titanium Mobile iPhone/Androidアプリ開発入門―JavaScriptだけで作る
- 作者: 小澤栄一,増井雄一郎
- 出版社/メーカー: 秀和システム
- 発売日: 2012/02
- メディア: 単行本
- 購入: 8人 クリック: 130回
- この商品を含むブログ (20件) を見る
Titanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer)
- 作者: 北尾雅人,増井雄一郎
- 出版社/メーカー: 翔泳社
- 発売日: 2011/06/10
- メディア: 大型本
- 購入: 4人 クリック: 334回
- この商品を含むブログ (47件) を見る
HTML5 Conference 2012へ行ってきた
「ブログを書くまでがカンファレンス!」ということで、非常に簡単ですが、今日聞いたこと+αを書いてみるテスト。
プログラムはたぶんこの辺りにあります。
基調講演
最近流行のJavaScriptフレームワークは本当の解ではなく、コンポーネント化され連携することによってクラウドアプリケーションとして広がっていくという。確かにその通りで、この考え方はWebIntentsにも繋がっていきます。個人的には久しぶりに生の及川さんの話を聞けたことが良かったです。
Webプラットフォームの進化と実装
FirefoxOSをはじめとするWebOSの話。HTML5で書いたアプリがネイティブアプリになるということです。現在のWebの世界を考えるとごく普通の流れのような気がします。iOSとAndroidが普及している世の中で、Webをプラットフォームとする端末がどれだけ普及するかが鍵のような気がしました。
WebIntentsにより拓かれる次のWeb
クラウドもローカルも全てシームレスにアクセスすることができるという個人的に一番聞きたかった話です。冒頭でブラウザからテレビを操作するデモがありましたが、それぞれの家電の中にWeb Serverを内蔵することによって、家電がネットに繋がる時代がすぐそこまで来ています。
HTML5によるタフなモバイル開発の最前線
FlashとCanvasのどちらを選ぶかという話。それぞれいいところと悪いところがあります。個人的にはゲームやアニメーションの領域からは離れていますが、パフォーマンスチューニングやメモリの使い方の話は面白かったです。メモリ関連では、Chrome Developer Tool:Heap Snapshotsが神アプリだとか。
ブラウザを介した新しいリアルタイムコミュニケーション
WebRTCの話。ビデオチャットであれば簡単に作れてしまう優れもの。いまは音声と動画しか送受信できないが、今後は任意のバイナリデータをピアツーピアで送受信できるかもしれないという。夢が広がりますね。
発表資料はこちら(Google Docs)
スペシャルセッション
色々な方の個性ある話が聞けて良かった。最後のクイズ大会も盛り上がりました。楽しかったです!
感想
個人的に久しぶりの勉強会でしたが、楽しかったです。色々な人の話を聞くことで自分の考えている方向性や自分の立ち位置、これからどこを見て進んでいけば良いのかということを確認することができました。そして、何よりたくさんの刺激を受けることができました。やっぱり勉強会っていいものです。
ということで、スタッフの皆様、関係者の皆様、スポンサーの皆様、出席者の皆様、HTML5 Conferenceに関わっている全ての皆様、お疲れさまでした。ありがとうございました!
Tomcat7でWebSocketを使ってみた
今更感もありますが、Tomcat7でWebSocketがサポートされましたので、簡単なサンプル(チャットアプリ)を書いてみました。WebSocketを使えばもっと色々なことができそうなのですが、動作確認を含めたサンプルということで...
まずはソースです。3つありますが、上からHTML、web.xml、Javaです。
HTML
7行目でWebSocketオブジェクトを作成します。スキームはwsです。
8行目のonopenは接続が完了したタイミングで実行されます。今回は何も書いていません。
10行目のonmessageはメッセージを受信したタイピングで実行されます。今回はチャットメッセージが送られてきますので、document.getElementById()を使って画面を更新します。
14行目のsendでサーバにメッセージを送信します。
Java
コードを書く前の準備として、
にBuildパスを通しておきます。
WebSocketを使用するクラスは、WebSocketServletクラスをスーパークラスに指定します。
15行目のmmiListでクライアントごとのオブジェクトをArrayListに格納しています。クライアントからのオブジェクト生成リクエストがあると17行目のcreateWebSocketInbound()が実行されます。戻り値はMessageInboundのサブクラスのオブジェクトです。
25行目のonOpen()は接続されたとき、37行目のonClose()は切断されたとき、43行目のonTextMessage()はメッセージを受信したときにそれぞれ実行されます。onTextMessage()の引数はCharBuffer型です。クライアントにメッセージを投げる時には、writeTextMessage()を使用します。
ちなみに、これと同じことをJetty8でやろうとするとこんな感じになります。
GistにThis user has no public gistsと出た時の対応
publicなgistがあるのに自分のページ(https://gist.github.com/[UserName])に
と出てしまうユーザがいるようです。私もそのひとりでした。
解決方法は、Contactのページ(https://github.com/contact)から
publicなgistがあるんだけど、This user has no public gistsってでるよ?どうすりゃいいの?
みたいな内容の英文を書いて送ると直してくれます。
私のときは、一時間ほどで直してくれました。
WindowsとEclipseとJetty8.1でHelloJettyしてみた
用意したもの
- WindowsXP
- Eclipse3.7
- JDK1.6
- Jetty8.1
Jettyのインストールと起動確認
以下のページからJetty8.1のzipファイルをダウンロードします。
http://download.eclipse.org/jetty/
ダウンロードしたファイルを適当なフォルダ(C:¥Jetty81¥)に解凍します。
コマンドプロンプトを起動し、
> java -jar start.jar
を実行します。
http://localhost:8080/にアクセスし、Welcome to Jetty8が表示されればインストール完了です。
Eclipseプラグイン(Jetty WTP)のインストール
Eclipseのプラグインをインストールします。
Eclipseのメニューから、ヘルプ ⇒ 新規ソフトウェアのインストールを選択し、以下にアクセスします。
http://download.eclipse.org/jetty/updates/jetty-wtp
Jetty WTP Adaptor Siteにチェックを付けて、インストールします。
Jetty Serverの設定
パッケージエクスプローラを右クリック ⇒ 新規 ⇒ その他 ⇒ サーバ ⇒ サーバを選択します。
Jetty8.1 Serverを選択して次へ。
Jetty installation directoryにC:¥Jetty81¥を指定して完了。
サーバービューを開くといま作成したJettyサーバが表示されます。
右クリックで起動、停止ができます。
Jetty WTP Dynamic Web Projectの作成
パッケージエクスプローラを右クリック ⇒ 新規 ⇒ その他 ⇒ Web ⇒ 動的Webプロジェクトを選択します。
プロジェクト名を適当に入力して完了。
動作確認のため、作成したプロジェクトのWebContent直下にindex.htmlを作成します。
<!DOCTYPE html> <html> <meta charset="UTF-8"> <title>Hello Jetty!</title> <h1>Hello Jetty!</h1> </html>
プロジェクトエクスプローラに表示されているプロジェクトをサーバビューにドラッグ&ドロップ
Jetty Serverを右クリックし開始。
コンソールに
java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor
のような例外が発生したら、Jetty Serverを停止し、サーバービューに表示されているJetty Serverをダブルクリックし、設定画面を開きます。一般情報の起動構成を開くをクリックし、クラスタブを開きます。ユーザ・エントリーを選択し、外部Jar追加ボタンをクリックします。Jettyインストールフォルダのlib¥annotations¥にある
- javax.annotation-***.jar
- org.objectweb.asm-***.jar
のふたつのファイルを追加します。
もう一度、サーバービューからJetty Serverを起動すると例外が発生せず起動するはずです。
Wellcom to Jetty!!
Xcode4.3をインストールしたらインストールパスを変更する
以下のコマンドで、Xcodeのインストールパスを変更する。
> sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer