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プリインストールモデルが出るまでもうちょっと待つつもりですけどもね。
そこで、今はどのモデルを購入するかワクワクしながら考えまくってます。


2012年5月24日木曜日

Xcodeのデバッガでの"error: error: reference to 'id' is ambiguous"について

Xcode4.3.2では、デフォルトのデバッガはlldbになってますが
なんかあやしい動きが多いです。

(lldb) po self.window
error: error: reference to 'id' is ambiguous
note: candidate found by name lookup is 'id'
note: candidate found by name lookup is 'id'
error: 1 errors parsing expression

こういうときはデバッガをgdbに変更しましょう。

デバッガの変更方法

Product > Edit Scheme… 
Run を選択し、 Infoタブで Debugger が LLDB になっているのを GDB に変えて OKボタン。

こちらの記事でも解説してます。


2012年5月16日水曜日

libxml2.dylib使用時の"file not found"エラー解決法

Xcode、Objective-Cでの話です。
XML関連の処理をするときにlibxml2.dylibをフレームワークに追加すると思います。
この時に、プロジェクトのビルド設定で"Header Search Paths"の設定を怠ると、エラーが発生します。

たとえば、こんな感じ

これは、Xcodeが適切なパスを探しにいってないせいです。
具体的には以下の手順で解決します。

プロジェクト設定の"Build Settings"タブを開き、"Search Paths"セクションにある"Header Search Paths"という項目に以下の値を追加します。

$(SDKROOT)/usr/include/libxml2


以上。
これでXcodeが目的のファイルを見つけられるようになります。

参考

2012年4月26日木曜日

AppStoreリンクボタンのつくりかた

AppStoreへのリンクをブログやサイトに載せるとき、どうしてますか?
なんと、Apple公式ツールがありました。

Link Maker
http://itunes.apple.com/jp/linkmaker

知らんかった・・・。
ただこれ、ちょっとイマイチだな。

2012年4月22日日曜日

iOSアプリ「曜日時計」リリース!!!


曜日が主役の時計アプリ「曜日時計」をリリースしました!!!

曜日時計とは

  • シンプルな時計アプリです。
  • とにかく曜日を前面に。
  • 縦持ち、横持ちどちらでも使えます。
曜日時計サイト
http://www.hayate-works.net/weekday/

簡単な紹介は以下より


2012年3月26日月曜日

RandomReel Ver.1.1.0 リリース

RandomReelをアップデートしました。
ご利用いただいている方はAppStoreからアップデートをお願いいたします。


今回はVer.1.1.0へのマイナーバージョンアップです。
さらに、バージョンアップにあわせてRandomReelサイトを公開しました。

詳細は以下のとおりです。


2012年3月22日木曜日

Xcode4.3実機デバッグ時にコンソールにログが出ない件


2012/03/27 追記:
Xcode4.3.2にアップデートしてCommand Line Toolsをインストールしたら直ったっぽい。
ただ、直った原因がこれかどうかの裏はとってない…。


iOSアプリのデバッグのためにプロジェクトを"Run"した時、NSLogを使ったログは出力されるのに独自に定義したカスタムログ出力マクロを使ったログが出力されないという現象が起きました。
ちょっと前まではちゃんと出てたのに急に出なくなったなと思って調べてみたところ、どうやらXcode4.3から標準デバッガーがLLDBに変更されたのが原因のようです。

根本的な解決ではないですが、とりあえず以前のようにログを見れるようにする方法は以下のとおりです。

2012年3月16日金曜日

iPhoneアプリ申請の取り下げ


先日、iTunes Connectにアップデート申請していたRandomReelのレビューが終わりリリース可能な状態になったのですが、時を同じくしてちょっとしたバグを発見してしまいました。

申請時に、レビュー後自動公開ではなくこちらのタイミングでリリースできるように設定していたので、公開前に申請を取り下げました。

ということで、アプリの申請取り下げ方法をメモ。

2012年3月13日火曜日

bloggerで"続きを読む"を使う方法


