2011年12月3日土曜日

[Glaeja] Glaeja開発者kanitawaからのお願いをお読みください

え~、季節ネタってことでw 要するに『Glaeja』の今後と愚痴です。


サイズ2以上のウィジェットの描画サイズを変更するかもしれない

現在のGlaeja(ver.1.6.3)では、ウィジェットサイズと画素(dp)数は、1×1が80dp×100dp、2×2が160dp×200dpと、(80dp×100dp)を基本とし、大きなサイズはその整数倍、というふうになっています。

さて、4×4に分割されたホーム画面に、Glaejaの「1×1」のウィジェットを2つ縦に並べ、その横に「1×2」のウィジェットを1つ置いてみましょう。

端末がQVGA(320x480)なら2つの「1×1」は縦に、「1×1」と「1×2」は横に密着し、「1×1」と「1×2」の上下はピッタリ揃います。

ところが、よくあるWVGA(480x800, 480x854)だと、2つの「1×1」は隙間があき、「1×1」と「1×2」は横に密着しますが、「1×1」と「1×2」の上下はピッタリとは揃いません。

…スクショがないと何言ってるかわかりにくいとは思いますがw

ホームアプリの多くは、端末解像度の縦横比がQVGA(320x480)の2:3と異なる場合、ウィジェット配置に隙間を空けるようになっており、サイズ2以上の場合には、その隙間分だけウィジェットの画素数が拡張されるわけです。

Glaejaではこの「隙間分だけウィジェットの画素数が拡張」を考慮せず、単純に「整数倍」としているため、「1×1」と「1×2」の上下がピッタリとは揃わない、ということが起こります。

ところが、この隙間が何dp(px)かというのは、ホームアプリや、その分割数によって異なり、それはホームアプリ外から直接に知ることは不可能なため、「ウィジェットの画素数を拡張」は簡単にはできません。

この問題をクリアするため、いくつかのウィジェットアプリでは「実際にウィジェットを置いて」みることによってウィジェットのホーム画面における配置情報を取得する、ということが行われています。

Desktop VisualizeR』では『DVRSizeConfigTool』というAdd-Onウィジェットを、また『Zoom』では『Zoom Calibration』というウィジェットをホームに置くことで、配置情報を取得し、隙間ピクセルを計算しているようです。

…で、長くなりましたが、Glaejaもいずれこのようにするかもしれません。

ただ、こうすることによるメリットは、
  •  複数のウィジェットの上下左右が揃って見た目美しい
のですが、デメリットとして、
  • ウィジェットを置く前に(一度だけとはいえ)キャリブレーションが必要
  • これ以前のバージョンで作ったスキンの表示がズレる
  • キャリブレーション用ウィジェットを開発するのが面倒
という問題もあるわけですw

まぁ多分「超面倒くせぇ」んでやらないとは思いますが、「こうなるかも」とだけはお伝えしておきます。


要求する権限を増やすかもしれない

Glaejaでは、現在のところ(ver.1.6.3)
  1. INTERNET(完全なインターネット アクセス)
  2. ACCESS_COARSE_LOCATION(おおよその位置情報)
  3. ACCESS_NETWORK_STATE(ネットワーク状態の表示)
  4. WRITE_EXTERNAL_STORAGE(SD カードのコンテンツの変更/削除)
  5. ACCESS_WIFI_STATE(Wi-Fi 状態の表示)
という5つの権限許可を要求しています。
内容は、1. がAdmobに必須および天気情報のXML取得、2. 3. がAdmobの地域密着型広告配信のため、4. がスキンやイメージ・フォントの保存のためです。5. は、いずれWifi電波強度を取得・表示しようとあらかじめ権限許可を入れてあったのですが、まだ実装してませんw

今後のバージョンアップで実装する機能によっては、もしかしたら以下の権限を新たに要求するかもしれません。

  • RECEIVE_SMS(SMS の受信)

    Glaejaはver.1.6.2でGmail着信通知に対応しました。このときは権限要求は不要だったのですが、これと同じように「SMSの着信通知」を受信するには「RECEIVE_SMS」の権限が必要です。

  • READ_CONTACTS(連絡先データの読み取り)

    上記と同様に「不在着信」を通知するには、通話ログから着信履歴を漁らないといけなく、そのためには「READ_CONTACTS」の権限が必要となります。
    …なぜ着信履歴が「連絡先データの読み取り」になるのかは不明ですが……

