Xcode 4 いれるよ!

今日は外巻(ねぐせ)だったよ!こんにちは!

先日の西東京iPhoneDev勉強会の「iPhoneで高速に全文検索」のサンプルがビルドできなかったんだけど、開発環境が古くてSDKのバグが原因っぽいよ!と当の発表者[twitter:@k_katsumi]さんに教えていただいたんです。

だから、ちょっと前にでてたXcode 4に手を出すことに致した。
既存のアプリメンテ等々を理由に開発環境のバージョンアップを見送ってる開発者さんもいたみたいだけど、自分的には余計なことはしたくなかっただけなのです。
便利に開発するより、今ある書籍とかネットの情報と違いがあると余計なところで時間食っちゃうんだもの。
得られるものも開発環境の違いの知識であって今必要なものじゃないのだ。

ちなみにXcode 4が有料でAppStoreXcode - Apple®に出てたので違和感を感じたんだけど、4からデベロッパプログラム契約してないと無料でダウンロードできなくなったぽいですね。うーん。


そんなこんなで、「iPhoneで高速に全文検索」のサンプルをビルドするためにXcode 4インストールしたよ!
でっきるっかなでっきるかな♪

できたー!

なんにもやってなーい!

あっけなく目的をクリアいたしました。
というわけでXcode4の当初のお役はごめんになりました。
前述のとおり、Xcode4の使うために時間割きたくないんですよ。
メニューも英語なんですよ。ペラペラですけどね。人間が。

でも、こんなこともあろうかと、ちゃんと調べたんだもんねー。
Xcode3と4両方使えるようにするんです。
そのままインストールしても、古いバージョン保持されるっぽいもんねー。

Developre-old

ていう、ディレクトリが勝手にできて、Xcode3おいてくれるんだって。

Developre-old

ん?

Developre-old

っていう、フォルダが。


無い!



居ないよ!
勝手にできるはずのうわさの "Developre-old" フォルダちゃーーーーーん

まぁいいや。
4が入ってるので3をまた別のディレクトリ作ってインストールしまーす。
ここら辺参考↓
SimpleBoxes | Xcode 4 の導入と Xcode 3 との併用

ディレクトリ名、xcode3にするかXcode3にするか悩んだね。2秒ぐらい。
そこそこのお時間とそこそこの容量を喰ってインストール完了しました。
なんか古いSDK消えてるっぽいよ!

なんなの!

まぁいいや。

Xcode3本体”だけ”を別の場所にインストールするよ!ってことは、
ライブラリ周りはどうなんのかなーと思ったけど、多分Xcode4に使われてる新しいほうが残るんかな。
なんとなく気持ち悪い気もするけど。
まぁいいや。

なんか目的がぼけてきがするけどサンプルビルドで来たよやったね☆というお話でした。
サンプルコードのお勉強はまたの機会に。
そのうちそのうち。

あ、Xcode 4の使い方はここ見るといいよ!
Xcode 4 移行ガイド

西東京iPhoneDev勉強会 〜第5回〜 に参加したよ!

"こきんちゃん" でググっていろいろな無駄知識を手に入れたよこんにちは!

4/30土曜日、西東京iPhoneDev勉強会に参加してきました。
iPhoneアプリ開発の勉強会ですね。
発表者による説明があって、聞く感じの、講義?的な。
参加は2回目。ふふん。

内容はこんなかんじで。

  1. cocos2dの実践編:[twitter:@ajinotataki]さん
  2. OpenFrameworksとおまけてきなもの:[twitter:@yoichineji]さん
  3. xAuthTwitterEngineとASIHTTPRequestを使ったTwitPic投稿:[twitter:@tmokita]さん
  4. iPhoneで高速に全文検索:[twitter:@k_katsumi]さん


1. cocos2dの実践編
発表者は[twitter:@ajinotataki] さん
ElectroMasterElectroMaster - xionchannelの開発者の方です。

