2013年4月25日木曜日

CocoaPodsでShareKitを入れてたらファイルが足りなくてエラー


ある日いつものようにpod installしてみると、ShareKitのファイルでコンパイルエラーが発生してビルドできなくなってしまいました。

その時のpodfileはこれです。
platform :ios, '5.1'
pod 'ShareKit/Facebook'
pod 'ShareKit/Twitter'
...

FacebookとTwitterだけ使いたかったのでsubspecを指定していました。

このpodfileでpod installすると、ホントにShareKit/FacebookとShareKit/Twitter以下のファイルだけになって、ShareKit直下にあったメインのファイルが消えてしまってました。

2013年4月18日木曜日

UnitTestで、テストするクラスのプライベートなメソッドを呼ぶ方法

TestCaseでプライベートなメソッドが呼べない

XcodeでUnitTestをする際、テスト対象クラスの.hファイルに宣言していないメソッド、いわゆるプライベートメソッドをテストしたくなります。 むしろ、そいつらを重点的にテストしたい!
でも、TestCaseクラスに、テスト対象クラスの.hファイルをimportしただけだと、コンパイルエラーになって呼べません。

しょうがないから.hにプライベートなメソッドの宣言も書いとくか〜
でも、余計なメソッドを外部に公開したくないしな〜
とか考えてたんですが、ソースを汚さない良い解決方法がありました。


2013年4月10日水曜日

ソースコードはいつだれに見せてもいいように!

個人でアプリをリリースされている皆様、コードをキレイに書いていますか?

先日、自分のコードの汚さを冷静に認識する機会があり、猛反省中です。

2013年3月20日水曜日

アプリ申請時に気をつけること

今回、「HF BLADE」というアプリをリリースしたわけですが、ほぼ1年ぶりのリリースで、いろいろと気づいたことがあったのでまとめておきます。


キーワード登録時の注意

動詞の登録は送り仮名を含める

「斬る」「斬れる」といった五段活用的な言い回しがあるので、「斬」とか「切」とか送り仮名を省いたキーワードを登録してどれでもヒットするようにと考えてたら、なんと、どれにもヒットしませんでした。
ちゃんと送り仮名込みのキーワードを登録しましょう。
文字数が増えてしまいますが、一般的に検索されやすいものを優先的にいれるとよさそうです。あとはiPhoneの予測変換で優先順位の高いやつとかかな。


スクリーンショットの順番

1枚目が大事

iOS6でAppStoreアプリがバージョンアップして、アプリページのレイアウトが変わってます。
そこで気がついたのは、検索結果画面のスクリーンショット表示ルールです。
iPhone/iPod touchのAppStore検索結果画面では1枚目に登録したスクリーンショットだけが表示されます。
つまり、1枚目にそのアプリを端的に表現する画像を持って来るべきということです。
ついつい、画面遷移順とかタイトル画面とかで登録してしまいたくなりますが、よりアピールするためには1枚目に何をもってくるかが重要です。


多言語Store対応

事前準備を念入りに

キーワードを出来る限りの言語に翻訳して登録するのはもはや常識ですが、
多言語登録をがんばった後に、「あ、スクショ間違えた。差し替えないと!」となると、全言語の登録にたいして一個ずつ修正することになります。
Storeの対応言語が増えてるので、これが非常に面倒です。
しっかり事前準備して、なるべく修正が発生しないようにしましょう。


レビューが始まると修正不可

キーワード、スクリーンショット共に Waiting For Reviewの間なら修正できるが、In Reviewになると修正できなくなるので、申請時には確定して登録しておく。
後になって修正したくなっても、再申請するしか方法はありません。

ということで、「HF BLADE」はバグ修正と合わせてこの辺の修正を申請中です。

2013年2月22日金曜日

iPhoneアプリ「HF BLADE」が期間限定セール中です!

見ていただけば、分かる人には一目瞭然だと思いますが、「HF BLADE」は「METAL GEAR RISING REVENGEANCE」というゲームの影響を受けて作られています。

METAL GEAR RISING REVENGEANCE Official Site

