Hatena::Groupiphone-dev

ToyCameraとか開発日誌

2009-03-23

画期的かつ乱暴なRetainの管理方法

01:46

iPhoneはretainとreleaseの扱いを間違えるとすぐに落ちる。

ウザイ。 なので、落ちる確率を限界まで減らす画期的 Retain の管理方法を考えた。

まず、辞書を作る。

NSMutableDictionary *retainDict = NSMutableDictionary alloc] initWithCapacity:10];

んで、アプリの途中に勝手にリリースされたくないモノは、retain せずに全部辞書に突っ込む。

これでOK。完璧。

deallocのタイミングで辞書を開放すれば、辞書に登録した全てのオブジェクトも開放される。 なんというスマートな実装。

2009-02-28

iPhone用のFTPサーバーを外注したい

14:40

iPhoneのファイルにPC/WINから自由にアクセスできるように、FTPサーバのクラスが欲しい。

自分で組めないので、外注したい。

できればみんなで発注したクラスをシェアしたい。


幾らぐらいかかるもんなのかなぁ、そして俺もファイルアクセスしたいからクラス欲しいって人どれくれいいるかなぁ。

みんなで割り勘すれば、いけるはず。

2009-02-22

これを外注するとお値段いくらぐらいだろう

09:02

クラスの発注とか国内、海外でやってる人いないかなぁ。

UIScrollView および UIImageView を拡張して、

センター揃えで、2400px の画像を(iPhoneディフォルトのアルバム的に)正しく表示できるクラス。

ページングはいりません。

発注者、開発者は同クラスを各人の個人プロジェクト、受注プロジェクトで使える権利を有す。

開発者は同クラスをオープンソースでの公開や、第三者への譲渡、再販売の権利を有す。


iPhoneの通常のUIScrollViewはスケールの基準軸が左上でうざい + UIImageView はデカイ画像を保存できない。ここら辺のクラスは需要があるので、いっぱつ受注してみんなで共有するとハッピーなんじゃないかと思う。

これぐらいの条件だと、おいくらぐらいになるのだろう。

2009-01-09

iPhoneアプリをリジェクトされた方にお願い

02:21

はてなで、また1万ポイントの質問を立ました。

iPhoneアプリの審査でリジェクトを食らった事例をお教えください。

http://q.hatena.ne.jp/1231517350

みんなでリジェクトの情報を共有することで、

開発は大分スムーズになると思うのです。

みなさまお誘いあわせのうえ、情報をご提供ください。

2009-01-06

総額1万ポイントで質問

23:09

http://q.hatena.ne.jp/1231247634

国内の開発者全員が共有できるプレスリリース先リストが欲しいのです。

2009-01-01

FLDViewクラスを公開しました

15:05

UIViewを拡張したFLDViewを作成しました。

ディフォルトのsetCenterに加えて、setLeft, setRight, setTop, setBottom等や、setX, setWidth といった座標系の拡張セッターを大量に追加してあります。

SVN

http://code.google.com/p/fldkit/wiki/FLDView

2008-12-30

FLDRadioGroupクラスを公開しました

01:16

海外進出同盟を作る為に、ToyCamera他でえたノウハウを色々フィードバックすると約束したので、とりあえずクラス公開とか。

UISegmentedControllerが個人的にウンコだと思ったので、ラジオボタン代替物としてFLDRadioGroupを作成しました。


SVNレポジトリ

http://fldkit.googlecode.com/svn/trunk/FLDRadioGroup/


FLDRadioGroup *group = FLDRadioGroup alloc] init];
 [group addButton:myButton0];
 [group addButton:myButton1];
 [group addButton:myButton2];
 group.delegate = self;
 [group setSelectedIndex:2];
 
 -(void)radioGroup :(FLDRadioGroup*)group didSelectedButton:(UIButton*)button atIndex:(int)index
 {
   NSLog(@"Button selected");
 }

みたいな感じ。 UIButtonにはスキンをあててSelectedで外見が変わるようにしておいてください。