cocos2dの概要から、こんなふうにすればこんなこと実現できるよー
という内容。
使ったことないので具体的に感動できないのが情けない。
そのうち使ってやりたいと思っているので、これをきっかけに調べるよ!
ElectroMaster的なデモを使っての説明でした。かっけぇ。
(画像はElectroMasterですおもしろいよオススメ)



資料はこちらー
http://www.slideshare.net/xionchannel/cocos2d-100rc
メモ
・背景はTiledというマップエディタがある。便利げ!
・CCmenu を使うと、画面遷移もできるよ!


2. OpenFrameworksとおまけてきなもの
発表者は[twitter:@yoichineji]さん

主にOpenFrameworksの紹介。こんなことできるよー、と。

OpenFrameworksとは、C++でシリアル通信、静止画、動画、音声などが簡単に扱えるライブラリです.

らしいです。便利ライブラリ。
そもそも込み入った処理の実現方法がわかってないので恩恵も理解できてないけど、多分↑のことを実現しようと思ったら候補にすぐ上がってくるんじゃないでしょうかね。
http://sites.google.com/site/ofdocjp/

メモ
・インストールはダウンロードしておくだけ
・アドオンは、入れる場所とかが決まってるので注意
・アドオン:OpenCV, box2d などなど
・beyond Infomation メディアアートのためのOpenFrameworksプログラミング入門(おすすめ書籍)

キネクトを使った実演もありましたよスゲェよキネクト

メモ
・Shibuya.NI キネクトの勉強会あるよ!
 https://sites.google.com/site/shibuyani/
・5,6月に本が出る(キネクトハック系?)
・NITE(あどおん?)(今度調べる)

あと、なぜかLogicの紹介もありました。
YMCKプラグインとか使えば、ゲームのBGMとして使えんじゃねーのと。
個人的に興味はあるけど、ガレージバンドさわってからかな。何が出来るかもわかってないし。
もっぱらサンプルとかのループから曲作ることが紹介されてたりするんだけどちゃんと曲作れる自信無いの自分で打ち込みたいの多分世間的にズレてる気もするけど。


3. xAuthTwitterEngineとASIHTTPRequestを使ったTwitPic投稿
発表者は[twitter:@tmokita]さん
西東京の勉強会幹事というかまとめされてますかっけェいつもお世話になってますありがとうありがとう。

TwitterのXAuth認証と、TwitPicへの投稿の仕方ですね。
資料はコレ↓
http://dl.dropbox.com/u/579167/wtidev_0430_tmoktia.pdf

Twitterへの投稿を調べたりしくじったりしてたので自分的にはタイムリーなネタ。
資料見るだけじゃまだ作れる気がしないけどもー。
もっと根本的にデータの扱い自体がわかってないもーん。

ちなみに、TwitterAPIとやりとりするデータフォーマットはxml使うことで説明しているんだけど、Twitter上でJSON使いたいよーみたいなコメントが流れてたのね。(実際は説明で使ってるライブラリではどっちでも使える)
xmlJSONもぜんぜんわかってないけど、
xml:聞いたことある
JSON:シラネ(JavaScript用のフォーマット?)
なので、実装上のコストとか含めてこれらの違いが気になったのでそのうち調べるよ!
パースすればどっちでもいいようなきもするけどなー。


4. iPhoneで高速に全文検索
発表者は[twitter:@k_katsumi]さん

サンプルコードと資料↓
https://github.com/kishikawakatsumi/FTSKit
http://slidesha.re/iiw3Vf

大量のデータがあるときの検索手段の紹介ですね。
実践的に使えそうなネタ。

メモ
・必要なAPIcocoaに見つからないときはFoundationから探してみると良いかもも
・CF〜とNS〜はたいてい互換性がある(toll-free bridge)のでパラメータなどのオブエジェクトの操作はCocoaで書けば簡単
・関係ないけど使ってたPathFinder便利げ
・実は上げてもらったコードがビルドエラーで試せてない恥ずかしい
 <2010/5/8追記>
  xcode ver 4.0.2 iOS ver 4.3ですんなりビルドできました
  ちなみにビルドエラーが発生したのはxcode ver 3.2.4 iOS ver 4.1
  SDKのバグ(?)らしいこんどしらべてみよ


