【Xcode】設定しておくと便利なカスタマイズいろいろ

Posted by: daichi  /  Category: 開発補助

いろいろカスタマイズして便利にします。

外観

デバッグコンソールなどを1つのウィンドウに統合する

シミュレータでアプリを起動すると、デバッガコンソールがXcodeの後ろに隠れてしまい、いちいちフォーカスを切り替えるのが面倒。そんなときはこの設定を。
Xcode→環境設定→全般→レイアウト→オールインワン

アプリ実行時にデバッガを自動的に表示する

Xcode→環境設定→デバッグ→開始時→コンソールとデバッガを表示

__MY_COMPANYNAME__を変更する

ファイルを新規に作成する時にファイル作成者の情報等が自動生成されるが__MY_COMPANYNAME__が気持ち悪い。そんな時は、コンソールから以下のコマンドを叩く。YourNameHereを表示したい名前に置き換えて。

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions
   '{ORGANIZATIONNAME="YourNameHere";}'



プリプロセッサ

デバッグ用マクロ

デバッグ時はNSLogメソッドをよく使うが、リリースビルドにはNSLogを使いたくない。そんな時はプリプロセッサでDebugモードの時だけ、NSLogを吐くマクロを定義すればいい。
Global.h

?View Code OBJECTIVE-C
#ifdef DEBUG 
#define LOG(...) NSLog(__VA_ARGS__)
#else
#define LOG(...) 
#endif



info.plistでDebug構成時のみ、GCC_PREPROCESSOR_DEFINITIONS項目にDEBUG文字列を設定する。

すると、LOG(@”hogehoge”)でDebug構成時のみ、NSLogを吐けるようになる。

テンプレート

IBを使わないテンプレートを作成する

Interface Builderは最近は使わなくなったので、新しいプロジェクトを作る場合に、いちいち削除したりするのが面倒。そんな時はプロジェクトテンプレートをカスタマイズする。

Xcodeのプロジェクトテンプレートは、以下の場所においてある。
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application

ユーザ定義のテンプレートは以下の場所に置くとXcodeに認識される。
~/Library/Application Support/Developer/Shared/Xcode/Project Templates/Application/

Windowベースのアプリケーションをベースにカスタマイズする。オリジナルのWindow-based Applicationをユーザ定義の方にコピーしてWindow-based-non-IB Applicationにリネーム。

ディレクトリ内の___PROJECTNAME___はすべてプロジェクト名に置き換えられる。

変更するのは以下。
  • info.plistのMain nib file base name→空に
  • main.m内のUIApplicationMainメソッドの第4匹数に@”___PROJECTNAME___AppDelegateを”
  • MainWindow.xib→削除
  • ___PROJECTNAME___.xcodeproj/project.pbxproj→MainWindow.xibに関する部分をすべて削除
これでxibファイル抜きのテンプレートができあがり。

個人的に___PROJECTNAME___AppDelegateという名前が長ったらしくてあまり好きではないので、これをAppDelegateにした。
この時の変更箇所は以下。
  • main.m→@”___PROJECT_NAME___AppDelegate”を@”AppDelegate”へ
  • ___PROJECT_NAME___AppDelegate.h→ファイル名をAppDelegate.hへ。中身も該当箇所を修正
  • ___PROJECT_NAME___AppDelegate.m→ファイル名をAppDelegate.mへ。中身も該当箇所を修正
  • ___PROJECT_NAME___.xcodeproj/project.pbxproj→___PROJECT_NAME___AppDelegate部分をすべてAppDelegateへ修正

.gitignore、.gitattributeをテンプレートに含める

gitを使いだすとgitの設定ファイルである.gitignoreでXcode用ファイル達を除外したくなるが、これを毎回プロジェクトを作る度にコピーしてくるのは面倒なので、テンプレートに含めてしまう。やり方は上のテンプレートディレクトリに.gitignore、.gitattributeファイルを入れるだけ。
.gitignoreは

