コンポーネントプロパティ [iCalendar]
さて、続いてコンポーネントプロパティについてです。このプロパティがデータの中核を成すだけあって、かなりでかいですねぇ・・。なんか、ざ~っとやってしまいたい気もしますが、どうしましょうか・・。
この章ではコンポーネントプロパティの定義が書かれているのですが、まず、次の8つにカテゴリ分けされている様です。コンポーネントごとと言うわけではないですね・・。
以上、44個もプロパティがありますね。これまでの様に一つ一つ見てたら終わりが無さそうなので、ちょっとやり方を考える必要がありますねぇ・・・。
つづく。
この章ではコンポーネントプロパティの定義が書かれているのですが、まず、次の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)。
どんなのがあるのか、表にしときます。詳細は次回以降で。
・・・次週以降、それぞれを見て行こうかと思いましたが、それほど重要な要素でもないですねぇ・・。3.7はこの辺でやめときます。
「カレンダープロパティ」とは、iCalendarオブジェクト全体に適用される属性で、カレンダーコンポーネント内には現れないとのこと。「BEGIN:VCALENDAR」の行より後、任意のカレンダーコンポーネントの前に書くべきとのことです(SHOULD)。
どんなのがあるのか、表にしときます。詳細は次回以降で。
CALSCALE | ぱっと見、カレンダーの使用している暦(「こよみ」、なんとか暦とか)を指定するものですかね・・。 |
METHOD | 表記法?具体的な値は他の仕様を見ろとか・・。 |
PRODID | iCalendarオブジェクトを作成した商品(アプリ?ライブラリ?)の識別子を記載。 |
VERSION | iCalendarの仕様バージョンと適用範囲(?)。この仕様の値は「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」を選択しろとのことです。実際に私が行った手順は下記の通りです。
「Next>」ボタンを押すと、下の画像の通り、いくつか設定が必要そうな画面になりました。
ここの説明も欲しいんですが・・
この画面で設定した内容は下記の通りです。
順序は私が操作した順です。特にこの順じゃないといけないとかではないでしょう。「Finish」がデフォルトになってるので、そのまま「Finish」を押します。
これで、Eclipseのパッケージのところに「Snake」のプロジェクトができました。
中身を広げてます
この後の説明が無いですねぇ・・。仕方が無いので、適当に試したところ、下記の手順で実行ができました。
メインのソースを開いて実行
これで、えらい時間がかかってますが、Androidが起動しかけている様です。で、しばらくして、この画面。
う〜ん・・・、無視
とりあえず「Force close」をクリックしたところ、Snakeが起動した様です。
無事起動
で、Play!
とろい・・・
超スローな動作ですが、とりあえずは動いた様です。オンフックするとロック画面に戻ってしまったので、エミュレータでは、eclipseから実行した(要するに自分で開発中の)アプリのみしか動かせない様です。
ちなみに、一連の動作でConsoleパネルに出ていたログは次の通りです。
なんか警告が出てますね・・
まあ、何となく動かす事ができましたが、この動作速度では、実際のデバグには使えないですねぇ・・。後、画面が縦長なのが気になります。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
今回はエミュレータで動作を見るところまでやってみる事にします。
*
久々に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>」ボタンを押すと、下の画像の通り、いくつか設定が必要そうな画面になりました。
ここの説明も欲しいんですが・・
この画面で設定した内容は下記の通りです。
- 「Project name」に「Snake」と入力
- 「Contents」内の「Create Project from existing sam...」を選択
- 「Build Target」内の「Android 2.1-update1」にチェック
- 「Contents」内の「Samples」から「Snake」を選択
順序は私が操作した順です。特にこの順じゃないといけないとかではないでしょう。「Finish」がデフォルトになってるので、そのまま「Finish」を押します。
これで、Eclipseのパッケージのところに「Snake」のプロジェクトができました。
中身を広げてます
この後の説明が無いですねぇ・・。仕方が無いので、適当に試したところ、下記の手順で実行ができました。
メインのソースを開いて実行
- 「Package Explor」から「Snake」→「src」→「com.example.android.snake」→「Snake.java」をダブルクリック
- ツールバーの「」をクリック
これで、えらい時間がかかってますが、Androidが起動しかけている様です。で、しばらくして、この画面。
う〜ん・・・、無視
とりあえず「Force close」をクリックしたところ、Snakeが起動した様です。
無事起動
で、Play!
とろい・・・
超スローな動作ですが、とりあえずは動いた様です。オンフックするとロック画面に戻ってしまったので、エミュレータでは、eclipseから実行した(要するに自分で開発中の)アプリのみしか動かせない様です。
ちなみに、一連の動作でConsoleパネルに出ていたログは次の通りです。
なんか警告が出てますね・・
まあ、何となく動かす事ができましたが、この動作速度では、実際のデバグには使えないですねぇ・・。後、画面が縦長なのが気になります。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]
前回の続きです。こまめに分割する様な内容でもないんですが、まあ、ご了承を。
あまり、いい具合では無いのですが、今回も仕様に書かれている内容を列挙して行きます。
CUAのくだりがよく理解できてないです・・。後、最後の方は前の方の記載の繰り返しでした・・。
実装の際、信用のできない提供元からのアラームコンポーネントの扱いは注意深く検討すべき。自身でセットしたもの以外のアラームコンポーネントは無視するなどの対応も妥当だとのこと。
以下が列挙されていた例です。
次は、カレンダープロパティについてですね。
あまり、いい具合では無いのですが、今回も仕様に書かれている内容を列挙して行きます。
- 「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日前に送信され、繰り返しは無し。 メールは、タイトルと、本文、添付へのリンクあり。 |
次は、カレンダープロパティについてですね。