최초 작성일 : 2010/08/25 01:37 



App name : iPhotoDiary

내용 : iPhotoDiary의 기본 기능 외에 추가적으로 미아 및 유괴 방지 기능을
         넣도록 한다. 아직 구체적인 아이디어는 없음
         PC용 프로그램과 연계하여 캠을 아이 감시용 CCTV로 이용할 수 있도록 한다.

적용 기술 : PC쪽 캠 관련 Streaming

확인 사항 :

'Idea' 카테고리의 다른 글

[옛 글] 내성적인(?) 사람들을 위한 SNS  (0) 2013.07.18
[옛 글] [idea] My Cart  (0) 2013.07.18
[옛 글] [idea] iPhotoDiary 기능 강화  (0) 2013.07.18
[옛 글] [idea] Mobile war - Platoon  (0) 2013.07.18
[옛 글] [idea] My History  (0) 2013.07.18
[옛 글] [idea] Follow me  (0) 2013.07.18
블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/08/25 00:17 


이번 회 부터 본격적인 소스 분석에 들어가보도록 하겠습니다.

그 전에 먼저 간략하게나마(사실은 설계랄 것이 거의 없는 작업이어서 간략하게 밖에는

설명을 못드립니다…^^;;;) 설계 과정을 보도록 하겠습니다.


1. 설계


우선 기능 목록을 뽑았습니다.


1. 아이를 등록하는 기능

2. 달력 기능

3. 기념일을 등록하는 기능

4. 이벤트를 등록하는 기능

5. 일기를 작성하는 기능

6. 예방접종 안내 및 접종 여부를 선택하는 기능

7. 표준 발육 상태와의 비교를 보여주는 기능

8. 아이와 관련된 이벤트(100일, 돌, 생일 등)를 자동 등록하는 기능

9. 사용자 설정 기능


이 중 시간에 쫓기다보니 육아일기를 특징짓는 6, 7, 8번과

필수적인 기능이라고 할 수 없는 9번은 개발 우선 순위에서 뒤로 밀리고 말았습니다.


기념일 등록같은 경우 원래는 9번의 사용자 설정 탭을 따로 두고 사용자 설정을 통해 등록을

시킬 수 있도록 하려 했으나 설정 내용이 워낙 빈약해서 차라리 설정을 없애고 달력쪽에

기념일을 등록 시킬 수 있도록 수정하였습니다.


대략 이런 설계는 다음 사진 4장으로 압축됩니다.

앞서 말씀드린대로 사실상 설계라고는 이 사진 4장에 있는 노트 뿐입니다…^^;;;















2. 프로젝트 생성


초보자는 무조건 예제로부터 시작을 하게 되죠

저 역시 다르지 않습니다.


처음 프로젝트를 생성한 것은 인터넷 서핑중 발견한 뷰 전환 소스를 바탕으로

하였습니다. 이 소스는 하단에 툴바를 사용하고 툴바에 있는 버튼을 터치하는 경우

두개의 뷰가 동전의 양면처럼 뒤집히는 애니메이션 효과를 보여주며 전환하는 소스였습니다.


따라서 프로젝트 생성시에도 가장 단순하게 View-Based-Application을 선택하여 생성하여서

사실상 별다른 코딩이 없는 상태였습니다. 프로젝트 생성은 기본적인 내용이므로 생략을 합니다.


하지만 중요한 것은 이게 아니고…


3. 메인 화면의 구성


일단 5개의 메인 기능을 결정을 하였으니 화면 구성을 생각해야 했습니다.

전체적인 화면 구조는 최종 결과물과 동일하게 상단에는 네비게이션바를 통해서

각각의 기능 내에서의 네비게이션을 담당하게 하고 각각의 기능들은 하단의

탭바를 통해 전환하도록 구상을 하였습니다.


이 때 2가지 난관에 부딪치게 되었는데

하나는 IB에 대한 무지로 인해 IB를 제대로 사용할 수 없었다는 점과

