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の生成サービスからコードをコピペしてちょっと修正するだけ。

勢いで作ってみる

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

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

勢いで作る。