世の中には『陰謀論(笑』のお好きなのか、要求する権限に「INTERNET」とか「READ_CONTACTS」が入ってると、やれ『スパイウェアだ!』とか『個人情報ぶっこ抜いてどこかに送信してるんだ!』とか喧しい方々がおられます。怪しいと思うのであれば『インストールせず使わない』という選択肢もあるのに、チマチマと権限削除してグレーな使い方をしてドヤ顔する……

そんなアホには付き合ってられないので、これらの権限はできれば入れたくないのですが、もしかしたら、何かの気の迷いか嫌がらせで入れるかもしれませんので先にお伝えしておきます。


あなたの要望は叶えられないかもしれない

※※※ ここからは人によっては不愉快と感じられる記述がありますので、お読みになられないことをお勧めします ※※※

Glaejaに関する機能追加や仕様変更のご要望を、メールやBlogコメントで直接いただいたり、マーケットレビューや2chなどのカキコミで見かけたりします。また、私はTwitterをやっていませんので、そちらから連絡を受けることはないのですが、いくつかのAndroidアプリ紹介サイト(ココココ)では、アプリ紹介に併せて関連するツィートを載せてるものがあり、そういうのでGlaejaに関した要望に類するツィートを見かけることがあります。

で、それら要望に関してですが、以前のエントリにも書きましたが、基本的に『希望された機能を、すぐにそのまま追加する』ことはありません。

バグ報告には可能な限り即応しようとは思っていますが、それでもこちらの環境(エミュ・実機)で現象確認をしてからの対応になります。

機能追加や仕様変更などの要望は、「その内容に私自身が納得」しない限り、実装することは決してありません。私の中に『Glaejaとはこうあるべきだ』というイメージがあり、それを決めることができるのは私だけだからです。

ですから、あなたがいくら強く望まれようが、私が納得しないかぎり、その機能の追加や仕様の変更はありません。

ですので、機能追加や仕様変更のご要望をお出しになられるのであれば、「あなた個人がそれをどれほど強く願っているか」をお書きになられるのではなく、「それを実装することが私(および使用者すべて)にとってどれほどステキか」というように、私を説得するように書かれるのがよろしいかと思います。

それと、できましたら「(もしあなたが日本人なら)ご要望は平易な正しい日本語で」書いてください。

ここで1つ1つあげつらうのは失礼にあたるのでやりませんが、「よろしくお願いします」の前文に、一見したところお願いする理由とは思えない文が書かれていたり、その人と何か約束をしたわけでもないのに「自分はここまでやった、後はお前が頑張るだけだ」みたいな書き方されたり……

言語を扱うプログラマというのは、こうした程度のことでヤル気が簡単になくなるものなんですw 特に金銭授受のないフリーなものの場合には。

最後にもう1つ、「Twitterで要望をいくらつぶやいても意味ありません」。
私はTwitterをしておりませんので、Twitterで要望をつぶやいても、それは「私のいない所で私に聞こえないように話している」のと同じです。なので、それに応える義理は私にはありません。あなたのつぶやきが何らかのルートを通って私のところまで来ることがあるかもしれませんが、それでも直接頼まれたわけでもないので一緒です。

では最後になりましたが、ご要望がありましたらメールかBlogコメントで私までご連絡お願いします

6 件のコメント:

  1. カタツムリ@@2011年12月8日 21:31

    kanitawa様

    アップデート有難うございます。

    >「よろしくお願いします」の前文に、
    >一見したところお願いする理由とは思えな文……

    表記の一文、私だと思います。
    色々演算子も実装されて、うれしくて、コメント欄に書くようなことでもない「自分はここまでやった」的なことを書いてしまって、、、

    ごめんなさい。

    >私の中に『Glaejaとはこうあるべきだ』という
    >イメージがあり、それを決めることができるのは
    >私だけだからです。

    ・・・おっしゃる通りです。

    今後も、Glaeja のイメージを膨らませて、
    表現の可能性を大きくしてください。

    返信削除
  2. >>カタツムリ@@ 様
    > 表記の一文、私だと思います。

    残念(?)ですが違います。あの2つはそれぞれ別の方です。

    > 表現の可能性を大きくしてください。

    そういや、今回のVUで入れ忘れた機能があるんですが、、、

    「@.../.../\R@(該当部分文字列をスタック最上段の数値の回数だけ反復し、それに置換する)」

    これを実装すれば、「POW」で数値デカくなっっちゃって有効数字がズレる問題は解決するはずです。

    …ただ、「毎日アップデート」は避けたいので、週末くらいに入れようと考えていますので、しばらくお待ちください。

    返信削除
  3. カタツムリ@@2011年12月8日 21:50

    >>kanitawa様

    >「@.../.../\R@(該当部分文字列をスタック
    >最上段の数値の回数だけ反復し、それに置換する)」

    >これを実装すれば、「POW」で数値デカくなっっ
    >ちゃって有効数字がズレる問題は解決するはずです。

    有難うございます。

    話はかわりますが、先日の「$d$-1」と
    閏年の100年周期、400年周期は、
    クリアできました、、、
    Glaejaの演算子は、すばらしいです。

    返信削除
  4. >>カタツムリ@@ 様
    > クリアできました、、、

    うぉ、そりゃスゲェ

    > Glaejaの演算子は、すばらしいです。

    すばらしいのは「Glaejaの演算子」ではなく、「スタック演算器」という演算システムと、それを成り立たせている「スタック」という概念ですね。さすが「IEEE Computer Society Pioneer Award」受賞しただけのことはあるなぁ。

    返信削除
  5. カタツムリ@@2011年12月9日 0:07

    >>kanitawa様

    >「スタック 演算器」と いう 演算シ ステム と、
    >そ れを 成り立 たせて いる「 スタック」 という 概念で すね

    そんな凄いシステムと概念だったんですね!
    僕は、プログラムを利用して表現する側の人なので、
    プログラムを、作る側の人をいつもリスペクトしています。

    「$ d$ -1」は、とてもながくなるので、閏年についての条件式

    通常の年@p@閏年@p@
    $yyyy$@p@4@p@mod@x@0@p@==@x@
    $yyyy$@p@100@p@mod@x@0@p@<>@x@
    $yyyy$@p@400@p@mod@x@0@p@==@x@
    +@x@+@x@2@p@<>@x@
    tern@x@

    これで、クリアです。
    算術式は長くなりますが、数式化できるものは
    表現可能なのでは、、、

    返信削除
  6. カタツムリ@@2011年12月9日 0:29

    すいません…
    2 @p @<>@x@は間違いで
    0@p@==@x@が正解です。

    返信削除