Titanium News

Appcelerator Titanium Mobileに関するニュースなどを淡々とお伝えしていきます。

Ti Weekly Clips 2013年総集編(前編)

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へ
  • 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.3vol.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月

3月

4月

5月

6月

7月

8月

9月

10月

11月

12月