본문 바로가기

Log (Computer)/프로그래밍

아이폰 앱 개발기 - 1

3학년 2학기 수업중 모바일 프로그래밍 이라는 수업이 있습니다.  모바일 앱을 개발하는게 목적인데

챔피언스리그 소개 및 정보 전달이라는 주제를 가지고 앱을 제작하기로 했습니다.

일단 구성은 탭바를 기본으로 하는 정보 전달식의 앱으로 생각하고 진행했습니다.

일단 절반정도 완성되었는데 진행사항 입니다.

시작 화면입니다. 앱이 커질때 로딩 및 심심함을 없애기 위해 만들었습니다. 

앱이 실행되는 맨 처음에 이미지가 뜨게 해주는 것인데요.

맥부기에서 참고하여 작성해봤습니다. 정말 친절하게 잘 작성해놓으셔서 사용했습니다.

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

    

// 2. 더미로 이미지 하나 올림, 실제로는 default.png 사용해야 보여주기 위해 다른 이미지 올림

splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

splashView.image = [UIImage imageNamed:@"Default.png"];

[window addSubview:splashView];

[window bringSubviewToFront:splashView];

// 3. 인디케이터 추가

netIndic = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

[netIndic setCenter:[window center]];

[window addSubview:netIndic];

[netIndic release];

// 4. 인디케이터 시작

[netIndic startAnimating];

// 5. 타이머 셋팅 

[NSTimer scheduledTimerWithTimeInterval: 0.2f

target:self

  selector:@selector(startupTimerCB:)

  userInfo:nil

repeats:NO];

    // Override point for customization after application launch.


   NSArray *documentPahts = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString *documentsDir = [documentPahts objectAtIndex:0];

self.DBName = @"champions3";

self.DBPath = [documentsDir stringByAppendingPathComponent:self.DBName];

[self checkAndCreateDatabase];

    // Override point for customization after application launch.

[window makeKeyAndVisible];

//배경음악 추가

AVAudioPlayer *Sound = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"" ofType:@"mp3"]] error:nil]; 

[Sound play];

    return YES;

}



- (void)startupTimerCB:(NSTimer *)sender

{

// 6. 로딩이 필요한 작업을 수행 (시간이 걸리는걸 표현하기 위해 sleep , 실제로는 로딩 작업을 하시면 )

sleep(5);

// 7. 인디케이터 종료

[netIndic stopAnimating];

// 8. 더미 뷰를 제거하고 로딩이 끝난 실제 어플의 뷰를 addsubview

[splashView removeFromSuperview];

[splashView release];

    [self.window addSubview:tabBarController.view];

    [self.window makeKeyAndVisible];

} 




첫번째 탭은 일반적인 소개 탭입니다. 소개에 해당되는 항목들을 시그먼트 테이블로 묶어서 확인 할 수 

있게 하였습니다.  


팀 소개 화면은 각 팀의 앰블럼을 클릭하여 확인할 수 있겠금 하였습니다.

아래 팀 세부소개 화면은 모달뷰로 뜨게 처리했습니다. 



 아직 2, 3 번째 탭은 구현 못했고 마지막 4번째 탭은 챔피언스리그 뉴스를 소개하는 탭입니다.

챔피언스리그 공식 사이트 뉴스를 rss 파싱으로 따와서 실시간으로 출력합니다.
 


뉴스를 클릭하면 웹뷰로 그 뉴스를 띄워주게 됩니다.

아직 진행된 부분보다 남은 부분이 더 많아 보입니다. 이제 html 파싱부분이 남아있는데

더 연구해봐야겠습니다.

위에 구현부분 중 궁금사항 있으시면 답변해드리겠습니다~