編集(管理者用) | 編集 | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴
== o ==
ねこまたや web出張所
INDEX

トップページ
お知らせ
twitter
お道具箱
技術資料と雑談
ライブラリ
雑貨や(ダウンロード)
最近の更新
ねこまたやについて

twitter

ねこまたやのついった

企画モノ

psAxe情報ページ
自主制作アニメ
ぽこあぽこ られんたんど


あやかしあやし
エフェクトネタ帳



りまぴん
AE エクスプレッション
レンダー乙女とか
簡易版XPSリンカ
おまけギャラリ

BBS

ねこまたやBBS
開発室BBS

Language



開発室みたいなものでしたが
spamアクセスがはげしいのでページは凍結中です。
書き換えは管理人のみが可能です。
Nekomataya/2016

ダッシュボード - Dashboard(MacOSX)


目次

Dashboard(MacOSX)

あー、Dashboard Widget関連の話題

MacOX(Tiger)以降の環境には、"Dashboard Widget(ダッシュボードウィジット)"と呼ばれるダイナミックHTML+Javascriptで作成されたツールを実行する "Dashboard(ダッシュボード)" なる環境があります。

ここのところ、Javascript+DHTMLは、「お気に入り」なので手を付けることにシマシタ。

まずは、ダッシュボードの仕組みを見てみるぞい。

 Tigerを起動してログインすると標準状態ではダッシュボードが自動でドックに入ります。

ダッシュボードアイコンをクリックするか、キーボードショートカット(標準 F12)でデスクトップが暗転して、アップルらしいお洒落デザインの小物がぱらぱらと現れます。

初回の呼出時には、各小物アプリの初期化が行われますので私のマシンだとちょっと待たされます。現行の速いマシンなら気にならないかも。

自動車のダッシュボードがイメージなんだねきっと。日頃よく使う小物や計器が手の届く位置に配置されて使い勝手が「ウマー」なのでしょう。

で、これってやっぱりウェブブラウザなんですね。Widgetの実行に特化したウェブブラウザ。

ダッシュボードのWidgetは、前述の通りDHTML+Javascriptで書かれたミニアプリです。 通常のウェブブラウザで実行する場合との差は、現在私が認識しているだけで次のような点があります。

クオーツ拡張が使える。
クオーツを使用した画面描画が出来る。…みたいである。サンプルのWidgetにはきれいにアニメーションする針式の時計などがある。秒針が一秒毎に「モドシ」付きで動く…このアクションかけない人結構多いんだ。

サブウインドウが開けない
どうも、なんだか結構一般的なブラウザのオブジェクトに制限がかかっている。具体的には以下のオブジェクトは動かない。エラーにはならないけれどアクセスしても「なしのつぶて」。
window.open()当然close()とかもダメだと思います。windowオブジェクトのプロパティも書き換えできないか、または書き換えても反映しないようになっているようだぞぉ。
alert() confirm()モーダルパネル類はダメみたい。どうもアップルでは?ブラウザっぽいのは禁止らしい。

Default.png がないと起動できない
windowオブジェクトにベースとなる画像が存在しないと起動しない。Widgetの起動プロセスで、全てに先行してDefault.pngをロードして、そのサイズでウィンドウオブジェクトを初期化している模様。どうもいまのところそんな仕様っぽい。後からウィンドウサイズなど変えようとしてもダメ。

いろいろ「出来ない探し」をしてしまったが、困るかといえばそれほど困らない。 環境の目的としては「さっととりだして、使ったらぱっとしまっちゃうツール」という位置づけなので↑の制限は、それほど気になりません。

んが、っと とりあえず実際に何か作ってみるのが覚えるのにいちばん早そうなので、以前作ったストップウオッチをダッシュボード対応させてみました。↑こんなカンジ。

普通のブラウザでも動くようにしてあります。お試しはこちらをドゾ http://www.nekomataya.info/tools/nasSTW/nas_STW.html

作り方、メモ

まず、

一般的なブラウザで動くドキュメントを作成する。

 …これは個人的な要件。
 ダッシュボードのみがターゲットなら考慮不要
 デバッグとか調整などもサファリだけでやればよろし。

ダッシュボードで動作させるためのドキュメントは以下の点に注意。

ウインドウサイズは、固定でダイナミックに変更しない。

	当然フォント等も固定サイズがよろしい

