RSS
0

iPhone:Xcode付属のOpenGLサンプルを理解したい

OpenGL ESを勉強中.まずはXcode付属のOpenGL ESテンプレート(サンプルソース)の理解をと,色々と公式ドキュメントや他サイトを参考にしましたが,なんとなく分かってきたような気がします.あくまで気がするだけです.一応,ソースのメモ書きを公開.役に立たないと思いますが,間違いなどがあったら,ご指導ください.PDFで見たい/保存したい人はここからダウンロードできます.使用条件は自己責任です.もし参考になってアプリを組んだら,可能ならばそのアプリを教えてください.悩んでる人がいたら相談にのってあげてください.









Read more
0

iPhone:dSYMの意味,crashとsymbolicatecrash

iPhoneアプリをビルドすると実行ファイルの側にdSYMというディレクトリ(パッケージしてあって見た目はファイル)ができる.どういうためなのか,何のためにあるのかと気になっていた.

rejectを食らって,crashファイルについて色々と調べたら,その仕様用途が分かってきた.dSYMはデバッグシンボル群を記録していて,そのdSYMを使えば呪文のようなcrashファイルをシンボル付きに変換することができる.OS 3.0に上がって他サイトのシンボル付き変換の情報が若干使えなくなったので,その方法を以下にメモ.

【準備】変換してくれる実行ファイルsymbolicatecrash(OS 3.0になって,場所が分かった)をパスが通っている場所に移す.例えば,実行ファイルを/usr/local/binにコピーする.管理者権限が必要なのでsudoさん大活躍.
sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash /usr/local/bin
そして,Permission deniedで怒られるので,続いて,sudoさんに仕事をしてもらう.
sudo chmod a+x /usr/local/bin/symbolicatecrash
もしくは,ファイルを左クリックして「情報を見る」で実行の許可を与える.

【変換】引数の一番目にcrash,二番目にdSYMを与えて,以下のように実行する.
symbolicatecrash hogehoge.crash hogehoge.dSYM > hogehogeWithSymbols.crash
シンボル付きが標準出力されるので,リダイレクトで別ファイルに書き込んでおく.これによって,
変換前:UIKit 0x33301a14 0x3314b000 + 1796628
変換後:UIKit 0x001b6a14 -[UITextView scrollRangeToVisible:] + 96
のようにcrashファイルが変わる.シンボルが分かれば,どこでクラッシュしたかが一目瞭然.ということで,ビルド後のdSYMは削除せずに大切に保存しておいた方がよいそうです.

ちなみに,rejectを食らったアプリは,そこまで解析しなくてもソースを眺めていたら分かるようなところで,クラッシュしてましたw.審査を浪費してしまった,ごめん.廉価版だったから,デバッグが足りんかったーーー.恥ずかしい
Read more
0

what is EAGL?

OpenGL ESの勉強を始めた.まずはサンプルからとソースファイルを眺めると,「EAGL」が頻繁に現れる.何の略??っと気になったので調べたら,
EAGL = Embedded Apple's OpenGL
だそうです.初見で「まさか,イーグル由来なのか!?」とも思ったけど,やっぱり「Embedded + なんとか + openGL」だろうなと思ったけど,Appleが入ってくるとは想像してなかった.あと関連して,
CAEGL = Core Animation Embedded Apple's openGL
だそうで,iPhone SDKは他にも
NS = NEXTSTEP(OS Xの前進になるNeXT社のOS)
だったりと,いろいろ略語が出てきます.形から入る身としてはソース云々よりもこういうのが気になる.
Read more
0

「ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド」を買った

ライトウェイト・プログラマのためのiPhoneアプリ開発ガイドを買いました.以前から気になって,ぶらりと小さい本屋に行ったらあったので衝動買い.まぁ結果的には無駄遣い,買って損をしたかな(少なくとも個人的に使えると思ったtipsは他の開発者ブログで十分に補完できる).

まず,カバーと本の高さが異なってるので注意.立ち読みしてるとき,やべカバー折っちゃった!って一度はなります.この出版社には策士がいるな.

