「Titanium もくもく会 Tokyo #4」に参加してきました

Titanium もくもく会 Tokyo #4」に行ってきました。今回はニフティさんに会場を提供していただきました。ありがとうございます。LT がメインの会になった感じですが、 Titanium Mobile ユーザー会からも重大発表がありました。

それでは、簡単にレポートをば。

Lightning Talk

@sawada50 さん – アプリの大量生産

最初は @sawada50 さん。今回会場を提供してくださったニフティの中の人でもありますが、 Titanium Mobile でアプリを大量生産してリリースしましたよーという内容の LT 。 YouTube のリクエストパラメータと Titanium の色に関連するパラメータを変更することで、様々なニーズを満たす動画系アプリを大量に作ってリリースすることができましたとのことで、アイデア勝ちだと思いました。

サクサクと動くアプリケーションを作ることができる Titanium Mobile ならではのアプリ生産術かなーとも思います。

あとは来年の1月に開催される「エンジニアサポート CROSS 2013」の案内がありました。2012年のイベントは私も参加しましたが、 JavaScript のセッションが面白かったりしたので、来年も大変楽しみです。

※ Titanium Mobile ユーザー会も今年は協賛させていただきました。

@k0sukey さん – Alloy with CoffeeScript

次に @k0sukey さん。 TiPlatformConnect という様々な Web サービスの OAuth 認証を簡単に行える JavaScript モジュールで有名な方ですが、今回は Titanium Mobile 用公式 MVC フレームワークである Alloy の機能である jmk を使って CoffeeScript と Alloy を組み合わせる (リンク先のブログで3回連載です) という LT 。

CoffeeScript は Ruby や Python に近い記法で JavaScript を書くことができるトランスレータですが、括弧の記述が減ったり、出力される JavaScript のコードを安定させたりすることができる嬉しい要素があるプログラミング言語です。

Titanium with Alloy アプリケーションでも CoffeeScript だけでコーディングできるようになるということで、 CSer には嬉しいニュースだと思いますが、 Alloy が出力する JavaScript は関数式をイベントリスナよりもあとに置く形になるために、CoffeeScript で定義した関数は Alloy の View である XML 内のイベントハンドラに設定できないという現実があります。

こういうコードは、

のような関数式になり、関数宣言文のようにホイスティングが起こらないため、これより前で func を使ったイベントリスナが設定されていても undefined としてイベントが発火しないのです。

その為、 XML 内でイベントハンドラを設定したい場合はバッククオートでくくって、インライン JavaScript を CoffeeScript 内に書くしかないのですが、いくらなんでもそれはかっこ悪いので、 XML 内イベントハンドラを使わないというのが一番良い選択肢になりそうです (それはそれで、 Alloy らしさを失うのですが) 。

@hamasyou さん – Titanium の痒いところを掻いていたら

最近 Treering という読書記録アプリをリリースされた @hamasyou さんの LT 。 Titanium Mobile でアプリを作っていると段々と「もうちょっと、こうだったら良いのにな」とか「この方が格好良いよね!?」という部分が出てくるのですが、突き詰めていったら俺俺フレームワークができましたという内容。

例えば、 Titanium Mobile では画面の遷移やモーダルウィンドウを開くときに open というメソッドを呼ぶのですが、画面遷移なのに open とは画面遷移っぽくないという思いから Objective-C のコントローラベースによる画面遷移を意識し、記述することができるフレームワークを構築したそうです。

他にもイベント通知の仕組みが UI コンポーネントかグローバル (Ti.App) しかなく、もっと手軽にイベント通知の仕組みが欲しいから Backbone.js の Backbone.Events を継承してイベントを管理できる仕組みを取り入れたり、 O/R マッパーがないから persistence.js (JavaScript で書かれた非同期 ORM です) を取り入れてモデルの抽象化をはかったりと、まさしくフレームワークという感じを受けました。

最近こそ Alloy も Backbone.js ベースで組まれたフレームワークとして公式に登場してはいますが、柔軟にコンポーネントを取り替えたり、隅々まで手を入れられるという意味ではこうした俺俺フレームワークが死ぬことはないと思います。

個人的感覚では、 Alloy は大げさすぎるところもあると感じていますしね。

@h5y1m141 さん – Titanium で デザインパターンを活用

スパゲッティコードを嫌って Titanium でデザインパターンを活用してみているという LT を @h5y1m141 さんが行いました。 Qiita というプログラマのための情報共有サービスがあるのですが、これのクライアントアプリを作っているそうで (コードはなんと GitHub にあって、積極的にコミットされています) 、UI やイベントの処理でデザインパターンを取り入れているそうです。

