FrontPage  Index  Search  Changes  Login

Giraffe 開発ノート

2008/06/25 (Wed)

カテゴリについて考える。ベースは CE Fan。それぞれ思いつくアプリの例も書く。意見募集。

  • PIM(予定表・日記) → 予定表・日記
    • OffisnailDate 等、Outlook置き換え系アプリ
  • エディタ・文書作成支援関連 → エディタ・文字入力支援
  • スピーカー・音声・音楽 → 音声・動画
    • TCPMP、NicoNavi等
  • コンバート・同期 → データ変換
  • 表計算・データベース
  • 通信関連
    • EasyDial等
  • 画像関連 → 画像・カメラ
    • いまどこカメラ等
  • ブラウザ
    • MZ3.i、CompactMirage等
  • メーラー
    • nPOPQとか
  • チャット・メッセンジャー
    • EbIRC、Live Messengerクローン等
  • カスタマイズ・デスクトップ → 今の世の中Todayと同義なので削除
  • レジストリ・システム → システム・カスタマイズ
    • Pocketの手、XcrawlEx等
  • テーマ
  • Today
  • ゲーム
  • 時計・カレンダー・電卓
  • ファイラー・検索
  • 圧縮・解凍
  • 外出時便利
  • ライブラリ
  • その他

2008/06/22 (Sun)

Rails学習コスト高杉。無理。CakePHPに戻しました。

クライアントアプリ側についてはカーズV3さんにお手伝いしていただくことになりました。某Phoneまでに間に合ったらいいなあ。

2008/05/26 (Mon)

WILLCOM 03 の発売日に絶望した!間に合わないよ!!

とりあえず、アプリの登録と編集、バージョンの登録と編集ができるようになった。操作性に難があってどうしたもんか・・・。

動く物をちょっとずつさわってもらえるようになってます。が、バリデーションがまだちゃんと入ってない(問題)ので、#伊勢的新常識 でURL流してます。

2008/05/21 (Wed)

habtm のある環境上で履歴をとる方法を考えてみた。Giraffeの場合、アプリの下に対応機種や対応OSがあるという感じで、主従関係が明確なので、以下のような方法でどうだろう。

環境整備

  • Appli、Platform があり、has_and_belongs_to_many で結合されてる。
  • Version もあり、Appli と has_many で結合されている。
  • AppliHistory AppliPlatformHistory、VersionHistory を作る
  • Appli、AppliHistory、AppliPlatformHistory、VersionHistory に appli_revision を定義
    • Appli.new したときの appli_revision は 0

履歴の保存(Appliモデルの登録・更新時)

  • Appli モデルに create_history メソッドを定義
    • appli_revision を +1 する
    • Appli の内容を AppliHistory に新規で追加する。
    • Appli.platforms や Appli.versions を列挙して AppliPlatformHistory、VersionHistory に保存する。
  • Appli モデルが保存された直後に create_history を呼ぶようにする?
    • 無限ループどう解決するか。

履歴の保存(Versionモデルの更新時)

  • Version モデルに更新が走るときは、呼び出し元の処理で対応する Appli を探して Appli.create_history を呼ぶ
    • 無限ループ防止のため?

できれば、関連するところが変更されたらAppliを頂点とした全体が保存されるようにしたいなぁ。

2008/05/20 (Tue)

リリース済みバージョン一覧をとりあえずでっちあげた。微速前進。

URLの設計重要やねこれ。とりあえず今考えてるのはこんな感じ

アプリ検索
/appli/list
アプリ表示とか
/appli/show/[:id]
バージョン一覧
/appli/versions
バージョン単体表示(Ajax呼び出し)
/appli/version/[:id]/[:version_number]
version_number はバージョン数値(実数)
ダウンロード
/appli/download/[:id]/[:version_number]

モデルの has_many に order をつけとくと、子を取得するときにソートしておいてくれる? http://d.hatena.ne.jp/t_fujii/20080416/1208346027

編集部分は Ajax にしたい。http://wiki.fdiary.net/rails/?AjaxOnRails

Version モデルのアップデートをどうやればいいか悩んでるところ。

2008/05/19 (Mon)

画像のアップロードに対応。file_column プラグインを使った。横幅だけの拘束を入れるときは "240x" でOK。