で,肝心の内容ですが,今まで見てきた参考書・サイトとは流儀?が異なってる気がします.あと,OS 3.0対応でゲーム,カメラやマイクのアプリの解説って言ってるけど,単にOS 3.0でもコンパイルが通るよって程度で,Store kitやGame kitに関することはありません.それを期待する人は注意して.地図アプリをMap kitを使った方法ではなく,アプリからSafariでGoogle mapsを開く方法しか書いてないのは気になります.筆者の開発者として公開したくない情報があると思いますが,残念でした.

クセがある参考書なので,買われる方は立ち読みするなり確認した方がよいと.この本だけを参考して開発すると,あるポイントでAppleの審査で確実にrejectを食らいます.ただし,筆者が以前リリースしたアプリのソースが載っているし,小技を幾つかピックアップできそうなので,全く損になることはないと思われます.



その他の参考書まとめのエントリはこちらです.
Read more
0

「勝手に観光図」が地味に売れてる

自作の「勝手に観光図」が地味に売れてる.ディスニーランドに遊びに行ったとき,紙の地図があっても現在地が分からないと目的地も分からない,Googleマップには目的地が載ってないよーって動機があってリリースしたけど,自分以外にダウンロードした方がいて予想外です.自分にあったXMLを用意しないといけないのに,ありがとうです!.余裕があれば,コンパスと数個分のデータ保存して切り替える機能を組み込んでみたいな.
Read more
0

iPhone勉強会in山口・・・?

今週末にAndroidの勉強会が近くで開催されるので,参加します.あまり手を付けてないので,いろいろと参考になりそうなので楽しみ.勉強会で気になったけど,iPhoneの勉強会も近くで行われないかなーーー?.誰かやって
Read more
0

Touch Morse 1.1 is submitted

I submitted Touch Morse 1.1 to App Store. If not reject, it will be released 1 or 2 weeks after. It has variable frequency and speed of Morse code sound. If you are interested in it, download it!
Read more
0

iTunes Connect works

今朝,アップデートが正常?になってくれた.貯まっていた数日分を一気にあげる.認証に時間かかるんだろうな.
Read more
0

iTunes Connect does not work

I cannot update Application and add new Application at iTunes Connect. Others also have same. However, Apple does not inform us about it.

まじで仕事ができねーよ!!!.できないならメンテ中とか表示してよ.
Read more
0

25%削減??

温暖化ガス、首相「25%削減」表明
鳩山由紀夫首相は22日、ニューヨーク市内で開いた国連気候変動首脳会合(気候変動サミット)に出席し、日本の温暖化ガスの中期目標について「2020年までに1990年比で言えば25%削減を目指す」と表明した。途上国や新興国の温暖化対策を後押しするため、日本の省エネ技術や資金を提供する「鳩山イニシアチブ」構想も提唱した。積極的な削減目標と支援策を掲げ、今後の国際交渉で主導権を握りたい考えだ。
25%って,とりあえず,原発反対派全員を捕まえて火力を原発に総入れ替え,放送局とBS/CSの廃止・放送時間の短縮ぐらい,社会のシステムを変えないと無理だと分かってるはずなのに.企業由来が大半なのに,弱者の生活が強制される世界が始まるよ.とりあえず,民主党員&支持者はもったいないから息すんなよ.何が目的なんだよ,総理.意味も形もない排出権を買ってどうする気なの.技術提供って銘打って,技術流出してまで中国に媚びたいのか.

日本の温暖化ガス25%削減目標、EU側が評価 外相会談
そりゃあ,EU勢は黙っていても排出権でお金が貰えるからな.日本は本当に外交が弱いな.
Read more
1

iPhoneアプリ:Decode Morse


マイクからモールス信号を拾って,それをデコード(解読,復号)するアプリケーションです.熟練者の速い符号では精度が保証できませんが,一般的?な速度ならそれなりの精度がでる・・・はずです.デモ動画を参考にしてみて,

It decodes Morse code tone inputted from a microphone of iPhone or iPod touch. Here, if iPod touch, you need "Apple Earphones with Remote and Mic". This accuracy is shown at following video.



-> AppStoreに行く
-> 詳細ページに行く
Read more
0

iPhoneアプリ:勝手に観光図 with ときわ公園