ブログ初心者ですいません。
"続きを読む"とか"もっと読む"とかいうリンクがなんのためにあるのかとか、考えたこともありませんでした。
インデックスページの可読性、一覧性を上げるとともに、各記事のPV測定にも影響があるんですね。

2012年3月9日金曜日

iPhoneアプリの起動時のみステータスバーを消す方法

iPhoneアプリの起動時、つまりDefault.pngが表示されている間だけステータスバーを非表示にするには

  1. Info.plistに"Status Bar is initially hidden"を追加して"YES"に設定する
  2. 最初の画面を管理するViewControllerのviewDidLoadに以下を記述
[UIApplication sharedApplication].statusBarHidden = NO;

これでOK。

2012年3月7日水曜日

Xcode4.3のOrganizerにSubmitボタンがない件

たった今、RandomReelのアップデートを申請したとこですが、Xcode4.3にしてから初めての申請ということでOrganizerの変化にちょっと焦りました。

以前はValidationが終わったモジュールを送信するための「Submit...」ボタンが存在していたのですが、見当たらない。

2012年3月6日火曜日

UIViewのsubview達を初期化(削除)する方法

CALayerのsublayerを初期化する方法に続き、UIViewのsubview達を初期化する方法。
UIViewのプロパティsubviewsはreadonlyなのでCALayerのようにはいきません。

UIViewの場合は、subviewsから取り出した各オブジェクトに対してremoveFromSuperviewを呼ぶ必要がある。

for (UIView* subview in superview.subviews) {
        [subview removeFromSuperview];
}

これでOK。

関連記事

CALayerのsublayer達を初期化する方法

2012年3月2日金曜日

アプリ起動時にデバイスが横向きだったときのUIViewControllerメソッド呼び出し順

ローテーションに対応するアプリを作る場合、ユーザーが横持ちでアプリを起動することも考えないといけません。
デバイスが横向き(Landscape)でアプリが起動した場合、最初の画面を管理するUIViewController派生クラスのメソッドがどういう順番で呼ばれているか調べました。

2012年2月27日月曜日

CALayerのsublayer達を初期化する方法

RandomReelの改修中にCALayerに乗せたsublayer達を初期化しようとしたのだが
下手に考えすぎて
for (CALayer* sublayer in [superLayer sublayers]) {
    [sublayer removeFromSuperlayer];
}
とかやっても駄目だった。
ググったら海外にも同じことやった人がいた。

http://stackoverflow.com/questions/2067578/removing-all-calayers-sublayers

というわけで
superLayer.sublayers = nil;
だけでいいのね。
冷静に考えれば確かにそれでsublayer達はreleaseされるのか。

2012年2月26日日曜日

「プログラミングで溜まったストレスをプログラミングで解消できるか?」という実験

目下、間近に迫ったリリースに向けて壮大なバグ取りを休日返上で行なっているところですが、そんな中、プログラミングで溜まったストレスをプログラミングで解消してみようじゃないかという実験を始めています。そう、迎え酒です。私はお酒は飲めません。

このガチガチに決められたもの追い立てられながら作るという作業のストレスを、自分で考えた自分の好きにしていいものをみんなに届けたいという気持ちから作るという創作活動で上塗りしてしまおうではないかと、そういう発想です。

多忙な時というのは、得てして脳が活発な時でもあります。たぶん。いや、半分死んでいるともいえますが。なんか勢いはあります。ある気がします。このプロジェクトが終わると脱力して燃え尽きて真っ白になってゲームを始めてダメ人間に戻るのは眼に見えています。
だから今なのです。

先日、ふと簡単なアプリを思いついたので勢いで作ってみようとコチラの投稿でも言いましたが、これをこのクソ多忙な仕事と並行して作ります。いや、もう作ってます。思った通りわりといい感じです。さっさと仕事を終わらせて創作に着手したいというモチベーションがいい感じにはたらいて仕事にも力が入ってしまうという微塵も予想しなかった効果もでている気がします。

さて、そうこう言っているうちに仕事が架橋に入って全然創作活動の方ができなくなってきたこの月末。はたして両方無事にリリースできるのか!?


2012年2月24日金曜日

