Titanium™ Advent Calendar 201315日目を担当する@donayamaです。
毎週淡々とTitanium関連の情報をまとめ続けているTi Weekly Clipsですが、その一年を振り替える総集編を昨年に続いてお送りしたいと思います。しかも今年は前後編…というかNews編とそれ以外に分けていきます。
労力が減るかと思ったけど、余計に焦る原因になってしまっただけでしたorz
2013年のTitanium/Appceleratorを総括する
さて、気を取り直して、今年のTitanium/Appceleratorの動きを振りかえってみたいと思います。
バージョンの変遷
昨年一年の間は1.8.0.1、1.8.1、2.0.1、2.0.2、2.1.0〜2.1.4、そして3.0と非常に慌ただしいバージョン遷移を繰り返していたわけですが、今年2013年はどうだったのでしょうか。
昨年末の3.0.0から、(おそらく年内には正式版リリースされるだろう)3.2.0までと、バージョンナンバーだけを見れば若干落ち着いたかのように見えます。
リリースノートの要約から項目をピックアップして、どの程度の変化があったのか確認してみましょう。
Titanium 3.0.2(2月19日)
- iOS6.1とXcode 4.6の正式対応
- Appcelerator Alloy 1.0正式版
- iPhone5の解像度に併せた画像を-568h@2xのサフィックスをつけて対応
- i18nフォルダにスプラッシュスクリーンを入れることにより、起動画面の国際化対応(iOS)
- Android SearchViewの改善(要Google API Level 11 (Android 3.0))
- Androidでリソースフォルダアクセス用プロパティ Ti.Filesystem.resRawDirectoryの追加
Titanium 3.1 (4月16日)
- Tizenの正式サポート
- BlackBerry 10のβサポート
- Facebookモジュールの名前空間変更
- Google Maps v2対応(Android)
- ListView対応
- Alloy 1.1.0
- TiStudio側でXML・TSS・コントローラの入力支援が実装されました。
- コントローラやalloy.js上でのブレイクポイントを利用したデバッグ実行が可能となりました。
- iOS EventKit UI Framework対応
Titanium 3.1.1 (5月24日)
- Android 2.3.3未満は対象外に(API Level 10以上必須)
- iOSも4.xは対象外に(Xcodeは4.3以降が必須に)
- Titanium.Android.Calendarが非推奨に。
- Androidカメラ撮影時の挙動変更(これまでsaveToPhotoGalleryプロパティの設定に関わらず自動保存されていたが、それを見るようになった)
- Android r22のフォルダ構成問題対応
- Android MapView表示でuserLocationButtonプロパティが追加、regionchangedイベントが修正
Titanium 3.1.2 (8月15日)
- Android 4.3(JellyBean)のサポート
- iOS7のβサポート
- BB10.xのサポート
- Alloy 1.2.0
- Alloyにダイナミックスタイリングという動的に見た目の変更(Classの振りなおしやStyleのプロパティを個別に調整したり)ができる機能が搭載された。
- マークアップからListViewを生成できるように
- CLIからtssスケルトンを生成する機能が追加された
- Android向け
- プッシュ通知でGCM(Google Cloud Messaging)をサポート。
- GoogleMaps v2の挙動変更(annotation選択時にマップ中央に自動的に移動するようになった)
- Activity開始、終了時のアニメーションに対応(Ti.Android.R.anim.*参照)
Titanium 3.1.3 (9月18日)
- iOS7対応(暫定)
Titanium 3.2.0 (12月14日にリリース候補版)
本当はリリース版として挙げたかったところですが。
- Alloy 1.3
- WidgetやRequire要素の子要素を持てるように
- ListView、ListSection、TextField要素にプロパティが追加された
- TSSファイル内でビット演算子がサポートされた
- iOSのフリップアニメーションAPIに対応
- Titanium Studio内にAlloyサンプル
- Android 4.4・iOS 7.1のサポート、iOS 5.xがサポート対象外に
- CLIコマンドの刷新
- Titanium Studio Mac OS X 10.9(Mavericks)サポート
- Android
- CLIの改善
- 特定のデバイス・エミュレータを指定するための--device-idオプション
- ti info reportによりAVD情報が取得可能に
- x86向け配布ビルドに対応
- 開発用のキーストアで生成されたAPKを実行できるカスタムキーストアに対応
- SDK/NDKの検出を改善した(サポート対象の一番古いSDKが不要になった)
- ADBとAndroidエミュレータライブラリに対応
- アニメーションの改善
- Broadcast Intentsに対応
- カメラの改良
- ListViewフェーズ2
- Cookie管理
- 超超高解像度の対応
- Fastdevが非推奨に
- Lightweight WindowからHeavyweight Windowへ
- CLIの改善
- iOS
- Attributed Strings
- デバイスへの直接的なビルド配布
- Dynamic Animations
- iOS 7 Animated Transitions
- iOS 7 バックグラウンドサービス
- ListViewフェーズ2、Popoverコンテンツ、Refreshコントロール
- StoreKitモジュール
- Windowタイトル属性
- Titanium.UI.Titanium.UI.iPhone.NavigationGroupクラス除去
- iOSネイティブマップを用いるにはti.mapアドオンモジュールを使う必要が。
と、このように一覧にして比較してみると、Titanium 3.2のバージョンアップのボリューム感やその内容が今年に発生したどのバージョンアップよりも大きいことが分かると思います。
しかもその変更内容も結構大きいもので、個人的にはTitanium 4.0相当だと考えています。(@ryugoo_さんも同様の発言をされています)
後述するTi.Nextはその名の通り、まさに次世代のTitaniumになるのですが、これを4.0と呼ぶという話があり、個人的には非常に抵抗感を感じています。
ただ、Appceleratorは過去からバージョンナンバー(の変化自体)に大きな意味を持たせる意識がなさそう(0.8.2→0.9、1.5→1.6→1.7など…)なので、利用者としてはリリースノートの内容をよく見て、互換性やマイグレーションへの意識を高めるしかないのかもしれません。
Titanium Newsとしてはその辺の情報を引き続きザックリ訳という形にはなりますが、日本語での情報提供に努めて行きたいと思っています。
Alloyへのシフト
Titanium 3.0.2から正式バージョンとなったAlloyですが、この一年で着実にバージョンアップを重ね、Titaniumでのアプリ開発のスタンダードな方法/Best Practiceとしての地位を確立したのではないでしょうか。
Titanium StudioでもClassicスタイルの開発テンプレートこそ残っていますがメインはAlloyですし、GitHub Watchにあがってくるプロジェクトの半数近くがAlloy Widgetだったように思えます。
モジュール検証とかでTitaniumアプリを実装するときにはお手軽なので、ついついAlloyではなくClassicスタイルを使ってしまいがちなのですが、そこも含めて頭をAlloyにスイッチしていかないとなあと個人的には思っております。
Ti.Nextについて
Hyperloopコンパイラをベースに、JavaScriptベースで組み込みのAPIの再構築を行ういわゆる"Ti.Next"については登場時期こそ名言されていませんが、来年2014年に登場することはほぼ間違いないでしょう。
Jeff Haynie & TiConf @ Amsterdam | Fokke Zandbergenの動画に出ていた内容をザックリまとめると次のようなものになりそうです。
- JavaScriptCoreをベースにした新しいコアランタイムエンジンの再構築(と他プラットフォームへの展開)
- バイナリサイズとメモリ使用量を物理的に削減し、スレッド制御の簡素化、ガーベジコレクションのオーバーヘッドを削減するパフォーマンス向上
- Titanium APIはすべてJavaScriptで実装される
- コンパイラの最適化フェーズでクロスプラットフォームAPIはネイティブコードに変換することにより高速化
- JavaScriptによるクロスプラットフォームモジュール開発
(Hyperloopのコードが)プラットフォームSDKに直接タッチできるようになるため、TitaniumのAPIとしてサポートされていない機能もJavaScriptのコードで実装することができるという「(ほぼ)すべてがJavaScriptによって構成される開発環境」に変貌することになります。
APIの再実装にしてもそうですが、互換性の維持も含めて懸案が多そうに思えます。
繰り返しになりますが、4.0と呼ばれる(可能性も高い)ことから「誤って普通にバージョンアップしてしまう」可能性が低くなく、挙動がおかしくなった!などという叫び声が各所であがるようなことがないように、いつも以上にβやリリース候補版の期間を長めに設定されることを望んでやみません。
Appcelerator PlatformとTitanium Platform
後に紹介するtiTokyoでJeffの口から発表されたビジネス向け有償サブスクリプションであるAppcelerator Platformとコミュニティベースの無償のTitanium Platformへの分離は衝撃的でしたが、その後のことを一利用者としてみたときにはさほど影響があるというものではありませんでした。
もちろんAppcelerator Platformのユーザに対して提供されるLiveViewやテスト環境(Appcelerator Test)の価値というのはあるわけですが、その価格感すら"CONTACT US"のベールの向こう側に隠されているため、なかなか踏み込んだり、踏み切ったりするのが大変だというのが実情かと思います。
本サイトではとりあえず提供されている機能がオープンに使えるようにならない限り、積極的な紹介をしない方向ですので、情報収集はAppcelerator Platform - Appcelerator Docsからして頂ければと思います。
国内の動きについて
ここで国内のコミュニティなどの動きについても振り返っておきましょう。
まずはなんといっても2月に六本木のベルサール六本木にて開催されたtiTokyoでしょう。
朝早くから夜に掛けての長丁場のイベントだったにも関わらず、多数ご来場頂き、大きな混乱もなく無事終えることができたのは運営されていたデンソーの皆様やユーザ会の有志の皆様のおかげだったと思います。当日の案内や運営といった業務だけではありましたが、その末席に就くことができて、個人的には非常にいい経験ができました。帰阪する日程をもう一日後ろに倒しておいて、反省会などに合流したかったところです(^^;)
ちなみに国外になってしまいますが、今年はCODESTRONGの開催がなく、そのかわりに2月の東京(tiTokyo)、バレンシア(ti.conf.eu)、6月には米ボルティモア(ti.conf.us)、8月にはメルボルン(ti.conf.au)と世界各地で中規模のカンファレンスイベントが開催されました。来年はCODESTRONGの開催があるだろうとされていますし、すでにti.conf.euについてはアムステルダムで開催されることが決定されています。日本でも再びtiTokyoもしくはti.conf.jpが開かれることを強く願います!
さて、ユーザ会がらみでいうと、もくもく会をほぼ月イチペースで継続的に開催されていて、調整・運営されている@kaz_konnoさんや他の皆様には頭が下がりっぱなしです。2月はtiTokyoでスキップされ、8月にはお盆時期ということと「Titaniumを知る講座」という夏期講習イベントが開催されたためもくもく会はありませんでしたが、ほぼ毎月開催されています。Titanium触っていて、あるいは興味があるけど…ってな東京近郊の方は平日の夜の開催ではありますが、是非一度足をお運びください。
私が観測している限りでは、大阪にてTi.Developers.meeting vol.6が1回、名古屋にてTiなごや vol.3とvol.4が開催された(ほかに@sngmrさんが大なごやJS vol.6http://www.slideshare.net/MoriShingo/js-vol6-titanium-mobile-alloy)とWCAN Autumn 2013で発表された)というのが2013年の首都圏外のTi動向になります。
もっと他でもやってるよ!という方は@donayamaにご連絡ください。Ti Weekly Clipsでは勉強会情報を継続的にNews枠で紹介しておりますので、告知に是非ともお役立て下さい。
2013年月別イベントカレンダー
1月
2月
- SDK/Studio 3.0.2 Release Candidate Now Available « Appcelerator Developer Center
- Pixateが1.0.2でTitaniumに対応
- tiTokyoが開催されました。
- Titanium 3.0.2 正式版がリリースされました。 - Titanium News
- Titanium Mobile Tizen Preview now available « Appcelerator Developer Center
- tiConf – Community-led Titanium Conference Kicks off « Appcelerator Developer Center (Day 1 Recap, Day 2 Recap)
- Appcelerator Titanium: Patterns and Best Practices | Packt Publishingがリリースされる。
3月
- Introducing our new Google Maps Android API v2 Module in the Appcelerator Marketplace « Appcelerator Developer Center
- Introducing the Appcelerator Platform
- Titanium Mobile Tizen now available « Appcelerator Developer Center
4月
- 価格リストが改訂されました。 - Titanium News
- Titanium SDK/Studio 3.1.0正式版、Node.ACS 1.0正式版が公開されました。
- Thanks to You – Celebrating 450,000 Appcelerator Mobile Developers!
5月
- 「株式会社ソケットベース」が設立されました。
- 3.1.1 Release Candidate of Titanium SDK/Studio Now Available « Appcelerator Developer Center
- Appcelerator、企業向けのモバイル開発環境「Appcelerator Platform」を発表。開発ツールからテスト、BaaS、ログ解析まで包括。Oracleもサポートへ - Publickey
6月
- TiShadowが1.0.0になりました
- Announcing Titanium 3.1.1 Production Release « Appcelerator Developer Center
- tiConf Baltimore Recap « Appcelerator Developer Center
7月
- Appcelerator Raises $12.1M To Expand Into Asia And Help Enterprises Build The Best Apps | TechCrunch
- 3.1.2 Release Candidate of Titanium SDK Now Available « Appcelerator Developer Center
8月
- Titanium SDK/Studio 3.1.2正式版がリリースされました。 - Titanium News
- モバイル開発プラットホームAppceleratorが高度なAPIアグリゲータSinglyを買収, いよいよ業界の地固め期に | TechCrunch Japan
- Alloy 1.2.1がリリースされています。
- tiConf Australia Recap « Appcelerator Developer Center
- Appceleratorのロゴが日本において商標登録されました。
- Lanicaの製品が一般公開されました。
9月
- Appceleratorの開発者アカウント数が50万を突破したようです(内、日本は40000) - Titanium News
- iOS 7 Migration Guide - Titanium 3.X - Appcelerator Docs公開
- Announcing the General Availability of our iOS 7 support with Titanium 3.1.3 « Appcelerator Developer Center
- Updates on Ti.Next « Appcelerator Developer Center
10月
- Introducing our new blog « Appcelerator Developer Center
- Introducing Hyperloop(抄訳)
- Welcome Jim Watson, VP of AMEA!