自由に観光マップを作るアプリケーションです.GPSも連動するので,ガイドマップや宝の地図やら,いろいろ遊べます.プリセットとして,ときわ公園の簡易マップを初期データ(サンプル)に使っています.

-> AppStoreに行く
-> 詳細ページに行く
Read more
0

Touch Morse 1.1 is under development

Thanks for your download. I started to develop Touch Morse next version. It will have variable frequency-level and adaptable calibration.
Read more
0

PlayStation3(120GB)買った

気の迷いから,PlayStation3(120GB)を購入した.BDが見たいかったから,買ったんだよ.決して,機動戦士ガンダム戦記がやりたいからってじゃ,ないんだからね.
Read more
0

AppStoreの教育86位

6日の夜にAppStoreを覗いたら,なんと教育カテゴリーでランクインしてました.

        ____
      /      \
    /  _ノ  ヽ、_  \
   /  /⌒)   ⌒゚o  \     作ったアプリが86位に
   |  / /(__人__)      |    ランクインしたよ,教育の
   \/ /   ` ⌒´     /

   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)     
  |     ` ⌒´ノ
.  |         }  ミ        ピコッ
.  ヽ        } ミ  /\  ,☆____
   ヽ     ノ    \  \ /     \
   /    く  \.  /\/ ─    ─ \      まぁ,
   |     `ー一⌒)  /   (●)  (●)  \    マイナージャンル
    |    i´ ̄ ̄ ̄ \ |      (__人__)     |    だからね
               \_   ` ⌒´    /
                /          \

しかし,海外のダウンロードがほとんどなのに,日本のストアに反映されるんだな,
Read more
0

愚痴

菅・国家戦略相、岡田・外相 鳩山政権の骨格人事固まる(asahi.com)

結局,自民党が嫌いで民主党に入れたのに,小沢幹事長でまた自民党が始まるわけで.しかも一番黒かったときの.さっさと献金しないと,仕事が落ちてこんぞ!.しかしな,拉致犯を恩赦した管が国家戦略,地元の商店街を潰して中国産を売るジャスコの岡田が外務大臣,さずがにこの人事は問題だろ.ただでさえ素人集団なのに,さら訳の分からん素人がたくさん増えてるわけだし,旧自民と旧社会の思うままの政治が始まるんだろな.

うちの選挙区にいた某党の候補者,ちょっと調べたんだけど,とんでもないバカだった.面だけ良く見えるけど,中身が全然ない.詐欺みたいな仕事だもんな,本当に落ちてよかったぜ.
Read more
0

iPhoneアプリ:Touch Morse 1.0

It is updated!! Version 1.1 is released.


モールス信号を打つ電鍵をシミュレートするiPhoneアプリです.電鍵をタップすれば,短音と長音を表示して,その符号をリアルタイムでデコード(解読)します.UIは貧相ですが,それなりの機能は持ってると思います.




-> AppStoreに行く
-> 詳細ページに行く
Read more
0

iPhoneアプリ:ロトしようよ


iPhoneアプリをリリースしました.ロト6を対象としたi.i.d.(独立同分布)の統計的解析,ぶっちゃけると,欲に目がくらんだロト6の予想ソフト.同じ欲に負けた人はどうぞ.当たり前ですが,損害は補償しませんから.

->AppStoreに行く
->詳細ページに行く
Read more
0

iPhone Reachability ネットワーク接続を確認する

iPhoneアプリ内でネットワーク(3Gネットワーク,Wi-Fi)を確認する方法を検索したら,古いものしか見つからなかった(接続確認に利用するAppleのサンプルプログラムがバージョンアップした)ので,現バージョンに対応したメモのまとめ.公開プログラムを眺めれば,使い方は分かりますが,自分用に必要なものだけをピックアップ.

AppleのサンプルプログラムReachability(Version: 2.0)をダウンロード(Apple IDでログインする)して,自分のプロジェクトにReachability.hとReachability.mを追加する.忘れずにフレームワークにSystemConfigurationを追加する.

まず,自分のヘッダーファイル内で宣言する
#import <uikit/uikit.h>

@class Reachability;

@interface HowToUseReachabilityViewController : UIViewController
{
Reachability* hostReach; // ホスト接続
Reachability* internetReach; // 3Gネットワーク
Reachability* wifiReach; // Wi-Fi
}

