SSブログ

コンポーネントプロパティ [iCalendar]

さて、続いてコンポーネントプロパティについてです。このプロパティがデータの中核を成すだけあって、かなりでかいですねぇ・・。なんか、ざ~っとやってしまいたい気もしますが、どうしましょうか・・。

この章ではコンポーネントプロパティの定義が書かれているのですが、まず、次の8つにカテゴリ分けされている様です。コンポーネントごとと言うわけではないですね・・。

Descriptive Component Properties 内容、付加的な情報についてのプロパティ。12個。
Date and Time Component Properties 日時に関するプロパティ。7個。
Time Zone Component Properties タイムゾーンに関するプロパティ。5個。
Relationship Component Properties 関連情報に関するプロパティ。7個。
Recurrence Component Properties 繰り返しに関するプロパティ。3個。
Alarm Component Properties アラームに関するプロパティ。3個。
Change Management Component Properties 変更管理に関するプロパティ。4個。
Miscellaneous Component Properties その他のプロパティ。3個。


以上、44個もプロパティがありますね。これまでの様に一つ一つ見てたら終わりが無さそうなので、ちょっとやり方を考える必要がありますねぇ・・・。


つづく。






カレンダープロパティ [iCalendar]

さて、長々と続けていますiCalendarの仕様の査読(?)ですが、今回から「カレンダープロパティ」についてです。

「カレンダープロパティ」とは、iCalendarオブジェクト全体に適用される属性で、カレンダーコンポーネント内には現れないとのこと。「BEGIN:VCALENDAR」の行より後、任意のカレンダーコンポーネントの前に書くべきとのことです(SHOULD)。

どんなのがあるのか、表にしときます。詳細は次回以降で。

CALSCALEぱっと見、カレンダーの使用している暦(「こよみ」、なんとか暦とか)を指定するものですかね・・。
METHOD表記法?具体的な値は他の仕様を見ろとか・・。
PRODIDiCalendarオブジェクトを作成した商品(アプリ?ライブラリ?)の識別子を記載。
VERSIONiCalendarの仕様バージョンと適用範囲(?)。この仕様の値は「2.0」。



・・・次週以降、それぞれを見て行こうかと思いましたが、それほど重要な要素でもないですねぇ・・。3.7はこの辺でやめときます。






Androidエミュレータ起動! [Android]

久々にAndroidの開発環境でもいじろうかなと思い立ち、まだ繋げた事の無いSmartiaに接続してみるかと思って、以前どこまでやったのか確認してみたところ・・・、エミュレータを動かす前の段階で終わってました・・。何だそれ?

今回はエミュレータで動作を見るところまでやってみる事にします。

*

久々にeclipseを立ち上げました。前回は、「Hello, World」のチュートリアルからとっかかろうとしてた様ですが、今回はサンプルを実行してみたいと思います。ちなみに、サンプルは「Developer/android-sdk-mac_86/samples/android-7/」にインストールされていました。なお、「Developer」以下にコピーしたのは私の判断です。

さて、使用するサンプルですが、サンプルのディレクトリをざ〜っと見ていて気になった「Snake」と言うのを使う事にします。サンプルのページによると、「new Android Project」を実行して、「Create project from existing source」を選択しろとのことです。実際に私が行った手順は下記の通りです。

  • 「File」→「New」→「Project...」を選択
  • 「New Project」のダイアログで「Android」→「Android Project」を選択して「Next>」


「Next>」ボタンを押すと、下の画像の通り、いくつか設定が必要そうな画面になりました。

11100200.png
ここの説明も欲しいんですが・・


この画面で設定した内容は下記の通りです。

  • 「Project name」に「Snake」と入力
  • 「Contents」内の「Create Project from existing sam...」を選択
  • 「Build Target」内の「Android 2.1-update1」にチェック
  • 「Contents」内の「Samples」から「Snake」を選択


順序は私が操作した順です。特にこの順じゃないといけないとかではないでしょう。「Finish」がデフォルトになってるので、そのまま「Finish」を押します。

これで、Eclipseのパッケージのところに「Snake」のプロジェクトができました。

11100201.png
中身を広げてます


この後の説明が無いですねぇ・・。仕方が無いので、適当に試したところ、下記の手順で実行ができました。

11100203.png
メインのソースを開いて実行


  1. 「Package Explor」から「Snake」→「src」→「com.example.android.snake」→「Snake.java」をダブルクリック
  2. ツールバーの「11100204.png」をクリック


