아이폰 공짜 애플리케이션의 힘

수시로 애플 앱 스토어(App Store)에 들어가서 Top 50 공짜 애플리케이션을 훓어보는 것이 거의 일과입니다. 사실 몇몇 프로그램들을 내려받아서 사용하긴 하지만 오랫동안 두고 사용하는 것들은 그리 많지 않은 것이 사실입니다.

공짜 프로그램들을 보면서 의아한 것은 도대체 왜 시간을 들여서 열심히 만든 프로그램들을 그냥 무료로 배포하는 것일까 하는 것입니다. 물론 광고 배너를 단 프로그램들은 어느 정도 이해가 가긴 하지만 그래도 그 광고가 얼마나 $$를 벌어주겠나 하는 약간은 회의적인 생각을 하고 있었죠.  그런데 그 생각이 완전히 틀렸음을 어제 알게 되었습니다.

메니저가 보내준 한 기사를 보니까 그 별것 아니게 생긴 광고 배너가 (상의 100위에 들 경우) 하루에 적게는 $400부터 많게는 $5000까지 벌어다 준다고 합니다. ㄷㄷㄷ 

다시 말해서 가장 낮게 잡아도 한 달이면 $12,000이 된다는 말이 됩니다. 그럼 일 년이면 $144,000. (장난이 아니네요...)

http://www.techcrunch.com/2009/05/06/just-how-much-money-can-free-iphone-apps-make-quite-a-bit/
2009/05/07 11:18 2009/05/07 11:18
, , , , , ,
Response
A trackback , No Comment
RSS :
http://thefirstgood.com/tc/rss/response/46

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Trackbacks List

  1. 미국 앱 스토어에서 많은 무료(공짜) 어플리케이션을 다운받기

    Tracked from 자유게시판 2010/01/19 00:14 Delete

    아래에 무료 어플에 대한 글이 있어서, 몇가지 더 유용한 팁을 말씀드릴께요. ^^ 한국 앱스토어는 미국 스토어에 비교하면 정말 "새 발의 피", 너무 비교가 되질않아요. 미국 스토어에는 완...

Leave a comment

How to change UIImageView's animation images

I have a problem with updating a series of images to the existing UIImageView object which already has animating images. So I posted a question to iPhone Dev SDK forum.

Dealing with timer is kind of tricky. Especially when releasing a timer object before closing your application. I found that it's because a timer in the run loop may still point to the object even after you already released it depending on the schedule.

http://www.iphonedevsdk.com/forum/iphone-sdk-development/17000-how-change-animating-iamges-uiimageview.html#post77399

Hi,

I am trying to reuse UIImageView object instead of creating a new one. I am doing so because I found that releasing a UIImageView having animation in the middle before closing the app makes the app crash.

It's because even after stopping a timer (stopAnimating), the timer in the run loop may still point to the already released object depending on the schedule. So I found that releasing a UIImageView which uses a timer object before closing the app is not quite safe. (Correct me if I'm wrong, but that's what I found)

This description from NSTimer class reference explains why:
"The run loop removes and releases the timer, either just before the invalidate method returns or at some later point."

Anyways, how can I change animation images for the existing UIImageView which is currently animating?

stopAnimating itself is ok, but after that if I assign a new array of images, it crashes.

// This crashes the app
[self.imageView stopAnimating];
self.imageView.animationImages = newImageArr;
self.imageView.animationDuration = 0.75; // Duration in seconds
self.imageView.animationRepeatCount = 0; // zero loops forever
[self.imageView startAnimating];

-------------------------------------------------------------------------------------------------------

It seems that there is no workaround to solve this problem. So I decided to do animation myself with NSTimer.

Here is a sample code.

// .h
NSTimer *animationTimer;                // Used to animate bomb images
NSUInteger animationImageArrIndex;
NSMutableArray *animationImages;        // Hold UIImages

// .m
- (void) viewDidLoad {
    NSMutableArray *tmpMutableArr = [[NSMutableArray alloc] initWithCapacity:4];
    self.animationImages = tmpMutableArr;
    [tmpMutableArr release];
   
    for( NSInteger i = 0; i < 4; i++ ) {
        NSString *fileName = [[NSString alloc] initWithFormat:@"bomb%d.png", (i+1)];
        UIImage *img = [UIImage imageNamed:fileName];
        [fileName release];
        [self.animationImages addObject:img];
        [img release];
    }
    self.animationImageArrIndex = 0;
    self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:(0.75/4) target:self selector:@selector(animationTimerHandler) userInfo:nil repeats:YES];
}//end viewDidLoad

- (void) animationTimerHandler {
    self.imageView.image = [self.animationImages objectAtIndex:self.animationImageArrIndex];
    self.animationImageArrIndex ++;
    if( self.animationImageArrIndex >= 4 )
        self.animationImageArrIndex = 0;
}

- (void) updateAnimationImages:(NSMutableArray *)images {
    if( [self.animationTimer isValid] == YES )
        [self.animationTimer invalidate];
    
    self.animationImages = images;

    self.animationImageArrIndex = 0;
    self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:(0.75/4) target:self selector:@selector(animationTimerHandler) userInfo:nil repeats:YES];
}

2009/04/27 19:45 2009/04/27 19:45
, , , , , , ,
Response
No Trackback , a comment
RSS :
http://thefirstgood.com/tc/rss/response/41

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Comments List

  1. Harley Turan 2009/07/23 06:31 # M/D Reply Permalink

    Works like a dream, thanks!

Leave a comment
현재 모바일 (iPhone)용 게임을 개발 중입니다.  엔진이 거의 마무리 단계에 왔으므로 전체적인 그래픽 디자인을 하실 분을 찾습니다.

당연히 수고비를 드리며 관심있으신 분들은 답글에 연락처를 남겨주시기 바랍니다.

필요로 하는 이미지는 다음과 같습니다.

1. 메인 화면 배경이미지 1개  320px * 480px

2. 메인 아이콘 1개 256*256

3. 레벨별 Boss 캐릭터 5개: 200*100 (크기는 모양에 따라 약간 달라질 수 있음)
    - 각각의 Boss별로 애니메이션을 위해 별도로 4-5개의 이미지가 필요

4. 폭탄 5-6종류 50*50
    - 애니메이션을 위해 각 종류별로 4-5개의 추가 이미지가 필요

5. 아이템 이미지 5-6 종류 50*50
    - 애니메이션을 위해 각 종류별로 4-5개의 추가 이미지가 필요




2009/04/23 17:16 2009/04/23 17:16
, , , , ,
Response
No Trackback , No Comment
RSS :
http://thefirstgood.com/tc/rss/response/40

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Leave a comment

블로그 이미지

실리콘밸리에 살고 있는 SW 엔지니어가 풀어 놓는 미국생활 이야기와 IT 관련 글을 보실 수 있습니다.

- 1stgood

Archives

Statistics Graph