こんな感じでした。

今回からUstream中継も試みていたので見てみればいいよ!
http://www.ustream.tv/recorded/14370281
http://www.ustream.tv/recorded/14370519
http://www.ustream.tv/recorded/14370967
http://www.ustream.tv/recorded/14370982
http://www.ustream.tv/recorded/14371244
http://www.ustream.tv/recorded/14372212
http://www.ustream.tv/recorded/14372851
http://www.ustream.tv/recorded/14373371

Togetterのまとめー
http://togetter.com/li/129960

あと、[twitter:@ajinotataki]さんがブログにまとめられてましたー
http://xionchannel.blogspot.com/2011/05/iphonedev.html


テンション上がるどころか心配になってきたよ!

立体リバーシ PupiLusだよ!

溢れ出る鼻水にティッシュが止まらないよこんにちは!
ティッシュがなくなったのでポケットティッシュでがんばってまピンチ!

ひょんなことからiPhoneアプリを手に入れたのでレビューします。
「ひょん」てなんだろね気になるねぐぐればいいよ!

PupiLus
あのひよころがしの楠木電機さんのアプリです。立体リバーシです。
多分、名前からそうぞうしたとおりのアプリです。
立体でリバーシ
あえていうなら立方体 no 表面 de リバーシ ネ!
こんな感じ。

かわいいというかおしゃれというかメルヘンというかステキゲームです。
上部の時間表示の歯車が非常によろしいです。
盤面は 2*2*2 、3*3*3、4*4*4 の3種類。

CPU対戦と白黒両方とも人の操作、あとCPU vs CPUもあります。
普通のリバーシと違って角が無く、端も無く、回り込んでくるところ。
あと、特別ルール

どちらかの駒が少ないときには、連続して駒が少ない方のターンになる

ってのが肝になるの?かな
リバーシあんまとくいじゃないよ!

こういったアプリって人と対戦したいよねー。
でも1台のiPhone渡し合うのもなんなのでiPhone間で対戦したい、そう思ったのです。
あとあれだ、スプラッシュ短すぎてもったいない。あれ?ってなる。

ついでに開発者のHPもみとけばいいとおもうよ!
かわいらしいアプリ揃っとる。ネーミングセンスとか個人的にスキスキスーです。
楠木電機

アラート表示するよ!

つねにいっぱいいっぱいだよみちたりてるよこんにちは!

アラートの表示方法です。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title"
    message:@"投稿したよ!"
    delegate:nil
    cancelButtonTitle:@"OK"
    otherButtonTitles:nil];
[alert show];
[alert release];

デバッグの方法として欲しかったのでついでに書いてみました。
NSLogとかデバッガ使って処理追うのが普通なんだと思うけど、
UIの処理確認するのに突っ込んだりしてます。

Twitterにつぶやくよ!

オリエンテーションオリエンテーリングと間違ってわくわくしてがっかりしちゃうよねこんにちは!

実はいまだにObjective-CTwitterへの投稿の仕方がよくわからないおはずかし状態なんだけど、なんか動くものはできちゃったよ!
↓参考ページ(このページだけで目的ほぼ完成します)
TwitterのOAuth認証を使う - 強火で進め

使ったライブラリは↑で使ってる ”Twitter-OAuth-iPhone
「投稿」処理自体もまるめてくれる便利ライブラリです。
必要最低限の機能だけ実装してるライブラリ探してたけど、未だに実装できない状態なのでやむなく。
すごい便利だけど、すごい負けた感があるので、時間があるときにライブラリの中身はのぞいておきたいと思います。

  1. ライブラリファイルダウンロードしてくる
  2. 新規プロジェクトつくる
  3. ライブラリ群の開ファイルの「Twitter+OAuth」ディレクトリ以下をプロジェクトに追加

