MOSA Multi-OS Software Artists

MOSAはソフトウェア開発者を支援します

  • iPhone/iPod touch アプリ紹介
  • MOSA掲示板
  • 活動履歴
  • About MOSA(English)

MOSA Developer News[MOSADeN=モサ伝]第165号

2005-06-28

目次

  • 「WebObjects Dev Report」     第11回  田畑 英和
  • 藤本裕之のプログラミング夜話 #71
  • 高橋真人の「プログラミング指南」  第69回
  • WWDC2005レポート 高橋政明          ★MOSA会員専用記事★
  • ニュース・解説                小池 邦人

「WebObjects Dev Report」  第11回  田畑 英和

 前回はWWDCのレポートをお送りしましたが、本題に戻りまして前々回に引き続きモデルファイルの作成について解説したいと思います。簡単におさらいしますと、データベースとアプリケーション間のマッピングをおこなうのがモデルファイルの役割になります。WebObjectsでアプリケーションを作成するさいには必ずといっていいほどこのモデルファイルを作成することになるでしょう。同一のデータベースにアクセスするアプリケーションであれば、モデルファイルをフレームワーク化して、複数のアプリケーションから共有するような場合もあります。データベースを利用するWebObjectsアプリケ−ションでは、モデルファイルの作成が開発ワークフローの起点となります。

 モデルファイルではデータベースの構造(スキーマ)を定義すると同時に、アプリケーション上で扱うデータのクラス定義をおこなうことになります。つまりモデルファイルを作成するには、あらかじめデータ構造の定義をおこなっておく必要があります。開発をスタートする時点でどこまで厳密にデータ構造を決めておくかですが、もちろんガッチリと設計をしてからモデルの実装をおこなってもよいですし、プロトタイピングを兼ねて必要な部分から段階的に実装していってもよいでしょう。
 実際どのようなアプローチをとるかは実践する開発プロセスにもよりますが、モデルの変更はデータベース側の変更をともなうことが多いため、計画的に開発を進めて行く必要があります。

 それでは今回は、実際にモデルファイルを作成していく過程をレポートしてみたいと思います。モデルファイルを作成する場合、通常1つのモデルファイルにいくつものEntity(データベースのテーブルに相当)を追加していくことになりますが、今回はまずシンプルに1つのEntityのみを作成する場合について取り上げます。作成するモデルファイルですが、ビジネスマッチングシステムのユーザ情報を例にしてみたいと思います。
 モデルファイルにEntityを追加するには、Entity名と対応するデータベース上でのテーブル名が必要になりますが、それぞれ以下のように定義してみました。このときEntitiy名は通常そのままクラス名としても使用し、大文字で始まる名前を設定します。

Entity:MOSAUser
テーブル名:MOSA_USER

 次に現行のシステムを参考にして、MOSAUserで扱うAttribute(データ)を以下のように定義してみました。

Attribute

  MOSA ID、氏名(姓)、氏名(名)、カナ(姓)、カナ(名)
  E-MAIL、性別、生年月日

 これらのAttributeを実際にEntityに追加するには、Attribute名とそれに対応するデータベース上のカラム名が必要になります。このときAttribute名はプログラム上でのアクセッサメソッドのメソッド名にも使用され、小文字で始まる名前を設定します。また、Javaとデータベース上でのデータタイプも定義し、文字列型の場合は文字列長の指定などもおこないます。今回はOpenBaseをデータベースに使用し、以下のようにAttributeの属性を定義してみました。

MOSAUser Entity