そのメタルギアシリーズ最新作「METAL GEAR RISING REVENGEANCE」が発売されたのを勝手に記念して「HF BLADE」は期間限定セール中です。

HF BLADE App
カテゴリ: エンターテインメント
価格: ¥170(セール価格)


今後のバージョンアップによる機能追加、改善も予定していますので
気になる方はこの機会にDLよろしくお願いします!

2013年2月9日土曜日

iPhoneアプリ「HF BLADE」をリリースしました!


HF BLADE App
カテゴリ: エンターテインメント
価格: ¥250


ほぼ1年ぶりの新作アプリをリリースしました!

iOSアプリ『HF BLADE』は、iPhoneのカメラに映るあらゆるモノを切断できるアプリです。

HF BLADEとは、高周波ブレードのことです。
参考→Wikipedia

操作は簡単。

2012年10月29日月曜日

RandamReel 1.2 アップデート リリースしました!

RandomReelをアップデートしました。

RandomReelは、日々迷いをかかえるあなたのためのアプリです。
たくさんの選択肢の中からひとつを選んでくれます。

RandomReel App
カテゴリ: ライフスタイル
価格: ¥85


アップデート内容
・iOS6対応
・4inch Display対応
・リール数追加(全5個)
・既存項目の編集ができるようになりました
・インフォ画面を追加しました。
・その他バグ修正


スクリーンショット

2012年9月21日金曜日

iPhoneのSafariに表示したWebページをMacのSafariでデバッグする方法


最近はJavaScriptにドハマリ中です。いろんな意味で。
そんな時にタイムリーにやってきたiOS6のアップデート。

何がタイムリーってかというと
iOSデバイス上のSafariやWebViewに表示したWebページのデバッグを、Mac上のSafariのインスペクタでできるようになりました!
iOS向けWeb制作、Webアプリ開発者必見!

注意:これができるのはiOS6からです。


今までは、PCブラウザで確認しながら作ってて、いざiPadで動かしてみると
なんか表示がおかしかったり、回転させたらおかしくなったり、デバッグが面倒くさくてしょうがなかった。

でも、これで解決(たぶん)。

手順は簡単。以下のとおり。

※2012/9/27 大事な手順が抜けてたので修正しました。すいません。

2012年9月4日火曜日

Macアプリ『Dash』で開発効率アップ!

ここのところ、じっくりものづくりする時間が取れないので、開発環境づくりやお勉強に励んでいます。 というわけで、開発効率アップに役立つMacアプリを紹介します。


Dash (Docs & Snippets) App
カテゴリ: 開発ツール
価格: 無料



スニペット管理・入力補助と、APIリファレンス等の開発ドキュメント閲覧機能が備わった開発支援アプリです。 おなじ会社が『DashExpander』ってのも出してますが、違いはドキュメント閲覧機能の有無みたいですね。
開発で利用するなら『Dash』の方を選択すべきでしょう。

さて、基本的な使い方は他のサイトにゆずるとして
このアプリが、開発にどう役立つかを紹介します。

2012年8月19日日曜日

ブログ名を変更しました

「hayate-works Support」は「hayate-works Note」に名称を変更します。

当初、アプリサポートのために立ち上げましたが、技術メモが増えてきてタイトルと内容の関係がなんか気持ち悪くなってきたので変更することにしました。


Xcodeにダウンロードされたドキュメントの消し方


MacBook Airを使って開発していると、限りあるSSD容量に気を使いますよね。
削れるものは削りたい。

さて、
XcodeのOrganizerのDocumentationにダウンロードされているドキュメント。
あれ意外と容量を使ってます。

特に古いバージョン時代からやってる人は
古いドキュメントが溜まってるんじゃないでしょうか。
これ消しましょう。


2012年8月11日土曜日

WebProcessがCPUを使いまくる現象

Safariが6.0になりましたね。

なんか同じぐらいのタイミングで、ChromeとiOS Developer Centerの相性が悪くなった気がします。リダイレクトがどうとかいってChromeで開けないページがありました。
Safariだと普通に開けるんですけどね。

まぁSafari6.0では、Chromeの癖でアドレスバーで検索しようとしてアワワワとなることもなくなったので、最近ではSafariを使うことが増えてきてます。