Facebook や Path が取り入れてすっかり定番になった横スライド式のメニューを Facade パターンで組んでいたり、アプリ起動時のチュートリアル部分を Command  パターンで組んでみているそうです。

GoF デザインパターンといえばやはり定番中の定番ですし、様々な先人の知恵があり、考えることは皆同じということで定番には定番の良さがあるのは間違いありません。オレ流コーディングもいいですが、一度先達の洗練された技術を振り返ってみてみるのもいいですね。

DENSO さん – ユーザの皆様にお知らせ

Appcelerator とのパートナーシップを発表している DENSO ですが、その DENSO さんから Titanium ユーザの皆様にお知らせとということで LT 。1つめは SmartTech Award というスマートフォンアプリコンテストを行うという内容で、今回は2回目ながら Titanium 賞というユニークな賞が設定されています。

DENSO さんのカーナビ連携 (NaviCon / NaviBridge) や CAN (車載 LAN) との連携したクルマに関するアプリによるコンテストだそうです。お話の中であったスマホゲームのピンボールのフリッパーをクルマのドアをバタンバタンと手で開け閉めして動かすというダイナミックなお話はとても面白かったです。

つまりは、車のセンサー情報をスマホに取り込めるそうで、実用的なアプリから先の例のようなおもしろアプリまでいけちゃいそうです。詳しくは SmartTech Award のページをご覧ください。もう1つは告知で、東京オートサロンというカスタムカーイベントで Appcelerator との共同アプリのデモを行うそうです。楽しみですね!

Titanium Mobile ユーザー会 – 緊急告知

Titanium Mobile ユーザー会より @kaz_konno さんが LT 。 Titanium 3.0 が先日ついにリリースされ、 Appcelerator もとても重要なアップデートとしていることがアナウンスされました。 Alloy フレームワークによる、より高品質なアプリ開発プラットフォームの提供や Command Line Interface (CLI) によるプロフェッショナルのためのツール提供といったツールの進化や、非推薦だった API の整理や Android 対応の仕様変更などが報告されました。

Alloy を用いて韓国の Titan が40時間で作り上げたという PV がもの凄く格好いいアプリの紹介もあり、 Titanium 3.0 と Alloy という組み合わせでこうしたものも作れちゃうんですよというとても良いデモだと思います。

詳しくはスライドをご覧いただければと思いますが、緊急告知として、来年2月16日に Appcelerator 主催による Appcelerator Titanium Event in Tokyo が開催予定として発表されました!

これはもの凄いことで、 Appcelerator の CEO である Jeff Haynie 氏による Keynote や本社エンジニアによるセッションなど、催しがまるまる1日ギュッと圧縮されて東京で味わえてしまうと言うものです。いわば、 CODESTRONG mini ともいえる内容になっていて、参加費はタダ、昼食もタダ、懇親会費もタダというとんでもない企画。

2013年2月16日 (土) にベルサール六本木で開催予定です。詳細については今後の情報をお待ちください!

(すいません! アカウント名分かりません) – ソラをライブ

最後にソラをライブというアプリに関しての LT がありました。テレビの天気コーナーで展開されている視聴者参加型の「みんなでソラをライブ」に参加することができるアプリだそうです (このアプリで良いのであれば… なのですが)。

こうして実は多くのユーザに使われていそうなアプリが実は Titanium 製というのはありそうな話で、隠れキリシタンならぬ隠れタイタンというのは多いのかもしれません (という話を帰りに @kaz_konno さんとしていました) 。

Titanium は生で JavaScript をバリバリと書くクラシック、 Alloy フレームワークである MVC による構築、サーバサイドをコーディングレスで実現する BaaS である ACS など、結構関連技術があるのに関連性が認知されていないという問題も抱えていそうで、このあたりをキチンとユーザ会としてもアナウンスしていった方が良いのかもしれませんね。

最後に

2013年も頭から Titanium のイベントは盛りだくさんです!

  1. Titanium もくもく会 Tokyo #5 (2013/1/25)
  2. Titanium 新年会 2013 (2013/1/26)
  3. Appcelerator Titanium Event in Tokyo (2013/2/16)

もくもく会は月に1度のペースで、その他イベントが日本各地で行われることでしょう。 Titanium は2013年も面白い動きを見せ続けそうです (Windows 8 / Windows Phone 8 対応もアナウンスされていますしね :-)

画像もなく、ざーっと書きましたが、このあたりで筆を止めて…。

CODESTRONG!