・MOSA ID
mosaID, MOSA_ID, String, char(16)
・氏名(姓)
lastName, LAST_NAME, String, char(64)
・氏名(名)
firstName, FIRST_NAME, String, char(64)
・カナ(姓)
firstNameKana, FIRST_NAME_KANA, String, char(64)
・カナ(名)
firstNameKana, FIRST_NAME_KANA, String, char(64)
・E-MAIL
eMail, E_MAIL, String, char(64)
・性別
sex, SEX, Number, int
・生年月日
birthDate, BIRTH_DATE, NSTimestamp, date
※左からAttribute名、カラム名、Javaデータタイプ、OpenBaseデータタイプ

 Attributeを設定するさいにはさらにいくつかの属性を設定することができますが、主な設定項目は次のとおりです。

・Allows Null
  Attributeをnullにできるかどうか
  かならず入力が必要になるAttributeはこの設定をOff
・Locking
  EOFがサポートするoptimistic lockingの対象にするかどうか
  LockingをOnにしておくと、データのFetch後に他のユーザによって
  書き換えられたかどうかがチェックされる
・Primary Key
  Primary Keyとして使用するAttributeの指定
・Class Property
  プログラム上で直接操作しないAttrituteはこの設定をOff
  Primary Keyは通常Class Propertyとして設定しない。

 他にも様々な属性をAttributeに設定することができますが、基本的な項目としては以上のものを最低限確認するようにしてください。

 最後にPrimary Keyについて解説しておきます。EOFではPrimary Keyを自動的に管理する機能があります。レコードを追加するさいに自動的に連番を生成して、Primary Keyを自動発行してくれます。また、Primary Keyは同一テーブル内での各レコードを識別するために利用しますので、ユニークである必要があり、不用意にPrimary Keyの値を変更してしまいますとデータ構造に不整合を生じる可能性があります。
 そこでEntityを作成するさい、プログラム上での処理対象となるAttributeとは別にPrimary Key専用のAttributeを追加し、Class Propertyの設定を外すようにします。MOSAUserの場合次のようなPrimary Key用のAttributeを設定しました。

・Primary Key用Attribute
mosaUserId, MOSA_USER_ID, Number, int

 これで1つのEntityが出来上がりました。あとは同様に他のEntityを追加していくことになりますが、次回はEntity間の関係を定義するRelationについて取り上げてみたいと思います。

藤本裕之のプログラミング夜話 #71

 さて、前回原稿を書いてから半月あまり。今月初めにはサンフランシスコでWWDCがあり、そこではアップルがMacintoshのCPUをIntel製に切り替えるという「衝撃の発表」があり、その余波としてXcode2.1のデベロッパー・リリースが配られ、ついでに我々は日本公開に先立って「スターウォーズ・エピソード3:シスの復讐」を観てきたわけであるが皆さんいかがお過ごしですか。
 編集部からは、「今回の原稿、連載の内容から外れた『WWDCインプレッション』みたいなものを書いてもいいですよ」と言われたのだけど、NDAもあるし、帰国してからもなんだかドタバタしててWWDC会場でとってきたノートの内容も整理できていない状態なので……あ、フジモトさんがそんなことするんですかと言われそうだがするんである。時間が経てば経つほど記憶が薄れて自分の書いた読めない英語だけが記憶のよすがになっちまうからな、それは勘弁してもらって前回の話を続けることにする。

 思い出してほしいが前回最後に残った疑問は、NSViewの描画メソッドのひとつ、「display」は、もったいないもヘチマもなく、描く必要があろうがなかろうが闇雲に、そう、まるでブレーキの壊れたダンプカー(というのはその昔、若かりしころのスタン・ハンセンのキャッチフレーズである)さながらに描画を行なってしまうようなんだがこいつにどんな使い道があるのか、というモノであった。皆さんは答えを見つけましたか?
 ヒントは前回の拙稿の中にある。「setNeedsDisplay:」の説明のところ、引用すると、「これを呼んでおけば、現在進行中のイベント処理が終わった時点で各ウィンドウに『displayIfNeeded』が送られ、それがまたそのサブビューたちに『displayIfNeeded』を送り、という形で必要な描画を完成させることができる」って部分ね。これをよく読むと、この仕組みで必要な描画をコンプリートするには「そのイベント処理が滞りなく終了すること」が絶対条件であることがわかる。すなわち、

 ア) イベント発生
     ↓
 イ) 対応する処理のあと、必要があれば「setNeedsDisplay:」
     ↓
 ウ) 描画が行なわれる。

