2011年10月3日月曜日

[Glaeja] 最近の Glaeja 。

Glaeja』 ver.1.3.2(20111001a版)を公開して、デカい不具合も修正したことですし、ここで今後のバージョンアップ予定も含めつつ、Glaejaについてとりとめもなく語ってみようかと思います。


・バージョンアップの方針

バージョンアップとして、「細かなバグを取り除きつつ、今よりも省電力・省メモリに」という方針もあるんでしょうが、

短所を直すより、長所を伸ばせ

という考え方で行こうかな、と思っていますw 要するに、

もっと何でも、もっと色々

と表現できるようにしていこうかとw
まぁ、バグは見つけたり報告があれば潰せる限り潰しますし、あまりに重い・デカい機能は限度を見て実装しますが…


・機能追加の希望に対する態度

メールやBlogコメ、マーケットレビューやその他2chスマホ板とかで、色々と「~を追加してください」みたいなご意見を承ります。
ですが、基本的に『希望された機能を、すぐにそのまま追加する』ことはない、と考えてください。

その理由は、天邪鬼だからですw

そう、まるでお母さんに「はやく宿題しなさい」と叱られて「いましようと思ってたのに」と口答えする中学生のようになw

「アプリ開発は詳しくないんですが…」と書いて希望された機能の実装が、実際に不可能だったり無茶苦茶だったり、ってことは実はほとんどありません(まぁ、複雑になりすぎたり、手間かかりすぎたり、面倒くさかったり、はするんですが)。

ただ、「オレ様ちゃんの考えたデータ構造・アルゴリズム・ユーザーインターフェイスが最高で、他人の考えたのはクソ」という、ブライトさんに殴られたアムロのような考え方は、多くのプログラマに共通するものですから、どうしようもありませんw

ですから、希望した機能がなかなか実装されなかった場合には、「やっぱり無理なのかなぁ」と落ち込まずに、「このクソ作者が!」と呪詛でも吐いておいてください。

でも、けして本人には伝えないでくださいね。プログラマはガラスハート所有者なので、きっと泣いちゃいますからw


・今後の予定

「いつ頃バージョンアップする」というのは全く未定ですが、「何の機能を追加するか」はある程度ですが予定しています。
  1. 効果レイヤーの追加

    現状、効果レイヤーは[シャドウ ][グラデーション ]の2つだけですが、いくつか追加を予定しています。

    • テクスチャ
      次に描く要素レイヤーの描画部分に、指定したテクスチャを貼り付ける、というもので、これはほぼ確実に追加すると思います。

    • XFER
      それまでに描画した部分に対し、次の要素を描画する際の転送モードをイジる、というもので、これを実装すれば拙作『PieCut Battery』のような中抜き文字が実現できます。

    • ミラー
      次の要素の反転像を描画する、というものですが、これはまだアイデア段階です。

  2. エスケープキャラクタの追加と拡張

    ここは色々と希望されているのですが、とりあえず以下を予定しています。

    • wifi電波強度の追加
      実装はそんなに難しくないんですが、ちょっと悩んでるところがあって、現在放置中です。
      wifi電波強度は[dBm]という単位で表されるんですが、これ負の値になるんですよね。で、[バー ]や[サークル ]レイヤーって表現する比率が正である、という前提で作られてるので、このwifi電波強度を上手く表現できないんですよ。 [バー ]や[サークル ]レイヤーの仕様を変更するのはイヤなので、本来おかしいのですが[ASU]のような正の値を取るものを導入すべきか悩んでるところです。

    • 前方文字置換[@…@]の拡張
      このキャラクタは、指定された部分を与えられた文字列にまるごと置換する、というものですが、これを拡張して意味を持たせてやろう、と考えています。どういうことかというと、「与えられた文字列」に特殊文字を与えると指定された部分に応じて置換する文字列を変える、ってことですが、意味わかりませんねw
      つまり、『 012@0/3/\e@ 』のように「 \e 」を与えると『 twelve 』と数値を英単語に置換したり、「\k」を与えると『 十二 』と漢数字に置換したり、とかそんな感じにできたらなぁ、と考えています。
      …パーサー書くの超面倒くさいんで実装はかなり後だと思いますが…

  3. ウィジェットタップの追加

    「ウィジェットをタップしたときに設定画面に入らず、何らかのアプリを起動させてください」みたいな希望をよく承ります。ごもっともな意見だと思いますし、実際、拙作『アナログ時計職人』では既に実装している機能です。
    当然、『Glaeja』でも実装しようと開発段階初期から考えていたんですが、ちょっと思う所があって未だに実装していません。

    理由の1つは、「ウィジェットタップで別アプリ起動しちゃったら、どうやって設定画面に入るんだよ」ってことです。が、これは後述するようなインターフェイスで解決可能です。

    もう1つの理由が、「Glaejaは1つのウィジェットに時計・バッテリと色々仕込めるからには、時計部分とバッテリ部分でタップ領域を分けて別々のアプリを起動したい」というものです。この「タップ領域ごとに異なるアプリ起動」が、普通の方法では無理でして、普通じゃない方法だとかなり面倒くさい&数に制限を付けざるをえない、んですよね。で、とりあえず後回しにし続けてきた、ってのが内情です。

    まぁいつまでも実装しないのも気持ち悪いので、

    • ランチャーから起動する『Glaeja』画面に、現在表示中のウィジェット一覧を出して、そこから設定画面に入れるようにする
    • とりあえずタップ領域はウィジェット全体の1つだけにする

    で実装してみようと考えています。