@end

メソッドファイル内でReachabilityの設定と処理用メソッドを書く.設定は,viewDidLoad,viewWillAppearやネットワークを行う直前などで,書く.
#import "Reachability.h"

// Reachabilityの状態により,確認処理を行う
- (void) updateInterfaceWithReachability: (Reachability*) curReach
{

// 接続の状態を取得する.戻り値は,以下の3つ
// NotReachable
// ReachableViaWiFi
// ReachableViaWWAN
NetworkStatus status = [curReach currentReachabilityStatus];

// ホスト接続の場合
if(curReach == hostReach)
{
if( status == NotReachable ) NSLog(@"host failed");
}

// 3Gネットワーク接続の場合
if(curReach == internetReach)
{
if( status == NotReachable ) NSLog(@"3G failed");
}

// Wi-Fi接続の場合
if(curReach == wifiReach)
{
if( status == NotReachable ) NSLog(@"Wi-Fi failed");
}

- (void)viewDidLoad
{
[super viewDidLoad];

// ホスト(例えば,www.google.com)接続を調べる
hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[self updateInterfaceWithReachability: hostReach];

// 3Gネットワーク接続を調べる
internetReach = [[Reachability reachabilityForInternetConnection] retain];
[self updateInterfaceWithReachability: internetReach];

// Wi-Fi接続を調べる
wifiReach = [[Reachability reachabilityForLocalWiFi] retain];
[self updateInterfaceWithReachability: wifiReach];

}

ここで,ネットワーク接続の状態が変わった場合でも検知したい場合は,状態変化を検出するように設定して,その変化時に処理を行うメソッドを定義する.
// ネットワーク接続の状態が変化したときに,呼ばれるメソッド
- (void) reachabilityChanged: (NSNotification* )note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
[self updateInterfaceWithReachability: curReach];
}

- (void)viewDidLoad
{
[super viewDidLoad];

// ネットワーク接続を観測して変化したときに,呼ばれるメソッドを設定する
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:)
name: kReachabilityChangedNotification
object: nil];

// ホスト(例えば,www.google.com)接続を調べる
hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[hostReach startNotifer];
}

これのサンプルソースです.プログでは見にくいので,興味ある人は直接プロジェクトを確認してください.使用条件は自己責任です.このサンプルをアプリに参考・組込する/した方は,得した分だけ隣人にジュースを奢ってあげてください.3G専用やWi-Fi専用アプリを作らない限り,hostReachだけを使えばネットワークを確認できまる.

追記
iOS5.0からのARCに対応させるにはReachability.m/hの一部を書き換える必要があります.ARCの知識を持っているか,プログラマの力量を確かめられる良い機会です.
Read more
0

iPhoneのマイク(AudioQueueに挫折)

以前のエントリーのマイクを使ったiPhoneアプリは色々と試したけど,欲しいものができないので一時凍結.コールバック関数の中でバッファ(buffer)のデータを直接いじろうとしたけど,数値が乱雑?に並んでいたので挫折.AudioQueue.hで定義してある関数を色々探ったけど,よく分かんないわ.だいたいこういう風になってるんだろうと推測はできたけど,無理だ.AudioQueue.mってどこにあるんだよ!!っていってもライブラリになってるから無いか.Game Kitのヴォイスチャットを無理くりに使おうかと思ったけど,やっぱり無理っぽい.うわわわわ

===追記===
なんか粘ってたら分かってきた.んで,これをリリースしました.公式リファレンスがかなり役に立つわ.
Read more
0

21歳を子供と間違え

衆院選:21歳を子供と間違え用紙渡さず 神奈川・平塚
30日の総選挙で、神奈川県平塚市選挙管理委員会が母親とともに投票所に来た女性(21)を親に同伴した子供と思いこみ、一部の投票用紙を渡さないミスがあったことが分かった。女性は怒って帰宅し、市選管は棄権として処理した。
思うんだけど,ハガキだけで選挙って,大丈夫なんの??.性別を確認ぐらいだし,替え玉されても分からんと思うけど.なんか身分書の提示も必要だと思うよ.
Read more