なんだが、(イ)の「対応する処理」というのにえらく時間がかかってしまうと、本来すぐに起きるべき描画がなかなか始まらないということになっちまうのである。
 ……アニメーションなんかを想像してもらうと判りやすいかもしれない。イベント・ループに同期して描画するアニメーションは、そのイベントの処理によってぎこちない動きになってしまうだろう。NSViewに用意されている「すぐ描くメソッド」群、すなわち「display」、「displayRect:」、「displayRectIgnoringOpacity:」はそういうときに使われるわけだ。

 では次回から、NSViewのもう一つの顔、というか、NSResponderから継承したメソッドを追いつつ、Cocoaにおけるイベントハンドリングの詳細を追って行く。どうも巷間誤解しているヒトが多いらしい部分なので、ちょっとしたテストプログラムを書いて具体的かつ実証的にヤってみようと思う。乞うご期待。
(2005_06_23)

高橋真人の「プログラミング指南」第69回

UNIXとしてのMac OS X

〜Perlについて(15)〜

 こんにちは、高橋真人です。
 さて前回は、「ただの文字列も立派な正規表現である」というところから始め、文字クラスによる表現を使って「大文字、小文字を問わない」表現についてお話をしました。
 そこで今度は、’ABC’のうちのすべての文字が小文字になってもマッチするというケースについて考えてみましょう。
 まず、’ABC’のうちの「どの文字が小文字であっても構わない」というケースを見てみます。言ってみれば、これは以下の8通りの文字列のすべてにマッチするということです。

ABC aBC abC abc aBc AbC Abc ABc

 このケースに当てはまる正規表現は、

[aA][bB][cC]

となります。
 確認ですが、文字クラスというのはあくまでも1文字を表すものですから、[0123456789]であれ、[a-z]であれ、[ABC]であれ、いずれも「1文字にしかマッチしない」ことをしっかり認識してください。
 最初のうちは当たり前に思っていても、だんだん正規表現が複雑になってくると、ついこの簡単な事実を忘れて混乱する人が多いのです。

 さて次は、今のものとかなり似ている例ですが、「すべてが大文字か小文字」というケースを考えてみましょう。今度はABCとabcのどちらかのみで、大文字・小文字の混合はなし、ということです。
 文字クラスによる表現の場合、あくまで個別の文字ごとに候補から1文字が選ばれるので、それらの相互の組み合わせという形での制御はできません。ですからこのような条件を満たす正規表現は文字クラスは使わずに以下のようになります。

ABC|abc

 ところで、この辺は正規表現のどちらかというと苦手な分野なのではないかという気がします。たとえば、このような検索処理をCで書いたとしましょう。

const char s1[] = "This is string sample. abc...";
char *p1, *p2;
p1 = strstr(s1, "abc");
p2 = strstr(s1, "ABC");
if (p1 != NULL || p2 != NULL) {
    /* 検索が成功した */
}


 検索するものが少数に限られている場合には、あえて正規表現を使わずに文字列そのものを指定した方が直接的です。
 でもこのような場合ですらPerlでは正規表現を使う理由があります。Perlにポインタがないこともその一つですが、検索には置換が付き物だというのがその理由です。
 もちろんPerlでも上記のCと似た書き方は可能です。

$p = index $string, $s;
または
$p = index($string, $s);

 $stringも$sも文字列であるという想定ですが、$stringの中に$sが含まれる場合、$stringの先頭からの$sの開始位置を数値で返します。(見つからなかった場合は-1)
 $pに返った位置情報を元に置換処理をする場合、書き方が少々面倒です。