# xcode noise
build/*
*.pbxuser
*.mode1v3
 
# old skool
.svn
 
# osx noise
.DS_Store
profile


.gitattributesは

*.pbxproj -crlf -diff -merge


ここまでのテンプレート設定ディレクトリをいちおのせておく。これをダウンロードして、ローカルの
~/Library/Application Support/Developer/Shared/Xcode/Project Templates/Application/
に置けば、使えると思う。
Window-based-non-IB Application
これには次のログマクロテンプレートも含まれている。

ログマクロをテンプレートに含める

さきほど作ったログマクロをテンプレートに含めるのは、テンプレートディレクトリ内にログマクロを記述したファイルを追加すればOKだが、ファイルを開発時にファイルを新規作成するたびに、
#import “Global.h”
とするのは面倒だ。

なので、ファイル作成時に既に#import “Global.h”を追記されているファイルテンプレートを作成する。

オリジナルのファイルテンプレートは以下に置いてある。
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/File Templates/Cocoa Touch

このCocoa Touchディレクトリをユーザ定義用ファイルテンプレートディレクトリである
~/Library/Application Support/Developer/Shared/Xcode/File Templates/
へコピー。

あとはファイルを好きなように変更すればそれがテンプレートになる。

Cocoa Touchのすべてのファイル作成時にGlobal.hを含むように設定したファイルテンプレートはこれ。
Cocoa Touch Class
これを
~/Library/Application Support/Developer/Shared/Xcode/File Templates/
へ入れれば、ユーザ定義ファイルとして使える。


よく使うフレームワークをテンプレートに含める

例えば、Three20だったり、JSONフレームワークだったり、GTMだったり、こういうよく使うフレームワークはあらかじめ使える準備の整ったプロジェクトテンプレートが欲しくなる。これも上のやり方同様、コピーしたローカルのテンプレート周りをいじくり倒して設定できる。

マクロ

よく使うメソッドをマクロとして登録する

Xcodeでは、Ctrl+.でマクロを呼び出せる。
例えばinitと打って、Ctrl+.を押すと、NSObjectのinitメソッドが挿入される。他にもlog、deallocなどが予めマクロとして登録されている。
が、ViewController周りのメソッド達は登録されていないので、いちいちviewWillAppear〜などとよく使うメソッドを入力しなければならない。これは面倒だ。ということでマクロを登録する。

オリジナルのマクロ定義ファイルは以下にある。
/Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources/ObjectiveC.xctxtmacro

これをユーザ定義のマクロファイル置き場である以下にコピーする。
~/Library/Application Support/Developer/Shared/Xcode/Specifications

マクロとして
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
を追加する場合は、ファイル内に以下のような記述を追加する。

        {
            Identifier = objc.didselect;
            BasedOn = objc;
            IsMenuItem = NO;
            Name = "didSelectRowAtIndexPath";
            TextString = "- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {¥n¥t<#statements#>¥n}";
            CompletionPrefix = didselect;
        },


内容の説明
  • Identifier→ユニークな識別ID。
  • Name→Xcodeで編集→テキストマクロを挿入→Objective Cと行った時に表示される名称
  • TextString→マクロ実行時に挿入される文字列
  • CompletionPrefix→マクロ発動文字列。例の場合、didselectと入力してCtrl+.を押すとマクロが実行される
他の項目はおおむね上の例のままで問題ない様子。

ひとまず
viewWillAppear, viewDidAppear, viewDidLoad, viewWillDisappear, viewDidDisappear, cellForRowAtIndexPath, didSelectRowAtIndexPathなどを登録してみた。なかなか悪くない。

vwaと入力してCtrl+.でviewWillAppear発動。他もvda、vdl、vwd、vdd、cellfor、didselectで発動するのでいい感じ。

この設定済みマクロはこちらから。
ObjectiveC.xctxtmacro

参考

【アプリ】iPachi バージョン1.4提出

Posted by: daichi  /  Category: 未分類

iPachiバージョン1.4をAppleに提出しました。

今回はパスコードロック機能の追加です。

パスコードロック

次回は、
・投資、回収金額項目の追加
・カテゴリ別一覧から同一カテゴリの項目一覧表示
を追加予定。

AppStoreへ公開されるまで1週間から2週間ほどかかる見込みです。
しばらくお待ちください。

関連のあるアプリ

ipachi2_icon
iPachi 2009/02/10 リリース
ファイナンス 無料
簡易版パチンコパチスロ収支管理アプリ
app_store_badge


【iPachi】【iSlot Pro】パスコードロック実装中

Posted by: daichi  /  Category: アプリ

だいぶ個人的にはアツイと思っていたFakeCameraがApple審査を通らず、ドラクエ9へ現実逃避していたのですが、AppStoreのアツイレビューを見て息を吹き返しました。

というわけでここ最近特に要望の多かったパスコードロック機能をiPachi、iSlot Proに実装中です。

パスコードロック

少し前にQuadCameraやZoomCamera等のカメラアプリがここへきてレビュー通ったようなので、FakeCameraも騙し騙し申請してみます。

iPachiについて | iphoneアプリで稼げるのか
【App Store】iPhoneで機会割算出ができるパチスロ収支管理アプリ-iSlot Pro | iphoneアプリで稼げるのか

関連のあるアプリ

ipachi2_icon
iPachi 2009/02/10 リリース
ファイナンス 無料
簡易版パチンコパチスロ収支管理アプリ
app_store_badge
islot_icon
iSlot Pro 2009/03/13 リリース
ファイナンス 350円
パチスロ収支管理アプリ
app_store_badge

iPhoneアプリにTwitterポスト機能は標準搭載でもいいのでは?

Posted by: daichi  /  Category: アイデア

個人的にも僕の回りでも世界的にも、何よりiPhoneユーザ周辺で多いに盛り上がりをみせてるTwitter。

今日もiTwitterというPush Notification搭載のiPhoneアプリが出て、僕のTimeLineがiTwitterだらけになっていたけど、iPhoneユーザでtwitterを使っている人はけっこう多いと思う。
Twitterアプリに異変あり! – iTwitter 1.0 – 普通のサラリーマンのiPhone日記

Twitterの最大の魅力はそのリアルタイム性だと思っていて、リアルタイムを最大限に活かせるのはやっぱりモバイルだよね。
いつでもどこでもモバイルならつぶやきを投稿できるから、実況つぶやきとか、そゆものまで出てくる。
そういうリアルタイムな情報を誰かが投稿してくれてるから、つぶやかない人にとってもTwitterはとても楽しめるものになっていて、ただ独り言をつぶやくだけのツールではなくなってる。Twitterはじめる前は、独り言をひたすら書いて何が楽しいのか全く理解できず、仮に返信が来たとしても、それほど楽しい気もしていなかったのだけど、真のTwitterの価値はつぶやくことではなくて、リアルタイムな情報収集にあるってことがやってみて分かった。

続きを読む

【iPhone】海外レビューサイト38+2のUUやPVをGoogle Ad Planerで調べてみた

Posted by: daichi  /  Category: 販売促進

総額1万ポイントで。1/12日にiPhoneアプリを出すのですが、海外でのプレスリリース先を探しています。 海外のiPhoneアプリ系につよい有力メディア、ブログを教えてください.. – 人力検索はてな
iPhoneアプリをレビューしてくれそうな海外サイト30個と連絡先リスト

先人の遺産から海外レビューサイトのUU/PVをGoogle Ad Plannerで調べてみた。
Google Ad Planner(アドプランナー)で“あのサイトのPVやUU”を調べてみよう! | Web担当者Forum

Ad Plannerの作り上ドメイン単位でしかリサーチできないので、lifefackerのようなレビューページがサイトの1つのコンテンツとして用意されてる場合、数字にずれが出てくると思うけど、そこはあくまで目安程度に。

海外レビューサイト

以下PV順。

続きを読む

【AppStore】AppBankさんで紹介された日のiTaskTimer売上

Posted by: daichi  /  Category: ダウンロード

iTaskTimer

iTaskTimer:実用度の高いタスクリスト&タイマー。個人的にど真ん中ストライク。鬼上司は必携。735

それまで虫の息、あわや溺死寸前だったうちのiTaskTimerですが、AppBankさんにレビューしていただいたことで息を吹き返しました。
AppBankさんのメディアとしての価値が伺えます。
グラフの勾配がすごいことになってます。

紹介前のダウンロード数は連日2,3個。
それが紹介された当日は29個にまで跳ね上がりました。

仕事効率化内でのランキングとしては、72位から16位のジャンプアップ。
仕事効率化内では7位のTodoが有料アプリ総合99位(2009/06/24 7:00時点)なので、これを超えないことにはトップ100位内は無理。
多分100個くらいは売れないとあっちの世界には行けない。

しかし、iSlot Proがいたファイナンスとは違い、こっちのジャンルは活気があるなぁ。

これまでのダウンロード数はこちらから参照してください。
ダウンロード | iphoneアプリで稼げるのか

#DL数だけじゃなくAppStore内でのランキングもレポート欲しい。グラフ自動生成させたい

関連のあるアプリ

iTask Timer
iTask Timer 2009/06/05 リリース
仕事効率化 230円
時間管理アプリ
app_store_badge

【AppStore】iSlot Pro ver1.5リリースしました

Posted by: daichi  /  Category: アプリ

islotpro15

ついにiSlot Pro ver1.5がAppleの審査を通過し、リリースされました。

ver1.5での対応内容は以下です。
* 集計ソート機能
* 誤字修正

今回のバージョンアップでは、かねてから要望の多かった集計画面での並び替え機能を追加しています。

ぜひお楽しみください。

関連のあるアプリ

islot_icon
iSlot Pro 2009/03/13 リリース
ファイナンス 350円
パチスロ収支管理アプリ
app_store_badge

【アプリ】iTaskTimerがAppBankで掲載されました!

Posted by: daichi  /  Category: アプリ

iTaskTimer:実用度の高いタスクリスト&タイマー。個人的にど真ん中ストライク。鬼上司は必携。735

AppBank!

AppBank!



AppBankさん。アツいです。アツすぎます!
以前から感じていたのですが、AppBankさんの記事はどれを見ても、熱意だったり思いだったりが溢れ出ていて、人を惹き付けるものがあります。

実際に僕のアプリが熱気に満ちたレビュー+好評価をいただけたのはとても嬉しいです。

レビューありがとうございました。

よしっ!これからも頑張ろう!

関連のあるアプリ

iTask Timer
iTask Timer 2009/06/05 リリース
仕事効率化 230円
時間管理アプリ
app_store_badge

【iPhone】公開前にアプリネタを晒すことの意義

Posted by: daichi  /  Category: 販売促進

これまでAppStore公開前にアプリネタを公言するのは、ネタをパクられたらどうしよう的な懸念から避けていたのですが、これは全く逆効果なのではと思い直しました。

続きを読む

【AppStore】iPachi ver1.3を申請しました

Posted by: daichi  /  Category: アプリ

iPachi ver1.3をAppleに申請しました。
ver1.3ではグラフ機能を追加します。

グラフ機能

iPachiは無料なので、気軽にダウンロードしてみてください。

公開はAppleの審査スピード次第なのですが、今の状態だと2〜4週間ほど先になるかもしれません。
公開アプリ3本ともApple待ちでアップデートがストップ中。。。

関連のあるアプリ

ipachi2_icon
iPachi 2009/02/10 リリース
ファイナンス 無料
簡易版パチンコパチスロ収支管理アプリ
app_store_badge

Get Adobe Flash playerPlugin by wpburn.com wordpress themes