아이폰어플개발정보2010. 10. 13. 14:18
[아이폰 앱 개발] webView를 이용해서 간단한 웹브라우져 만드는 방법

iPhone Coding – Learning About UIWebViews by Creating a Web Browser

Wow! It has been a long time since my last tutorial… As I wrote in my last post, I had to take a break due to my wife having our baby.  But, now I’m back and have a great tutorial for you guys.  

Today I will be showing you how to work with a  UIWebview to create a basic web browser.  Here is a screenshot of the app we are going to create.

Create a View-Based Application

Ok, so let’s get started.  Start by opening up Xcode and click File -> New Project.  Next select View-Based Application and click Choose… Name this project something like iCodeBrowser and click Save.  

Now we are ready to begin coding…

Create IBOutlets and IBActions

Before we create the interface for our web browser, we need to establish the IBOutles and Actions to interface with the UI elements in code.  Start by opening up iCodeBrowserViewController.h and add the following code:

Let’s take a look at this code line by line.  The first thing we added was the  to the end of our interface declaration.  This is telling the app that this class will be the delegate for our UIWebview.  

What does it mean to be the delegate you ask? Great question… A delegate is like a handler.  It is responsible for implementing certain methods in order to handle events sent by the object they are the delegate for.  So in our example, we are simply saying that we will implement some of the functionality of the UIWebView.  This is needed so we can capture certain actions of the UIWebView such as a click on a link or so we can tell when a page has started/finished loading.  If it’s still unclear, ask me clarifying questions in the comments section.

Next, we see our 3 lines of declaring IBOutlets.  These are the UI elements that we will be interacting with.  In case you didn’t know, the UIActivityIndicator is the little spinner/loading animation that you see on various apps when content is loading.  We will be using this to show that a page is currently loading.

Following this code, there are 3 IBActions.  IBActions are functions that get called in response to a user interaction with the application (such as tapping a button).  For our basic browser, we are only offering 3 types of functionality.  gotoAddress which will take a user to the address they type in the address bar and goBack/Forward should be pretty self explanatory.  

Creating the User Interface 

Now, let’s create the interface using Interface Builder.  I am going to be showing you how to do this in the video below.

 

Implementing the IBActions

Now that we have our interface, let’s make the app function.  We need to implement our methods.  Open up iCodeBrowserViewController.m and add the following code.

We need to synthesize our properties to allow us to interact with them.  Synthesizing automatically creates “getter” and “setter” methods for our properties.  Next, let’s implement the viewDidLoad method.  This is where we will be loading our “homepage”.  Add the following code to the viewDidLoad method.

The viewDidLoad method gets called automatically by our application whenever this view first loads.  We can know for sure that it will get called, so we can put our initialization code here.

ADVERTISEMENT

 

The first thing we see is the urlAddress string.  This will be our “homepage”.   You can change this to any address you wish to start with.  Next, we build a URL object with our string.  We need to do this so we can make a web request.  Following this, we build our web request and load it into the webView.  This will display the homepage inside of our webview.  Finally, we set the text of the address bar to the homepage address.  This part is more for aesthetics to let the user know what page they are on.

Next, we implement the method that we connected to the UITextField’s DidEndOnExit method gotoAddress.  Add the following code:

This is similar to the code we wrote in the viewDidLoad method, except for the fact that we are getting our URL string from the address bar.  This method gets called when the user presses the “Go” button on the keyboard.  The last thing to note here is we call the [addressBar resignFirstResponder] method.  This simply tells the app to hide the keyboard when this method gets called.

The implementation of our Back and Forward methods are pretty easy.  Go ahead and add the following code.

UIWebViews are pretty cool because of the functionality they offer us built right in to them.  We simply call[webView goBAck] to go back and [webView goForward] to go forward.  This greatly simplifies the interactions with the webview.  If we were to code that functionality from scratch, we would have to create a stack of URLs and continually push and pop them off the stack to keep track of where we need to go.  Thanks Apple for not making us implement this.

Finally, we need to implement the delegate methods for UIWebview.  These methods allow us to write our own code to respond to actions by the UIWebview.  The first methods we will implement are the webViewDidStartLoad and the webViewDidFinishLoad methods.  We will use these to show and hide the activity indicator. Add the following code:

So when the request is first made for a ULR (before the page starts loading) the webViewDidStartLoad method gets called automatically.  We use this opportunity to start our activity indicator to let the user know the page is loading.  If you don’t have something like this, it simply feels like the app is frozen when in fact, it’s just loading the page.  Finally, the webViewDidFinishLoad method gets called when the page is fully loaded.  After this, we can stop the indicator (and it automatically hides itself).

