iOS開発+Mac+JenkinsでCI環境構築1-Jenkinsでビルドが通るまで

これまで、あまりテスト駆動開発がうまく出来ていなかったので、JenkinsでのCIサーバ(継続的インテグレーションサーバ)を構築しつつ、テスト駆動開発をマスターしていきたいと思って、Jenkinsのインストールを行いました。意外と情報が少なく、まとまっていないので、備忘のために記録しておきます。
“iOS開発+Mac+JenkinsでCI環境構築1-Jenkinsでビルドが通るまで” の続きを読む

普通のiOSプログラマが OSX Mountain Lion クリーンインストール後に行った37+の作業一覧

はじめに

これまでしばらく使ってきたMacBookPro 2009が、熱暴走が発生したり、トラックパッド下のバッテリーが膨張したりして、動作が怪しくなってきて、いろいろ作業が遅くて滞るようになってきたので、仕事用に、MacBook Pro Retina モデルを導入しました。長く使いたいので、SSD512、メモリ16Gのカスタムモデルにしました。やはりSSD+QuadCoreは劇速ですね。ディスクのスピードは概算で4倍以上なので、すべての処理が倍以上早く感じます(ボトルネックがネットワーク速度の作業はそこまでかわらない)。
簡単にインストールする方法は、TimeMachineのバックアップからすべてデータを復元することなのですが、OSのクリーンインストールを、Snow Leopardの時から一度も行っていなくて、順調に動いていたのですが、今回はクリーンインストールを行うことにしました。
備忘もかねて、行った作業を書いておきます。順番は思い立った順なので、特にあまり意味はないです。
“普通のiOSプログラマが OSX Mountain Lion クリーンインストール後に行った37+の作業一覧” の続きを読む

ARC+Blocks+llvm4.0時代のコード記述作法

はじめに

ARC、Blocks、llvm4.0 Modern Objective-Cと、Objective-Cの記述方法はどんどんん変わっています。コードの記述量が減ったり、分かりやすいコードを書くことが出来る様になって来たものの、リーク、EXC_BAD_ACCESS(解放されたメモリにアクセスすることによるクラッシュ)が発生する危険があります。この記事では、2012年8月のリリースされた機能の時点で、わたしが採用している書き方のルールを紹介します。
“ARC+Blocks+llvm4.0時代のコード記述作法” の続きを読む

今日からライオンでも使える!Xcode4.4 Modern Objective-C Syntaxでコードをきれいにする方法

Mountain Lion発表とともにリリースされたXcode4.4。OSX Lionでも使える様になっています。Xcode4.4から、llvm (コンパイラ)のバージョンが4.0になっています。

それによってObjective-Cの書き方にかなりの改善が加えられたので、それを簡単にまとめておきたいと思います。これらの改善は、iOS6に関係なく動作するので、いま作っている、iOS5用のコードにも使用出来ます。
“今日からライオンでも使える!Xcode4.4 Modern Objective-C Syntaxでコードをきれいにする方法” の続きを読む

第3回iphone_dev_jp 東京iPhone/Mac勉強会で発表しました。

2012/7/21 に開かれた、第3回iphone_dev_jp 東京iPhone/Mac勉強会で発表させて頂きました。
第3回iphone_dev_jp 東京iPhone/Mac勉強会 : ATND
先回岸川さんと、藤川さんたちにあった時に、リモートでアメリカから話したら面白いじゃないってことでやってみたのですが、どうも音が切れ気味だったみたいですね。資料などをここにおいていおきますね。
“第3回iphone_dev_jp 東京iPhone/Mac勉強会で発表しました。” の続きを読む

Instrumentでリークした様に見えなくてもリークしているのを調べる方法

Instruments は、Leakを調べられて便利ですが、blocksで、viewのivarを変更してリークしたときなどには、リークしてても、リークとでないことが多いです。それで以前はリークしていないと安心することもありました。でも、やはり、blocks+ARCの事例は、リークが多いので、気をつける必要があります。
“Instrumentでリークした様に見えなくてもリークしているのを調べる方法” の続きを読む

[IOS5]FOR (;;) を書くのをやめるいくつかの方法と、BLOCKS+ARCの考察

for (int i=0; i
上のコードは、バグも起こりやすいし、ループの際に毎回countメソッド呼ばれるし、書くのが面倒ですよね。それで、Objective-Cにおいてこの書き方の代わりに使える書き方を紹介します。
"[IOS5]FOR (;;) を書くのをやめるいくつかの方法と、BLOCKS+ARCの考察" の続きを読む

StoryboardのTableView-Staticでセルが表示されない問題を解決する方法

iOS5 から導入された、 Storyboard のTableViewでのStaticモード。コードを書かなくても、Storyboard上でテーブルのセルを編集出来るのがいいですね。
それを使ってストリーボードを編集してアプリを作る際にいくらか制限がありました。その制限を守らないと、Storyboard上では編集出来るものの、実行するとセルが表示されないという問題があります。

これを正しく動かす方法です。
“StoryboardのTableView-Staticでセルが表示されない問題を解決する方法” の続きを読む

iOS でヘッドフォンを差した状態でも、内蔵スピーカーから音を出す方法

いま作ってるアプリで必要なので調査しました。

ヘッドフォン使用のカードリーダー
ヘッドフォン使用のカードリーダー

カードリーダーを使うアプリを作っています。
UniMag II, Two-Track Mobile MagStripe Reader この、流行のヘッドフォンジャックに刺して使用するものです。これを使うと、ヘッドフォンの音声からカードリーダの回路に電源を供給して、カードを読む事が出来ます。しかし,ヘッドフォンが刺さっていると、標準出力がヘッドフォンになるので、音が鳴らせなくなります。
“iOS でヘッドフォンを差した状態でも、内蔵スピーカーから音を出す方法” の続きを読む

-[NSArray objectAtIndex:] を安全に使うための簡単なメソッド

しばらくブログ休止してましたが、日本に行って、6月21日 第2回cocos2d勉強会(東京都) に参加したり、iOS6の情報を勉強したりと忙しく過ごしています。

いまのプロジェクトで、便利に使っているメソッドを gist に公開したので紹介します。大して難しいものでも高度なものでもないのですが。NSArrayの特定のオブジェクトにアクセスする時に存在しないオブジェクトを触ると、エクセプションが発生するので気をつける必要がありますが、それを簡単に行うメソッドです。

“-[NSArray objectAtIndex:] を安全に使うための簡単なメソッド” の続きを読む