そんな折、やたらとMacBookのファンが回り続ける現象が起きたので、原因を探ってみると、CPUの使用率が常時高くなっていることに気が付きました。

そのCPUを使いまくっていた犯人がWebProcessです。

2012年7月28日土曜日

2012年6月11日発売の新MacをMountain Lionにアップグレードする方法

Mountain Lion発売前に、新しいMacを購入した人は、無料でMountain Lionにアップグレードできます。
注意:締め切りがあります。2012年8月24日です。

その方法は

2012年7月27日金曜日

Xcode4.4 の新機能はほぼMacアプリ開発向け


Mountain Lionの発売に合わせてXcode4.4がリリースされてました。
新機能として、コンパイラがLLVM 4.0になり
NSArrayやNSDictionaryで"[]"と添字を使った文法が使えるようになったり
@synthesizeを書かなくてよくなったり
と気になることが書かれてたので期待してたんですが
Appleのドキュメントをよく読んでみると、

What's New In Xcode
New Features in Xcode 4.4




と書いてありました。
iOS向け開発では、新文法はまだ使えないんですね。 以下の追記参照
@synthesizeの自動化は使えるみたいです。

その他、Interface Builderまわりとか新機能があるようですが
ほとんどMacアプリ開発向けの強化のようですね。


追記(2012/7/27):
試してみたら、iOSでも使えるみたいです。新文法。
いわゆるModan Objective-C Syntax

ただし、"[]"と添字を使った要素の参照と更新はiOSでは使えないようです。


    // iOS:OK  MacOS:OK
    NSArray* array = @[@"one", @"two", @"three"];
    
    // iOS:NG  MacOS:OK
    marray[0] = @"first";
    string        = array[1];



iOS6 beta版のインストール方法

すでにiOS6 beta版インストール済みのデバイスについては
Over the airアップデートできるようです。

そうとも知らずダウンロードしてしまい、どうやってインストールするかすっかり忘れていたのでメモ。


2012年7月23日月曜日

iPhoneアプリに追加課金で機能を追加するにあたって


iOSアプリの機能を追加課金で使ってもらう場合
どういう方法が可能なのかをまとめてみた。

ユーザーに機能を追加課金購入してもらうためのしくみには
2通りの方法がある。

1.アプリ内での課金
2.アプリ外での課金

以下にそれぞれの特徴をまとめます。

2012年7月20日金曜日

アプリの課金関係のガイドラインを訳してみた

iPhoneアプリの課金について調べようと思い、公式ドキュメントを漁ってみましたが、英語力が足りずAppStoreレビューガイドラインぐらいしか見つけきれませんでした。
どこか他にまとまってるんですかね?

というわけで、
App Store Review Guidelines の 11項
Purchasing and currencies を要約してみました。

注意:
英語が不得意な人間が各種サービスの力を借りて翻訳していることを前提にお読みください。

2012年6月21日木曜日

MacBookのカスタマイズで悩んだ


Windows PCに比べてはるかに選択肢が少ないMac。
しかし、購入にあたってはむちゃくちゃ悩みます。

迷ったときはRandomReelで解決!といきたいとこですが
こればっかりは予算の都合があるので考えて決めました。

2012年6月18日月曜日

新MacBook Airを注文した

先日、どのモデルを購入するか検討してMountain Lionの発売を待つことにしていたが、やはりもう買っちゃうことにした。

理由は
  1. 新モデルはMountain Lionに最適化されてるはず
  2. Mountain Lion発売直後は常用アプリの動作が不安
  3. Apple製品は欲しい時が買い時

2012年6月13日水曜日

新Macbook購入に向けてピッタリなモデルを検討する


去年からみんながこれみよがしに使うMacBook Airを横目に見ながら
今年発売されるであろう新MacBookにむけて貯金をしてきたわけですが

時は満ちた。

ただ、OSのアップグレードとか煩わしいので
Mountain Lionプリインストールモデルが出るまでもうちょっと待つつもりですけどもね。
そこで、今はどのモデルを購入するかワクワクしながら考えまくってます。