The very last thing we need to do is define what happens when a user clicks on a link. Add the following method:

This method gets called automatically whenever the user clicks a link.  This method can be very useful if you want to make a native iPhone application that integrates with a web app.  You can use this method to trap the user’s clicks and have your application respond to web links that get clicked.  In our case, we need it to do 2 things.  The first is to set the text of the address bar to the URL of the link that was clicked on and to load that address into the webview.

One thing to make note of: We do a check to see if the URL scheme is “http”. This is to ensure that the user typed http before their URL.  You can add an else statement here that auto prepends the http if the user did not add it.  This would allow you to type in a url such as “icodeblog.com” rather than having to type “http://www.icodeblog.com”.  I chose to omit it for this tutorial.

Remember, all of this added functionality of a UIWebView can only be gotten if you tell your class that it implements the UIWebViewDelegate protocol as we did in our .h file.

The app should be complete! Click on Build and Go to see this baby in action.  Remember, you must put “http://” in front of your URL’s.  

I hope you have enjoyed this tutorial.  If you have any questions or comments, feel free to leave them in the comments section of this post.  You can download the source here . Happy iCoding!

 

 

This entry was posted in Interface BuilderiPhone Programming Tutorials and tagged . Bookmark the permalinkPost a comment or leave a trackback: Trackback URL.
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 10. 5. 23:52
아이폰에서 SMS 문자 보내는 어플 만드는 방법

Apple은 sms api공개를 하고 있지 않다.
향후에도 없을것이라고한다.
이유는 모르겠고, 아래처럼 C로 단말기에 직접접근하는 방법뿐이다. 
일반휴대폰이나 임베디드제품개발시  CDMA단말기와 아래와 같은 코드로 인터페이싱한다. 
그러나, 아래와 같은 코드로 app만들면 reject될지도 모름(sms api를 공개안한건 못하게 하려한듯하므로).
AT명령어로써 단말제조업체가 제공하는 프로토콜대로 하면, 패킷을 3G망에 태워 TCPIP방식으로 장문의 메세지도 보낼 수 있다. 과금이 패킷단위라면, SKT의 경우 10초당 13원으로 TCPIP요금을 부과하고있으며,KT는 모름.
굳이 만들겠다면 kt에 확인해서 아래 미국에서 보내는 방식의 AT명령어셋과 동일한지 확인을 할 필요가있다. 통신사나 단말제조사의 스펙이 우리나라와 미국이 다를 수 있기때문이다.
So you know C, you like iPhones, and you want to programmatically send an SMS. I spent a few days of my life a few months ago figuring this out.

