Google+ もご覧ください
ユーザーアイコン

Ti Weekly Clips++

Titanium周りで知っておきたいニュース!

Donayama

Titanium周りで知っておきたいニュース!

News - SDKアップデートやイベントなどのニュース

■勉強会リマインダー

Titaniumもくもく会 #19 - Titanium | Doorkeeper

6月26日木曜日に大江戸線勝どき駅の株式会社うるるさんのセミナールームにて開催されます。

先端技塾シリーズ JavaScriptでiPhoneアプリ開発をマスターしよう!

@h5y1m141こと小山田浩さんによる有償のセミナーが2014年7月8日から毎週火曜日に4回にわたって開催されます。 ご興味のある方は是非。

Tips & Topics - ノウハウや技術紹介、解説記事

Crash reporter | TiDev

クラッシュログを取得するためのdbankier/TiLogCatcherとこれを使うためのCommonJSのUTiL/reporterの使用手順の解説。

Developing in Titanium – make native modules work in TiShadow

TiShadowでネイティブモジュールを使うための手順。

GitHub Watch - モジュールやサンプルコードの情報

appcelerator-modules/ti.coremotion

Titanium SDK 3.3.0から正式に搭載されるCoreMotionモジュールですが、Hyperloopで開発されています。 Ti.Currentのモジュールを作るサンプルとしても活用できそうですね。

mpociot/MagicPie

円グラフ表示を実現するSk0rpion/MagicPieをTitaniumにラッピングしたモジュールです。

pegli/ti_touchdb

Couchbase Lite をラッピングしたネイティブモジュール。iOS、Android両対応。

mpociot/TokenCompleteTextView

splitwise/TokenAutoCompleteをラッピングしたAndroidネイティブモジュール。

CaffeinaLab/com.caffeinalab.titanium.tiltimageview

Facebook Paper風の表示ができるAlloy Widget

FokkeZB/nl.fokkezb.form

TableViewを使用した「設定」っぽいフォームを作るためのAlloy widget。

ちなみにこのモジュールを題材にしたドキュメンテーションの手順をまとめたのはDocumenting a (new) widget | TiDev

Marcocanc/TiNetworkInfo

電話回線情報を取得するためのAndroidネイティブモジュール。

jbeuckm/TiPebble

スマートウォッチであるPebbleのiOS SDKをラッピングしたネイティブモジュール。

k0sukey/TiCornerRadius

角丸の方向を指定できるiOSネイティブモジュール。

Spotlight - 小さな特集記事

TiDevのCrash reporterの記事をざっくりと訳してみたいと思います。


TiLogCatcherモジュールを使うことで、すべてのTitaniumの例外を取得し、モジュールのerrorイベントリスナーを使用することで取得した内容を活用することが出来ます。 (将来的にTitanium以外のデバイスログ全般も取得できるようになる予定です)

Reporter CommonJSモジュール

テストユーザ(Ad-hocビルド)だけではなく実際のユーザ(ストアビルド)にも対して、 クラッシュ時に例外の内容やTi.AppTi.Platform・スクリーンショットをメールで開発者へ 送信するための仕掛けを提供するCommonJSモジュールです。(動作自体にはTiLogCatcherを使います)

TestFlightなどに比べてのメリット

TestFlightや他のサービス(のSDKやモジュール)を介したクラッシュレポートも良いのですが、 このスクリプトでは次のような情報を自動的に集めてくれます。

  • JavaScriptあるいはネイティブでのエラー内容(バックトレースやファイル名・行番号、エラーメッセージなど)
  • Ti.Appのすべてのプロパティ
  • Ti.PlatformTi.Platform.displayCapsのすべてのプロパティ
  • エラー発生時のスクリーンショット

なぜメールで送るのか。

もちろん画面上に表示させずにこれらの情報をすべてサーバにアップロードするようなこともできますが、 (個人の経験上)エラーの再現手順を利用者に尋ねることによって、多くの不具合の発見・解決に繋がってきました。

動作イメージ

Reporterの使い方

  1. yy.logcatcher moduleをインストールする。
  2. reporter.jsをダウンロードし、Rerourcesフォルダかapp/libフォルダに配置する。
  3. Resources/app.jsあるいはapp/alloy.jsrequire('reporter');の記述を追加する。

ローカルでのテスト中は不要なので、このReporterを使うのはad-hoc配布かストア配布のときに限定するため、 このような記述がよいでしょう。

if (Ti.Platform.deployType === 'production') {
  require('reporter');
}

ちなみにオプションとしては送信先や送信確認ダイアログのメッセージの内容などを指定することができます。

ものによっては多言語化対応できるstring.xmlの値を初期値として取ることが可能なので、適切な内容になるようにしましょう。

reporter = require('reporter');

// 送信先、配列指定も可能。
reporter.recipients = 'mail@fokkezb.nl';
// アラートのタイトル (もしくはstring.xmlの'reporter_alert_title')
reporter.alert_title = 'Error';
// アラートのメッセージ (もしくはstring.xmlの'reporter_alert_message')
reporter.alert_message = 'Please let me prepare a report for you to send to the developers.';
// アラートの確認ボタンの"No"の表示 (もしくはstring.xmlの'reporter_alert_no')
reporter.alert_no = 'No';
// アラートの確認ボタンの"Yes"の表示 (もしくはstring.xmlの'reporter_alert_no')
reporter.alert_yes = 'Yes';
// メールメッセージ本文 (もしくはstring.xmlの'reporter_email_describe')
reporter.email_describe = 'Please describe what steps led to the error so the developers can reproduce the error';
Tiweeklyclips

記事をリクエストする

関連記事

コメント