첫번째 이유로 해서 네비게이션 바와 탭바를 동시에 가지는 화면 구성을 구현하는데

시행착오를 거쳐야 했다는 점입니다.


3.1. 인터페이스 빌더 팁


우선 IB에 대해 기본적으로 몰랐던 점은 xib 창의 좌상단에 있는 View Mode를 적절한

상태로 선택하지 못했던 것입니다.


기본적으로는 아이콘 형태로 보여지게 되어있는데 이렇게 되어있을 경우 각 객체들간의

계층 관계 및 View가 어떤 컨트롤러들로 구성되었는지와 같은 세부적인 내용을 확인할

수 없습니다.






즉 View Mode를 두 번 째나 세 번 째의 리스트 형태로 놓아야 아래 보이는 것처럼

화면의 전체적인 구조를 한 눈에 볼 수 있게 됩니다.






위 이미지의 화면을 보면 TabBarController가 가장 상위에 배치되어있고

그 아래 탭바 하나와 5개의 네비게이션 컨트롤러가 배치되어있습니가.

그리고 각각의 네비게이션 컨트롤러 아래는 탭바 아이템과 탭을 선택한 경우

화면에 보여질 ViewController, 그리고 그 ViewController의 뷰에 보여질

네비게이션 바가 배치됩니다. 마지막으로 각각의 ViewController 아래에는

네비게이션 아이템이 배치되어 해당 뷰로부터 네비게이션 바에 사용되는

네비게이션 아이템에 접근할 수 있도록 되어있습니다.


IB를 이용한 가장 기본적인 형태의 네비게이션 바와 탭바를 동시에 사용할 수 있는

화면 구성입니다.





※ 참고로 각각의 오브젝트를 드래그앤 드롭하여 계층의 위치나 레이아웃에서의 상하

위치를 변경할 수 있습니다.


3.2. 시행착오


3.1의 내용을 몰랐기 때문에 네비게이션 바와 탭 바를 동시에 가진 화면을 구성하는데

시행착오를 겪게 되었습니다.


일단 머릿 속에 떠오르는대로

'탭 바는 가장 상위에 위치시켜서 탭 선택을 통해 ViewController가 바뀌는 것 까지는

해결이 되었으니 당연히 각각의 ViewController에서 NavigationController의 인스턴스를

만들어서 사용하면 되겠지'

라고 생각했습니다.


결론부터 말씀드리면 그렇게 하셔도 됩니다.

다만 그렇게 할 경우 자주 질문하시는 '네비게이션 바를 통한 화면 전환시 탭 바를 사라지게'하는

방법에 별도의 코딩을 해주어야 하는 문제가 생깁니다.


하지만 IB를 통해 구성을 한 경우에는

[self.navigationController pushViewController:nextViewControlleranimated:YES];

를 호출하기 전에

nextViewController.hidesBottomBarWhenPushed = YES;

를 한 줄 추가해주시면 전환되는 화면에서 탭 바가 사라지게 됩니다.


4. 정리


 IB의 메인 화면에서 View Mode를 두 번 째나 세 번 째의 리스트 형태로 놓고 보아야 UI의 전체적인

     그림이 보인다.

  각각의 ViewController안에 NavigationController의 인스턴스를 만들어 사용해도 되나

   그럴 경우 ViewController.hidesBottomBarWhenPushed = YES;

      정상적으로 적용되지 않는다.


이 때까지의 소스는 대략 다음과 같네요. 대부분 IB에서 작업을 진행해서 소스 코드 자체는

별거 없습니다.


//  iPhotoDiaryAppDelegate.h

#import <UIKit/UIKit.h>


@class AppMainViewController;

@class CalendarGridViewController;

@class DiaryListViewController;

@class EventListViewController;


@interface iPhotoDiaryAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {

    UIWindow *window;

    UITabBarController *tabBarController;


    AppMainViewController *appMainViewController;

    CalendarGridViewController *calendarView;

    DiaryListViewController *diaryListController;