substr($string, $p, 3) = ’0123′;
(ここでは、カッコは必須です)

 substrという演算子は、上記の例では、$stringの$pの位置から3文字を(文字列として)返すのですが、この式をそのまま代入式の左側に置けるのがPerlの面白いところです。その場合、返される3文字の部分がそのまま右側の’0123′という文字列で置き換えられます。
 これが面倒だと言うなら、一体どんな簡単な書き方があるのでしょう。
 Cでこの手の処理を書く場合にはこんな書き方は普通ですよね。というより、このsubstr演算子を使った書き方でも、Cで書くよりはずっと簡単だと言えるでしょう。確かに、Perlでもこういうケースではsubstr演算子を使うのがピッタリだし、処理も高速です。
 ただ、それでも正規表現を使う理由があるのです。私のような「怠惰なPerlユーザ」の場合、処理効率が多少落ちても、もっと「頭にラク」な以下のような書き方を選びます。

$string =~ s/ABC/0123/;

 これで、$stringの中の’ABC’が’0123′に置き換えられます。$stringの中に’ABC’が複数個所含まれていた場合、置き換えられるのは最初の1つだけですが、すべてを置き換えたければ、以下のように末尾にgを付けるだけです。

$string =~ s/ABC/0123/g;

 この、s///演算子(一体、どう読むんでしょうか?)こそが、Perlにおける強力なツールの一つです。私の場合、正規表現を使うケースの8割ぐらいはこのs///演算子と共に使っていると言ってもいいぐらいです。

MOSA会員専用記事

WWDC2005レポート 高橋政明

話題の中心はやはりインテルへの移行

 インテルCPUに移行するとの衝撃の発表があったWWDC2005のレポートをお送りします。
私にとっては一年で最もたくさん歩きたくさんしゃべる一週間です。Macプログラマの強化合宿であります。参加者の話題はやはりインテルCPUでした。基調講演が終わってCPU移行作業の事を考えると気が重かったのですが週末までにはずいぶんと気分的に楽になりました。

 確かにCPUの切り替えは可能だしこれまでもPowerPCに変更した実績があります。しかし追加の作業が必要になることは間違いありません。PowerPCに移行した時はシステムも同時に移行だったのでいろいろと苦労がありました。コンパイラ等の開発環境も移行発表時には十分ではありませんでした。
今回はシステム(Mac OS X)は既に移行を終えている(少なくともデスクトップ機の基本部分は)ようですしXcode2.1で今すぐに開発可能です。かなり詳しいドキュメントも出ていてどのような対応が必要かがわかります。
・Universal binary Programming Guidelines
http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/index.html

 会場内のラボで自由に実機に触れることもでき安心できました。もしかするとプログラマに『インテル対応特需』があるかも知れません〔^_^;〕。

 しかし発表されていないことも多いですね、サーバーはどうするか? 64ビットはどうなるか? PowerPCは本当に2007年にやめてしまうのか? これらの疑問は次回以降のWWDCを待つしかないようです。
皆さん既にご存知でしょうがWWDCの基調講演はこちらで見る事ができます。
http://www.apple.com/quicktime/qtv/wwdc05/

配布印刷物は激減

 さて今年のWWDCの運営は例年に増してwebに重点が移ってしまいました。そのため印刷物は最小限でした。これまでのように各セッションの概要を記した印刷物はまったくなくなりました。期間中はwebで確認できますが、後々になって確認する時に不自由しそうです。一年以上たってDVDで内容を確認したい時もありますし、webよりも印刷物の方が見やすいのでこの点来年は改善しもとに戻して欲しいものです。
登録時に配布されるバッグやボールペンはほぼ昨年と同じでしたがメモパッドも昨年同様ありません。オライリーの本 Mac OS X Tiger Pocket Guideがもらえました。これはWWDC2005エディションと印刷されています。オライリーのMac OS X関連の表紙は『犬』でしたがこの本は『虎』の表紙です。