・実装予定の無い機能とその言い訳
  1. エスケープキャラクタの算術演算
    欲しかった機能なんですが、実装すると文字列記述があまりに複雑になりそうなので見送りました。
    例えば、月日を『10-05』とマイナス記号を挟んで表示させるのと、「10-05」を算術演算と見なして『5』と表示させるのを、どのようにして記述し分ければイイんでしょうか?
    [$mm-dd$]なら月日として『10-05』、[$mm$-$dd$]なら算術演算として『5』とでもすればイイんでしょうか?
    しかし上のように書き分けた場合、『day:05-50%』と表示させたいときに、[day:$dd$-#P#%]と記述すると、算術演算と見なされて『day:-45%』と表示されてしまいますね。
    こういった誤解が生じないような記述方法を考えてるんですが、どうやっても複雑になってしまいますねぇ…

  2. CPU使用率の表示
    システム情報系のアプリでCPU使用率を見てると、結構な頻度で使用率が変わってることがわかると思います。
    私は、『ウィジェットは(タップとかしないで)見ただけでその時の状態がわかる』べきである、と考えています。
    そうすると、ウィジェットでCPU使用率を(それなりに)正しく表示させようとすると、数秒ごとに更新させえないといけなくなります。
    …いくら電池あっても足りませんねw というわけでCPU使用率の表示は実装しません。

  3. エスケープキャラクタ一覧の表示
    文字列を入力するダイアログをカスタマイズしてヒント表示ボタンを追加したり、ハードMenuキー押下でヒント表示させたり、色々とUIは考えられます。
    でも、結局「ヒント表示できるんなら、そのヒントをタップしたら直接入力されるようにしてよ」ってとこにいきつくと思うんですよね。
    それだったら、定型文入力のできるマッシュルームにエスケープキャラクタ一覧を記録して表示させればイイじゃん、と思うんです。
    というわけで、Glaeja側で一覧表示機能を実装することはありません。

1 件のコメント:

  1. いつも利用させていただいております。
    エスケープキャラクタの算術演算の記述方法ですが
    算術演算用のエスケープキャラクタを作って記述するのはどうでしょうか?
    例"..."算術演算
    [$mm$"-"$dd$]

    ご考慮の程よろしくお願いします。

    返信削除