    EventListViewController *eventListController;

}


@property (nonatomicretainIBOutlet UIWindow *window;

@property (nonatomicretainIBOutlet UITabBarController *tabBarController;


@property (nonatomicretainIBOutlet AppMainViewController *appMainViewController;

@property (nonatomicretainIBOutlet CalendarGridViewController *calendarView;

@property (nonatomicretainIBOutlet DiaryListViewController *diaryListController;

@property (nonatomicretainIBOutlet EventListViewController *eventListController;


@end



//

//  iPhotoDiaryAppDelegate.m

//  iPhotoDiary

//

//  Created by HYOUNG JUN WOO on 10. 4. 23..

//  Copyright Mazdah.com 2010. All rights reserved.

//


#import "iPhotoDiaryAppDelegate.h"

#import "AppMainViewController.h"

#import "CalendarGridViewController.h"

#import "DiaryListViewController.h"

#import "EventListViewController.h"


@implementation iPhotoDiaryAppDelegate


@synthesize window;

@synthesize tabBarController;

@synthesize appMainViewController;

@synthesize calendarView;

@synthesize diaryListController;

@synthesize eventListController;


#pragma mark -

#pragma mark Application lifecycle

/*

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

    

    // Override point for customization after app launch.

return YES;

}

*/


- (void)applicationDidFinishLaunching:(UIApplication *)application {


[window addSubview:tabBarController.view];

[window makeKeyAndVisible];

// [self copyDatabaseIfNeeded:@"iPhotoDiary.sqlite"];

}



/*

// Optional UITabBarControllerDelegate method.

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {

}

*/


/*

// Optional UITabBarControllerDelegate method.

- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed {

}

*/



#pragma mark -

#pragma mark Memory management


- (void)dealloc {

    [tabBarController release];

    [window release];


    [appMainViewController release];

    [calendarView release];

    [diaryListController release];

    [eventListController release];


    [super dealloc];

}


@end

추가된 코드는 IBOutlet으로 연결될 탭 바 컨트롤러와 4개의 뷰 컨트롤러인데

사실 뷰 컨트롤러는 별도로 코딩을 해주지 않아도 IB에서 설정만 되어있으면

화면 전환이 이루어집니다.

5. 마무리


처음으로 이러한 작업(강좌 혹은 소스 분석)을 하다보니 영 내용이 두서가 없네요.

오늘의 내용은 대체로 소스 분석이라기 보다는 팁에 해당하는 내용이 주를 이루었습니다.

아마 대부분의 개발자 분들은 다 아시는 내용이실테고 혹시라도 이제 막 시작하시는 분들 중

모르셨던 분들에게나 도움이 될만한 내용이네요.


다음시간부터는 본격적으로 각각의 탭에 해당하는 기능들을 하나 하나 분석을 하도록 하겠습니다.

그럼 긴글 보아주셔서 감사하고 다음 시간에 뵙겠습니다.

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/08/23 21:32 



App name : Mobile war - Platoon

내용 : 소셜 게임.
         각각의 회원들은 가입과 동시에 군대에서의 보직을 선택하게 됨.
         각각의 보직은 그 능력에 독자성과 제약을 갖게 되는데 이를 잘 활용하여
         상대방 혹은 상대 그룹이 거점으로 지정해 놓은 곳의 깃발을 빼앗고
         자신의 깃발을 꽂음으로써 자신의 혹은 자신이 속한 그룹의 영토를 넓혀가는
         게임.

적용 기술 : 증강현실, LBS(GPS)

확인 사항 :

'Idea' 카테고리의 다른 글

[옛 글] [idea] My Cart  (0) 2013.07.18
[옛 글] [idea] iPhotoDiary 기능 강화  (0) 2013.07.18
[옛 글] [idea] Mobile war - Platoon  (0) 2013.07.18
[옛 글] [idea] My History  (0) 2013.07.18
[옛 글] [idea] Follow me  (0) 2013.07.18
[옛 글] iShopper  (0) 2013.07.09
블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

[옛 글] [idea] My History

Idea 2013. 7. 18. 09:19

최초 작성일 : 2010/08/23 21:26 



App name : My History

내용 : 사진을 찍음으로서 제공받을 수 있는 정보. 
         즉, 위치 정보와 날짜 및 시간 정보를 이용하여 그날 하루 방문했던 곳, 
         방문 시간, 이동 거리, 이동 시간 등을 자동 입력받은 상태에서 간단하게
         하루의 일기를 완성할 수 있도록 하는 애플리케이션. 주로 외근이 잦은
         직장인이나 자주 이동하는 취미(여행, Tracking 등)를 가진 사람들이
         하루하루를 정리하기 쉽도록 도와주는 역할을 함

적용 기술 : LBS(GPS)

확인 사항 :

'Idea' 카테고리의 다른 글

[옛 글] [idea] iPhotoDiary 기능 강화  (0) 2013.07.18
[옛 글] [idea] Mobile war - Platoon  (0) 2013.07.18
[옛 글] [idea] My History  (0) 2013.07.18
[옛 글] [idea] Follow me  (0) 2013.07.18
[옛 글] iShopper  (0) 2013.07.09
[옛 글]Multi Writer  (0) 2013.07.09
블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

[옛 글] [idea] Follow me

Idea 2013. 7. 18. 09:18

최초 작성일 : 2010/08/23 21:21 



App name : Follow me

내용 : GPS 센서를 이용하여 그룹으로 등록된 사람들 사이에 서로의 위치를 확인함            은 물론 이동 경로와 현재 위치 서로간의 거리를 표시해주는 애플리케이션.
         여행이나 Tracking 등 다수의 사람들이 무리를 지어 이동하는 경우 낙오자를
         관리하기 위한 용도로 가이드가 사용할 수 있을 것이다.

적용 기술 : LBS(GPS)

확인 사항 :

'Idea' 카테고리의 다른 글

[옛 글] [idea] Mobile war - Platoon  (0) 2013.07.18
[옛 글] [idea] My History  (0) 2013.07.18
[옛 글] [idea] Follow me  (0) 2013.07.18
[옛 글] iShopper  (0) 2013.07.09
[옛 글]Multi Writer  (0) 2013.07.09
[옛 글] 모듬 다이어리  (0) 2013.07.08
블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/08/21 00:11 


링크 : http://m.ittoday.co.kr/articleView.html?idxno=14980


성공의 조건을 보니 아찔하네요...
유료앱은 5만 6천 다운로드
무료는 무려 22만...ㅠ.ㅠ

그나저나 'LBS-게임-SNS 삼총사 뜬다'가 아니라 이제는
LBS-게임-SNS가 융합된 뭔가가 떠야 할 시점이 아닌지...?

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

Tag App, LBS, SNS, 게임,

댓글을 달아 주세요

최초 작성일 : 2010/08/20 11:05 


꽤 험난한 과정이었네요.

암튼 최종적으로 앱스토어에 등록되었습니다...^^







블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/08/20 11:01 


4월부터 개발 시작해서 드디어 결실을 보았네요.

물론 다운로드 수가 많아져야 완전한 결말이겠지만...^^;;;

암튼 험난한 과정을 거쳐 드디어 앱스토어에 올라왔습니다.
최초 컨셉은 육아일기인데 현재 개발된 내용은 아이를 등록하는 것 외에는
딱히 육아와 직접적인 관련이 적어서 일단 무료로 풀었습니다.
한가하신 분들은 받아보세요...^^

현재 구현된 기능은 아이 등록, 달력(음력), 사진 일기 작성 정도가 되겠습니다.
받아보시고 평가 부탁드려요.

http://itunes.apple.com/kr/app/iphotodiary/id382281538?mt=8





추후 몇가지 기능 추가가 계획되어있고
이전에 약속드린대로 이 앱의 소스를 통한 강좌(라기 보다는 소스 분석)를 가능한한 빠른 시일 내에 
진행해 보겠습니다.

그리고 여기에 보다 많은 기능을 추가한 유료 버전을 준비중이니 많은 성원 부탁드립니다.

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/08/18 18:14 


원문 :

Please include the line below in follow-up emails for this request.

Follow-up: 114939503

Dear Mr. Woo

Thank you for submitting iPhotoDiary to the App Store. We've reviewed iPhotoDiary and determined that we cannot post this version of your application to the App Store because the assigned category does not reflect the content or function of the application. 

It would be appropriate to reset your Primary and Secondary Categories to accurately reflect your application.

While your Application State is currently displayed as 'Rejected' in iTunes Connect, you won't have to upload a new binary; just email us back after you have added the information to iTunes Connect and we will move your app back to 'In Review' state.

If you have any questions about this response, or would like to discuss it further, please feel free to reply to this email.

Best Regards,

App Review Team
iPhone Developer Program

************************************************************************************
Converse with fellow developers and Apple engineers on technical topics.
Apple Developer Forums — http://devforums.apple.com
************************************************************************************


두 번째 Reject입니다.
제가 설정한 카테고리가 앱의 내용과 기능을 반영하지 못했다는 말이네요.
육아일기로 병원 진료 기록을 적을 수 있도록 하려는 목표를 가지고 있었기에
헬스 케어 & 휘트니스 카테고리를 넣었는데 현재 개발된 것은 달력 및
사진 일기 뿐이라 아마 적절치 못하다고 생각했나봅니다.

다시 카테고리를 생활방식과 생산성으로 변경하여 메일을 보냈더니
In Review 상태로 바뀌었습니다.

또 어떤 문제로 Reject이 될지...ㅠ.ㅠ

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/07/25 08:12


애플 개발자 센터에 매킨토시 및 아이폰/아이팟 터치/아이패드 용 개발 툴인

Xcode4의 개발자 preview 2가 업데이트 되었습니다.

이제 막 설치를 해본지라 세부적인 변화까지는 파악하지 못했지만 일단 실행시켜보니
많은 부분 변화가 있었네요. 일단 애플 개발자 센터에서 언급하고 있는 내용들은
다음과 같습니다.

1. Single Window - 이전에 인터페이스 빌더가 별도의 창으로 열리던 것이 메인 화면
                             내부에서 열리도록 되어있고 디버깅 관련 화면들도 모두 메인
                             화면 내에 들어가 있습니다.
2. LLVM Compiler 2.0 - 컴파일러 성능이 개선되고 C, C++을 완벽하게 지원하고,
                             문법 하이라이팅이나 코드 자동 완성 및 그밖의 index-driven한
                             기능들이 LLVM 파서를 통해 완벽하게 IDE와 통합되어 작동한다는
                             뭐 그런 내용입니다.
3. New Debugger - 디버거도 바뀌었나보네요.
4. Interface Builder-Inside - 1번과 중복되는 내용입니다.
5. Fix-it - 빌드를 진행하기 전에 잘못된 코딩을 잡아준다네요. 마치 워드의 맞춤법
                검사 기능과 비슷하답니다.
6. Instruments for Xcode 4 - 새로운 Instrument도 포함되나봅니다. 좀 더 직관적인
                분석이 가능해졌으면 좋겠네요.
7. Assistant - 메인 에디터가 2개의 팬으로 구성되어서 편집하고자 하는 소스나 XIB,
                데이터 모델 등을 열면 관련된 소스들을 다른 팬에서 함께 볼 수 있도록
                되었습니다. 에디터 하나에서 여기 저기 왔다 갔다 하면서 확인할 필요가
                없게된거죠.
8. Version Editor - 일종의 소스관리 기능이라고 보여집니다. 서로 다른 2개의
                소스코드 버전을 관리할 수 있고 서로 다른 두 버전의 소스를 메인 에디터의
                2개의 팬을 통해 서로 비교할 수 있게 되었습니다.

그럼 꼴랑 한 장 뿐이지만 캡쳐 화면을 통해 변화된 부분을 살펴보도록 하죠...^^;;;




먼저 메인 화면이 크게 3개의 영역으로 구분이 되어 있습니다.
파란 번호 1번과 4번은 Navigator | Utility라는 이름으로 빨간 번호 1617
토클 버튼을 통해 감추거나 보이게 할 수 있습니다.

가운데 23은 메인 에디터 영역으로 빨간 번호 131415를 통해 구성을 선택할
수 있는데, 13의 버튼을 누르면 일반적인 에디터 화면으로 하나의 창으로 보여지게
됩니다. 현재 캡쳐된 화면은 14번을 누른 상태로 이 상태로 보게 되면 파란 번호 2번에
불러온 소스와 관련된 소스들이 파란 번호 3번 화면에 자동으로 같이 보여집니다.
예를 들어 HellowWorld.m 파일을 2번에서 열게 되면 3번에는 자동으로 HellowWorld.h 파일의
내용이 보여지게 됩니다.

만일 XIB파일이 있어서 HellowWorld.xib 파일을 2번에서 열게되면 3번 창에는
HellowWorld.h 파일의 코드가 보여지게 됩니다.

15번의 버튼을 클릭하면 역시 두 개의 창으로 구분이 되는데 이 경우는 서로 다른
2개의 버전의 소스를 비교하는 화면으로 만일 서로 다른 버전의 소스코드가 없는
경우에는 경고 메시지가 한 번 뜨고 같은 파일의 코드가 양쪽 팬에 보이게 됩니다.

여기까지 메인 화면에서 보여지는 변화였습니다.
이제 툴바에 있는 각각의 아이콘이 어떤 기능을 하는지 순서대로 하나씩 짚어가
보도록 하겠습니다.

1 - Xcode3에서 망치 및에 초록색 원의 플레이버튼으로 표시되었던 Build & Run
     이라고 보시면 됩니다. 이름은 Run the active scheme으로 바뀌었습니다.
     Run the active scheme을 실행시키게 되면 1번 창에는 기존에 Build Result
     창으로 표시되던 내용들(Warnning, Error 등)이 나타나게 됩니다.
2 - 아이콘 형태로 짐작하시겠지만 실행 중지입니다.
3 - 빌드 옵션을 선택하는 셀렉트 박스입니다. 기존 Xcode3에서는 이 컨트롤이
     맨 앞에 있었죠.
4 - break point 설정 컨트롤입니다.
5 - Xcode에서 빌드시 기존 Xcode3에서는 진행 상황이 화면 하단의 상태바에
     표시가 되었는데 Xcode4에서는 이 영역에 표시가 됩니다. 마치 iTunes와의
     일관성을 염두에 둔 것 같네요.

6 ~ 12번은 우측  Navigator | Utility 창에서 표시되는 내용들입니다.

6 - Project Navigator입니다.
7 - Symbol Navigator입니다. 클래스, 프로토콜, 메소드 등등 오브젝트별 묶음으로
     표시하면 대상은 사용자 코드 뿐만 아니라 사용되는 API의 모두입니다.



8 - 검색 화면입니다.



9 - Issue Navigator로 기존 Build Result 창에 나오던 내용들입니다.



10 - Debug Navigator입니다. 기존 Debug 화면에 해당하겠죠?
        아직 디버깅 방법을 잘 모르겠습니다.
        화면에는 No Debugging Session이라고만 나오네요...-.-
11 - Breakepoint Navigator입니다. Breakepoint가 설정된 곳의 목록이 표시됩니다.



12 - Log Navigator입니다. 기존에는 디버그 화면의 콘솔창에서 볼 수 있었죠.



        회색의 아이콘 표시가 된 부분을 클릭하면 로그 콘솔이 보입니다. Build로 시작되는 것들은
        모두 Build Result의 내용입니다.

       또한 초록색 1번의 좌우 화살표를 이용하여 Warnning이 발생한 지점을
      순차적으로 찾아갈 수 있습니다.

13 ~ 17은 이미 위에서 설명하였지만 18번까지 포함해 다시 설명합니다.

13 - 메인 에디터를 하나의 창으로 봅니다.



14 - 메인 에디터를 Assistant 형태로 봅니다. .m파일을 열면 같은 이름의 .h 파일이
        같이 열립니다.
사용자 삽입 이미지
15 - 메인 에디터를 Version관리 형태로 엽니다. 버전이 1개 밖에 없을 경우
        경고 메시지를 보여줍니다.






16 - 좌측 Navigator | Utility 화면을 보여주거나 감춥니다.
17 - 우측 Navigator | Utility 화면을 보여주거나 감춥니다.
18 - Organizer 창을 불러옵니다. Organizer도 많이 달라졌는데...이번 글에서는
        시간 관계상 생략합니다...^^;;;




19 ~ 24는 인터페이스 빌더 파일(XIB)을 열었을 때 표시되는 아이콘들입니다.
소스 코드를 선택하면 더 단순한 내용들이 표시됩니다.

19 - File 항목으로 파일 자체에 대한 정보들이 표시됩니다.



20 - Symbols 항목으로 아래와 같이 나오네요...



21 - 이제부턴 좀 낮익은 화면입니다. Object Attribute네요. 속성창입니다.



22 - Size 창입니다.



23 - Connections 창입니다.



24 - Identity 창입니다.




마지막으로 화면에 표시는 못했습니다만 우측 Navigator | Utility 화면의
하단에 보시면 기존에 Add New File을 통해 볼 수 있었던 템플릿 화면과
인터페이스 빌더의 라이브러리 화면에 해당하는 내용들을 볼 수 있습니다.

File Template Library - 새롭게 생성할 수 있는 파일 템플릿들의 모음입니다.
                   File Template Library라고 적힌 셀렉트 박스에서 아이폰 OS와
                   맥 OS를 선택하여 볼 수 있습니다.



Code Snippet Library - 기존에도 있었나요? 새로 추가된 듯 합니다.
                      자주 사용되는 코드 목록이네요.



Object Library - 기존 Xcode3의 인터페이스빌더에 있던 Library 창 중에 Objects에
                해당하는 내용입니다.



Media Library - 프로젝트에 사용된 미디어 파일들의 목록이 나오네요.
             제 프로젝트에는 이미지 파일만 사용되었기 때문에 이미지 파일들의
             목록이 보여지고 있습니다.




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

이상 간략하게 Xcode4의 변화된 내용에 대해 살펴보았습니다.
얼핏 보기에도 많은 부분에 변경이 있었고 제 개인적인 견해로는 대부분의 변화가
상당히 긍정적이라고 판단됩니다.

가장 좋은 점은 인터페이스빌더의 통합이라든지 Assistant 기능들입니다.
Xcode3에서 소스 몇개 열고나면 사방에 창이 떠서 이리 찾고 저리 찾고 정신
없었는데 이제는 웬만한 것들은 창 하나에서 해결이 되겠네요. 관련된 파일들도
자동으로 보여주고...^^

그렇다고 해서 사용하는데 지장을 주는 부분도 없습니다.
매킨토시의 특성상 유저인터페이스가 대체로 직관적인만큼 대충 살펴보면
금방 그 사용법을 알 수 있을 정도니까요.

4월달에 처음 아이폰 개발한답시고 처음으로 매킨토시를 접한 저 조차도
벌써 이만큼이나 알나냈잖습니까...^^?

암튼 아직은 개발자용 preview 2니까 앞으로 더 많은 변화가 있을지도 모르겠네요.
아직 Xcode4를 통해 실제로 프로젝트를 진행해보지는 못했지만 많이 기대됩니다.
아이폰 개발이 더 재밌어지겠네요...^^

긴 글 읽어주셔서 감사합니다~

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요