実感させられた参加者数最大

 さて事前に発表されていたハンズオンセッションは、その場でAirMacでアクセスするような形式ではなく、利用する資料やサンプルはあらかじめ配布されていました。このため大勢の参加者がいても支障があるようなものではありませんでした。
 AirMac環境は参加者の密度が高いため接続しにくい状態が多く残念でした。基調講演の待ち時間は最も参加者が集中するので接続できなくてもあきらめざるを得ませんが、二日目以降もなかなかつながらないことがありました。
 基調講演でも参加者数が最高と発表されていましたが、実際に(時には限界を感じるほど)混雑していました。セッション間の休み時間も以前より短いように感じましたがこれは短時間で終了するセッションがなかったためです。朝食は二階から一階に変更となり昼食会場と同じになりました。朝もゆっくり椅子とテーブルで食べることができたのでこの変更はありがたかったです。
 参加者の楽しみのひとつであるキャンパスバッシュも大混雑でした。カンパニーストアも入場にも並び、入場して買うものを決めてもレジで並ばなければなりませんでした。私は到着後すぐににカンパニーストアに入るのはあきらめ帰り際に買い物をしました。その時間でも品揃えは十分だったようですがレジ待ちの列の長さには閉口しました。

 会場内はAirMacでインターネットに接続できます。私は日曜日の午後にレジストのために会場に行きましたがその時にも接続できました。
 月曜から金曜まで毎朝朝食と昼食が用意されています。昼食は袋に入った持ち出し可能のお弁当形式とビュッフェでのあたたかな食事が選べます。今年は毎日お弁当がありました、ランチセッションに参加する人やラボなどのスタッフなどが利用していたようです。
 午前と午後の休み時間にはコーヒーやソフトドリンクがあり、午後は果物やアメリカのスナック菓子やチョコレート等日替わりのおやつもあります。
Apple Design Awards、ムービーナイトそれにキャンパスバッシュでは立食形式で夕食にもありつけますしビールやワインも用意されています。これらのサービスを利用すると自腹で食事を確保しなければならないことは少なく一週間の滞在ですが食費はさほどでもありません。

日本人向けのサービス

 同時通訳がなくなってしまい、日本からの参加者が減るかと危惧しましたがそんなことはなくむしろふえたそうです。
 日本からの参加者向けに日曜日に会場近くのホテルでレセプションが催されました。思い起こせばこの時からかなりの混雑でした。参加者相互の交流の場として貴重ですし、夕食も確保できます。
 会場内にはインターナショナルラウンジが設けられセッションの合間などに利用する事ができます。昼休みの時間帯は日本のアップルスタッフが待機し質問に答えてくれていました。

 情報交換の場としてMOSAパーティは多くの参加者で盛り上がりました。日本のアップルからもたくさん参加していただき、お互いにほろ酔いでいろいろ貴重なお話が聞けたようです。
 MOSAデスクとして一階にはMOSA事務局の戸上さんが待機してくれていました。

サンフランシスコはやはり参加しやすい

 会場のMoscone WestはダウンタウンのホテルからすぐでサンフランシスコMOMA等にも近い便利でわかりやすい場所にあります。アップルのリテールストアもすぐ近くですがこちらは銀座よりはかなり小規模です。
 サンフランシスコ国際空港からの公共交通手段もあり、ツアーを利用せずに日本から参加した人も少なくなかったようです。
 サンフランシスコで不便なのはキャンパスバッシュが開催されるアップル本社まで遠い事ですね。