AnimationDrawableを使うときの注意点

Androidネタです。 
複数画像を使ったパラパラアニメを作るために使うAnimationDrawableですが、なかなかのクセモノです。 

その1

Activityの起動と同時にアニメーションを開始したい場合は、onWindowFocusChangedでstartしてやらないと動きません。
そう、onCreateやonResumeでstartしてもビクともしません。
これは、その時点ではAnimationDrawableが画面上に準備できてないからです。

その2

startしたらstopしましょう。
そう、stopではなく描画の関係で止まったアニメーションを再開させようとstartを再度呼んでもビクともしません。 startの前にstopするようにしたらいいんじゃないっすかね。

その3

ActivityGroupなどを使っていると画面遷移で止まったりします。
そう、この時はonWindowFocusChangedが呼ばれないためビクともしません。
これは、別スレッドを利用して回避できるようです。
onResumeで
runOnUiThread(new Runnable() {
 @Override
 public void run() {
  animation.start();
 }
});
とかしてやると動きます。
注:どっかでstopしてね。

以上です。

2012年2月22日水曜日

RandomReel 1.0.1 リリース

RandomReelをアップデートしました。
ご利用いただいている方はAppStoreからアップデートをお願いいたします。


バージョンアップ内容

  • 日本語ローカライズ
  • 登録したリストが消えてしまうことがあるバグ対応

以上です。


サポートページはコチラ
http://hayate-works.blogspot.com/2012/01/randomreel.html

2012年2月21日火曜日

WebViewのclearHistoryで履歴が消えない件


AndroidのWebViewを使ってて
いくらclearHistory()呼んでも全然履歴が消えないと思ったらこういうことでした。

「1ページ読み込んだあとに呼ばないと消さないよ。」

例)ページAを表示後、ページBを表示する
【間違ったやり方】
 1.Aをロード
 2.Bの読み込み前にclearHistory()
 3.Bをロード
 履歴は消えません。この時点での履歴:B、A

【正しいやり方】
 1.Aをロード
 2.Bをロード
 3.Bの読み込み完了後、clearHistory()
 Aの履歴が消えます。この時点での履歴:B

WebViewClientのonPageFinishedで呼んでやると、きれいに消してくれました。

よく考えてみると、確かにこの順番でやるのが正しい。
そうならそうとリファレンスに書いといてくれてもいい気がする。

2012年2月20日月曜日

Toastの中のテキストをセンタリングする

最近はAndroidアプリを作っているわけですが、Toastの中のテキストをセンタリングする方法をメモっときます。

Toast自体のセンタリングは
setGravity(gravity, xoffset, yoffset)
でできるわけですが、中のテキストは簡単にできそうにありませんでした。
そこで、調べてみると、デフォルトのToastは
-LinearLayout
-TextView
という構成になっているようなので
((TextView)((LinearLayout)toast.getView()).getChildAt(0))
.setGravity(Gravity.CENTER_HORIZONTAL);
でセンタリングできるみたいです。
とても汚いですが・・・。

もしくは、自前でレイアウトを作成してsetView(view)してカスタム化してあげるか。
その場合はIDを"toast_layout"にしないといけないらしい。
その辺の詳細はコチラ


2012年2月16日木曜日

Xcode4.2でローカライズした際の問題について

Xcode4.2でローカライズしたプロジェクトをよくみると
japaneseのファイルが絶対パスに設定されています。

ローカライズで追加された(japanese)付きのファイルを選択して
右側ペインのFile InspectorタブのIdentityにあるLocationを見ると
"Absolute Path"になってて変更できない。

これをこのままにして、プロジェクトフォルダを別の場所に移動させようものならビルドができなくなります。
ソース管理等で別のパスにCheckOutとかしても。

これの対策方法は以下を参考にさせていただきました。

http://d.hatena.ne.jp/s-0samu/20111025/1319526335

ありがとうございました。

2012年2月15日水曜日

Bloggerで画像の枠と影を消す

Bloggerで投稿の中に画像を入れると、どう考えても邪魔な枠線と影を自動で付けてくれます。
今回はこれの対策を行ないました。