Here are the includes and a pretty generic funtion to connect to the iPhone modem and let you do some magic.
(I realize some of those headers aren't actually needed, I think. I copied them from my command-line tool that uses these functions.)
Code:
#include #include #include #include #include #include #include #include #include int connect(){ int speed = 115200; unsigned int null = 0; unsigned int handshake = TIOCM_DTR | TIOCM_RTS | TIOCM_CTS| TIOCM_DSR; struct termios term; int fd = open("/dev/tty.debug", O_RDWR | 0x20000 | O_NOCTTY); if(fd == -1) { perror"Error: "); exit(1); } ioctl(fd, 0x2000740D); fcntl(fd, 4, 0); tcgetattr(fd, &term); ioctl(fd, 0x8004540A, &null); cfsetspeed(&term, speed); cfmakeraw(&term); term.c_cc[VMIN] = 0; term.c_cc[VTIME] = 5; term.c_iflag = (term.c_iflag & 0xFFFFF0CD) | 5; term.c_oflag = term.c_oflag & 0xFFFFFFFE; term.c_cflag = (term.c_cflag & 0xFFFC6CFF) | 0x3CB00; term.c_lflag = term.c_lflag & 0xFFFFFA77; term.c_cflag = (term.c_cflag & ~CSIZE) | CS8; term.c_cflag &= ~PARENB; term.c_lflag &= ~ECHO; tcsetattr(fd, TCSANOW, &term); ioctl(fd, TIOCSDTR); ioctl(fd, TIOCCDTR); ioctl(fd, TIOCMSET, &handshake); return fd; }
You don't really need to understand all of that. If you want to, Google ioctl and the other functions used.

Code:
void send(char *number, char *message, int modem) { write(modem,"AT+CMGF=1\r\n",11); sleep(1); write(modem,"AT+CMGS=\"",9); write(modem,number,strlen(number)); write(modem,"\"\r\n",3); sleep(1); write(modem,message,strlen(message)); write(modem,"\x1A",1); sleep(1); close(modem); }
There is a function that takes a pointer to two strings and an int (the file-descriptor of the modem). AT+CMGF=1 sets the phone into SMS mode. AT+CMGS is the command to start writing the address and message into memory, which is terminated with "\x1A" (^Z) to finish the sending process off.

There you go. Switching plain C out for Objective C shouldn't be too hard.
__________________
http://www.ipodtouchfans.com/forums/showthread.php?t=144432



출처 : http://blog.naver.com/PostList.nhn?blogId=philipousys¤tPage=42
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 9. 13. 09:24
아이폰 어플 개발할때 NaviController 빠르게 만드는 방법
1. window.xib에 Navigation Controller

2. View Controller 3개 

3. View Controller 3개에 각각 구별되게 Title 설정

4. 코딩
 === . h =============================================================

#import

@interface naviTestAppDelegate : NSObject {

    UIWindow *window;

IBOutletUINavigationController *navi;

IBOutletUIViewController *root;

IBOutletUIViewController *first;

IBOutletUIViewController *second;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end

=== . m =============================================================

#import "naviTestAppDelegate.h"

@implementation naviTestAppDelegate

@synthesize window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch

root.title = @"rootview";

navi.viewControllers = [NSArrayarrayWithObject:root];

[windowaddSubview:navi.view];

    [windowmakeKeyAndVisible];

returnYES;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *cIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cIdentifier];

if(cell == nil)

{

cell = [[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cIdentifier] autorelease];

}

if(indexPath.row == 0)

cell.textLabel.text = @"first";

else

cell.textLabel.text = @"Second";

return cell;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return2;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

if(indexPath.row == 0)

{

[navipushViewController:firstanimated:YES];

}else{

[navipushViewController:secondanimated:YES];

}

}

- (void)dealloc {

[rootrelease];

[firstrelease];

[secondrelease];

[navirelease];

    [window release];

    [super dealloc];

}

@end

5. 각각의 IBOut을 인터페이스 빌더에서 App Delegate로 연결



출처 : http://blog.naver.com/PostList.nhn?blogId=hana_815¤tPage=48
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 9. 12. 21:42
아이폰 개발 ScrollView 를 만드는 손쉬운 방법

* 스크롤뷰를 만들어보겠는데요.

너무 상세한 설명은 개발하는데 오히려 독이 될수 있으니 간략하게 몇가지만 집어드리도록 할께요.

상세한 설명이 없으면 정보가 있어도 바로 쓸수가 없어서 답답하지만

그만큼 많은 정보를 찾아보게 되어 오히려 분석해보고 하는 개발자에게 있어 꼭 필요한 습관이 길러져요.

1. xcode를 실행해서 새로운 프로젝트를 만들어봐요.

   필자는 scrollView로 만들었어요

   XIB파일을 포함해서 만들면 아래와 같이 파일들이 생성되요.

2. 여기서 우선 작업할께 xib 파일인데, scrollViewViewController.xib 파일을 더블클릭하세요.

    그러면 인터페이스 빌더라가 나오는데 라이브러리를 이용해서 아래와 같이 작업을 하세요.

트리구조를 잘 보시고 작업을 해야되요. 스크롤되는 뷰는 스크롤뷰안에 있어야 스크롤이 되니

스크롤를 하실 뷰를 안으로 넣어주시면 되요. 그러면 스크롤뷰안에 없는 뷰들은 스크롤이 안되겠죠? ㅎㅎ

아래그림은 이미지파일을 넣어서 위치를 조정해서 깔끔하게 보여지게 만들었어요.

3. 이제 실제 작동을 위해서 소스에 코딩을 해야되요.

== .h =========================================================

#import

@interface scrollViewViewController : UIViewController {
 
 IBOutlet UIScrollView *scrollView;

}

@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;

@end

== .m ========================================================

#import "scrollViewViewController.h"

@implementation scrollViewViewController

@synthesize scrollView;

-(void) viewDidLoad {
 [super viewDidLoad];
 [scrollView setContentSize:CGSizeMake(320, 460*1.5)];
 //[scrollView setScrollEnabled:YES];
 //[self.view addSubview:scrollView];
}

