본문 바로가기
프로그래밍 놀이터/iOS

[iOS Study] 간단한 iOS 앱 만들기

by 돼지왕 왕돼지 2016. 2. 12.
반응형

 [iOS Study] 간단한 iOS 앱 만들기


출처 : 아론 힐리가스의 iOS 프로그래밍

.mobileprovision, Action, app bundle, app id, AppDelegate, application:didFinishLaunchingWithOptions:, asset catalog, Autocomplete, bounds, Bundle, bundle id, developer certificate, file's owner, Hello World, IBAction, iboutlet, initwithframe, initWithNibName:bundle:, inspector, IOS, iOS6, iOS7, ios8, keychain access, Library, mainscreen, message, Model, MVC, nib, outlet, placeholder, Provisioning Profile, rootviewcontroller, Study, Target, tutorial, UDID, UIButton, UIScreen, UIWindow, View, viewcontroller, xcode, XIB, xml, xml interface builder, [iOS Study] 간단한 iOS 앱 만들기, 간단한 ios 앱, 개발자, 개발자 인증서, 객체, 등록비, 디렉토리, 라이브러리, 리소스, 메세지, 메소드, 모델, 배포, 버튼, 번들, 번들 id, 뷰, 서명, 스플레쉬 런치 이미지, 슬라이더, 시작점, 아울렛, 아이콘, 아이팟, 아이패드, 아이폰, 액션, 앱, 앱 id, 앱 객체, 앱 바이너리, 앱 번들, 앱 스토어, 에셋 카탈로그, 유틸리티 영역, 인스펙터, 인증서, 장비 id, 집, 커넥션, 컴파일, 코드, 키체인 접근, 타깃, 포인터, 프로비저닝 프로파일, 플레이스 홀더, 피커, 해석




-
모델과 뷰는 서로 통신하지 않는다.


-
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 (가로)








반응형

댓글