반응형

상대방에게 iMessage 든 SMS 든,
주소를 URL Link 로 포함 전송하여 클릭 했을 때
구글맵에 보여주고 싶어서
NSString 을 URLEncoding 하는 방법을 찾아봤습니다.

NSString *addr = @"서울시 서초구 서초동 1363-1";

[[NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", addr]  stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ];

 

 

URLEncode  된 링크가 잘 전송이 되어 메세지의 링크를 누르면 구글 멥에서 지정된 주소가 지도에 잘 열리네요.. :)

음.. 이제 저 길고 긴 링크를 줄이는 녀석을 찾아봐야겠네요.
bit.ly 로 짧게 하는 방법이 있긴 있다고 들었지만.. ㅋㅋ

반응형
반응형
아이폰 어플을 만들고, 아이튠스 커넥트를 통해 아이튠스에 올리면, 판매가 시작되는데요, 판매 리포트 중, 판매, 업데이트, 등이 있는데 아래와 같은 그림의 내용이 있습니다.


Royalty waived transactions.. 도대체.. 뭘까..
궁금해서 찾아봤습니다.
(https://apparentetch.com/2011/01/royalty-waived-transactions/)

리딤코드로 다운받은 경우라고 하네요.. :0

p= promo code (리딤코드) 사용하여 다운받아 진 내역입니다. (나만 몰랐나 봐요~~~~) 
반응형
반응형

[참고: http://www.iphonesdkarticles.com/2008/11/localizing-iphone-apps.html ]

간혹 필요한 아이폰에서 사용자 언어를 리턴하는 간단한 메소드 입니다.

NSString *resultCheckLanguage = [self checkLanguage];


로 받으시면 되겠네요.

-(NSString *)checkLangauge
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 
   return [[defaults objectForKey:@"AppleLanguages"] objectAtIndex:0];
}


resultCheckLanguage 결과문은

NSLog(@"current language: %@", resultCheckLanguage); 


로 확인해 보시면 아래와 같이 나옵니다. 

//한글일 때
     2012-02-27 10:58:36.167 wordList[1229:15803] current language: ko
//영어일 때
     2012-02-27 10:58:36.167 wordList[1229:15803] current language: en



반응형
반응형
[참고: http://bees4honey.com/blog/tutorial/how-to-add-iad-banner-in-iphoneipad-app/]

필요한 framework : iAd.Framework

1. ziAd.h

#import <Foundation/Foundation.h>
#import <iAd/iAd.h>
@interface ziAd : NSObject <ADBannerViewDelegate>
 
{
    ADBannerView *adBanner;
    BOOL bannerIsVisible;    
}
@property (nonatomic, assign) BOOL bannerIsVisible;
 
- (ADBannerView *)getADBanner;
@end


2. ziAd.m

#import "ziAd.h"
@implementation ziAd
@synthesize bannerIsVisible;

// iAd 배너
 
- (ADBannerView *)getADBanner
{
    adBanner = [[ADBannerView alloc] initWithFrame:CGRectZero];
 
    [adBanner setRequiredContentSizeIdentifiers:
 
    [NSSet setWithObjects:ADBannerContentSizeIdentifierPortrait, nil]];
 
    [adBanner setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait];
 
    [adBanner setFrame:CGRectMake(0, 410, 320, 50)];
 
    [adBanner setDelegate:self];
 
    self.bannerIsVisible = NO;
 
    return adBanner;       

}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner

{
    if(!self.bannerIsVisible)
 
    {
        [UIView beginAnimations:@"animateBannerAppear" context:nil];
 
        [adBanner setFrame:CGRectMake(0, 410, 320, 50)];
        [UIView commitAnimations];
 
        self.bannerIsVisible = YES;
 
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
 
     if(self.bannerIsVisible)
 
    {
        [UIView beginAnimations:@"animateBannerOff" context:nil];
 
        [adBanner setFrame:CGRectMake(041032050)];
        [UIView commitAnimations];
 
        self.bannerIsVisible = NO;
 
    }
}
@end
// iAd 배너


3. 호출..

#import "ziAd.h"

- (void)viewDidLoad
{
    //iAd
    [self.view addSubview: [[[ziAd alloc]init] getADBanner]];
    [super viewDidLoad];
 
}

//viewWillAppear 에 올리는 방법이 더 좋다고 해서 DidLoad 에서 지웠습니다.

-(void)viewWillAppear:(BOOL)animated
{  
     [self.view addSubview: [[[ziAd alloc]init] getADBanner]];

}


 


반응형
반응형
작년 11월 말..

iOS 기반 프로토 타입 어플을 만들어 보자..
프로토 타입 어플을 만드는 동안 스파이킹을 많이 해 보자..
이 기간 내 공부도 많이 하여 다음 어플을 만들 떄 좀 편안하게 진행하자..

참 여러가지 생각도 많고 욕심도 많고..
하지만 단 한가지 팀 내  공통적으로 있었던건..

iOS 어플에 대한 궁금증과 도전 정신 하나만은 충만 했었다는것..

막내는 UI 를.. 고참은 CoreData 를.. 디자이너는 디자이너대로의 목표가 있었을 테고..
난.. ㅡ,.ㅡa 내 목표는 만들자.. 인거 같은뎀.. ㅎㅎ

1주정도 브레인 스토밍으로 어플에 대한 전반적인 테마와 캐릭터 그리고 타겟마켓까지 정한뒤..
주 목표로 삼았던 유명 어플의 분석에 들어가, 프로토 타입이 나오는데 까지 걸린 시간은.. 3주...

디자인 입히고 UI 쪽 User Experience 관련, 기능 향상 및 디자인 쪽 필요 요소 챙기는데 1주..
목소리 녹음 하고 BGM 작업 1주..
1차 테스트 들어가니.. 어플이 막 죽더라.. 팍팍.. ㅎㅎ
2차 테스트 는 아마 모두 설에 고향 내려가서 했을 듯.. ㅋㅋ

뭐 iPad 1(wi-fi), iPad 2(wi-fi), iPod Touch 4세대, iPhone 3Gs, iPhone 4, iPhone 4S
등등.. 하여 모든 기기에서 동작하는것 확인..

3G 버전의 iPad 1 에서 어플이 실행이 안되는 부분에 대해선 조금 아쉽지만..
일단 어플은 아이폰이 목표이기에 막무가내로 통과 시켜 아쉽긴 하다.

뭐 이래저래 하야..

지난 목요일 2011/01/26 심사를 위해 어플을 업로드 시키고..

오늘 (2011/01/28) 은 Processing For AppStore 라고 뜬다.
이게 뭘까.. 하는 마음에 인터넷을 찾아보니.. 24시간 내 Ready for Sale (판매 준비 완료) 이라고 한다.

곧 Ready for Sale 이 뜨게 되면 Store 에 올라가는건.. 시간문제.. ㅎㅎ 
겁 없이 유료 어플에 일단 도전!!

ㅎㅎ.. 사용자들이 잘 봐 주었으면 한다.

자자자.. 다음 버전에 대한 준비는 완료..
월요일 부터는 난 이 어플 관련 무료 버전 어플 제작에 들어간다. 

--------------------------------
Update!!! 다행히 Ready For Sale 이 떠서 지금 2011/01/28 AppStore 에 올라왔습니다. ㅎㅎ
3일만에 올라왔네요 ㅋㅋ 
-------------------------------- 
반응형
반응형
이런저런 테스트를 하며 어플 하나 만들어 보다 보니..
암호를 입력하여 기능 잠금을 해야 하는 부분이 있어서 뒤적거려 봤습니다.

일단은.. TextField 에 번호를 입력 하는데, 보여지면 안되겠지요?

그래서 찾아봤더니, textField 의 메소드 중 setSecureTextEntry 라는 녀석이 있더군요.
넘기는 인자를 YES 로 넘겨주면 알아서 변환해 줍니다.

//숫자 대신 안보이는 점으로 변환

    [textField setSecureTextEntry:YES];




textField 에 글자 길이 지정해 주는 부분도 있긴 하지만..
개인적으로 사용하진 않았구요.. edit changed 이벤트를 사용해봤습니다.
무슨 이유인지 모르겠지만, setSecureTextEntry 와 함께 사용하기 좋더군요.

그럼 또.. 별거 아닌거 알아내려 갑니다.. ㅎㅎ :)
 
반응형
반응형
[참고: http://eureka.ykyuen.info/2010/04/02/objective-c-convert-nsstring-to-int-and-vice-vesa/]

변수 값 스트링을 인티저로.. 인티저를 스트링으로 바꿔주는 방법입니다.
많이 사용하는 값 형변환.. :) 입니다.

1. NSString -> int 변환 

NSString *NumberString = @"209384029384023948";
int i = [NumberString intValue];



2. int -> NSString 변환 

int aNumber = 209384029384023948;
NSString *aString = [NSString stringWithFormat:@"%d", aNumber];



 
반응형
반응형
어떤 개발을 하던지..
디버그 나 이벤트 관련 테스트 로는 알럿창 띄워 테스트 하는게 가장 보편적이지요.
그래서 버릇 처럼 알럿창을 제일 번저 띄워봤습니다. ㅎㅎ 
(참고 싸이트 : http://snipplr.com/view/42990/ )




1. alert 1

-(void)alertAndControl

{

    UIAlertView *alert = [[UIAlertView alloc]init];

    alert.message = @"hello";

    [alert addButtonWithTitle:@"OK"];

    [alert show];

}


alertAndControl 함수를 이벤트 시 호출해 주면 띄용~ 하고 뜹니다. ㅎㅎ
근데 이벤트 테스트 말고, 디버그는 NSLog 로 많이 사용하게 되더군요. ㅎㅎ


2. alert 2

UIAlertView *alert2 = [[UIAlertView alloc]

    initWithTitle:@"Do you really want to start the End of World?"

                          message:nil

                          delegate:self

    cancelButtonTitle:@"No, cancel Red Day"

    otherButtonTitles:@"Yes, initia", nil];

    [alert2 show];



이건 버튼 추가된 알럿입니다. 

3. alert 3 - alertView.tag 사용하기

alertView.tag 를 사용하게 되면.. 지정해준 tag 에 따라 action 을 부여할 수 있더군요.

메소드 호출 시 넘긴 값들은 
@"Lock Player Changes" :@"아줌마 잠그실꺼에요?" :1
요로케 입니다.

-(void)alertAndControl:(NSString *)alertTitle :(NSString *)alertMessage :(int)tagNo
{
    UIAlertView *alert = [[UIAlertView alloc]
 
                          initWithTitle:alertTitle
                          message:alertMessage
                          delegate:self
 
    cancelButtonTitle:@"아니오"
 
    otherButtonTitles:@"", nil];
 
    alert.tag = tagNo;    
    [alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch (alertView.tag) {
        case 1:
            //1 태그 알럿 :)
            switch (buttonIndex) {
                case 1:
                    if ( nextView != nil)
                    {
                        [[parentView navigationController] pushViewController:nextView animated:YES];
 
                    }
                    break;               

                default:
                    break;
            }
            break;
        case 2:
            //2 태그 알럿 :)
            break;
        default:
            break;
    }
}



 이렇게요. 여기서 "예" 를 누르게 되면 nextView 화면으로 전환되게 코딩이 되어 있지요?
쩌업 편하네요
조금 더 작업하여 버튼까지 구현하면 완성이 될 듯 싶습니다.

반응형
반응형

1. iOS 내부에서 작동하는 링크 코드 입니다.
itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=1234567890

2. PC 에서 작동하는 링크 코드입니다. 
https://userpub.itunes.apple.com/WebObjects/MZUserPublishing.woa/wa/addUserReview?id=1234567890&type=Purple+Software

 
반응형
반응형
여러가지 이유로.. iOS 로 어플 개발 공부를 시작하게 되었습니다.
참신한 아이디어.. 라는게 참.. 어렵네요.

 
참신한 아이디어와 기술의 접목으로 돈벌이 함 해보려고 하는 뜻이야 뭐 누구든 똑같다 볼 수 있겠지만.. :)
개발자로서 iOS 에서 한번쯤은 개발 해보고 싶다.. 생각 안한 사람 없겠지요? ㅋㅋ

그래서 저도 2년 넘게 아이폰 사용해 오면서 여러가지 생각을 해오다.. 이런저런 어플들을 한번 만들어 보고 싶네.. 라는 생각이 들어 공부를 시작했습니다.



자 제 첫 어플 기대해 주세요 ㅎㅎ 
 
반응형

+ Recent posts