===========================================================

4. 이제 xib를 다시 열어 연결을 시켜봐요.

   UI와 만들어진 객체가 연결이 되면 비로소 작동을 하게 되요.

   File's Owner를 오른쪽마우스를 클릭 ( 컨트롤키 + 마우스좌클릭 ) 을 하게되면

   검은창이 나오게 되요.

   보시면 아까 선언한 Outlets안에 scrollVie가 보여요. 바로 오른쪽에 보이는 원을 클릭한 채로

   Scroll View에 연결을 하면 되요.

  Scroll View를 보면 연결된걸 보게 되요.

5. 자 이제 실행을 해보면 완성된걸 확인할 수 있어요. ( 단축키 : 커맨드키 + 리턴키 )

  6. 속성

  Scroll View를 클릭해보면 속성창을 볼수가 있어요 (없으면 상단메뉴 tool를 눌러서 실행하세요)

  영어로 되어있지만 해석해보면 무슨 기능을 하는지 대략 짐작이 가실수 있어요.

  하나하나 체크해가면서 적용해보시면 되요.



출처 : http://blog.naver.com/PostList.nhn?blogId=hana_815¤tPage=53
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 9. 12. 21:19
아이폰 어플에 동적으로 이미지,동영상 만드는 방법 정리

#import "ImagesViewController.h"

#import "Constants.h"

#define kMinDuration 0.0

#define kMaxDuration 10.0

@implementation ImagesViewController

@synthesize imageView, slider;

- (void)dealloc

{

[imageViewrelease];

[sliderrelease];

[superdealloc];

}

- (void)viewDidLoad

