Hatena::Groupiphone-dev

Ni chicha, ni limona - 平均から抜けられない僕

2010-03-08

[勉強会] 第一回、西東京iPhoneDev.勉強会に参加してきました。 23:40  [勉強会] 第一回、西東京iPhoneDev.勉強会に参加してきました。 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [勉強会] 第一回、西東京iPhoneDev.勉強会に参加してきました。 - Ni chicha, ni limona - 平均から抜けられない僕  [勉強会] 第一回、西東京iPhoneDev.勉強会に参加してきました。 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

去る3/6に、吉祥寺で行われた西東京iPhoneDev.勉強会に、長野県民にも関わらず参加してきました。@tmokitaさんが主催で行ったイベントで、とても中身の濃い勉強会でした。

懇親会ではさらに色んな方がいらして、より濃い話もできました。「たのしいRuby」で有名な高橋征義氏ともお話し出来たのは幸せでした*1

id:ktakayama さんも仰っているように誰かがTwitter#wtidevタグをまとめてくれると思いますが、私のメモも幾つか記しておきます。


Core Data Primer

発表者:@nagano_aさん

発表者のアプリ:語源からわかる英語ちゃん

□概要と感想

語源からわかる英語ちゃんの作成に、CoreDataの抽象性が非常に役に立った、という話でした。発表を見ていると、確かにどんどんデータベースとアクセスするための機能が追加されていくので、とても楽しそうでした。

□メモ
  1. データモデルは必ずGUIで作成しないといけない
  2. データモデル作成時、関連は逆関連とのつながりで、1:1、1:nなどなど設定出来る
  3. NSPredicateはNSArrayにも使用出来る。filteredArrayUsingPredicate:を使用
    1. predicateWithFormat:クラスメソッドで作る
  4. NSFetchedResultsControllerクラスを使うとUITableViewと簡単に接続出来る
  5. Core Dataモデルを一度作成して、その後にデータモデルを変更すると、既にあるSQLiteデータとモデルが適合せず、アプリが落ちる
    • この対策に対して公式ドキュメント「CoreData Versioning」がある
    • マッピングモデル(Mapping Modelというファイル)を用意する。 http://d.hatena.ne.jp/at_yasu/20081016 なる良い説明記事がある。
  6. CoreDataのDB(SQLiteのファイル)はドキュメントフォルダに作成される
□自分からの質問と、その回答
  • CoreDataのデータモデルはプログラム内で動的に変更出来ないか。
    • Mac OS X上であればできるらしい。しかしデータ追加をした後は不可能であるため、やはりマッピングモデルを使うべき
  • SQLite以外のDBを使用出来るか
    • 無理
  • 別に作ったDBをCoreDataで使い回せるか。
    • 相当難しい ので考えない方が良い

画像ビューワの素敵なフレームワーク、メモリトラブルへの対処方法

発表者:@k_katsumiさん

□概要と感想

画像ビューワが相当素敵な出来でした。近くソースを公開するとのことで、期待が高まります。また、メモリ管理上で遭遇する問題へのスマートな取り組みはすぐにでも取り入れたいと思いました。

iPhone開発に相当慣れている方であるため、ポイントが詰まった良い発表でした。

□メモ

PhotoFlipCardView(2010/03/09 ソースコードが公開されました!

  • フォトライブラリから写真をタップすると、クルッと写真が回って大きく見られるjQueryのおしゃれな写真サイトな感じ
  • Flipアニメーションの途中でaddSubviewしてあげて、そのときにサイズを変えるというテクニック
  • 実は1つ1つはUIButton上の画像
  • さらに、横4つのボタンをUITableViewを使って、UIImage imageWithContentsOfFileなどのキャッシュされない画像読み込みをうまくマネージしている(これは目鱗テクニック)
    • テーブルビュー採用の理由は、メモリ管理を楽にするため
  • スクロールビューconvertRect:toView

scrollIndicatorInset, contentInsetプロパティあたりが、バウンスするスクロールの肝。

メモリ管理(すみません、この辺りから話に熱中してしまってメモを取っていないです…)

  • メモリ警告が出てからの流れは、didReceiveMemoryViewWarning→viewDidUnload→loadView→viewDidLoadの順。
  • テーブルビューの中でメモリ警告が出た場合は、ルートビューも再構築される可能性があるので注意
  • InstrumentsでNSZombieを調べると、どこで問題が出たかをよりピンポイントで探ることができる

などなど

ObjectiveResource

発表者:yuum3さん

発表スライド:http://www.slideshare.net/yuumi3/objectiveresource

概要と感想

Ruby on Railsサーバがあるときに、そのサーバーとの通信を実現するプログラムを非常に簡単に書けるフレームワーク。デモで本当に簡単に通信できるアプリが出来ていくのを見ると、RoRの素晴らしさに改めて気づく発表でした。

ObjectiveResourceはまだまだ開発途上のアプリのようで、今なら開発に参加出来るチャンスかも、と思いました。

メモ

…ごめんなさい、スライドでしっかり説明していただいているので、省略します。

1点、Downloadsからダウンロード出来るものはバグがあるので、gitHubから持って来るべしとのことでした。


ゲームループについて

発表者:@tmokitaさん

□概要と感想

ゲーム開発で一番大元になってくるゲームループについて、それぞれの作り込み方を紹介する内容でした。ゲームを作ったことが無い人には有益な情報だったと思います。

もちろん私にとってもとても有益で、色々なプログラミングテクニックが組み込み業界とも通じる内容だったのが印象的でした。構造体の配置がアライメントに沿っていないと小一時間怒られるとか。

□メモ

・・・すみません、ここは殆どメモが出来ませんでした。詳しくはTwitterhttp://search.twitter.com/search?q=wtidev:#wtidevタグをご覧ください。有用な情報がゴロゴロ載っています。


以上です。とにもかくにも長野からでも参加する価値のある内容でした。tmokitaさん、本当にありがとうございました!

*1:最初に「みんなのRuby、何度も読ませてもらっています!」と言ってしまって本人に突っ込まれたのは内緒です。

ID2ndID2nd2010/03/09 02:28メモ掲載 ありがとうございました。参考になります!!