で環境は整います。
DEMO(サンプルソース)に「投稿」の処理と、OAuthなのにPINのバックグラウンドでの入力/認証までやってくれちゃう処理があるので、これを参考に(というかコピペ)します。
処理内容は、OAuthTwitterDemoViewController.hとOAuthTwitterDemoViewController.mまるごとコピればDEMOと同じアプリが出来上がります。(たぶん)

DEMOだと1つのView上で、

  • 実行時に、ユーザ認証が完了していなければ認証画面を表示

    ->ユーザの認証を行う(ついでにPINのバックグラウンドでの入力/認証も)

  • 実行時に、ユーザ認証が完了していれば ”@"Already Updated. %@", [NSDate date]” を投稿する

という処理になっています。

上記のviewDidAppear:内で実行されています。
処理の条件はifで明確に分かれており、投稿処理は、

[_engine sendUpdate: [NSString stringWithFormat: @"Already Updated. %@", [NSDate date]]];

だけ。

↑の処理だけ新規メソッドとして作ってボタンから呼び出すと、以下のようなアプリのできあがーりになります。

  • 実行されたときに、認証が終わっていなければ認証画面を表示->投稿画面を表示
  • 実行されたときに、認証が終わっていれば投稿画面を表示
  • 投稿画面はボタンのみ
  • ボタンを押すと「固定の文字列(と時間)」を表示する


やったね☆

結局、Twitter APIへポストするときの条件とか引数とかフォーマットとかが理解できてますん。
オープンソースTwitterクライアントのソースもいろいろ見たけど、ソース読み取るだけの知識が足りないのとコンパイルエラー発生したときに解決するための知識が足りないことを体感実感。
あと、結局外部ライブラリ使ったけど、ライブラリ使うための前知識が足りなさすぎて使うための優しい解説がないと使えないし、応用もできない状態。たぶん勉強する順番間違ってるんだろうと思われ。
無駄に時間過ごしたよ!世の中無駄なんて無いよ!

\げんきです/

typoはお肌の大敵だよ!

暗闇を抜けるとそこには絶望がありました<-寝坊
こんにちは!

Twitterへの投稿のみをするiPhoneアプリを作るべくばたばたしています。
まずはOAuth認証でプロト作るぞっと意気込み、ガワとして、認証用のweb表示するための画面遷移が必要だな、とそう思ったわけです。
本に載ってるようなサンプルだと目的違いで使いたいテンプレートも違うし、説明も噛み合ないのでこれまたグーグル先生に頼ってがちゃがちゃやってたわけなのです。
参考にしたのは↓らへん。
iPhoneプログラミングの基礎:View Controller - japan.internet.com

Viewの切り替え方法は一つじゃないっぽくて、何が正しいのか僕にはわかんないよ!
というある種、厨二的な疑問に苛まれつつ形だけはできたの。

で、気づいたの。
実はViewの切り替えいらない。



どんまい!



ああー。


気を取り直して、とりあえずは、OAuthの認証に取りかかって、
なんとか日が変わる前にコーディング終わり。
でも、動かない。
ビルドエラーもない。
設計的に間違ってるかどうかもよくわからない状態で、書いたコード全部見直して間違ってるところがないか確認しても動かなくて泣きそうになって途方に暮れて現実逃避したくてあの頃に戻りたくて結論的にはtypo3カ所。
すぐに落ちてしまうシミュレータ上のアプリの挙動から怪しいところをチェック。
もうtypoないだろ、と思ってたけど、ちょっと前に作った実績のあるコードの箇所が怪しかったので、過去のコードからコピペしたら動いたんです。
すごく気になってdiffったらやっぱりtypo
”didfFinishWithData”ってかいてました。
ただしくは”didFinishWithData"

デバッグの仕方もよくわかってない状態で、これまたグーグル先生だよりでバグ追ったんですけど気づけませんでした。
これなんとか見つける方法無いのかなー。

もうきょうはちからつきたよ!