まとめ

 CPUの移行作業自体は実際のマシンがあればそれほど大量の作業は必要ないようです。
 68Kの時代のようにA7やA5といった特定のレジスタやアセンブラでなければ記述できない部分も通常のアプリケーションレベルでは存在せず、普通はエンディアン対策し再コンパイルで済むはずです。なによりアプリケーションがクラッシュしてもログが残り、システムの再起動は必要ないのですから開発効率はPowerPCへの移行時とは比べ物にならないほど高いでしょう。私の周りの開発者はほとんどPowerPCの移行とMac OS Xへの移行を経験して来た人たちです。皆一様にCPUの移行に対しては冷静です。また若い開発者はCocoa中心の人が多くエンディアンの影響はあまり受けないでしょう。
 それにしてもなぜ完全に切り替えるかとの説明や今後のロードマップが示されなかった事は残念です。これまで5年も暖めていたわけですから明確な計画を持っていないはずはありません。それを知りたいところですが今はまだ無理ですね。ヒントはラプソディにあるのかも知れません。ラプソディ発表時に示されたロードマップのうち何が残り何を発展させるのでしょうか?
 今年のWWDCはTigerの新機能を熟知する最良の機会でした。インテルマシンの発表とLeopardの詳細が明らかになる来年のWWDCは、今年以上に参加者が増えてしまいそうで、その点だけはちょっと心配です。

ニュース・解説

今週の解説担当:小池邦人

Carbon ドキュメント & サンプル & SDK ナビゲーション(2005/6/24)

【開発環境】

さっそくWWDC2005で配布されたXcode Tools 2.1をインストールしてみました。Xcode v2.1の方は、今のところ大きな問題は出ていません。しかし、同時にインストールされるInterface Builder(v2.5.1)で、ポップアップメニュー・コントロール(Carbon版)のメニューアイテムを編集しようとすると、任意アイテムを選択する度にメニュー全体が閉じてしまいます。ベベルボタンに付くポップアップメニューの編集ではこうした現象は出ませんので、きっとバグですね。いや〜、これは使い難いぞ(涙)早急に改善して欲しいところです。

【テクニカルドキュメント】

前回から6月24日の期間中、Apple社のDocumentationサイトにはWWDC2005開催に合わせて大量のドキュメントが登録されました。今回は、その中で改訂版を除いた新規のドキュメントのみをピックアップしておきます。WWDC2004で配布されたドキュメントでさえほとんどまだ目を通していないというのに…時代は恐ろしいスピードで流れていきます(笑)。加えて、デベロッパー向けに4つの読み物が登録されています。

「Automator AppleScript Actions Tutorial」(PDFあり)
「Unit Testing Guide」(PDFあり)
「Universal Binary Programming Guidelines」
「WebObjects 5.3 Reference」
「WebObjects 5.3 Updates」
「Xcode 2.1 User Guide」(PDFあり)
「Apple Core Audio Format Specification 1.0」(PDFあり)
「AudioToolbox Framework Reference」
「Carbon Reference Update」(PDFあり)
「Cocoa Design Patterns Guide」(PDFあり)
「CoreAudio Framework Reference」
「CoreMIDI Framework Reference」
「CoreMIDIServer Framework Reference」
「Dynamic Library Programming Topics」
「FxPlug Reference」
「FxPlug SDK Overview」(PDFあり)
「Macintosh OpenGL Programming Guide」(PDFあり)
「Model Object Implementation Guide」(PDFあり)
「Safari CSS Reference」(PDFあり)
「Safari HTML Reference」(PDFあり)
「Safari Web Content Guide」
「Sdef Scriptability Guide for Cocoa」
「Spotlight Reference」
「Sync Services Tutorial」
「vecLib Reference Update」(PDFあり)
「Xgrid Foundation Reference」

http://developer.apple.com/documentation/index-rev-date.html

「Porting Multithreaded Apps from Win32 to Mac OS X」(読み物)

http://developer.apple.com/macosx/multithreadedprogramming.html

「Installing Your Application on Mac OS X: Developer Guidelines」(読み物)

http://developer.apple.com/tools/installerpolicy.html

「Creating an Application with Tiger Technologies」(読み物)

http://developer.apple.com/macosx/tigerapp.html

