반응형
[iOS Study] 간단한 iOS 앱 만들기 |
출처 : 아론 힐리가스의 iOS 프로그래밍
-
모델과 뷰는 서로 통신하지 않는다.
-
XIB 은 “집” 이라고 읽는다.
XML Interface Builder 를 의미한다.
-
Xcode 에서 좌측 section 을 [네비게이터 영역], 우측 section 을 [유틸리티 영역] 이라고 부른다.
유틸리티 영역의 상단의 [인스펙터(inspector)] 와 하단의 [라이브러리(library)] 로 구성된다.
-
프로젝트 네비게이터의 그룹은 순전히 파일을 구성하는 데만 사용되고 실제 파일 시스템에 디렉터리 형태로 만들어지지는 않는다.
-
인터페이스 빌더는 편집기 영역을 두 부분으로 나눈다.
왼편의 [독 (dock)]과 오른편의 [캔버스 (canvas)]이다.
독은 XIB 파일 내의 객체들을 아이콘(아이콘 뷰)이나 단어(아웃라인 뷰)로 나열한다.
-
XIB 파일은 NIB 파일로 컴파일된다.
앱에서 해석하는 더 작고 간단한 형태이다.
NIB 파일은 앱의 번들(bundle)로 복사된다.
번들은 앱의 실행 파일과 기타 리소스 파일을 가지고 있는 디렉토리이다.
-
커넥션은 객체에 메모리상의 다른 객체의 위치를 알려주는 역할을 한다.
그래서 두 객체가 서로 통신하게 된다.
인터페이스 빌더에서 만들 수 있는 커넥션은 두 종류, 아울렛(outlet)과 액션(action)이 있다.
아웃렛은 객체를 가리키는 포인터이다.
액션은 버튼이나 슬라이더, 피커 등과 같은 사용자가 실행하는 뷰에 의해 수행되는 메소드이다.
-
IBOutlet 키워드는 이 아웃렛이 인터페이스 빌더를 사용하여 설정된다는 것을 Xcode 에 알린다.
-
InterfaceBuilder 에서 플레이스 홀더(Placeholder) 객체는 실행 중인 앱의 객체를 나타낸다.
File’s Owner 객체는 xib 파일에 정의된 인터페이스를 관리하는 객체인 ViewController 의 인스턴스를 대신한다.
File's Owner 객체에서 마우스 오른쪽 클릭이나 컨트롤 키와 함께 클릭하면 연결 패널이 나타난다.
-
UIButton 을 누르면 다른 객체로 메세지를 보낸다.
메세지를 받는 객체를 타깃(target) 이라고 하고, 그 메시지는 액션(action)이라고 한다.
액션은 버튼을 눌렀을 때 실행되는 코드를 가진 메소드의 이름이다.
객체의 타깃을 설정하려면 객체에서부터 컨트롤 키를 누르고 드래그하여 그 타깃에서 놓는다.
마우스를 놓을 때 타깃이 설정된다.
-
IBAction 키워드는 인터페이스 빌더로 커넥션을 만들겠다고 XCode 에 알리는 것이다.
-
View 포인터는 앱의 배경화면을 나타내는 View 객체에 연결된다.
-
ViewController 의 인스턴스가 생성되면 그 인스턴스에 initWithNibName:bundle: 메세지가 보내진다.
-
코드 완성을 사용할 때 거의 비슷한 이름을 표시하는 경우가 있기 때문에 주의해야 한다.
코코아 터치는 메소드, 타입, 변수명 등을 매우 유사한 이름으로 구분하는 명명 규칙(naming conventions)을 사용한다.
따라서 Xocde 가 처음으로 제안하는 텍스트를 확인하지 않고 맹목적으로 수락하면 안 된다
-
화면에 인터페이스를 표시하기 위해서는 뷰 컨트롤러와 앱의 기본 컨트롤러인 AppDelegate 를 연결해야 한다.
앱 델리게이트는 프로그램의 시작점으로 모든 iOS 앱은 하나씩 가지고 있다.
-
앱 델리게이트는 앱을 위해 하나의 최상위 UIWindow 를 관리한다.
-
앱이 사용자에게 보여지기 직전 앱 델리게이트는 application:didFinishLaunchingWithOptions: 메세지를 받는다.
-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
-
커맨드 + R 은 Run 에 대한 단축키
-
앱을 자신의 개발 장비에 설치하려면 애플에서 발급받은 개발자 인증서가 필요하다.
등록비를 지불하여 등록된 iOS 개발자에게만 발급된다.
이 인증서는 실제 장비에서 실행할 수 있도록 자신의 코드에 서명할 수 있는 권한을 준다.
프로비저닝 과정의 네 가지 주요 요소는 다음과 같다.
1. 개발자 인증서 ( Developer Certificate )
인증서 파일은 키체인 접근(Keychain Access) 앱을 사용해 맥 시스템의 키체인에 추가된다.
2. 앱 ID ( App ID )
com.example 과 같은 형태를 띈다.
프로비저닝 프로파일에 있는 앱 ID 는 반드시 해당 앱 번들 ID(bundle identifier)와 일치해야 한다.
개발 프로파일은 앱 ID 에 와일드 카드(*)를 사용할 수 있다.
3. 장비 ID ( UDID )
장비 ID 는 각 iOS 장비마다 유일하다.
4. 프로비저닝 프로파일 ( Provisioning Profile )
개발장비와 컴퓨터에 위치한다.
확장자는.mobileprovision
-
Xcode 는 장비에 앱을 배포할 때 적합한 인증서에 접근하기 위해 개발자 컴퓨터의 프로비저닝 프로파일을 사용한다.
이 인증서는 앱 바이너리를 서명하는 데 사용한다.
개발장비의 UDID 는 프로비져닝 프로파일에 포함된 UDID 목록 중 하나와 일치하고 앱 ID는 번들 ID 와 일치한다.
서명된 바이너리는 자신의 개발 장비로 전달되고 장비에 있는 동일한 프로비저닝 프로파일에 의해 확인된 후 마침내 실행된다.
-
앱 스토어에 배포되는 앱은 그 앱이 실행 가능한 모든 장비용 아이콘이 있어야 한다.
-
아이폰/아이팟 터치(iOS 7) : 120x120 ( @2x )
아이폰/아이팟 터치(iOS 6 이하) : 57x57 / 114x114 (@2x)
아이패드(iOS 7 이하) : 72x72 / 144x144 ( @2x)
-
앱에는 두가지 종류의 파일이 있다.
코드와 리소스이다.
-
에셋 카탈로그(Asset Catalog, Images.xcassets) 를 통해 아이콘과 스플레쉬 런치 이미지를 설정할 수 있다.
-
좋은 시작 이미지는 앱의 내용이 없는 화면 캡쳐이다.
아이폰/아이팟 터치 : 320 x 480
아이폰/아이팟 터치 레티나 (3.5인치) : 640 x 960
아이폰/아이팟 터치 레티나 (4인치) : 640 x 960
아이패드 : 768 x 1024 (세로) / 1024 x 768 (가로)
아이패드 레티나 : 1536 x 2048 (세로) / 2048 x 1536 (가로)
앱 스토어에 배포되는 앱은 그 앱이 실행 가능한 모든 장비용 아이콘이 있어야 한다.
-
아이폰/아이팟 터치(iOS 7) : 120x120 ( @2x )
아이폰/아이팟 터치(iOS 6 이하) : 57x57 / 114x114 (@2x)
아이패드(iOS 7 이하) : 72x72 / 144x144 ( @2x)
-
앱에는 두가지 종류의 파일이 있다.
코드와 리소스이다.
-
에셋 카탈로그(Asset Catalog, Images.xcassets) 를 통해 아이콘과 스플레쉬 런치 이미지를 설정할 수 있다.
-
좋은 시작 이미지는 앱의 내용이 없는 화면 캡쳐이다.
아이폰/아이팟 터치 : 320 x 480
아이폰/아이팟 터치 레티나 (3.5인치) : 640 x 960
아이폰/아이팟 터치 레티나 (4인치) : 640 x 960
아이패드 : 768 x 1024 (세로) / 1024 x 768 (가로)
아이패드 레티나 : 1536 x 2048 (세로) / 2048 x 1536 (가로)
반응형
'프로그래밍 놀이터 > iOS' 카테고리의 다른 글
[iOS Study] ARC 를 통한 메모리 관리 (0) | 2016.02.15 |
---|---|
[iOS Study] Objective-C (0) | 2016.02.13 |
[ios] How to link xib file to the view controller? ( xib 파일을 view controller 에 연결하는 방법 ) (0) | 2015.07.04 |
iOS Simulator Home 버튼이 보이지 않아요. (0) | 2015.06.30 |
illegal configuration launch screens may not have connections (0) | 2015.06.20 |
댓글