Google検索

Google
 
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2008年2月10日日曜日

[dev log] DashboardウィジェットをDashcodeで作ろうかな(2) とりあえずウィジェットをデザインしてみる

しばらく間があいてしまいましたが、やっと DashCode が安定動作するようになったので、再開します。
前の記事はこちらからどうぞ。

[dev log] DashboardウィジェットをDashcodeで作ろうかな(1)

さて、今回は「体重 (kg) と体脂肪率 (%) を入力したら、そこから体脂肪量 (kg) を計算し、体重・体脂肪率・体脂肪量の3つの値を、入力した日付・時刻とともに、ローカルディスクに保存しておく」というウィジェットを考えてみたいと思います。岡田斗司夫氏の言う「レコーディングダイエット」のツールを作ろうという訳ですが、最初から高機能な物を作ろうとすると途中で(私が)挫折しかねないので、まずは単純な機能から実現していきます。なので、しない事リストを次にいくつか挙げて、高機能に走ろうとする自分の心を戒めようと思います。
    【しない事リスト】
  • 体重と体脂肪率以外は入力させない
  • ローカルでしか動かさない
  • 最低限の見た目しか気にしない
  • グラフなどの機能はこのバージョンでは作らない
  • データベース接続もこのバージョンではしない
  • その他方針から外れる機能は一切手をつけない

というわけで、ないないづくしのウィジェットですが、Excelなどの機能を使えばグラフ化できる程度にはしておこうと思います(といっても、たぶんCSVかなにか)。

  1. ウィジェットのデザイン:体重と体脂肪率を入力できるようにする

まず、お使いのMacのローカルハードディスクの /Developer/Applications/Dashcode.app を起動します。するとこんなウィンドウが開きます。

DashCode テンプレート選択

今回は単純すぎて他に適当なテンプレートもないので、「カスタム」テンプレートを使用します。「カスタム」のアイコンをダブルクリック、またはアイコンが選択された状態で右下の「選択」ボタンをクリックすると、新しいDashCodeプロジェクトが作られます。



プロジェクト・ウィンドウ左下の「ワークフローステップ」というところがあります。ここの指示に従って行くとどんどんウィジェットができると言う話なのですが、とりあえず素直にここの作業をつぶして行くことにします。


ワークフローステップの「レイアウトインターフェース」を見ると、そのなかに「ライブラリ」という項目があります。この項目の左にある三角矢印マークをクリックして、次のようなライブラリ・ウィンドウを開きます。

このウィンドウにある「部品ライブラリ」というプルダウンメニューから「テキスト」を選択すると、テキスト関係の表示/入力の部品が表示されますので、それをドラッグ&ドロップで追加して行き、表側の画面を作って行きます。私は次のような画像のものを作ってみました。

「自分の体重を記録しよう!」「体重 (kg)」「体脂肪率 (%)」「体脂肪量」「体脂肪の重さ」

各テキスト項目は一つをのぞいて、すべて部品リストの「テキスト」からドラッグ&ドロップで追加したものです。最初に合った「こんにちは!」も文字列を修正して使い回しています。体重と体脂肪率の横にあるテキストボックスは同様に「部品リスト」の「テキストボックス」をドラッグ&ドロップして追加しました。



これらの部品を整形したり配置を整えるためには、マウスで部品のでるアンカーポイント(たいていの場合、小さい丸印で部品の周囲に表されています)をドラッグすることでサイズを変更したり、部品の真ん中をクリックして移動させたりします。いくつかの部品をまとめて整列させたいときは、整列させる部品をすべて選択し、メニューバーの「調整」から「配置」「分配」を選びます。

裏面も同様に作ります。次のようにシンプルなデザインになりました。



メールアドレスをクリックするとMailが開いてメールをだせる、みたいな事もしてみたいのですが、今回は機能にいれません。次のバージョンで実装できればいいかなと考えています。

というわけで、表裏のデザインを作ってみました。次回は各種プロパティを整える作業をします。

<<前回:DashboardウィジェットをDashcodeで作ろうかな(1)

2008年2月3日日曜日

[dev log] DashboardウィジェットをDashcodeで作ろうかな(1)

MacOS XにはDashboardというウィジェット環境があって、それを開発するためのDascodeという開発環境がLeopardからついてくるようになった。これのおかげで格段に開発しやすくなった。

個人的になかなか使う機会がなかったが、思い立って健康管理用のちょっとしたDashboardウィジェットを作ってみることにした。簡単なウィジェットから始まって、できれば皆に使ってもらえるレベルまで作りこみたいと考えている。

というわけで、まずは下調べから。

Apple Developper Connection : Guides: Tools : Dashcode
…本家Appleのガイド集(英語・一部日本語訳あり)

Ascii.jp: Dashcodeをはじめよう
…アスキーの解説記事

マイコミジャーナル:【特集】Leopardを先どり - Apple Dashcodeで楽々Widget
…Happy Machintosh Developping Time (HMDT)の木下さんの解説記事