「Mathematica Supports 64-bit Addressing」(読み物)

http://developer.apple.com/business/macmarket/mathematica.html

前回から6月24日の期間中、テクニカルノートは5つ登録されました。そのうち「Quartz Composer」に関する内容が3つあります 。新規テクニカルQ&Aの方は7つ登録されています。 こちらも「Quartz Composer」がらみの内容が多いですね。QA1435は、10.4と10.4.1で発生しているDrawerのバグのフォローです。そこには「バグは10.4.2で直っている」と記述されていますが、現時点で10.4.2はまだ登場していません(笑)。

TN2145「Efficiently using Quartz Composer compositions with QuickTime」
TN2128「Frequently Asked Text Services Manager (TSM) Questions」
TN2143「Getting images in and out from Quartz Composer compositions」
TN2146「Making the most of Cocoa bindings in Quartz Composer」
TN2127「Kernel Authorization」

http://developer.apple.com/technicalnotes/index-rev-date.html

QA1435「Carbon Drawer problem in Mac OS X v10.4 and v10.4.1」
QA1423「Unified window title and toolbar appearance in Carbon」
QA1422「Weak Linking To Spotlight」
QA1433「How can I optimize a Quartz Composer composition depending on the hardware it runs on?」
QA1427「What is the Timebase submenu available in the contextual menu of some patches in Quartz Composer?」
QA1425「When does the RSS Feed patch in Quartz Composer refreshes its contents?」
QA1434「Why does my Quartz Composer composition render with a corrupted background in the QCView?」

http://developer.apple.com/technicalqas/index-rev-date.html

【サンプルソースコード】

前回から6月24日の期間中、Apple社のSample Codeサイトには、新しいサンプルソースコードが大量に登録されました。ほとんどが、WWDC2005開催のタイミングに合わせて登録された新規サンプルソースコードです。