複数ウインドウを使わない。(裏面は使えるが、同時には見れない)

	複雑なアプリケーションはダッシュボードに向かない

ウインドウ同士の通信は考えないほうが良さそう。

	ダメっぽい

特殊リソースを準備

以下のリソースが必要っぽい

デベロッパツールをインストールするとサンプルファイルと一緒にスタブが用意されているので、これをコピーして使用することにする。

パスは

 ''/Developer/Examples/Dashboard/Sample Code/Blank Widget/''

Default.png
最初に画面(ウインドウ)を初期化するファイルらしい。起動時に表示されてドキュメントの初期化が終わるまで表示されている。この画像ファイルの外側の領域は、後でドキュメントで指定しても表示されない。制作中は、ドキュメントで使用する領域の最大範囲の真っ白な画像でも一応足りる。…が、それでは格好悪いので出来上がったらドキュメントをキャプチャした絵と差し替えておくのが吉。
Icon.png
これはダッシュボード管理の時に参照するアイコン。正方形。普通にドキュメント用のアイコンを作ろう。サイズは128px×128pxみたいだぞ。
Info.plist
どのファイルをスタートファイルにするか書いてある。そのほかの記述もファインダーで情報をとった時などに参照されているみたい。こんな感じ↓
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDisplayName</key>
	<string>FrameTimer Widget</string>
	<key>CFBundleIdentifier</key>
	<string>nekomata_ya.widget.animatorFrameTimerWidget</string>
	<key>CFBundleName</key>
	<string>AnimatorFrameTimer Widget</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>CloseBoxInsetX</key>
	<integer>5</integer>
	<key>CloseBoxInsetY</key>
	<integer>5</integer>
	<key>MainHTML</key>
	<string>index.html</string>
</dict>
</plist>
version.plist
まだよく分からない。とりあえず元からあるファイルをコピーしてみる。これ↓
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildVersion</key>
	<string>21</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>ProjectName</key>
	<string>DashboardSDK</string>
	<key>SourceVersion</key>
	<string>40000</string>
</dict>
</plist>

一つのフォルダにまとめる

必要なリソースを一つのフォルダ(ディレクトリ)にまとめて格納。

フォルダの直下には上の特殊リソースが必要。

コーディングやらデバッグは、その状態でスタートファイルに対して行う。…いと普通

ダッシュボードウイジットにする。

というとなにか特殊なビルドが必要な気がするが、そんなことはない。

フォルダの名前に .wdgt を加えてやるだけ。

	○○
	 ↓
	○○.wdgt

一応、名前を変えようとする時点で

「その名前にすると一つのファイルのように認識されるが良いのか?」

という旨の警告が出るけど、それこそ望んでいることなので当然「OK」

サフィックスを追加するとシステムは自動的にアプリケーションバンドルだと認識するのでそれ以降はダッシュボードウイジットとして振る舞うようになる。

MacOSX(Tiger以降)以外のプラットフォームでは、サフィックスのついた普通のフォルダにみえるので、そのままコーディングしても問題なしです。

インストール

名前をウイジットになったフォルダをダブルクリックするとファインダがインストールしてくれます。

指定のウイジットを専用の

 ~/Library/Widgets/ 以下のディレクトリ
領域に「移動」してウイジットとして動作するようになります。

別段、ここに直接ファイルを作成しても良いみたい。

アンインストール

上の場所からウイジットを取り除くだけ。

ウィジット環境にウイジット管理ウィジットがあって、これを使うと「ごみ箱」へ移動してもらえます。

NeXT以来のおなじみアプリケーションバンドルでした。

アップルのサイトをみた

http://www.apple.com/jp/downloads/dashboard/

順番が違う! ここは先に見ておけ! …ヘイヘイ

自分で突っ込んでみる。すっかり忘れて最近見ていなかった。

http://www.apple.com/jp/downloads/macosx/submit/installers.html

Widget を単体でzip圧縮しておくと、ダウンロードしただけでSafariがWidgetをインストールしてくれるらしい。

今度やっておこう…

…試してみた。

この機能を使用するためには、Safariの環境設定で「ダウンロード後、"安全な"ファイルを開く」にチェックが入っている必要がある。

この機能、私は日頃止めてあるんだ…はは、最初ナニも起きなくて「あれ?」っと思っちゃったのはナイショダ