{

[superviewDidLoad];

self.title = NSLocalizedString(@"ImagesTitle", @"");

// set up our UIImage with a group or array of images to animate (or in our case a slideshow)

UIImage *im5 = [[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene1"ofType:@"jpg"]]; 

UIImage *im1=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene2"ofType:@"jpg"]];

UIImage *im2=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene3"ofType:@"jpg"]];

UIImage *im3=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene4"ofType:@"jpg"]];

UIImage *im4=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene5"ofType:@"jpg"]];

NSMutableArray *ma=[[NSMutableArrayalloc]init];

[ma addObject:im1];

[ma addObject:im2];

[ma addObject:im3];

[ma addObject:im4];

[ma addObject:im5];

NSArray *arry=ma;

self.imageView.animationImages =arry;

//정적으로 동영상 만드는 방식

//self.imageView.animationImages = [NSArray arrayWithObjects:

//[UIImage imageNamed:@"scene1.jpg"],

//[UIImage imageNamed:@"scene2.jpg"],

//[UIImage imageNamed:@"scene3.jpg"],

//[UIImage imageNamed:@"scene4.jpg"],

//[UIImage imageNamed:@"scene5.jpg"],

//  nil];

imageView.animationDuration = 5.0;

[self.imageViewstopAnimating];

// Set the appropriate accessibility labels.

[self.imageViewsetIsAccessibilityElement:YES];

[self.imageViewsetAccessibilityLabel:self.title];

[self.slidersetAccessibilityLabel:NSLocalizedString(@"DurationSlider",@"")];

}

// called after the view controller's view is released and set to nil.

// For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc.

// So release any properties that are loaded in viewDidLoad or can be recreated lazily.

//

- (void)viewDidUnload

{

[superviewDidUnload];

self.imageView = nil;

self.slider = nil;

}

// slown down or speed up the slide show as the slider is moved

- (IBAction)sliderAction:(id)sender

{

UISlider* durationSlider = sender;

self.imageView.animationDuration = [durationSlider value];

if (!self.imageView.isAnimating)

[self.imageViewstartAnimating];

}

#pragma mark -

#pragma mark UIViewController delegate methods

// called after this controller's view was dismissed, covered or otherwise hidden

- (void)viewWillDisappear:(BOOL)animated

{

[self.imageViewstopAnimating];

// restore the nav bar and status bar color to default

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleDefault;

}

// called after this controller's view will appear

- (void)viewWillAppear:(BOOL)animated

{

[self.imageViewstartAnimating];

// for aesthetic reasons (the background is black), make the nav bar black for this particular page

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

// match the status bar with the nav bar

[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;

}

@end



출처 : http://blog.naver.com/PostList.nhn?blogId=philipousys¤tPage=14
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 8. 19. 15:22
아이폰개발자 등록과 아이폰 개발자 라이센스 만드는 절차 정리

원문 : http://tory45.egloos.com/5225109

iPhone App를 개발한답시고 iPhone 2G를 회사에서 하나 받고 무작정 개발해보았다... 개발 방법론과 개발 툴에 대한 개인적인 견해는 정말 환상적었지만 개발 환경에 대한 개인적인 견해는 그리 좋은 평을 하고 싶지는 않다...
뭐랄까? 전세계 소프트웨어 개발자들에게 iPhone App를 개발하기 위해선 싫든 좋든 그들을 충실히 따르는 Third party가 되어야 한다는 無言의 압박을 가하고 있다는 느낌마저 들게 하는데

그 단적인 예로로
  첫번째, iPhone App를 개발하기 위해서는 무조건 Mac PC가 필요하다는것
  두번째, 개발에 사용되는 Mac PC, iPhone, Application, 심지어 개발자까지 돈을 지불해 가며 승인을 거쳐야
             iPhone Device에서 직접 테스트 할수 있다는 것이다...

            참고로 모든 라이센스는 1년동안 유효하고 개인이나 소규모 법인들이 사용하는 Standard는 99달러 , 
                      대규모 법인( 500명 이상 )는 255달러를 지불해야 한다. 
                      라이센스를 받지 않고서는 iPhone Device를 가지조 직접 테스트 할수도 없고 App Store에 등록도 하지 못한다. 

지금까지 개인용 PC OS 의 독점 업체로 MS가 횡포를 부렸다면 앞으로는 스마트폰 OS 독점 업체로 애플이 횡포를 부릴지 않을까라는 우려심이 살짝 들기도 하고 이런 변화무쌍한 무한 경쟁시대에서 살아 남기 위해 발버둥 치는 소프트웨어 엔지니어의 고충을 생각하면 서글프기 짝이 없다...

자.. 용기를 내서 한번 iPhone을 한번 쑤셔 보자...

순서는 1, 개발자 등록 및 라이센스 계약하기 , 2, Sample iPhone App 개발, 3, xcode 시뮬레이터로 테스트 하기 , 4, iPhone Device에서 테스트하기 로 진행하겠다

1. 개발자 등록 및 라이센스 계약 하기
   준비사항 : 
                  공통 : Mac PC, 신용카드(Visa)
                  법인:  영문 사업자 등록증, 법적 책임자 정보

                  주의 사항 : 신청자의 영문 이름이 결제 카드의 영문이름과 동일해야 한다 
                                  법인 신청시 영문 사업자 등록증과 토시 하나 틀리면 안된다

    - 개발자 등록 사이트 접속(http://developer.apple.com/programs/register/)


         - 상단 ( Get Started ) 클릭

             * Create ApplD : 새로운 ID 생성
             * Use an existing Apple ID : 이미 만들어진 ID 사용
             * 여기서는 새로운 ID 생성을 선택하고 Continue 버튼을 클릭 

          *주소랑 메일은 정확히 기재해야함

           * 이것 저것 개인정보 넣고 Continue

          * 동의하고 I Agree 클릭(클릭하는 순간 기재한 메일로 Verification Code가 날라 갑니다. )

           * 앞 단계에서 입력한 메일주소로 Verification( 확인서 )가 보내졌을거구 그 메일에 보면 확인 코드가 있는데..
             그 코드를 빈 박스에 복사해서 넣구 Continue
           * 여기서 주의 할것은 iPhone에서 보내는 메일은 모두 영문으로  날라 오기때문에 스팸메일로 빠질수 있으니 
             스펨 메일함도 체크....

           - 메일 내용 -

                * 메일에서 부여 받은 확인서 코드 "28961" 를 복사해서 붙혀 넣고 Continue.. ^^

           * 뭐.. 이제 등록 되었으니 ...아이디랑 패스워드로 로그인 하면 여러가지 지원을 받을 수 있다... 정도로 해석하면 될듯하고
              Continue 클릭

           이제 개발자 등록 되었으니 실제로 SDK를 구입해야 할차례...

            * 오른쪽 상단 "Join the Developer Programs 메뉴의 "Join Today" 클릭



           * Contine ( iPhone SDK로 개발하기 위해선 Mac OS X Leopard나 그 이후 버전이 필요하다라고 되어 있군.. 도둑놈들..)

           * 좀전에 개발자 ID는 등록 했고 프로그램 사용에 대한 등록만 하면 되니.. "New Apple Developer" 에 enrollment 항목
             에 체크하고 Continue

            * 여기서 개인으로 등록할거야 법인으로 등록할거냐.. 선택...

              법인 선택 시 영문 사업자 등록증에 기재된 내용과 똑같이 기재해야 하고
              회사 대표 전화번호, 법적 책임자 정보를 기재하는 화면이 개인 신청에 비해 추가된 화면임
              영문 사업자 등록증을 팩스로 보내 달라는 전화가 옴.

            "Company" 클릭 시 화면 


              여기서는 개인으로 신청할거니깐.. "Individual" 버튼에 클릭

          *결제 카드에 적힌 이름을 넣어달라구 하구 주소랑 전화번호는 똑바로 기재 해 달라고 하고..
  요거 잘못 기재하면 승인 안납니다...

          * iPhone SDK를 구입할건지 Mac SDK를 구입할건지 체크 

         *입력한 내용 한번 더 확인 해주고...

          * License 동의하고

         *"Add to cart" 클릭하면 결제 창이 나오고 결제하기 버튼 크릭하면됨

          * 결제하는것으로 끝이 납니다..

* 하지만 여기서 끝이 아니라는거......
          결제가 되더라도 바로 iPhone Device를 테스트 할 수 없습니다. 

          결제가 된 후 승인에 이르기까지 iPhone에서 몇번의 메일과 필요에 따라 전화가 올수 있습니다. 
          물론 전화는 한국 사람이 합니다..^^

          법인일 경우 법적 책임자에게 전화가 오고 또 영문 사업자 등록증을 팩스로 보내 달라는 메일도 날라 옵니다. 

          그때 지시에 따라 찬찬히 수용하시면 iPhone Device로 테스트 할수 있는 첫번째 과정이 끝납니다. 

          다음 강좌에서는 개발자 등록 승인이 이루어지고 난뒤 어떻게 iPhone Device로 테스트 할수 있는지 알아보도록 하지요...



출처 : http://blog.naver.com/PostView.nhn?blogId=74hans&logNo=109928746
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 7. 2. 00:49
대박 아이폰 보조배터리 만드는 방법

http://www.parkoz.com/zboard/view.php?id=my_album&page=1&sn1=&divpage=17&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=77838&cstart_page=0

완전 대박



출처 : http://blog.naver.com/PostView.nhn?blogId=jkw1120&logNo=60104001911
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:34
static library 만드는 법을 눈으로 배웠습니다.

http://vimeo.com/7699801


https://www.youtube.com/watch?v=fFn2o0aEbRQ

눈으로 배우고도 만들 수가 있었습니다. (영어로 설명을 해서 귀로는 배울 수 없었습니다.)

(^0^)/

Static libraries are particularly useful when you are developing applications for a client who is handling the submission process and you need to deliver your xcode project, but want to keep your source code private. The process is pretty simple and I’ve tried to make this tutorial a simple step by step process. Enjoy!

Step 1:

In your Xcode project control click on your target and choose “Add”, then click “New Target”.

Step 2:

From the Cocoa Touch menu choose “Static Library” and click “Next” button

Step 3:

In the next window name your library.

Step 4:

Now here’s where it gets a little more detailed. You need to drag the files from your Classes directory (or wherever you have the files you’d like to include) into the “Compile Sources” section of your new Static Library. IMPORTANT!! only drag the the implementation files not the header files. FYI, the ones with the .m extension.

Step 5:

Then we need to remove those same files from your main target. Choose the files, the press delete.

Step 6:

Then we need to add the static library to our app. To do this ctrl-click your target and choose “Get Info”.

Then click the + symbol under “Linked Libraries” which should open a dialog with your library in it. Highlight the library and click add.

It should show up in your app’s list of linked libraries after that.

Step 7:

Now edit the  target app’s linking settings and add “-ObjC” to the “Other Linker Flags”. To do this first choose “Edit Project Settings” from “Project” in the file menu. When the settings come up click the build tab and locate the “Other Linker Flags” field.

Step 8:

Next build your target for each SDK target (for example: you will need to build it separately for simulator and device)

Step 9:

You can now remove the source files from your classes folder (only those same .m files) and your project will now be built from the compiled source in your library and your source code will not be available. BACK YOUR PROJECT UP BEFORE YOU REMOVE FILES!!!



출처 : http://blog.naver.com/PostView.nhn?blogId=amoros21&logNo=140107055425
Posted by 오늘마감

댓글을 달아 주세요