「AppearanceSampleUpdated」(Tools関連)
「Audio Unit Effect Templates」(Audio関連)(改訂)
「CocoaSOAP」(Cocoa関連)
「Duplicate Finder Items」(Accessibility関連)
「enetlognke」(Device関連)
「FSFileOperation」(Carbon関連)
「KauthORama」(Security関連)
「MouseMotionSeparate」(Java関連)
「QTCoreVideo101」(Cocoa&QuickTime関連)
「Reducer」(Cocoa関連)
「SampleD」(Darwin関連)
「SDKExample」(Carbon関連)
「SeeMyFriends」(Carbon関連)
「simpleJavaLauncher」(Java関連)(改訂)
「Sketch-112」(Cocoa関連)
「SkyCreator」(Java関連)
「TemperatureTester」(Tools関連)
「UnsharpMask」(Cocoa関連)
「UpdateXcodeSubprojects」(Tools関連)
「XcodeClientServer」(Tools関連)
「VideoViewer」(Cocoa&QuickTime関連)
「AnimationFlicker」(Java関連)
「AutoUpdater」(Cocoa関連)
「BindingsJoystick」(Cocoa関連)
「BlockedEventQueue」(Java関連)
「Bouncy」(Java関連)
「CaptureAndCompressIPBMovie」(QuickTime関連)
「CFLocalServer」(Darwin関連)
「CIAnnotation」(Cocoa関連)
「CITransitionSelectorSample2」(Cocoa関連)
「CIVideoDemoGL」(QuickTime関連)
「CocoaEcho」(Cocoa関連)
「CocoaHTTPServer」(Cocoa&Networking関連)
「CoreRecipes」(Cocoa関連)
「Custom_HIView_Tutorial」(Carbon関連)
「CWCocoaComponent」(Java関連)
「DNSServiceMetaQuery」(Networking関連)
「ExampleIPBCodec」(QuickTime関連)
「filesystem_examples」(Carbon&Cocoa関連)
「FilterDemo」(Audio関連)
「Fortune」(Widget関連)
「Fractal Performanc」(Java関連)
「FSCreateFileAndOpenForkUnicode」(Carbon関連)
「FSRemoveInheritedACEs」(Carbon関連)
「Goodbye World」(Widget関連)
「GridCalendar」(Cocoa関連)
「Hello Welt」(Widget関連)
「Hello World」(Widget関連)
「HITextViewDemo」(Carbon関連)
「ImageApp」(Carbon関連)
「ImageBrowserView」(Carbon関連)
「ImageClient」(Carbon&Cocoa関連)
「ImageMapExample」(Cocoa関連)
「ImageMapView」(Carbon関連)
「Installer Tiger Examples」(Tools関連)
「iSpend」(Cocoa関連)
「JavaSplashScreen」(Java関連)(改訂)
「JSheets」(Java関連)
「JustDraw」(Carbon関連)
「Link Snoop」(Cocoa関連)
「LiveVideoMixer」(QuickTime関連)
「ManagedObjectDataFormatter」(Cocoa関連)
「MouseMotionCombined」(Java関連)
「MouseTracking」(Carbon関連)
「MovieVideoChar」(QuickTime関連)
「Moving To GCC 4.0」(Tools関連)
「MyFirstJNIProject」(Java関連)
「MyPhoto」(ImageCapture関連)
「NetworkAuthentication」(Security関連)
「OpenALExample」(Audio関連)(改訂)
「PDFKitLinker2」(PDFKit関連)
「People」(Cocoa関連)
「QCCocoaComponent」(Java関連)
「QTCarbonShell」(QuickTime関連)
「QTCoreImage101」(QuickTime関連)
「QTKitAdvancedDocument」(Tools関連)
「QTKitCommandLine」(Tools関連)
「QTKitCreateMovie」(Tools関連)
「QTKitFrameStepper」(Tools関連)
「QTKitImport」(QTKit関連)
「QTKitProgressTester」(QTKit関連)
「QTKitSimpleDocument」(QTKit関連)
「Quartz Composer Live DV」(Quartz Composer関連)
「Quartz Composer Matrix」(Quartz Composer関連)
「Quartz Composer Offline Rendering」(Quartz Composer関連)
「Quartz Composer Texture」(Quartz Composer関連)
「Quartz Composer WWDC 2005 Composition」(Quartz Composer関連)
「Quartz Composer WWDC 2005 TextEdit」(Quartz Composer関連)
「QuartzCache」(Quartz2D関連)
「QuartzLines」(Quartz2D関連)
「SampleRSS」(Widget関連)
「ScriptView」(Cocoa関連)
「SimpleHIMovieViewPlayer」(Carbon&QuickTime関連)
「Spotlight」(Strage関連)
「SpotlightAPI」(Strage関連)
「StarMenu」(Carbon関連)(改訂)
「StickiesExample」(Carbon&Cocoa関連)
「TexturePerformanceDemo」(Cocoa&OpenGL関連)
「TradingCards」(WebObject関連)
「VertexPerformanceDemo」(Cocoa&OpenGL関連)
「Voices」(Widget関連)
「WebKitCIPlugIn」(WebKit関連)
「Worm」(Cocoa関連)
「ZombieInfection」(Java関連)

http://developer.apple.com/samplecode/index-rev-date.html

【デベロップメント SDK】

前回から6月24日の期間中、Apple社のSDKサイトには新しいSDKがひとつも登録されませんでした。

http://developer.apple.com/sdk/

MOSAからのお知らせと編集後記は割愛します

MOSA Developer News   略称[MOSADeN=モサ伝]
Apple、Mac OSは米国アップルコンピュータ社の登録商標です。またそのほかの各製品名等はそれぞれ各社の商標ならびに登録商標です。
このメールの再配信、および掲載された記事の無断転載を禁じます。
特定非営利活動法人MOSA
Copyright (C)2005 MOSA. All rights reserved.