にけのて
Nike+iPod と JogNote を使ってジョギング。で、Mac から Nike+ のデータをあれこれ見たくなったので、ちょこちょこっと作ってみた。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iPhone 3GS で NIKE+ が使えるんだって!?
最近になって漸く知ったこの事実…。
ずぅ~~~~~っと iPhone では駄目だと思ってた。そっか、iPhone 3GS からは使えていたのか。でも、自分の持っている iPhone は 3G と 4。3G は駄目として、iPhone 4 はどうなんだろう?いけそうな気もするけど…。今度試してみよう!
使えるようだったら「にけのて」も iPhone 4 で何かできると楽しいだろうな!
あ~でも左膝があるからあまり走れないけど…

テーマ:Mac - ジャンル:コンピュータ

にけのて for Windows v0.6.0.1
にけのて for Windows バグフィックス!

前にコメントで教えてもらってましたが、かなり時間が経ってやっと修正。
考えてみれば for Windows でデータの持ち方ちょこっと変えて、それをそのまま使ってた for Mac に問題あったって事は、for Windows にも同じ問題があるってことじゃん!
結局、Mac で修正した事と同じ修正で OK。

とりあえず、問題を修正しただけでリリース。
グラフを増やすとか、Mac と同じにするだけでもやってみたいとは思うのだけど…


テーマ:プログラミング - ジャンル:コンピュータ

にけのて v0.9.1
バグフィックス!
なんと、にけのて v0.9.0 は 5km/10km のスプリットタイムが間違ってた…
連絡してくれた方々ありがとうございます。
ちょっと忙しくて、修正まで時間がかかってしまってすみません。

問題点はすっごく単純。0 を忘れてたよ~。
基本なのに…駄目じゃん!


テーマ:Mac - ジャンル:コンピュータ

にてのて v0.9.0
nikenoteMainWindow090
nikenoteChartA
nikenteChartB

にけのて v0.9.0 をリリース。前のバージョン v0.8.6 との違いはこんな感じ。

・以前は iPod を接続してその中にあるワークアウトデータを表示していたが、今バージョンからは iPod 内のデータを Mac にコピーしてそのデータを表示するようにした。結果、iPod を接続しなくても既にコピーされているデータで表示ができる。(以前も Mac にコピーしたワークアウトデータをドラッグ&ドロップで表示できたけど…)

・メインの画面のワークアウトを選択する票に時間と距離も表示するようにした。

・OS の新しい機能を使ってみたかったので、MacOS X 10.5 以降でのみ動作するようになった。

・ファイルサイズが倍以上に大きくなった!(なんで???)

というわけで、1から書き直してみた。Binding と Fast Enumeration のおかげで色々な部分がかなり楽チンに。前のバージョンは一部しか Binding してなかったのだけど、今回は目一杯してみた。Fast Enumeration はもうこれ無しには回せない!って感じ。
でも、Property は思いのほか嬉しくはなかったかもしれない。使う為に記述しなきゃいけない部分が結構多く感じた。細かく指定しないでデフォルトで OK!って事にすればもっと少なくなるんだろうけど…。



テーマ:Mac - ジャンル:コンピュータ

Mac の にけのて 最初から
Visual Studio 2008 を使って C# で Windows 版のにけのてを作った時に、新しい事を知ったりちょっと UI や中の作りを変えてみたりした。というわけで、Mac もそれに合わせてまた1から作り直してみてる。Objective-C 2.0 でガベージコレクション様に全てを任せて!
nikeNoteMainWindow


XML ファイルのパース
今回は XML ファイルのパースで XPath を知った件。こんなんあったんだ~!
Mac で作ってた時は NSXML~の API リファレンスを斜め読みして、あ~だこ~だ言いながら NSXMLNode をたぐってなんとかなるじゃん!と、かなり強引にパースしてた。で、Windows の C# で XML はどうするのかな?とググってみたら思い切りたくさん情報が!そこで初めて知った、XPath。ってか、最初に XML パースする時に調べて気付けよ!って感じなんだけど…。

にけのて のメイン画面で表示している各種データは、ワークアウトデータの中にある <RunSummary> データそのまま。これはツリーの上から辿ると <sportsData><runSummary> の順になって、XPath を使ってこんな感じでゲットできる。

NSArray* runSummary = [rootNode nodesForXPath:@"/sportsData/runSummary" error:&myError];

これで の中に入っている <distance> や <duration> なんかの各ノード(NSXMLNode)が配列になって runSummary に入る。後は配列を Fast Enumeration でアクセスすれば OK!


次に 1km 毎のラップタイムだけど、これは <sportsData><snapShotList snapShotType="kmSplit"> の中に 1km 毎に <snapShot> として入ってる。でも、この snapShotType="kmSplit" の部分が kmSplit、mileSplit、userClick の3種類ある。この中から snapShotType="kmSplit" だけをゲットするには以下の XPath。

NSArray* kmSnapShotList = [rootNode nodesForXPath:@"//snapShotList[@snapShotType='kmSplit']" error:&myError];

これで snapShotType="kmSplit" の中身 <snapShot> が配列でゲットできる。で、これを Fast Enumeration でアクセス!

for(NSXMLNode* snapShot in kmSnapShotList)
{
NSMutableDictionary* snapShotDictionary = [NSMutableDictionary dictionary];
for(NSXMLNode* snapShotData in snapShot)
{
[snapShotDictionary setValue:[snapShotData valueString] forKey:[snapShotData name]];
}
[snapShotArrayController addObject:snapShotDictionary];
}
(う…、インデントが…。タブ駄目なのね。)

こんな感じで 1km 毎の <snapShot> の中身 duration, distance, pace の値を、snapShotArrayController に binding されている NSTableView に表示ができる。(ちょっと日本語変?)
ってか、Fast Enumeration 凄い便利!


それにしても、今思うと最初は凄い頑張ってデータ取り出していたんだな~。本当はこんなに簡単にデータ取り出せたのに…。
XPath のこんなもあるのね。


テーマ:Mac - ジャンル:コンピュータ




プロフィール

paraches

Author:paraches
Nike+iPod で走ってお腹を…

にけのて ダウンロード

Nike+iPod

温泉旅行

宿・ホテル予約ならじゃらんnet

最近の記事

Zenback

ランキング

人気ブログランキングへ

アクセストレード

バリューコマース

最近のコメント

月別アーカイブ

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。