以下のサイトを参考にさせていただきました。

  http://blog.point-line.info/2011/01/blogger_2084.html

ありがとうございました。

RandomReel Support (English)

RandomReel


Price US$0.99


RandomReel is a decision making tool.
After editing the list of choices by pressing the Title button
Just press the Start button to rotate the reels and press the Stop button to stop it.

Please use this app when you're wondering.




How To Use


Main Roulette View

This is the main roulette view.
Roulette is rotated by pressing the green button.
And button will turn red (stop).
Red button is used to stop the roulette.

If you want to change an item, please press the white button.
Then, the editing view will be displayed.












Item Edit View

This is the Item edit view.
This view allows you to add and delete items.
The edited list here will be reflected in the roulette.

When you tap the title, you can change the title text.

When you press the button to return to the main view.











This app will solve your hesitation!
Enjoy !! Thank you.

Available on the AppStoreバッジを導入

当サイトは個人開発アプリのサポートがメインなので、アプリのプロモーションサイトでよく使われているあのボタンを付けました。

正式には「Available on the App Store」バッジというようです。 
この画像自体はアップルがDeveloper向けに提供していますが、これの使い方にはルールがあります。
例えば

  • 回転させてはいけない
  • 色を変えてはいけない
  • 白の枠線は必ずいれること
  • 中身を書き換えないこと
などなど

詳しくは
iOS Dev Centerにログイン後、右側にあるメニューのMarketing Resoucesリンクの先のページに日本語のガイドラインPDFに記載してあります。


使用上のルールを守り、正しく利用しましょう。

TwitterのFollow meバッジを付ける

アプリのサポートサイトとして急ごしらえで公開したので、
現状はほぼBloggerデフォルトです。
少しずつカスタマイズしていくので、その内容をメモしていこうと思います。

まずは、Twitter Follow meバッジを付けてみました。
以下のサイトを参考にさせていただきました。
簡単すぎてビビリました。

http://jutememo.blogspot.com/2009/12/blogger-twitter-follow-me.html

ありがとうございました。


GO2WEB20の生成サービスからコードをコピペしてちょっと修正するだけ。

勢いで作ってみる

最近、やたらと忙しくて土日も働く日々が続いています。
この業界ではよくあることなんでしょうが、よくあることだと思考停止するようでは進歩はありません。

そんな中、ひとつアプリのアイデアが降りてきちゃいました。
この多忙な中でどこまでやれるか挑戦してみようと思います。

勢いで作る。

2012年1月29日日曜日

RandomReel Support (Japanese)

RandomReel

Price ¥85


RandomReelはあなたに代わって答えを選択してくれるアプリです。
自分で作ったリストをルーレットにすることができます。


Update : 2012/03/26 複数リール対応、機能改善、バグ修正
Update : 2012/02/22 日本語ローカライズ、バグ修正




- つかいかた -


ルーレット画面

インストール直後はYES/NOのルーレットになっています。
Startボタンでルーレットが回り始め、StopボタンでYESかNOのどちらかに止まります。
YES/NOの二択でお困りの方はこのままお使いください。


オリジナルのリストを作成するには
「YES/NO」と書かれた白いボタンをタップしてリスト編集画面に移動します。










リスト編集画面

リスト編集画面では項目の追加、削除、タイトルの変更ができます。
編集が終わったら右上の完了ボタンでルーレット画面に戻ります。

タイトル表示部分をタップすると、タイトルの変更が可能です。

自分だけのルーレットを作成しましょう。










さぁ、RandomReelを使って日頃の迷いから解放されましょう。
ただし、重要な選択はこんなものに頼らずじっくり考えることも大切ですよ。


バージョンアップ予定

・日本語対応(近日公開)
・複数のリストが作成できるようにします
・項目シャッフルができるようにします


スクリーンショット




2012年1月18日水曜日

はじめまして

iOSアプリ開発者のhayateです。
個人的に開発したアプリのサポートサイトを立ち上げました。

これからリリースするアプリの紹介、使い方、サポートを
ここで公開していきます。

今後ともよろしくお願いします。