これで、えらい時間がかかってますが、Androidが起動しかけている様です。で、しばらくして、この画面。

11100205.png
う〜ん・・・、無視


とりあえず「Force close」をクリックしたところ、Snakeが起動した様です。

11100206.png
無事起動


で、Play!

11100207.png
とろい・・・


超スローな動作ですが、とりあえずは動いた様です。オンフックするとロック画面に戻ってしまったので、エミュレータでは、eclipseから実行した(要するに自分で開発中の)アプリのみしか動かせない様です。

ちなみに、一連の動作でConsoleパネルに出ていたログは次の通りです。

11100208.png
なんか警告が出てますね・・


まあ、何となく動かす事ができましたが、この動作速度では、実際のデバグには使えないですねぇ・・。後、画面が縦長なのが気になります。Smartia向けの開発を考えると、横長にしなくては・・・。ちなみに、サンプルのソースのライセンスはApache License, Version 2.0だそうです。


【参考】
Getting the Samples - android developers
Apache License, Version 2.0 - The Apache Software Foundation
Snake - Snake - android developers
Technical Resources - android developers



   

アラームコンポーネント(VALARM)のつづき3 [iCalendar]

前回の続きです。こまめに分割する様な内容でもないんですが、まあ、ご了承を。

あまり、いい具合では無いのですが、今回も仕様に書かれている内容を列挙して行きます。

  • 「ACTION」プロパティはアラーム発生時の動作について記載する
  • CUA(Calendar User Agent)は記載された方式でアラームを発生させる・・(?)
  • 「ACTION」プロパティが「AUDIO」に設定されている場合、ユーザへの通知に音を発生させる。
  • 「ACTION」プロパティが「DISPLAY」に設定されている場合、ユーザへの通知にテキストメッセージを表示させる。
  • 「ACTION」プロパティが「EMAIL」に設定されている場合、ユーザへの通知に1つ以上の宛先にメールを送信させる。
  • 「AUDIO」のアラームでは、「ATTACH」プロパティが含まれている場合、それは音楽リソースを示していないといけない(MUST)
  • 「AUDIO」のアラームで、「ATTACH」プロパティが音楽リソースを示していない場合や、再生できない音楽リソースの場合、CUAもしくは他のもので代用する(プリインストールされたメロディなど)か、音を鳴らさない
  • 「DISPLAY」のアラームでは、「DESCRIPTION」プロパティに記載されているテキストを表示する(他の場所にも記載あり
  • 「EMAIL」のアラームでは・・・、の記載も先日の記載と同じですね。


CUAのくだりがよく理解できてないです・・。後、最後の方は前の方の記載の繰り返しでした・・。

実装の際、信用のできない提供元からのアラームコンポーネントの扱いは注意深く検討すべき。自身でセットしたもの以外のアラームコンポーネントは無視するなどの対応も妥当だとのこと。

以下が列挙されていた例です。

BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19970317T133000Z
REPEAT:4
DURATION:PT15M
ACTION:AUDIO
ATTACH;FMTTYPE=audio/basic:ftp://example.com/
 pub/sounds/bell-01.aud
END:VALARM
音声アラームの例。時間になると1回鳴り、15分間隔で4回追加で繰り返す。
BEGIN:VALARM
TRIGGER:-PT30M
REPEAT:2
DURATION:PT15M
ACTION:DISPLAY
DESCRIPTION:Breakfast meeting with executive\n
 team at 8:30 AM EST.
END:VALARM
表示アラームの例。イベントもしくはTODOスケジュール開始の30分前に表示し、15分間隔で2回追加で繰り返し表示。
BEGIN:VALARM
TRIGGER;RELATED=END:-P2D
ACTION:EMAIL
ATTENDEE:mailto:john_doe@example.com
SUMMARY:*** REMINDER: SEND AGENDA FOR
  WEEKLY STAFF MEETING ***
DESCRIPTION:A draft agenda needs to be sent out
  to the attendees to the weekly managers
  meeting (MGR-LIST). Attached is a pointer
  the document template for the agenda file.
ATTACH;FMTTYPE=application/msword:http://
 example.com/templates/agenda.doc
END:VALARM
メールアラームの例。TODOの終了日の2日前に送信され、繰り返しは無し。 メールは、タイトルと、本文、添付へのリンクあり。



次は、カレンダープロパティについてですね。





ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。