http://d.hatena.ne.jp/zariganitosh/20070224/1172299936

あと、CABインストール名の入力に対応して、エラー表示とフラッシュメッセージのスタイルシート書いた。

2008/05/18 (Sun)

アプリ情報の基本情報の入力ができるようになった。

タスクまだまだ残りすぎてて涙目。完成した頃には絶対みんな忘れてる。

2008/05/14 (Wed)

配信単位の名前について

最初「パッケージ」とか「ソフト」とかいろいろ悩んだけど、ケータイで一般的に普及している名称から「アプリ」でいくことに。「iアプリ」とか「EZアプリ」とか。 「ソフト」っていうより、「アプリ」のほうが通るイメージ。

WMのクライアントは「Giraffeアプリカタログ」とかにしたらどうかな?

アプリの登録の流れについて

アプリごとに「アプリ情報」1つと「バージョン情報」を複数保持するわけですが、この編集の遷移をどうするかで悩んでました。

最初は、以下のような遷移を考えてました。(緑色は画面表示するアクション、水色は処理をしてリダイレクトするアクション、アクションの中の _〜 はビューの部品のやつ)

appli_01.png

アプリ情報とバージョン情報を同じ画面で一気に編集する形です。ただ、この方法だとバージョンの部分の行追加や削除について考えるのがいろいろとめんどっちい。第一アプリ情報って一回登録したらそれほど変更はいることってないよなーと思い、考えたのがこの遷移。

appli_02.png

初回登録時はアプリ情報登録後、バージョン情報一覧画面(AJAXによる編集機能あり)へ移動して入力。新バージョン公開時もバージョン情報一覧画面から編集。アプリの情報変えるときは普通の編集画面へ(でもこの画面はあまり使わなさそう)。

アプリ情報編集とバージョン情報編集を1つにつなげると縦に長くなってしまうから、それも考えるとこの案の方が良いと思うのですが、どうですかね?

2008/05/11 (Sun) サイトの大幅強化について

先にサイトをもっとちゃんとしたものにすることにした。

どんなものが作りたいのか

Windows Mobile のアプリの情報の登録、配信、ダウンロード機能の提供がメイン機能。

ぶっちゃけ Windows CE Fan ソフトウェアライブラリの焼き直し(爆) ただし、編集権減のあるユーザーは誰でもアプリ情報を追加/編集できるのが大きな違い。もっとみんなが自由に登録できる場を目指したい。

アプリごとに以下のような情報を登録します。これらは、Windows Mobile 側のアプリで読み込まれ、インストールに使用されます。

  • アプリの名前、公式サイト
  • 作者の名前、公式サイト
  • カテゴリ
  • CABインストール名
    • 「アプリケーションの削除」に登録される名前。
    • 以前の構想にあった「アプリケーションキー」。この名前でアプリの同一性を判定する。
    • レジストリにも登録されているため、これに合わせることとした。
  • アプリの説明
  • 対応OS、対応機種
    • 指定れなかった場合は制限なし、指定された場合はそのOS、機種に依存する
    • 対象はWS003SH以後のWindows Mobile搭載スマートフォンに限る
  • バージョン情報
    • バージョン数値 (実数) 0.150047 等
      • 実数値にすると、普段は 0.10 みたな表記している人が、たまたまバグが見つかって 0.10a を出したときに 0.101 として大小関係を維持できる。
      • この値をバージョンの大小比較に使用する。
    • バージョン表記 (Version 0.15 α-47 等)
      • 画面上にはこの
    • 開発版フラグ
    • 更新点
    • ダウンロードURL

公式サイトのURL以外に、関連リンクの部分にそのソフトが取り上げられているblogの記事などを掲載できます。 アプリごとに一行コメントをつけることができます。

みんなが自由に登録できる場をとはいいましたが、SPAM防止のため、ユーザーログインは必要になるのかなーとか思っています。

将来的な機能(予定)

  • ダウンロードランキング
  • ユーザーごとのダウンロードしたアプリを記録しておいて、その更新通知を配信する。(RSS,メール)

なんかVectorっぽくなってきたなぁ。

イメージ画像

image_application.png

機種のアイコンはいっちゅうさん作です。Thanks!