throw Life : Dashcodeでウィジェットを作成する方法
throw Life : Dashcodeでウィジェット・プラグインを導入する方法
…ウィジェットを作成しながら説明。画像が豊富でわかりやすいと思う。

とまあ、事前の知識はこの辺を網羅しておけばいいかなと思うが、不足があれば随時追加する予定。

次回は、どんなウィジェットを作るかを説明する。最初はUIのデザインからかな?

>>次回:(2) とりあえずウィジェットをデザインしてみる

2008年1月30日水曜日

[language] Objective-C, Java, Perl, Haskell, Scheme そして Ruby…興味のあるプログラミング言語の話

Mac OS X ではありがたいことに、いろいろな言語を試すことができます。
私は汎用機用の開発をしていた関係でCOBOLだとか、ツール作りでCなどをよく使う機会がありました。独立してからは Visual Basic や VB.NETや、JavaScript、Perlを使うようになりました。(さすがにMacではVisual BasicはMicrosoft Office用のものしか使えませんが…まあ、今のところはそれで十分かなぁ)

最近興味を持っているのが、RubyとHaskellとJavaScriptです。これからいじり倒して、ちゃんと使えるようになりたい!

Rubyは前々から知ってはいたものの、自分の中でみんながなぜ「イイ!」というのか理由が実感できてない。これは使い倒すことでそのうち実感できると思います。もっとも、それだけ使い倒すとなると on Rail を使って、サイトを構築してみればわかるのかなぁなどと思っています。本は「プログラミングRuby 第2版 言語編」が評判が良いようですね。買ってから気がついたのですが、原書の「Programming Ruby: The Pragmatic Programmer's Guide」と同じなんですね。両方買ってました…

HaskellはGHCがメインストリームらしいですが、Leopard用のパッケージが出ていない。なのでうちではPBG4+Tigerな感じで使っています(これがPBG4をLeopardにできない理由のひとつだったり…)。あちこちのサイトや本を覗いて思ったのですが、大学関係者には関数型の言語が好きな人が多いように思います。数学や物理の素養がある人が多いからなんでしょうか。お勧めの本は「ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門」です。私は今これで勉強中です。

Schemeは有名な"魔術師本"「計算機プログラムの構造と解釈」がありますね。これをきっかけに知ったのですが、ちゃんと理解しているとはいえないので、これも使えるようになるつもりです。SchemeはLisp系の言語ですが、私はLispには大学時代のトラウマ(?)があってちょっと敬遠気味でした。Lispは乗り損ねたので、今ひとつ苦手でした。(故中西先生の講義を受けたことがあるにもかかわらず…うう、不勉強ですみません<(__);)>)でも使えないのはもったいないですよね。苦手意識を克服するところからはじめたいと思います。(魔術師本(本の表紙が「魔術師」とか「錬金術師」に見えるのでそういわれているらしいです)は敷居が高い!いや、そんなことを言っていてはいかんのですが、他にも良書がありましたらお教えいただければ幸いです)

Perlは本気でつかうと、便利ですね。すっかりファンになりました。書き方がいろいろあって、私なぞはまだPerlらしいスタイルにはなってないけど、「"ラクダ本"プログラミングPerl〈VOLUME1〉, プログラミングPerl〈VOLUME2〉」片手にコーディングするのは楽しいです。奥が深いし、何より便利に使える仕組みがいろいろとそろっているのがありがたいです。Perlを評して「Webプログラマの接着剤」という表現を見たことがありますが(確かオライリーのHackシリーズ本のどれか)「言い得て妙だなあ」と思いました。

Objective-CはCocoaに採用されましたから、これから長い付き合いになりそうです。gccでかなりまえに採用されていたとは、Cocoaが出てくるまで知りませんでした orz

JavaはMacのプログラムを(無理やりにでも)Windows用に使えるようにできるということで、いいかも、と思います。(そういう開発スタイルがいいかどうかはさて置き)
まあ、JavaはVMを使うのがよくもあり悪くもあり…と思ってましたが、最近はマシンパワーもあがってきて、VMの性能も改善されて、昔よりは使い勝手が気にならなくなってきましたね。AWTではなく、Swingが出てきたのもいいと思います。

JavaScriptはなんといっても手持ちのブラウザがあれば試せる手軽さがいいですね。かなりいろんなことができるし、GWTのようなものを使うことで表現力が格段にアップできますね。JavaScript+Perlとかそういう組み合わせでできるのはJava EEまでいかなくてもいろいろできそうなので、そんなにPage Viewのない個人サイトでは手軽さがいいかも。PerlもMOD_Perlとかにすれば早いんですけどね…まだ自分的にはコンフィギュレーションのしかたがいまひとつ…(--;

トレンドからは数年乗り遅れている感じで恥ずかしいですが(^^;
やはりプログラミングは楽しいなと思います。これからもいろいろ挑戦していきたいですね。

追記:プログラミング言語というわけではないですが「正規表現」はわかると楽しいです。「BNF記法」も理解していると、あちこちでそういう表現を見かけると「ニヤリ」とできるので、まだの方は是非お試しください :-)