通常のボタンを addButton していくことで、ラジオボタンのグループとしてしようできるようにするクラスです。


これだとビューのデザインを管理しやすいです。ご利用は自己責任でご自由に。問題点改善点があったら連絡くれるとうれしいです。

KishikawaKatsumiKishikawaKatsumi2009/01/01 00:30typoがありました。
FLDRadioGroupDelegare->FLDRadioGroupDelegate

あと、デリゲートを呼ぶ前に、メソッドを実装してるかチェックした方がいいと思います。
実装してないときに落ちてしまうので。
if ([delegate respondsToSelector: @selector(operationShouldProceed)]) {
[delegate operationShouldProceed];

yossy44yossy442009/01/01 11:08いくつか気がついた点を。

1. Delegate とかで使われてる「didSelected」は「didSelect」では?
2. removeButton と removeAllButtons でアクションを削除してる部分は removeTarget:action:forControlEvents: の方が適切な予感
3. index 系の型指定は int じゃなくて NSUInteger の方がよさげ
4. setSelectedIndex で objectAtIndex する前に範囲チェックした方が良いと思う
5. setSelectedButton では button が buttons に含まれるかチェックした方が良いと思う

fladdictfladdict2009/01/01 12:29>KishikawaKatsumi
>yossy44

ご指摘ありがとうございマス!!
もろもろ修正して再アップいたしましたーー!

2008-12-17

しょうがないのでラジオグループとか作る

08:32

手始めにセグメンテッド・コントロールの代替物として FLDRadioGroup とかを作る。 FLDはfladdictの接頭語ね。

挙動的にはUIButtonサブクラスを addButton で登録することで、ラジオボタンとして使えるようにする。

メソッド的には以下のような感じかな。


-(void)addButton:(UIButton*)theButton;

-(void)removeButton:(UIButton*)theButton;

-(void)removeAllButtons;


-(void)setSelectedIndex:(int);

-(int)selectedIndex;

-(void)setSelectedButton:(UIButton*);

-(UIButton*)getSelectedButton;


addButtonに引数として data とかをつけて、データと関連付けられるようにするかが悩みどころ。

そこはDictionaryでユーザが自力でやるほうがいいのかな。



んでdelegatedeに


-radioGroup:(FLDRadioGroup*)group didSelectedButton:(UIButton*)theButton;


とかがあればいいんじゃないかなと思う。

2008-12-16UIコンポーネントが微妙

はっきりいって、iPhoneのUIhogehoge系のコンポーネントは、実装が微妙なものがある。

特にスライダー、セグメンテッド・コントロール、ピッカーは正直なんとかしたい。


スライダー
クリック精度が低い。トラックの部分を押しても反応してくれない。
セグメンテッド・コントロール
外見が弄りにくい。複数行の要素の多いメニューが作れない。
ピッカー
とても使いにくい。

スライダーは自力実装しなおしたほうがよさげかもしれない。 セグメンテッド・コントロールもこれのかわりに、UIButtonを複数登録して使用するラジオ・グループ的なものを作ったほうがよさそう。

時間があるときにボチボチと実装していこうかなぁ。

n85n852008/12/16 16:02確かにSliderは反応が今ひとつですよね。

Segmented..もおっしゃる通りですね。縦にして使いたいという人も検索していたら見かけました。あと、セグメントの数が2つだけだと、どちらをタップしても選択が移動してしまいます(そもそも2で使うのが間違っているんでしょうか?)。

Pickerはそれほど使いにくいということもないのではないかと思うのですが、どの辺りに使いにくさをお感じになったのか、お聞かせいただけるとうれしいです。

fladdictfladdict2008/12/17 08:31Pickerはその機能のシンプルさにくらべて、UIの画面占有範囲が馬鹿でかいというのが1つ。
ピッカーを表示して、それから値を決定するっていう、2タップ以上の操作が必要な点がもう1つ。
その2点がやだなぁと。