2008/04/24 (Thr)

Giraffe で扱う、アプリごとの情報について。

アプリケーション定義XMLファイル(Giraffeファイル)の内容

  • アプリ
    • アプリ識別コード
    • カテゴリ
    • アプリの説明
    • アプリの公式サイトURI (Array)
    • 作者の情報
      • 作者名
      • 公式サイト
      • 連絡先 (SPAMの温床なので使わない?)
    • 配布バージョンの情報 (Array)
      • バージョンシリアル
      • バージョン名
      • 開発バージョンフラグ
      • 更新履歴
      • CABファイルURL

アプリ識別コード

アプリ識別コードは、そのアプリにたいして全ての場所で共通の文字列。プライマリーキーとしての役割を果たす。

  • 命名規則
    • .NET Framework の名前空間の命名規則に準拠
      • [会社名].[アプリ名] 例:EbiSoft.EbIRC
    • 大文字小文字は区別しない。

バージョンシリアル・開発版フラグ

バージョンシリアルは、バージョンの大小関係を数値で比較できるようにするためのもの。

  • Version 1.00 とか、第9版とか、作者によってバージョン表記の方法は様々、一概に大小関係を決めれない。
  • 大小関係を比較するための数値を別に用意する。

開発フラグは、そのバージョンが開発版・人柱版であることを示す。「開発版を表示する」チェックがOFFの場合は最新版として認識されない。

例:

  • バージョンシリアル4 "Ver0.03 pre" (開発フラグON)
  • バージョンシリアル3 "Ver0.02b"
  • バージョンシリアル2 "Ver0.02"
  • バージョンシリアル1 "Ver0.01"

→開発版を表示しない環境では "Ver0.02b"が最新版、表示する環境では "Ver0.03 pre" が最新版(開発版) として表示される。

2008/04/23(Wed)

いろいろ意見をいただいた。

やはり、いろいろ不足していたものが多いので、システム全体1から作り直したほうがいいかもしれない。

ネーミングについて

Giraffe じゃどういう機能かわかりにくいので、もっとわかりやすい名前をつける。

  • 正式名称は「WindiwsMobileアプリカタログ Giraffe」とかにして、スタートメニューには「アプリカタログ」って名前で登録とか
  • 01:18 takke_bye: yumをもじってyuwmとか。

Giraffe の由来

情報配信サイトにもっと比重を置く

  • 簡単な登録。
    • Giraffe DataEditor で入力するのは作者はめんどい。
    • 一般ユーザーもサイトもってなさそう。うpろだだと限界がある。
    • どちらかというとユーザー主導でやっていくべき(wedataみたく)
    • しょぼいカレンダーみたいな感じで情報配信サイトを作るといいかも。
  • 新着アプリ、新着アップデートの配信をPCにもできるように
    • アプリごとの新着、全アプリの新着を取得できるように。
  • Vector みたいなカテゴライズ
  • メタパッケージ
    • 「いまどこナビプラグイン」という項目で、いまどこナビのプラグインをまとめてインストールするなど

ってーかそれ Windows CE FAN のソフトライブラリの車輪じゃねーの?

  • なんといっても情報量多い。一時ソースとしては良さそう
  • でもいまいち使いにくそう
    • CE FAN で API 公開してもらう(望み薄)
    • データコンバータを用意する
  • CABのアップロードに抵抗が強い人もいる
    • 広告収入目当てでソフト公開している人とか

配信サイトを独自に用意する利点

当初予定していた以下の機能に必要

  • 複数バージョン公開対応
  • 開発版フラグ(安定の最新版のほかに、開発中の人柱版の更新情報を送れる)
  • より正確な更新判定(バージョンの大小を比較するための数値と、正式なバージョン表示をわける)

その他の機能

  • はてなスター
  • アプリごとにコメント

切り離して考えるべきか

  • ユーザー管理とか出てくると規模が一気にふくれあがる。GWだけだとちょいと厳しいかも。
    • だけど鉄は熱いうちに打ちたい。
  • 管理コストとか
    • しょぼかる的ユーザー運用
Last modified:2008/06/28 15:54:35
Keyword(s):[Giraffe]
References:[Windows Mobile 向けパッケージマネージャ Giraffe]