ホーム画面カスタマイズ

KLWP/KWGTのmindexが意外と便利!スケジュールや週間カレンダーの作り方が簡単に

先日、久しぶりに5ちゃんねるの「Androidホーム画面作成質問スレ」を読みました。その中でカレンダーの作り方として式が例示されていたのですが、そのなかでsi(mindex)というものが使われていました。

そのときは見慣れないものだな、何だこれ?と思ったのですが、普通にけっこう前からある「親モジュールから見たこのモジュールの番号」でした。前々から特に使いみちが思い浮かばなかったものだったのですが、実はかなり便利なものです。

とりあえずmindexの使いみちと練習でスケジュールリストと週間カレンダーを作ってみました。

mindexの基本

mindexはsiで表示するFunctionsの1つ(System info)です。

$si(mindex)$で「親モジュールからみたこのモジュールの番号」を表示します。表示されてるモジュールのリストで上から何番目、みたいなものです。ちなみに0始まりです。

$si(mindex, 1)$と数字をつけると、数字の数だけ上の階層(親)の番号となります。

上の例でいうと、ルートには「テキスト、グループ化(並べる)、テキスト」と並んでおり、$si(mindex)$の値はそれぞれ上からの順番で0,1,2となります。

グループ化(並べる)の中にあるテキストモジュールも、$si(mindex)$の値はそれぞれ上からの順番で0,1となります。ここで$si(mindex, 1)$とすると、1つ上の階層の、自身が所属するモジュール、つまり「グループ化(並べる)」の番号なので1となります。

スケジュールリストで利用

このmindexをどういう場面で使うのか。それは「繰り返しコピペで増殖させて一部の数字だけ書き換える」というものです。わかりやすい例としては、スケジュールリストがあります。

次の予定のタイトルを表示するには$ci(title, 0)$を使います。2番目の予定は$ci(title, 1)$です。赤い数字部分が増えていきます。

私は今までこういうものをモジュールのコピペで数字部分だけ書き直していました。しかし、この数字部分をsi(mindex)に置き換えて$ci(title, si(mindex))$とすれば、1つ1つ書き換えなくても同じモジュールをコピペしていくだけで済みます。


実際にはスケジュールリストも「グループ化(並べる)」の入れ子になると思いますが、$si(mindex,1)$で1つ上の階層の順番も取得できるので問題ありません。

簡単なサンプルを作ってみました。以下からコンポーネントをダウンロードできます。

zooper-iconschedule_sample.komp
制作:orefolder

サイズ:1,096KB
ダウンロード

週間カレンダーに使ってみる

同じようにmindexを使って週間カレンダーを作ってみました。「今日」を含む月曜日始まりの1週間を表示します。あくまで簡単なサンプルなので予定の表示などは対応していませんが、これを改造すればそういうのも可能だと思います。


これも各曜日部分は個別に作らず同じものをコピペしてます。日の部分の式は以下の通り。

$df(d, dp()+(86400*(si(mimdex, 2)-df(f)+1)))$

  • dp()は現在時刻を示すものです。日付を計算するときに使うもので、これに+10すると現在の10秒後を表示します。
  • 86400は1日、24時間を秒表示したもの。24時間は86400秒です。
  • df(f)は今日の曜日を数字化したものです。(月曜日=1で日曜日=7)

上記の式により、例えば今日が10月14日水曜日で、2番目のモジュールだとしたら、si(mimdex, 2)は1となり、df(f)+1は3なので、si(mimdex, 2)-df(f)+1は1-3+1で-1です。86400を掛けて-86400、dp()に足して「まる1日前」の日付を表示します。

…うん、文にするとワケわからないですね。

まぁ、とりあえず、日付の計算するときは$dp()$が便利ってことです。

一応サンプルで作ったコンポーネントをおいておきます。

zooper-iconindexweek.komp
制作:orefolder

サイズ:252KB
ダウンロード

まとめ

今回は別に新しいものでもなく、単に今まで私が使ってこなかったけど実は便利なものを紹介しました。mindex、なかなか使える子です。

過去に作ったものもこれを使えばもうちょっと整理できそうです。そういえば、昔書いた記事でもいまだともっと便利簡単にできたりするものもあるので、そういう記事の修正も死体ですね。(やるとは言わない)


KLWPの使い方についてはこちらのページにてまとめています。使い方に困ったときなど、こちらのページも参考にしてください。

Random Posts

今なら半額の990円!アレクサで電源をオンオフできるスマートプラグ「Amazon Smart Plug」販売開始!
北斎【ホーム画面コンテスト2020】
BIGLOBEモバイル、OPPO Reno AやZenFone 6などスマホ4機種タブレット1機種をラインアップに追加
Twitterでツイートの予約(スケジュール)設定が可能に!
Spigen、対象商品が2,020円均一の「2020(フレーフレー)キャンペーン」をAmazonにて開催
最も利用してるQRコード決済サービスは「PayPay」次いで「楽天ペイ」「d払い」【MMD研究所調査】
ニフ姉さん退職でNifMoのTwitterアカウントが運用停止→5/10にアカウント削除予定
夏をもっと特別に。Pixel 3 128GBが2万6000円引き、Pixel 3 XLが3万円引き!7/18まで
auが中古端末でもMy auからSIMロック解除できるようになったのでやってみた!もちろん手数料無料
OPPO、10倍ハイブリットズーム搭載のハイエンドスマホReno 10x Zoomを発表!7/12発売、9万9880円
LINEモバイル、2月19日より新プランを開始!音声通話SIM 3GBで1,480円~
不思議のダンジョン 風来のシレンが10万本突破記念で860円オフ!Androidアプリセール情報
Pixel 3a レビュー:「私の理想のミドルレンジ」を問いかける、優秀だけど足りないものもあるスマホ
UMIDIGI X レビュー:有機ELに画面内指紋センサー、過度な期待をしなければ悪くない2万円のサブ向けスマホ
OPPO A5 2020が音声SIMセットで1円!goo Simsellerのスマホ祭が開催!