iOS 어플리케이션 개발을 한 대의 맥에서 한다면 걱정이 없습니다만,

여러대의 맥에서 해야 한다면 인증서를 여러대의 맥에 설치를 해야 합니다.

간단하게 생각하면 개발자 홈페이지에서 다시 다운받아 설치하면 된다고 생각을 하지만, 실상 그렇지가 못합니다.

참..! 그리고 처음 인증서를 발급 받을 때 생성하였던 파일들을 모두 보관해 두시기 바랍니다.

나중에 갱신에 필요할지도 모르니까요^^

여튼, 여러대의 맥에서 개발을 하려면 처음 인증서를 발급받은 맥에서 일정 과정을 거쳐 복사하여 다른 맥으로 옮겨줘야 합니다.


인증서 파일을 복사하려면

응용프로그램 - 유틸리티 - 키체인 접근

을 실행합니다.



키체인에서 로그인, 카테고리에서 인증서를 선택하면 인증서 목록이 쭈욱 나오게 됩니다.

거기에서 관련된 3개의 항목이 존재합니다.

iPhone Distribution, iPhone Developer, Apple Worldwide Developer Certification Authority

이 세가지 항목을 선택하고 오른쪽버튼을 눌러 3개 항목 보내기...를 클릭합니다.



경로를 지정하고 저장을 누르면

인증서를 다른 맥에서 설치할 때 사용할 암호를 생성합니다.



그 후, 현재 매킨토시의 계정 비밀번호를 확인합니다. (3번 확인 할 수도 있습니다.)



이제 이렇게 이쁘게 인증서 내보내기가 완료되었습니다.



다른 맥에 가서 이 파일을 실행시키고 암호를 입력해주면 자동으로 인증서 설치가 완료됩니다 :-)



↓↓↓도움이 되었다면 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓

저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. 맵뷰 띄우기


열 일곱번째 시간입니다.^^

지난 번까지는 화면 전환 기법 몇 가지를 알아보았습니다.
화면 전환은 상황과 때에 맞게 그리고 사용자의 요구에 맞게 적절하게 사용하면 되겠습니다~^^

자 그럼 오늘은 지도(구글 맵)을 한 번 띄워보도록 하지요~
출발~~~~~~~~~~~~


# MKMapView


긴 말 필요 없습니다 ㅋㅋㅋ 바로 실습 들어갑니다.
당연히 지난번 까지 쓰던 프로젝트 그대로 사용합니다~

새로운 뷰 컨트롤러 생성을 위하여 Root폴더에서 우클릭(또는 컨트롤+클릭) 하여 New File...을 선택!


UIViewController Subclass를 선택하고 Next~!
아... 이제 다음부터는 이거 캡쳐 안해야지... ㅋㅋㅋㅋㅋㅋㅋㅋ 


이름을 MyMapViewController라고 해줍니다. 체크박스와 Subclass of를 잘 확인하세요~


자 뷰 컨트롤러가 생성되었으면 MyMapViewController.xib파일을 엽니다.


View위에 Map View를 끌어다 놓습니다. 자동으로 화면 전체에 들어갈거예요~


그 위에 버튼 세개를 살포시 얹어줍니다. 그리고 속성창에 들어가서 Alpha 값을 0.5로 설정해 줍니다~



그 후에 이제 SecondViewController.m으로 갑니다. 우리는 이 MyMapViewController를 SecondViewController에서 Modal View로 띄울 생각이거든요^^
자, SecondViewController.m으로 와서 새로 만든 MyMapViewController를 import해줍니다.


그 후에 아래로 내려와서 지난번에 만들어 놓았던 modalButtonClick메소드를 수정해 줍니다.


그리고 나서 실행을 해 봅니다~
짠! 잘 되시나요?ㅋㅋㅋ


안ㅋ돼ㅋ요ㅋ

빌드에서 에러도 없는데 왜 안될까요 도대체 ㅠㅠㅠ
자... 그럼 우리가 새로 추가한 녀석이 누군가 떠올려 봅시다.
우리가 처음 써보는건 분명히 Map View네요^^

개발문서에서 MapView에 관해 검색해 보았습니다.
Map View의 클래스 이름은 MKMapView입니다.

자... 개발문서에서 Class Reference를 보시면 사용하는 Framework와 사용가능한 버전, 그리고 선언되어있는 헤더가 나오네요~
MapKit.framework와 MKMapView.h 등을 데려와야 하겠군요~


자, 프로젝트를 클릭하고 아래와 같은 곳에 Linked Frameworks and Libraries가 있네요~
말그대로 링크된 프레임워크와 라이브러리가 있어요~
우린 지금 MapKit프레임워크를 추가해야 하므로 +버튼을 눌러줍니다~


MapKit.framework를 Add해줍니다~


자, 이렇게 추가 했으면 잘 실행이 될거예요~

그런데 맵에서 닫기버튼이 동작을 안하면 모달뷰를 닫을 수가 없죠~
이제 버튼 동작을 만들어 봅시다~^^
자, 이거 다 어떻게 하는지 아시죠??
모르면 이 아래 캡쳐에서 오른쪽 위에 Editor가 어떻게 되어있는지 확인해보시구요~
아래 빨간 화살표는, 버튼을 오른쪽버튼 또는 컨트롤 클릭해서 끌어오라는 말씀입니다~^0^


버튼 액션을 요따구로 연결 해주시구요~^^


나머지 두 버튼들도 연결 해줍니다~


또 맵뷰도 똑같이 끌어오는데, 요놈은 액션이 아니라 아울렛으로 연결해주셔야겠죠?^^
요로코롬 연결 해봅니다~


흐미~ 근데 이게 왠 에러!!??
에러 내용을 보니 MKMapView가 Unknown type이라네요..;
얘가 맵뷰를 인식하지 못하고 있어요!!!!!!!!!!!!
그럼 이럴땐 어떻게 해줘야 할까요? 고민고민.. +_+


자, 아까 위에 개발문서에서 MKMapView 클래스를 사용하려면 어떻게 해야 했죠?ㅎㅎ
프레임워크랑 헤더파일을 추가해야 했죠?
헤더파일을 살포시 추가해 줍니다.
이래서 개발문서가 중요하다 중요하다 하는거예요~ 혼자 하다가 모르면 구글보다 요놈이 백만배 빠를수도 있으니까요^^&


짜잔~~~~~~~~~~~~~~
맵을 보셨나요?ㅎㅎㅎ
(p.s 시뮬레이터에서 자신의 위치는 캘리포니아 애플 본사로 찍힙니다.)
아직은 밋밋하고 재미없네요~ 조금 더 해볼까요?


이번에는 내가 있는 곳의 위치를 알아보는 기능도 써보고 싶습니다~
프레임 워크중에 CoreLocation.framework를 추가해줍니다~ 


짜잔~ 추가해주고 아래와 같은 코드들도 입력해 줍시다~
참, 캡쳐에는 빨간 네모가 없지만 CoreLocation.h 헤더도 import해줍니다~


그리고 나서 SEOUL버튼을 누르면!!!???
지도가 뿅하고 오긴 오는데... 흐음... 확대도 안되고 재미가 없네요 ㅋㅋ


그래서 이동도 되고 확대도 되도록 코드를 조금 바꿔 넣어줘 봅시다~
코드에 대한 설명은 코멘트에^^


짜잔~ 이렇게 서울 시청으로 오네요 ㅎㅎㅎ 


그리고 드디어! 내가 있는 곳으로 지도를 움직이고 싶을 때..!! 어떻게 해야 하나???
showUserLocation메소드에 아래와 같이 입력합니다.
그런데 에러...ㅠ_ㅠ
또 뭐가 문제일까요..?


자... 문제에 봉착했다면..?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그렇죠 개발문서!
뭔가 의심되는 부분이 있다면 알트키를 누른채로 그녀석 위로 커서를 올리면 손꾸락 모냥이 나옵니다~ 클릭!
그리고 Class reference로 가보는거죠~


MKUserLocation이라는 클래스는MKUserLocation에 선언되어 있군요!?


그렇다면 <MapKit/MKUserLocation.h> 헤더를 추가해 주고 빌드해 봅니다~

그래도... 에러...ㅠ_ㅠ

또다시 의심가는 부분에서 개발문서를 살펴봅니다~ 그 결과 저는 이렇게 두개의 헤더를 추가해줬습니다~
왜 CoreLocation/CLLocation.h 헤더를 추가했는지 여러분들도 찾아 보아용~ 이힛~!ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
(-_- 이런 표정이 되셨다면 죄송...;)


그리고 코드를 이쁘게 적어주고 빌드해봅니다~
빌드성공!!


실행 해 봅니다~
ME, Close, SEOUL 버튼들이 모두 잘 동작하는지 확인합니다~^^*


하아... 힘드네요 ㅠ_ㅠ

이제 아울렛 연결이나 액션 연결... 클래스 생성 등의 소소한거는 캡쳐 그만해야겠어요..ㅋㅋㅋ

요렇게 짧은거 하는데 이미지 캡쳐만 30개..ㅋㅋㅋㅋㅋㅋㅋㅋ

휴휴, 다음에는 또 뭘 해볼까요?

여러분들은 뭐가 더 필요하신가요? 댓글달아주세요~ 진짜 그거 해보게요 ㅋㅋ

저도 맵뷰 처음 써봐서(그래서 개발문서 캡쳐가 많은 것일지도..ㅋㅋ) 부족한 점이 많은데요, 요청하시는게 있으면 배워서라도 포스팅 할게요 ㅋㅋ
 
그럼 이만 빠바이~


by yagom

twitter : @yagomsoft

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   

↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓

저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. 뷰 위에 뷰 얹어보기 


열 다섯번째 시간입니다.^^

지난 번까지는 네비게이션 컨트롤러에 대해 알아보고, 주석다는 방법에 대해 좀 알아보았습니다.
요즘들어 너무 바빠서 몸이 다섯개라도 모자랄지경입니다 ㅠㅠ 포스팅도 너무 뜸한거 같아 슬프네요 ㅠㅠㅠ

자 그럼 오늘은 화면을 바꿔보는 방법 중에 하나인 뷰 얹고 없애기를 한 번 해보도록 할게요~
스따뚜~~~~~~~~~~~~


# 새로운 프로젝트 생성

지난 번 까지는 iOS5에는 최적화되지 않은 코드였습니다. 물론 최적화되지 않은 코드들에 대한 설명은 거의 하지 않았으니 헷갈릴까 걱정하실 필요는 없습니다용 ㅎㅎ

일단 새로운 프로젝트를 생성합니다~

Tabbed Application 을 선택합니다~

이 프로젝트로 꽤 오랜시간 포스팅 진행하게 될 듯 합니다 ㅎㅎ


저는 프로덕트 이름을 ChangeViews 라고 해줬습니다!

그리고 여기서 지난번이랑 다른점은 Use Automatic Reference Counting에 체크하는 거예요~ 



짜잔~ 프로젝트가 만들어 졌습니다요 ㅎㅎ


한 번 실행시켜 볼까요?ㅎ

지난 번과 똑같이 두 개의 탭을 가진 탭 기반 어플리케이션이 자동으로 생성되어 있네요 ㅎ



화면 좌측에 네비게이션영역의 ChangViews그룹에서 우클릭 또는 Ctrl+클릭을 하여 New File...을 선택하여 줍니다.



그 후에 ThirdViewController라는 이름의 뷰컨트롤러 하나를 만들어 줍시다.
 


자, 그 후에 FirstViewController.xib 파일로 이동합니다. 그리고 우측 아래쪽에 Objects 중에 View를 살짝 끌어서 First View 위가 아니고 격자모양처럼 표시되어있는 FirstView '바깥'영역으로 끌어옵니다.



그러면 네모칸 안에처럼 view와 view가 서로 포함되지 않게 나오게 됩니다~ 즉, 원래있던 View안에 새로 넣은 View가 포함되지 않게 해야 합니다 ㅎ
그리고 오른쪽 메뉴중에 자 모양으로 생긴 메뉴로 가면 뷰의 크기를 조절할 수 있어요~ 280 * 100으로 만들어줘 봅시다~


속성탭으로 가서 배경색은 검은색으로 바꿔주구요~



Objects에서 Round Rect Button 하나를 쭈욱 끌어옵니다. Title은 Remove로 바꿔보았습니다~ 이 버튼을 누르면 이 뷰가 뿅하고 사라질 때 쓰일거예요 ㅎㅎ


그리고 원래 있던 FirstView쪽에 Add라는 Title을 가진 Round Rect Button 하나를 만듭니다~ 이 버튼은 새로운 뷰를 위에 얹을 때 쓸거구요 ㅎ


이왕 이렇게 된거 숨기기 보이기 버튼도 하나씩 만들어 봅시다~


이제 메소드를 만들어 주어야겠죠?ㅎ
FirstViewController.h 헤더로 옵니다.
아래와 같이 코드를 넣어봅시다~

@property 줄은 새로 만들어진 View랑 연결해 줄 녀석이구요~

그 아래 메소드 네개는 버튼들과 연결해줄 녀석들입니다.


이제 구현파일 FirstViewController.m으로 와서 

@property했으니, @synthesize로 받아주어야겠죠?ㅎ

그 아래 메소드 네개를 구현해 줍니다.

여기서 잠깐! #pragma mark - View Control Methods 라고 써놓은 부분!

이건 말 그대로 마크 해놓는 건데요~

요기 표시해 놓은 부분부터 다음 표시 부분까지는 View Control Method 라고 개발자가 표시해 놓는 겁니다.

요렇게 만들어 놓으면 나중에 코드가 아무리 길어져도 관련 메소드들을 쉽게 찾아 볼 수 있어요^^

어떻게 찾냐구요?

화면 중간 위쪽을 보시면 지금 빨간 네모 만든 부분을 클릭해 보세요~ 다들 눌러보실 것으로 알고 다음 설명은 생략합니다^^ 눌러보시면 답 나오거든요 ㅎ


이제 아까 구현해 놓은 녀석들을 연결해 줄 차례입니다~
File's Owner에서 우클릭 또는 Ctrl+클릭 으로 드래그 앤 드롭으로 새로 만든 View로 끌고옵니다~


Outlets에 onView에 클릭!


정상적으로 연결이 되면 앞에 동그라미가 생겨요~


이제는 반대로 File's Owner에서 오는게 아니라 버튼을 오른쪽버튼 드래그 앤 드롭 합니다. 또는 Ctrl키를 누른 상태에서 드래그 앤 드롭!
 



Add버튼이니까 addView와 이벤트를 연결합니다.


자, 그런데 이 방법 말고 또 다른 방법들을 소개합니다~!
이벤트를 연결하기를 원하는 버튼에서 우클릭! 또는 Ctrl+클릭!
하게되면 아래 그림과 같이 Event와 Outlet 등을 연결할 수 있는 참이 똻!!!!!!!!!!




그러면 자신이 원하는 이벤트 또는 아울렛의 오른편에 보이는 빈 동그라이 있지요?
거기서 누르고 File's Owner쪽으로 드래그 앤 드롭 해봅니다~  버튼은 통사아Touch Up Inside 이벤트를 주로 사용합니다.


그 반대로 File's Owner쪽에서 우클릭 또는 컨트롤 클릭하여 연결해 주는 방법도 있습니다~!


이벤트는 Touch Up Inside로~! 물론 다른거 해보셔도 됩니다 ㅎㅎ 어떤 결과가 나오는지 직접 해보세요^^
이렇게 세가지 방법을 소개해 드렸습니다~ 이 세 방법중에 편한 방법을 골라서 쓰시면 될 것 같네요 ㅎ


자, 정상적으로 다 연결되고 난 후에 File's Owner를 우클릭 했을 때 뜨는 창의 모습니다.
전부 잘 연결 되셨나요?^^


자, 제대로 다 되셨으면 실행시켜 봅시다~

과감히 Add버튼을 클릭!!
 

오이잉??
창이 지멋대로 이상한데 붙어버리네요 ㅎㅎ
제대로 잘 붙도록 조정해 줘야겠네요~


자 FirstViewController.m 구현파일로 이동합니다~

addView 메소드에서 한 줄을 더 추가해 줍니다~


자~ 다시 실행~~


이쁘게 잘 나오나요?ㅎㅎ



자, 그럼 여기서 동작을 잘 살펴봅니다~!

Add버튼으로 화면 위에 붙인 녀석은 Remove로도 화면에서 없어지고, Hide로도 없어집니다! 그쵸?

그런데 Hide로 없어진 녀석은 Add해도 다시 나타나질 않습니다~

그리고 Remove로 없애고 나서 Show해도 안나타 납니다!!

오이잉??? 도대체 왜 이런일이???

똑같이 화면에서 없어지고 나타났는데, 동작이 될때가 있고 안될때가 있다???

애매~~~~~~합니다잉~~~~~~

자, 잘 생각해 봅시다용 ㅎㅎ

아까 작성해둔 코드를 보게 되면

addView: 메소드 안에는

addSubview: 라는 메소드가 들어가 있습니다.

이말인 즉슨, 어떠한 view위에 sub(하위) view를 추가하겠다.

말 그대로 '새로운 하위 뷰를 얹어넣겠다' 라는 뜻이겠죠?

하지만 showView: 메소드 안에는 setHidden: 이라는 메소드가 사용된 것을 보게 됩니다.

말 그대로 '숨기지 않겠다!' 이런 뜻이겠죠? 



자, 다시 생각해 봅니다!

addSubView는 원래 없는 녀석이 새롭게 뷰 위로 얹혀진다는 것을 알게 됩니다!
하지만, Hidden은 말 그대로 투명으로 없어져 있어서 눈으로만 안보일뿐 원래 있는 녀석이 보이게 되는 것 뿐입니다!


그 반대로 생각해 봅니다~

removeFromSuperview메소드는 있던 녀석을 뷰 위에서 아예 없애버는 것이구요,

hidden해버리면 우리 눈에만 안보이고 뷰 위에 계속 얹혀있는 상태가 되는 겁니다.


그렇기 때문에 add버튼보다 show버튼을 먼저 누르게 되면, 새로운 뷰가 얹혀져 있지 않은 상태이기 때문에 화면에 나타나지 않게 되는 것이고,

hidden으로 숨겨놓고 add해버리면, 이미 화면위에 얹혀져 있기 때문에 프로그램은 이미 얹혀져 있고 보이지만 않는 것을 다시 얹을 필요가 없으므로, 그상태 그래도 놔두게 됩니다. 즉, 우리 눈에는 보이지 않아도 컴퓨터는 위에 얹혀져 있다는 것을 알기 때문에 동작하지 않는 것입니다.

이해 가시나요?

여튼, 상황과 때에 따라서 이렇게 뷰를 얹고 없애고 보이게 하고 안보이게 하고... 이런식으로 컨트롤 할 수 있다는 것을 간략히 보여드렸습니다~!

다음 번에는... 또 뭘 해볼까요?ㅋㅋ

아직 할것은 태산인데 말이죠 ㅎㅎㅎ

댓글 남겨주세요~!

by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. 주석 ( Comment, 코멘트 )


열 네번째 시간입니다.^^

정말 오랜만에 뵙겠습니다...
알고 계시다 시피 저의 맥북 에어가 구입한지 일년도 되지 않았는데...
누군가 슬쩍 해 갔습니다...ㅠㅠ
어흑...
일단 핑계지만...
어흑..ㅠㅠ
여튼... 다시 차근차근 포스팅 해 보려 합니다.

탭 뷰 컨트롤러, 네비게이션 컨트롤러 등을 쭈욱 살펴 왔었는데...
잠시 딴얘기 한 번 해보려 합니다.
저도 좀 더 빨리빨리 이것저것 써보고 싶지만, 
중요하다고 생각하는 만큼 빼놓고 갈 수가 없네요..^^

사실 Objective C와 C 포스팅 중간에 다 들어가 있습니다.
그런데 여기 또 다시 캡쳐하기도 거시기 해서 Objective-C 포스팅에서 퍼왔습니다.
기본적인 내용은 동일 하므로, 제가 저기에 적어 넣은 코드들은
어플리케이션의 AppDelegate.m 파일의
application:didFinishLaunchingWithOptions: 메소드 안에 작성하시면 됩니다.

자, 다시 출발!!


# 주석

주석이 무엇인가 궁금하시죠?ㅎ
다른 블로그나 책에서 한 챕터를 잡고 주석을 설명하는 경우는 거의 없습니다만..
주석은 생각 외로 굉장히 중요한 역할을 하며, 프로그래밍의 첫 습관을 들일때 매우 중요한 녀석이라고 생각합니다. 물론 실무에서도 굉장히 중요합니다.
그래서 주석은 한 챕터로 잡고 설명하려 합니다!!
오늘 포스팅은 짧습니다만, 꼭 기억해 두셔야 할 포스팅입니다^^*

주석.. 코멘트.. 같은 말입니다!
주석은 코드에 아무런 영향을 미치지 않지만, 이 코드가 어떤 코드인지, 무슨 역할을 하는 것인지에 대한 설명을 적어놓는 메모 같은 것입니다.

그런데 이게 왜 중요하냐구요?
정말 간단한 프로그램이라면 굳이 필요 없을지도 모르지만, 나중에 백줄, 천줄, 만줄 ... 길어지는 프로그램이라면 내가 짜 놓고도 이 부분이 어떤 부분이었는지 기억하지 못하는 경우가 허다합니다 ㅋㅋㅋ
나는 기억력이 좋아서 아닐거라구요?
훗...!절대 그렇지 않습니다!
십수년 프로그래밍 한 고수분들도 꼭 적어두는 것이 주석입니다.
정말 코드 짜기도 바빠 죽겠는데 그런거 적을 시간이 어디있냐구요?
그래도 해야 합니다!!
나중에 현업에 가서 협업을 할때에도 굉장히 중요합니다.
내가 짜놓은 코드는 내가 해석하기 쉬울지 몰라도 다른 사람이 같이 일하면서 내 코드를 볼 때, 이해가 가지 않으면 일이 그만큼 늦어지고 심지어는 프로젝트가 망가지기도 하니까요.
제가 여기서 중요하다고 백만번 말해도 모자랄 만큼, 주석을 다는 것은 정말 중요한 습관입니다.
처음부터 주석을 다는 습관을 들여 놓으셔야지 나중에 후회하지 않고, 힘도 덜 드실것을 저는 장담합니다!!

이렇게 말하니까 주석 다는 것이 정말 어려운 것 같지만, 사실은 정말 간단합니다!
한 번 보시죠 ㅎㅎ

자... 화면에 보이는 저 녹색 글씨들 보이시죠? 저것들이 모두 주석입니다.
프로그램을 실행시켰을 때는 전혀 티가 나지 않지만, 작업하는 프로그래머는 보게 되는 저것이 주석입니다.
컴파일 할때 컴파일러가 주석은 모두 제외하고 컴파일 하게 됩니다.


 




위의 코드 실행 결과 화면입니다.
녹색으로 주석처리된 녀석들은 화면에 나오지 않죠???
코드 해석이 어려우시면 지난번 포스팅을 다시 한 번 보고 오세요^^



자... 조금 수정해서 보여드릴게요~!
어떻게 뭐가 달라졌는지 비교해 가면서 보세요^^


결과 화면입니다~!



로그에 찍힌겁 보시면 깨알같은 팁도 있죠?ㅎㅎㅎ
여기에 직접 쓰지 않을테니 한 번 사용해 보세요^^ 


중요한 주석 처리하는 방법은 간단합니다!


// 주석......
이런식으로 주석을 작성하게 되면 한 줄이 주석처리 됩니다.
즉, 한 줄을 자신이 쓰고 싶은 말들을 써놓을 수 있죠.


또한, 
/* 주석...
여러줄
쓸 수 있는
주석... */ 


이런식으로 처리를 하게 되면 여러줄을 주석처리 할 수 있습니다.

참 쉽죠잉!?

위에 예시로 작성한 코드에서는 주석을 위나 아래에 달아놓았는데, 코드 바로 옆에 붙여 써도 무방합니다~
무슨말인지 잘 이해가 안가시면 직접 해보세요 ㅎㅎ
다시 한 번 말씀드리지만, 컴퓨터 안고장납니다잉 ㅋㅋ 폭발 안합니다잉 ㅋㅋㅋ
주석 다는 스타일을 같이 협업하는 사람끼리 정하거나, 자신만의 스타일로 작성해도 됩니다. 딱히 정해진 틀은 없어요^^ 

앞으로 제가 포스팅을 할 때 마다 주석을 일일히 달며 하지는 못할 거예요.
하지만, 여러분은 제 포스팅을 보며 공부 하실때마다 코드에 꼭 주석을 달아주세요!!
부탁드립니다~!
이것은 정말 중요한 습관임을 다시 말씀드립니다!
그래서 일부러 한 챕터를 내서 포스팅을 한거예요~

그럼 긴 잔소리는 여기까지만 하고 다음 번에 뵙도록 해요^^*

뿅!


by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제


1. 기기별 Icon추가 및 관리하기
2. 해상도별 이미지 처리

열 번째 시간입니다.

지난번에는 TabView기반 어플리케이션을 만들어 보았습니다~!

오늘은 지난 번에 다음 번에 얘기 해 보자고 한 이미지에 대해 얘기해 보려 합니다...ㅎㅎ

자 이제 본론으로 고고 ^^

# 어플리케이션 Icon관리하기

지난번에 만들어 놓았던 MyFirstTabbedApp을 이용해 볼까 합니다~

그 전에 아이콘 파일들에 대해 좀 살펴봐야 할 것 같아요~
제가 미리 만들어본 아이콘 파일들입니다.


이게 다 뭐냐구요?ㅋㅋ
설명해 드릴게요.
아이콘 안에 들어가 있는 숫자들은 아이콘 이미지의 크기입니다.
29 x 29  부터 114 x 114까지 다양하지요?
지금부터 설명 들어갑니다~!

 파일명 사이즈  용도 
Icon.png  57 * 57 
iPod 터치 3세대 이하
iPhone3GS 이하 
디스플레이의 홈화면 아이콘
Icon@2x.png 114 * 114 
iPod 터치 4세대 이상
iPhone4 이상 Retina 
디스플레이용 홈화면 아이콘 
Icon-72.png  72 * 72
iPad 및 iPad2
홈화면 아이콘 
Icon-Small.png   29 * 29
iPod 터치 3세대 이하
iPhone3GS 이하
스포트라이트용 아이콘 
Icon-Small@2x.png 58 * 58 
iPod 터치 4 이상
iPhone4 이상 Retina
스포트라이트용 아이콘 
Icon-Small-50.png   50 * 50
iPad 및 iPad2
스포트라이트용 아이콘 

조금 감이 오시나요?
아이콘 종류가 뭐가 이렇게 많냐구요?
기기별로 지원 해상도와 화면 크기가 다르기 때문이죠~
아, 그런데 물론 기본아이콘인 Icon.png하나만 넣어도 모든 기기에서 똑같은 아이콘을 볼 수 있긴 하지만 기기별로 아이콘이 약간 뭉그러져 보이거나 깨끗해 보이지 않을 수 있기 때문에 분리해서 넣어주는 거예요.
분리해서 안넣어준다고 쇠고랑 차지 않아요~
그냥 안이뻐 보이면 안좋으니까 하는거예요~
ㅋㅋㅋㅋㅋㅋㅋ

아, 또 스포트라이트가 뭐냐구요?
iOS의 기능 중에 하나인데, 홈화면에서 왼쪽으로 쭈욱 끝까지 화면 이동하면 검색하는 화면이 나올거예요.
거기가 스포트라이트 검색창입니다.
기기에 있는 모든 정보들을 검색할 수 있는 곳이죠.
그 목록에는 조금 작은 아이콘을 넣어놓으면 이미지 로딩 속도가 더 빠르기 때문에 스포트라이트용 아이콘을 따로 넣는 건데요, 사실~ 이것도 굳이 넣어주지 않아도 됩니다.

하지만 그냥 유저들을 위한 깨알같은 서비스?ㅋㅋㅋ
여튼 이렇게 여러 크기의 아이콘을 만드는 이유를 조금 이해하시나요?

제가 먼저 만든 아이콘은 파일 첨부 해 두었습니다^^


그럼 이 아이콘들을 직접 어플에 적용시켜 봅시다.

지난 번에 만들었던 어플을 다시 한 번 실행시켜 봅시다^^* (아, 물론 그냥 비어있는 어플 만드셔도 상관없습니다~)
 

일단 아이콘 이미지들을 넣어 줄 그룹을 생성했구요~


아이콘 파일들을 끌어다 넣어줍니다.
가져올때 복사에 체크 해 주시는거 잊지 마시구요~

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile25.uf@190B50334ECCA5A6301C13.png%7Cwidth=%22500%22%20height=%22343%22%20alt=%22%22%20filename=%222.png%22%20filemime=%22image/jpeg%22%7C_##]
 총 6개가 되겠죠?ㅎ

그런데... 이렇게 여섯개나 되는 파일을 일일히 저장하기 귀찮죠...ㅠㅠ
그런 분들을 위한 어플이 존재합니다~
Mac App Store에 가셔서 iConify라는 어플리케이션을 받아 설치하시면 한방에 모두 해결해 드립니다 ㅎㅎㅎ

iConify

또는 Icon Express를 이용하세요~

Icon Express


네비게이션 영역에서 MyFirstTabbedApp-Info.plist 파일을 찾아 클릭해 봅시다.
새로 프로젝트를 만드신 분들께서는 <ProjectName>-Info.plist 의 형식으로 자동생성이 되어있을거예요.
plist파일은 Property list 파일입니다. 즉, 속성값들을 갖고 있는 파일입니다.
지금 선택된 이 plist파일은 이 어플리케이션의 속성과 설정 값들을 저장하고 있는 파일이라고 생각하시면 됩니다~!
잘 보시면 Icon files라는 행이 보이실거예요.
오른쪽에 보시면 0 items라고 써있는게 보이구요~


우리는 6개를 넣어줄거니까요~
Icon files 좌측에 보시면 화살표가 보이는데, 아래로 향하도록 한번 클릭해 주시고~
Icon files라는 행이 파란색으로 표시되어 있는 상태에서 엔터 한번 눌러주시면 아래 item 0 이라는 행이 하나 생길거예요~
여섯 행을 만들어 줍시다.
그리고 아이콘 파일들의 이름을 쭈욱 적어줍니다~! (대소문자 구별 합니다)


그리고 실행시켜 볼까요?
시뮬레이터에서 보니 아이콘에 57 x 57 이라고 보이시죠?
제가 Icon.png 파일에 57 x 57 이라고 적어놓았으니 이렇게 나올거예요~
그런데, 시뮬레이터 화면은 분명히 아이폰4 모양인데 왜 57 아이콘이 나올까요?ㅠㅠ


자, 시뮬레이터는 기본적으로 레티나 디스플레이가 아닌 기기로 설정이 되어있습니다.
시뮬레이터 실행 중에 상단에 메뉴표시줄에서 Hardware-Device-iPhone(Retina)를 선택하여 레티나 화면으로 변경하여 봅시다.


짜잔~ 아이폰4 이상에서 지원되는 레티나 화면에서는 114 아이콘 (Icon@2x.png)가 정상적으로 나오네요~


그럼 디바이스를 아이패드로 바꾸면? 
짜잔~ 72 아이콘이 나와욬ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아 신기해랔ㅋㅋㅋㅋㅋㅋㅋㅋ


그런데, 나는 아이콘에 발광 효과를 넣지 않았는데 여기는 자동으로 나와요~
없애고 싶으신 분들을 위하여 방법을 알려드립니다~
다시 plist파일로 돌아와서 공백에 대고 마우스 오른쪽 클릭!
또는 컨트롤+클릭 하시면 메뉴가 나오는데요
Add Row를 클릭합니다~


그러면 새로 한 줄이 나오는데요, Key라는 열의 내용을 Icon already includes gloss effects라고 입력하여 하시고 (아마 자동완성으로 나올거예요) Value는 YES를 써주시구요~(대소문자 구별합니다)


다시 실행하여 봅니다~
엄허~! 뽀송뽀송 글로시 효과가 사라졌어용 ㅋㅋㅋ


근데 아이콘 밑에 보이는 어플이름을 좀 바꾸고 싶다면...??
plist파일에 보면 Bundle display name 이라는 행에서 Value를 자신이 원하는 이름으로 바꿔주시면 됩니다. 한글 영문 상관없습니다. 다만 ...이 생기지 않으려면 한글6글자, 영문 12자까지만 써주시면 됩니다.(띄어쓰기는 영문 1글자로 취급됩니다)


자~ 이렇게 어플 아이콘 아래의 이름이 변경되었습니다~!
나라별로 지정 가능합니다. 이를 로컬라이제이션이라고 하는데, 그 부분에 대해서는 다음에 다루도록 해 볼게요..ㅎㅎ



# 해상도별 이미지 관리

아이폰에는 두 가지 해상도가 존재합니다.
320*480과 640*960.
꼭 두배 차이나죠?
그렇기 때문에 높은 해상도의 화면과 낮은 해상도의 이미지 화면의 이미지의 선명도도 다릅니다.
기본적으로 어떤 크기의 이미지던간에 기기별로 알아서 리사이징을 해 주어 같은 이미지를 출력하도록 해주지만, 그렇게 하면 리사이징 처리 시간도 걸리게 되고, 기기에 최적화된 이미지가 아니기 때문에 선명하지 못하거나 뭉그러져 보일 수 있습니다.
그래서 깨끗한 화면을 원하는 개발자는 해상도별로 이미지도 따로 관리를 해주게 되는데요~
그것에 대해 간략한 설명 드리겠습니다~
지난 번에 집어 넣었던 yagom_icon.png라는 이미지 파일이 있습니다.
아이콘 파일이 아닙니다... 혼동을 드려 죄송합니다 (ㅠ_ㅠ)
여튼, 이 파일의 이미지 크기와 꼭 2배가 되는 이미지를 yagom_icon@2x.png라는 이름으로 집어 넣어줍니다.
.


그리고 실행해 봅시다.
retina디스플레이가 아닌 일반 화면(320*480) 버전의 기기를 통하여 yagom_icon.png라는 파일을 사용하였던 화면을 보면 전에 봤던 것과 동일한 이미지가 나옵니다.


하지만 레티나 디스플레이로 변경한 후 다시 보게된다면!?



어머나 세상에!
전 단지 @2x라는 접미어만 붙여서 파일을 넣어줬을 뿐인데 알아서 찾아서 보여주네요~ 


이렇게나 친철하게 말입니다 ㅋㅋㅋ


그래서 아이패드로도 실행 해 보았습니다.
그런데...
아이패드에서 아이폰 어플을 실행하였을 때에는 @2x가 아닌 일반 이미지를 로딩하는군요.
이 이유에 대해서는 논란이 많은데, 구글링 해보시면 조금이나마 이유를 알 수 있으실 거예요..^^
정확한 사실도 아니거니와 설명하기 복잡하여 일단 패스 합니다 ㅎㅎㅎ


자 이렇게 해서 아이콘 넣어보기와 이미지 관리에 대해 조금 알아보았습니다~
협업하시는 디자이너 분께 이렇게 저렇게 이미지를 처리해 주세요~ 라고 말씀하시면서 이유를 설명해 주세요~ㅎㅎ
이미지가 더 이뻐보이려고 이렇게 한다고 말씀드리면 마다하는 디자이너분은 없으실 거예요ㅋㅋ
그런데~!
더 편하게 하는 방법을 소개해 드립니다~!
맥 앱스토어에서 Unretiner 검색하시면 나옵니다..^^
레티나 디스플레이 기준의 이미지를 넣으면 이미지 뒤의 @2x라는 접미어를 없애는 동시에 크기를 절반으로 줄여서 따로 저장해 줍니다~
그러면 일반 이미지와 레티나 이미지를 한방에 해결할 수 있죠^^
다만, 사이즈가 111x123과 같이 홀수가 되는 파일은 처리가 되질 않으니 112x124와 같이 이미지 크기를 조정하셔서 넣어주셔야 합니다^^
링크는요~ Unretiner


후아~
이렇게 아이콘과 이미지에 대해 조금 알아보았습니다^^
어떠세요?
유익하셨나요?
별거 아닌 내용인 것 같아도 나중에 다 피가되고 살이되는 내용일겁니다 ㅎㅎ
유익하셨다거나 도움이 되셨다면 응원이나 질책의 댓글 하나씩 남겨주세요 ㅠㅠ 넙죽넙죽
저는 그럼 다음번에 조금 더 유익한 내용으로 찾아뵙겠습니다~^^*

다음에 뭐 할까요? 댓글 주세요 ㅎㅎ
 

by yagom


p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.


RSS Feed 받기 


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓

저작자 표시 비영리 변경 금지
신고
Posted by yagom
오늘의 주제

1.Tab View 기반 어플리케이션 만들어보기

아홉 번째 시간입니다.

지난번에는 아이폰 화면에 이미지를 띄워 보았습니다~!

오늘은 약간 응용하여 탭뷰를 만들어 봅시다...ㅎㅎ

자 이제 본론으로 고고 ^^

# MyFirstTabbedApp

지난 번 이미지 띄운 것을 조금 응용해 볼게요~
일단 뭘 시작하려면 프로젝트를 하나 생성해야 겠지요?
이제 프로젝트 정도는 혼자 생성할 줄 아셔야 해요~ㅋㅋ
잘 모르시면 지난 포스팅 한 번 보시고~
참고로 새 프로젝트 만들기 단축키는 커맨드+Shift+N입니다.
이번에는 Tabbed Application 템플릿을 이용해 보겠습니다~


이번 프로젝트명은 MyFirstTabbedApp입니다~!


기본 세팅 해 주시구요~


일단 무작정 실행시켜 봅시다 ㅋㅋ
커맨드 + R
우왕ㅋ 그냥 잘 되네용ㅋㅋㅋ


이것저것 눌러봅시다~
아래 탭 눌러서 화면전화 해봐용~


자.. 이제 본격적으로 초큼 바꿔 보도록 하겠습니다~!
우리 지난번에 썼던 이미지들 한 번 다시 끌어와 볼까요?
짜잔~ 다시 두 이미지 끌어와 봤습니다~


좌측 네비게이션 영역에서 FirstViewController.xib 파일을 클릭하여 아래 IB화면으로 이동합니다.
이미지 뷰 하나를 끌어 넣어서 자신이 가져온 이미지를 화면에 넣어줍시다~


SecondViewController.xib에서도 마찬가지로 이미지를 넣어줍니다~!


그리고 또 한번 실행 ㅋㅋ
커맨드 + R 
어휴~ 이렇게 이쁘게 또 나왔네요 ㅋ


하..지..만... 탭이 두개밖에 없으니 쓸쓸해 보이지 않나요?
탭을 하나 더 추가해 봅시다~!
프로젝트 폴더에서 오른쪽 버튼을 누르고 New File 클릭!
또는, 커맨드+N 입니다!

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile3.uf@1831363F4ECA0F7A04B227.png%7Cwidth=%22500%22%20height=%22339%22%20alt=%22%22%20filename=%2211.png%22%20filemime=%22image/jpeg%22%7C_##]
아래 그림처럼 새 파일 템플릿이 나오면 UIViewController subclass 를 선택합니다.
이말인 즉슨 새로운 뷰 컨트롤러 녀석을 하나 생성하겠단 뜻이겠죠?
[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile1.uf@1131363F4ECA0F7C052651.png%7Cwidth=%22500%22%20height=%22352%22%20alt=%22%22%20filename=%2212.png%22%20filemime=%22image/jpeg%22%7C_##]
Class명은 ThirdViewController 입니다.
subclass of 에는 UIViewController 라고 기입해 줍니다.
UIViewController에서 상속받는 ThirdViewController라는 클래스를 생성한다는 뜻입니다.


이렇게 파일이 저장될 위치를 설정해 준 후(그냥 기본적으로 잘 되어있으니 바꾸지 않으셔도 됩니다) Create !!


짜잔~ 네비게이션 영역에 보면 파일들이 생성이 됩니다.
보기좋게 위치정렬 해주시고~ ThirdViewController.xib파일을 클릭해 줍니다.


저는 이미지 하나와 Label하나를 집어 넣어 보았습니다~
마음껏 하나 꾸며보세요 ㅎ


그리고 실행 해 봅시다~!
커맨드 + R
어...? 그런데 왜 세번째 탭이 안생겼죠? 


당연히 프로그램은 우리가 말해주지 않으면 모릅니다...ㅋㅋㅋ
프로그램에게 새 뷰컨트롤러를 만들어 줬고, 거기에 넣고 싶다고 말해줍시다.
우선 AppDelegate.m이라는 파일로 가 봅시다.
AppDelegate라는 녀석은 어플리케이션 전체를 총괄 관리하는 녀석이라고 생각해 주시면 됩니다.
긴 설명은 차후에 하도록 하고, 일단 코드를 봅시다..!
드디어 코드..!? 두둥!
겁먹지 마세요~ㅋㅋ
아주 간단하게 할거예요.


복사 붙여넣기 신공을 펼쳐 봅시다.
화면에서
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
라는 메소드로 이동해 봅시다.
이게 뭐냐구요? 메소드가 뭐냐구요?
뭐... 다음에 설명합니다 ㅋㅋㅋ
뭐 이런 날림이 다 있어 하지만 걱정마세요ㅋㅋㅋ
거기서 viewController2에 해당하는 줄을 복사해서 아래줄에 붙여 넣어 봅시다.
뭔가 뻘건게 눈에 띕니다.
뭐가 불만이냐...?
Redefinition of 'viewController2' 라고 나오네요.
같은 이름이 중복선언 되었다고 나와요~
이 세계에서는 이름이 같으면 안되나 봅니다.


그래서 이름을 살짝 바꿔줍니다. viewController3로 바꿔주시구요~
안에 적혀있는 [SecondViewController alloc ]도 ThirdViewController alloc으로.. 뒤에 @"SecondViewController"도 @"ThirdViewController"로 변경해줍니다.
여튼 화면에 보이는 것처럼 바꿔주세요 ㅋㅋ
그런데도 빨간놈이 안없어진다구요?
예... 안없어집니다. 코드 상단에 보면 #import라는 녀석이 보일텐데요, 이녀석도 한 줄 추가해 줍니다. 화면에 보이는 것처럼요~
import는 말 그대로 데려오는건데요~
여기서 이 클래스를 사용하겠다는 의미입니다.
우리가 어렵사리(?) 만들어 놓은 ThirdViewController 클래스를 데려와줍니다 ㅋ

그러고 나서도 뭔가 누런게 우리보고 지껄입니다...
viewController3 라는 녀석이 쓰이지 않았다는 waring 메세지 입니다.
왜 만들어놓고 쓰지 않느냐는 뜻입니다.
우리가 탭에 새로 만든 녀석을 넣어줘야 하므로...
아래에 
self.tabBarController.viewControllers에 우리가 만든 녀석을 살포시 하나 더 넣어줍니다.


그러면 이렇게 말끔한 화면이 탄생할거예요~
두구두구두구두...
실행해 봅시다~!


우왕 ㅋ 새탭이 나타났어요~


 그런데 새로만든 탭에 아무것도 없어요..ㅠㅠ

화면은 나오는데 탭에 이름도.. 그림도 없네요!!
넣어봐 주어야 겠지요?

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile24.uf@20185C344ECA137A1193AF.png%7Cwidth=%22396%22%20height=%22744%22%20alt=%22%22%20filename=%2223.png%22%20filemime=%22image/jpeg%22%7C_##]
탭에 넣어줄 이미지를 가져와 줍니다.
투명 바탕을 사용하는 이미지여야 해요~!
png파일로 가져와야 해요.ㅎ
그런데 여기서 파일을 보면 제가 star.png와 star@2x.png 두개를 가져왔지요?
그냥 이름은 아이폰 3GS이하의 기종에서 지원하는 이미지, @2x를 붙이는 것은 아이폰4 이상의 기종(현재 기준)을 지원하는 이미지 입니다.
사실 iOS는 기종별로 지원하는 해상도가 다르기 때문에 좀 더 깨끗한 이미지를 원한다면 좀 더 높은 해상도의 이미지를 넣어주어야 한답니다.
하지만 굳이 그럴 필요없이 고해상도 이미지만 넣어도 큰 무리는 없습니다.
다만 좀 더 느린 사양의 기기에서 구동속도가 조금 느려지는 정도!?
어떻게 하시든간에 선택은 자신의 몫입니다.
저는 그냥 주로 아이폰4 기준의 이미지를 넣는 편입니다.
하나의 이미지만 넣어도 어플 내에서 알아서 인식하고 이미지 크기나 해상도 조절을 합니다.
하나의 이미지만 넣고 싶으면 @2x등을 붙일 필요없이 지난번에 넣었던 것처럼 이미지를 그냥 끌어다 넣으면 됩니다~

일단 제가 이번에 넣은 이미지는 star.png가 30*30의 크기, star@2x.png는 60*60의 크기를 갖습니다. 딱 2배 크기예요~ @2x는 두배 크기라는 말씀..^^

추가된 2개의 파일은 첨부파일로 올려놓았습니다.
여튼 두 파일을 끌어다 놓습니다~



[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile7.uf@12185C344ECA137B120EA8.png%7Cwidth=%22500%22%20height=%22352%22%20alt=%22%22%20filename=%2224.png%22%20filemime=%22image/jpeg%22%7C_##]
그리고 FirstViewController.m 파일로 와서 빨간색으로 표시된 영역의 두줄을 복사해둡시다.


그리고 우리가 만든 세번째 뷰컨트롤러 ThirdViewController.m에 와서 붙여넣고 아래 스크린샷처럼 내용을 살짝 바꿔줍시다~!


그리고 에러가 없다면 실행-!!
짜잔~!
드디어 나왔네요 ㅋㅋㅋ 이름과 그림 ㅋㅋ 


후아후아~
여기까지 잘 따라오셨나요?
다음에는 무슨 이야기를 해볼까요?
사실 여기서 다음에 다음에 한다~
이렇게 써놓은거...
귀찮아서 그런거 절대 아닙니다 ㅋㅋㅋ
여기서 쓰면 한도없이 길어져서 따로 챕터를 만들까 하는데, 먼저 필요한 부분 댓글로 남겨주시면 하루이틀 내로 포스팅 해드릴게요~
소통에 게을리 하지 않겠습니다 ㅋㅋㅋ
 
그럼 다음에 뵙도록해요~!



by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.


RSS Feed 받기 


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓ 

저작자 표시 비영리 변경 금지
신고
Posted by yagom


오늘의 주제

1. iOS Application의 화면구조
2. View Controller
3. 화면에 보이지 않는 Object 종류 알아보기

일곱 번째 시간입니다.

지난번에는 Object에 대하여 조금 알아보았습니다~

오늘은 iOS App의 화면구조와 아직 배우지 못한 몇몇 객체들에 대해 알아봅시다...ㅎㅎ

자 이제 본론으로 고고 ^^

# iOS Application의 화면구조

우리가 iOS를 사용할 때 보이는 화면구조에 대해서 조금 먼저 알아볼 필요가 있겠습니다.
일단 최고로 상위에 있는 녀석이 UIWindow입니다.
지난 번에 설명드렸듯이 iOS는 하나의 윈도우창으로 이루어져 있습니다. 즉 하나의 화면 안에서 모든 것들이 이루어지는것이라는 말이죠. 즉, 컴퓨터로 생각해 보면 하나의 모니터가 있고, 그 모니터 안에 여러개의 창을 띄워놓고 작업하지요? 그것과 같습니다.
한 화면 안에서 여러개의 창을 띄워놓을 수 있습니다.
그 하나하나의 창을 우리는 View로 표현 할 수 있습니다.
헷갈리시나요?
일단 아래의 그림을 봅시다.
하나의 UIWindow안에 View가 여러개 존재하여 보여질 수 있습니다.
View가 각자의 영역을 가지고 보여질 수도 있고, 곂쳐져 보여질 수도 있습니다.
이래도 솔직히 감이 안옵니다 ㅎㅎ
또 아래의 그림으로 가봅시다.


[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile2.uf@131957454EBAB4AE1F41BC.png%7Cwidth=%22500%22%20height=%22750%22%20alt=%22%22%20filename=%222.png%22%20filemime=%22image/jpeg%22%7C_##]

실질적인 어플리케이션의 화면입니다.
화면 최상단에는 Status Bar, 즉 상태바가 있지요.
상태바를 보여줄지 안보여줄지는 개발자의 선택입니다.
일단 이 어플리케이션에는 상태바가 보이네요.
상태바도 하나의 뷰로 생각할 수 있습니다.
우리는 상태바를 보이게 할지 안보이게 할지, 또 상태바의 스타일은 어떤식으로 표현할지 등을 정할 수 있습니다. 
화면에 보면 일단 메인뷰(UIView)가 존재하고 메인뷰 크기만큼의  이미지뷰(UIImageView)가 존재합니다. 이미지뷰로 배경화면을 깔아 놓았고 그 위에 버튼들로 구성된 화면입니다.
버튼(UIButton)도 View의 종류중에 하나입니다. 화면에 보이는 거의 모든것이 View에서 상속받은 것인데요, 상속이라는 것은 뭐 일단을 설명하지 않겠습니다.ㅎㅎ
지금 보다시피 지금 이 화면(UIWindow)에는 하나의 뷰(UIView)위에 이미지뷰(UIImageView)하나가 얹어져 있고, 버튼(UIButton) 5개로 이루어진 윈도우입니다.
위에 설명이 잘 이해가 안가시면... 지난 번 포스팅을 한 번 더 보고 오시는것은 어떨까요?ㅎ
 


아래 화면을 보시면 하나의 윈도우 위에 상태바가 존재하고 메인 뷰 위에 배경을 씌운 이미지 뷰 하나, 그위에 여러 View들로 이루어져 있습니다.
사용자의 선택을 받기 위한 버튼들, 제목표시를 위한 라벨, 입력받기 위한 텍스트필드와 텍스트뷰가 존재합니다. 지난 번에 설명해 드린 것을 참고하시면 어떤 역할을 하는지 대충 감이 오시겠죠?ㅎ


이렇게 화면에 많은 뷰들로 구성이 되어있는데 이 많은 뷰들을 어떻게 관리를 해 줄 것인가??
그런 생각이 드실거예요. 뷰들이 화면에 어떤 모양으로 보여지게 될지는 뷰 자체적으로 결정을 합니다. 하지만 사용자의 입력을 받거나 사용자의 행동에 따라 화면을 어떻게 바꿔줄지 또는 어떤 동작을 하는지는 Controller라는 녀석이 결정을 하게 됩니다.
헷갈리기 시작하시는 모습이 눈에 선합니다 ㅎㅎ
컨트롤러라는 녀석들은 화면에 보이질 않는 추상적인 녀석들이니까요..^^
그럼 거기에 대해서 조금 더 알아볼까요?

# View Controller

이제 컨트롤러 중에서 가장 많이 보게 될 View Controller에 대하여 알아봅니다.
일단 iOS의 동작이 어떤 순서로 이르어 지는지 먼저 살펴봅시다.


iOS는  MVC모델을 기반으로 합니다.
Model - View - Contorller 의 준말입니다.뭐 무슨말인지는 나
중에 이해하게 되실거예요~

Model은 데이터를 저장하는 곳, View는 화면에 보이는 것, Controller는 View와 Model을 관리하는 객체라고 보시면 됩니다.
무슨말인지 잘 감이 안잡히시죠? 괜찮습니다~
어쨋든 Controller라는 녀석이 대부분의 모든것을 주관한다라고 생각해 두세요.
그리고 View Controller는 화면에서 일어나는 것들의 처리를 맡아서 처리한다고 생각하시면 되겠지요?
즉, 컨트롤러들은 일처리를 열심히 하는 일꾼이고, 뷰들은 컨트롤러가 쏴주는 명령과 데이터로 화면에 보여주는 아바타 꼭두각시들입니다. ㅎㅎ
정리가 좀 되실라나요?


# 화면에 보이지 않는 Object 종류 알아보기
그럼 이제까지 화면에 보이는 녀석들을 좀 봤으니 화면에 보이지 않는 녀석들과 컨트롤러 들에 대하여 한 번 알아보도록해요~
 

이름 : Tap Gesture Recognizer
설명 : 화면에 직접적으로 보이지는 않지만 앱 내부에서 열심히 동작하는 녀석들 중에 하나가 Recognizer 녀석들입니다. Recognize하면 알아차리다 라는 뜻이죠? 말 그대로 Tap, 즉 우리가 터치하는 것들을 알아차리고 프로그램에 전달하는 녀석입니다. 이녀석이 사용자가 어디를 탭했다 또는 몇 손가락으로 터치를 했다 라고 전달해 주면 어플이 그에 알맞는 동작을 할 수 있게되는거죠^^ 이녀석은 Recognizer중에 화면을 터치하는 것을 감지해 주는 녀석입니다.
클래스 : UITapGestureRecognizer

이름 : Pinch Gesture Recognizer
설명 : Pinch 하면 집게죠 ㅎ 즉, 손가락을 집게처럼 오므리거나 벌리는 동작을 말합니다. 화면을 확대 축소 할때 주로 쓰이는 동작이죠? 그 동작을 사용자가 하면 시스템에 알려주는 역할을 합니다.
클래스 : UIPinchGestureRecognizer

이름 : Rotation Gesture Recognizer
설명 : 손가락으로 동그랗게 돌리는 것을 인식하여 시스템에 전달해 주는 역할을 합니다.
클래스 : UIRotationGestureRecognizer


이름 : Swipe Gesture Recognizer
설명 : Swipe하면 쓸어내다 이런 뜻이죠. 화면을 쓸어내듯이 미는 동작을 감지합니다. 밀어서 잠금해제 뭐 이런 동작이요 ㅎ
클래스 : UISwipeGestureRecognizer


이름 : Pan Gesture Recognizer
설명 : 쉽게말해서 드래그 하는 동작을 잡아냅니다 ㅎ
클래스 : UIPanGestureRecognizer


이름 : Long Press Gesture Recognizer
설명 : 말그대로 길~~~~~~~~게 누르고 있는 동작을 인식하여 시스템에 알려줍니다~!
클래스 : UILongPressGestureRecognizer


이름 : Object
설명 : 이녀석이 우리가 말하는 객체의 원형이라고 볼 수 있겠네요. 인터페이스 빌더에서 사용할 수 없는 커스텀 객체를 구성 할 수 있습니다.
클래스 : NSObject


이름 : External Object
설명 : 문서 외부에서 끌어오는 객체를 위한 Placeholder, 즉 자리를 차지하게 해주는 인터페이스 빌더의 요소입니다.
클래스 : 


이름 : View Controller
설명 : 드디어 뷰컨트롤러네요 ㅎㅎ 이녀석이 뷰에서 일어나는 일들을 감지하고 어떤 동작을 하고 어떤 변화를 줄지 결정하고 수행하는 역할을 하는 녀석입니다. 아까도 말씀드렸죠? 뷰는 꼭두각시 아바타일 뿐, 요녀석이 조종사입니다 ㅎㅎ
클래스 : UIViewController


이름 : Table View Controller
설명 : iOS보면 목록들을 쭈욱 나열할 수 있는 테이블을 볼 수 있습니다. 사실 테이블이라고 하면 잘 감이 안오시겠지만, 아이폰 설정에 들어가면 설정 메뉴 목록이 섹션별로 나뉘어서 쭈욱 목록이 나오는 것이 테이블입니다. 그 테이블 화면에 나올 것들과 테이블 열(Row)를 눌렀을 때 어디로 이동하게 될지 정해주는 역할을 해요~
클래스 : UITableViewController


이름 : Navigation Controller
설명 : iOS화면 상단에 보면 제목과 뒤로가기버튼, 메뉴 버튼 등이 존재하는 바가 존재하지요? 그것을 네비게이션 바 라고 지난번에 설명을 드렸는데, 그녀석이 뒤로가기 버튼이나 메뉴 버튼을 눌렀을 때 어떤 동작을 취할지 명령을 내리는 컨트롤러 입니다. 아이폰 설정화면 상단에 보면 네비게이션 바가 있지요^^
클래스 : UINavigationController


이름 : Tab Bar Controller
설명 : 탭바를 통제하는 녀석입니다. 그 유명한 카카오톡 화면 아래에 보면 메뉴들을 보여주는 탭바가 존재하지요? 그 탭바를 눌렀을 때 어떻게 동작을 하게될지 결정하는 녀석입니다.
클래스 : UITabBarController


이름 : Page View Controller
설명 : iPad에서만 동작하는 녀석입니다. 말그대로 페이지처럼 동작하는 뷰들을 관리합니다.
클래스 : UIPageViewController

이름 : Search Bar and Search Display Controller
설명 : 아이폰에서 검색할 때 쓰이는 검색바와 그 검색 결과창에 어떤 것을 검색해서 표현해 줄지 결정하고 명령하는 녀석입니다.
클래스 : UISearchDisplayController


이름 : GLKit View Controller
설명 : 지난 번에 설명드렸던 GLKView를 관리하는 녀석입니다. 3D 사용을 위한 Open GL ES를 사용하는 뷰에 대한 조종을 합니다.
클래스 : GLKViewController


 이렇게 해서 IB의 Library에서 볼 수 있는 객체들에 대해 알아보았는데요, 사실 객체의 종류는 수도 없이 많습니다. IB에서 볼 수 있는 객체들은 일부에 불과해요..^^
화면에 보이지 않는 객체들은 수도 없이 많습니다.
하지만 걱정하지 마세요~
저와 함께 차근차근 신나게 알아보도록 해요~
일단 지난번과 이번에 본 것들은 아~ 이런것들이 있구나 하는 정도로 알아두시고 (물론 다 기억하시면 시야가 넓어지는 좋은 일이 생기지요..^^) 이후에 진행되는 내용들에서 잘 기억이 나지 않거나 이해가 가지 않는 부분이 생기면 돌아와서 한 번쯤 돌아보시는 것도 좋을 것 같아요.

오늘은 iOS화면구성과 iOS 동작에 대한 내용 아주 초큼, 그리고 화면에 보이지 않는 객체들을 일부분 살펴보았습니다.

혹시나 올바르지 못한 내용을 발견한 고수분들은 의견주세요^^*

다음에는 무엇을 해볼까요?ㅎ
이 블로그의 주인은 여러분들입니다. 여러분들이 해보고 싶은 것들을 댓글로 말씀해 주시면 준비해 보도록 하겠습니다^*^

이론만 하기는 너무 힘드시죠?ㅎ
다음 번에는 한 번 실전에 들어가 보도록 할까 합니다~
고된 여행을 떠날 준비가 되셨나요?ㅎ

다음에 뵙도록 해요^~^
 


by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기 


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓ 

저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. Object란??
2. 화면에 보이는 Object 종류 알아보기

여섯 번째 시간입니다.

지난번에는 Xcode를 한 번 살펴보았습니다~

오늘은 일단 화면에 보이는 녀석들이 무엇인지 한 번 파악해 봅시다..ㅎㅎ

자 이제 본론으로 고고 ^^
 

우리는 iOS프로그래밍(Cocoa Touch)을 할 때 Objective-C를 사용합니다.

물론, C나 C++등을 이용하여 프로그래밍도 가능하지만, 기본적으로 Objective-C를 사용하여 코딩한다고 생각합시다.

Objective-C는 '객체지향언어'입니다.

객체지향언어는 객체지향 프로그래밍을 지향하는데요...

아.. 처음 보는 분들은 도무지 무슨말인지, 뭔소린지 도통 모르시겠죠?ㅎㅎ

사실, 모든 것을 시작을 할 때 기초를 탄탄히 다지고 하는것도 좋지만 전 지금 여러분들이 프로그래밍에 대한 지식이 전무하다고 생각을 하고 진행해 볼 생각입니다.

일단, 머리아프게 생각하지 맙시다..ㅎㅎ

지금 기초부터 정말 탄탄히 다지고 싶은분들은..

객체지향언어, 객체지향 프로그래밍, Objective-C, 객체, 인스턴스, 메소드, 클래스에 대해서 역사부터 차근차근 공부하고 오시길 바랍니다. 그러면 조금 더 이해가 잘 갈 수도 있어요^^

하.지.만...

공부하고 되돌아 오시는 분들은 그렇게 많지 않을 것 같네요.ㅎㅎ

하다가 분명히 지칠 것 같아요^^..

그냥 간단간단하게 알아두고 차근차근 한 번 생각하며 나가 봅시다~

일단 저만 믿고 와보시라니까요^^~
아, 그리고 Cocoa Touch가 무엇이냐구요? 구글 검색 한 번 해보시길...^^ 크게 중요한 것이 아니라 여기서는 넘어가겠습니다~ 그냥 우리가 배우고 있는게 Cocoa Touch구나~ 정도 알아두시면 되겠습니다~ 


# Object란??

오브젝트라는 것이 무엇일까요?
아..!! 그 전에 미리 말씀드리는데, 지금 보이는 이 챕터의 원론적인 이야기들은 정 이해가 가지 않으신다면 일단 스킵하셔도 큰 무리가 없습니다. 나중에 다음거 보다가 이해가 안되시면 다시 돌아와서 보실일도 많을 거라 생각합니다. 그만큼 처음엔 굉장히 헷갈리는 부분이거든요..^^

다시 돌아와서 Object란..? 
한글로 하면 객체입니다.

그렇다면 객체란 무엇일까요??
우리는 객체를 '내 차(My Car)'라고 생각해 봅시다.
여기석 클래스라는 녀석도 등장을 하는데, 클래스는 공장의 '생산라인'이라고 생각합시다.
공장의 생산라인에서는 똑같이 생긴 차량을 우리가 필요한 만큼 만들어 냅니다. 
이것이 클래스와 객체간의 관계입니다.


그림에서 보는 것과 같이..(발로그려서 죄송...ㅋㅋ) 생산라인에서 똑같이 생긴 자동차를 뽑아냅니다. 하지만 차량마다 번호가 다르고 탑승하는 사람도 제각각입니다. 이처럼 클래스는 어떠한 객체가 가지는 특정 모양에 대한 내용을 담고 있습니다. 그리고 객체는 찍혀나온 녀석이고, 우리는 그 안에 객체마다 클래스 형식에 맞춰 내가 원하는 내용들을 채워 넣을 수 있습니다.
다른 방법으로 표현하면 클래스는 붕어빵을 찍어내는 쇠로된 틀이고, 오브젝트는 그 틀에서 찍혀나오는 붕어빵으로도 비유할 수 있겠습니다. 또한, 붕어빵에 넣어주는 앙금에 따라 팥앙금을 가지는 붕어빵이 될 수도, 피자맛 붕어빵이 될 수도 있죠. 겉모양은 같은데 말예요^^
 
조금 이해가 가시나요? 이해가 지금 당장 가지 않으셔도 좋습니다~!
그냥 읽어두세요!!
걱정하실 필요 없구요~ 서서히 시간이 지나고 가끔씩 제가 클래스니 변수니 이런말을 무의식중에 할 때 마다 한 번씩 와서 다시 봐주세요^^ 이해가 잘 안가시면 구글에서 검색해 보시면 도움이 되는 자료들이 많을 거예요~
 
그리고 인스턴스(Instance) 또는 인스턴스변수라는 이름도 종종 보게 되실텐데요, 이녀석은 다름이 아니라 객체를 지칭하는 말입니다. 인스턴스 = 객체라고 생각하시면 됩니다.
 
그럼 여기서 대충 클래스, 객체(인스턴스)의 관계에 대하여 알아보았습니다. 책에서 보면 원론적인 내용들이 굉장히 많아서 헷갈리는 경우도 많고, 요거만 보다가 지쳐 쓰러지는 경우도 있으니.. 일단 여기서 잠시 접어둡시다~ 사실 이게 다예요^^;

정 더 궁금하시다면... 대충 흝어보고 오세요~
http://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
http://ko.wikipedia.org/wiki/%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8B%B0%EB%B8%8C-C
http://www.webdoor.org/xe/135
http://kldp.org/node/108983
별 내용은 없을거예요~

서론이 너무 길었네요..^^
객체지향언어는 왜 사용하는지, Objective-C는 왜 C랑 다른지... 등등은 C를 배우지 않으신 분들이 아니라면 굳이 여기서 설명해 드릴 필요는 없을 것 같아요^^
다음 번 정도에 객체지향언어의 특징과 왜 객체를 사용하는지 정도에 대해서 간략히 설명해 드릴게요. (만약 제가 깜빡하고 안하면 댓글 남겨주세요..ㅎㅎ)


# 화면에 보이는 Object들 알아보기 
 
사실.. 오늘 이것만 하려고 했는데, Object에 대한 설명이 필요할 것 같아서 위에 아주 장황하게 써놓았네요..ㅋㅋㅋ
자, 본래의 목적으로 돌아왔습니다~
우리가 iOS기기들의 화면에 보이는 녀석들을 한 번 알아봅시다.
참, 이곳에서는 iOS5 기준으로 설명하겠습니다.
때에따라서는 iOS5 미만의 버전들에서 없는 것이 추가로 생긴것도, 있던것들이 없어진 것도 있으시 참고하세요^^

이름 : Page Control
설명 : 아이폰 홈 화면에서도 보이죠? 말그대로 페이지를 이동할 때 마다 페이지 상태를 보여주는 역할을 합니다. 또한 양 옆을 터치해주면 페이지가 넘어가는 역할도 하죠^^
클래스 : UIPageControl

이름 : Stepper
설명 : iOS5 부터 지원되는 녀석입니다. 생긴것만 봐도 아시겠죠? 값을 증감시킬 수 있는 버튼입니다~
클래스 : UIStepper

이름 : Table View
설명 : 말 그대로 테이블(표) 뷰 입니다. 뷰라는 것이 무엇인가요..?? 흠... 컴퓨터 화면에서 보이는 하나의 윈도우창이라고 생각하시면 될 듯 합니다. 일단 자세한 설명은 다음번에^^
클래스 : UITableView

이름 : Table View Cell
설명 : 테이블뷰 셀입니다. 말 그대로 테이블뷰의 기본적인 셀이 아니라 자신이 셀 모양을 직접적으로 만들어주고 싶을 때 사용하게 됩니다.
클래스 : UITableViewCell

이름 : Image View
설명 : View중에서도 이미지를 보여줄 수 있는 View입니다.
클래스 : UIImageView

이름 : Text View
설명 : View중에서 주로 장문의 텍스트를 볼 수 있도록 해주는 녀석입니다. 사용자들에게 수정, 편집, 복사권 등을 허용 또는 불허 할 수 있습니다.
클래스 : UITextView

이름 : Web View
설명 : View중에서 웹사이트 화면을 직접 보여줄 수 있습니다.
클래스 : UIWebView

이름 : Map View
설명 : 설명을 안해도 아시겠죠? 우리가 보는 지도 화면입니다..^^
클래스 : UIMapView

이름 : Scroll View
설명 : 위아래로 스크롤 할 수 있는 화면입니다. 그냥 View는 스크롤이 안돼요^^~ 눈치 빠른 분들은 눈치채셨겠지만, Text View는 Scroll View안에 글자들이 들어가 있는 것이라고 보셔도 무방합니다~
클래스 : UIScrollView

이름 : Date Picker
설명 : 날짜를 선택할 수 있게 만들어 놓은 녀석입니다
클래스 : UIDatePicker

이름 : Label
설명 : 사용자에게 텍스트를 보여줄 때 사용합니다. 여러줄을 나타낼 수 있지만 TextView처럼 스크롤은 불가능 합니다. 또한 사용자가 수정, 편집, 복사 등을 할 수 없습니다. 즉, 보여주기만 가능하다는 말씀!
클래스 : UILabel

이름 : Picker View
설명 : 뺑그르르 돌면서 선택할 수 있게해주는 그 녀석 아시죠?^^
클래스 : UIPickerView

이름 : Ad BannerView
설명 : iAd라는 iOS전용 광고를 사용할 때 사용하는 광고 배너창입니다~ 여기에 관해서는 나~중에 한 번 설명할 기회가 있다면 설명해 보겠습니다
클래스 : ADBannerView

이름 : GLKit View
설명 : OpenGL ES를 포합하는 뷰입니다.  3D관련 모듈을 iOS에서 보다 편리하게 사용하기 위해 만들어진 녀석인데요 iOS5에서 새로 선보였습니다.
클래스 : GLKView

이름 :Round Rect Button
설명 : 우리가 아이폰에서 자주 볼 수 있는 둥그스름한 버튼입니다~ 사실 이 모양 말고도 다른 모양으로 변환도 가능합니다~ 기본적으로 제공되는 버튼들이 많아요~
클래스 : UIButton


이름 : View
설명 : 위에서 소개해 드렸죠? 컴퓨터의 한 화면(창)이라고 보시면 될 듯 합니다. 자세한 설명은 다음 시간에^^
클래스 : UIView

이름 : Window
설명 : 영어 설명을 보시면 화면에 표시된 뷰를 관리하고 꾸미는 역할이라고 정의되는데, 뭐... 딱히 신경쓰지 않아도 될 녀석입니다. iOS에서는 하나의 윈도우가 기본적으로 밑바탕에 깔리게 되며, 하나의 윈도우 안에서 많은 뷰들로 화면이 보이게 됩니다. 사실 윈도우는 사용자에게 부각되거나 보이진 않는 부분이라는게 맞을 것 같기도 하네요~
클래스 : UIWindow

이름 : Navigation Bar
설명 : 익숙한 녀석일 거예요~ 화면에서 위에 Back버튼 보이면서 왔다갔다 할 수 있게 하는 상단의 바 아시죠? 그녀석입니다~
클래스 : UINavigationBar

이름 : Segmented Control
설명 : 사용자에게 몇 개 중 하나를 택일하게 할 때 쓰이는 버튼입니다. 대충 그림보면 답 나오죠?^^ 이것도 버튼과 마찬가지로 몇가지 형태가 존재합니다~ 사실 대부분의 View들은 속성을 조절하면 다양한 형태의 모습이 됩니다~ 마치 내 차에 스티커를 붙이거나 새로 도색을 하는 것 처럼요^^
클래스 : UISegmentedControl

이름 : Navigation Item
설명 : Navigation Bar에 들어가는 내용들을 총칭하여 Navigation Item이라고 합니다. 좌측 또는 우측버튼, 바 제목 등이 Navigation Item에 속합니다.
클래스 : UINavigationItem

이름 : Search Bar
설명 : 이 또한 굳이 설명하지 않아도..^^ 검색할 때 보이는 그 검색 바 입니다.
클래스 : UISearchBar


이름 : Tool Bar
설명 : 화면 상단 또는 하단 등에 바 형태로 여러개의 버튼들을 넣어 기능을 수행할 수 있게 만든 녀석입니다.
클래스 : UIToolBar

이름 : Bar Button Item
설명 : 툴바에 들어가는 아이템들을 총칭합니다. 네비게이션 아이템에도 포함됩니다.
클래스 : UIBarButtonItem

이름 : Fixed Space Bar Button Item
설명 : 화면상에 바 버튼 아이템들 사이에 정해진 간격만큼의 간격을 주는 녀석입니다. 실제로 점선은 보이지 않아요~
클래스 : 클래스 없음

이름 : Flexible Space Bar Button Item
설명 : 위에 있는 녀석은 고정 넓이라면, 이 녀석은 버튼들 사이를 균등한 간격으로 띄워주는 역할을 합니다~
클래스 : 클래스 없음

이름 : Tab Bar
설명 : 카카오톡에 보면 아래에 메뉴처럼 화면 옮겨 다닐 수 있게 몇개의 버튼들을 나열해 놓은 바 같은 곳이 있죠? 그곳이 탭바 입니다.
클래스 : UITabBar

이름 : Tab Bar Item
설명 : 말 그대로 탭바에 들어가는 아이템들을 총칭합니다..^^
클래스 : UITabBarItem

이름 : Text Field
설명 : 사용자에게 텍스트를 입력받을 수 있는 필드입니다.
클래스 : UITextField

이름 : Slider
설명 : 설정창에 음량조절, 화면밝기조절 등에 보면 많이 보이죠? 뭐 그런 역할 주로 합니다
클래스 : UISlider

이름 : Switch
설명 : 설정창에 보면 On/Off설정 하는 녀석 보이죠? 그 녀석입니다~
클래스 : UISwitch

이름 : Activity Indicator View
설명 : 여기 캡쳐에서는 잘 보이지 않지만... 대기 화면에서 뱅글뱅글 돌아가는 녀석 아시죠? 날 자꾸 기다리며 설레게 하는 그 녀석...ㅋㅋㅋ 그녀석을 Activity Indicator 라고 합니다. 인터넷 사용중에 화면 상단 Status Bar에서 돌아가는 작은 녀석은 Network Indicator라고 불러요~
클래스 : UIActivityIndicator

이름 : Progress View
설명 : 말 그대로 현재 진행상황을 보여줄 때 주로 쓰입니다. 주우우욱 차오를 때 마다 설레는 그 기분^~^
클래스 : UIProgressView


후아~
넘넘 길어요!! 
진이 쭉쭉 빠지네요...^^
열심히 한 만큼 많은 도움과 참고가 되었으면 좋겠네요~
지나가는 고수분 께서는 혹여 제가 실수한 부분이 있다면 지적 부탁드릴게요~
저도 사람인지라 방대한 양을 하려니 지치고 헷갈리는 부분도 더러 있네요~^^;
참..!! 그리고 여기 있는 설명이 부족하면 Xcode실행하셔서 Object Library에서 객체들 위에 살포시 얹어 놓고 기다리시면 도움말이 보일거예요~ 
아래 그림처럼요..^^



자, 그럼 오늘은 여기까지 해 보구요~
다음 번에는 iOS화면들이 어떤 관계에 있는지, 그리고 화면에 보이지 않는 객체들에는 어떠어떠한 것들이 있는지 1~2번에 걸쳐서 얘기해 보도록 할게요.
그리고 그 다음 번에는 객체지향에 관한 얘기를 조금 이어서 해 볼게요 :-)
그럼 모두 다음에 보아요~^^ 


by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기 


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓ 

저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. Xcode 둘러보기


다섯 번째 시간입니다.
지난번에는  iTunes Connect에 연락처, 은행, 세금정보들을 등록해 보았습니다~
오늘은 개발에 쓰게될 Xcode를 본격적으로 살짝 열어 봅시다..ㅎㅎ
자 이제 본론으로 고고 ^^


# Xcode안녕??
지난 번에 아무 생각없이 그냥 말도안되는 앱 하나 만들어 보았습니다.
이제는 기초를 슬슬 쌓아 보아야 겠지요?
하지만, 체력만 좋고 전술만 좋다고 전쟁에서 이기진 않죠?
무기 다룰줄도 알아야 합니다..ㅎ
우리가 앞으로 매일매일 보아야 할 Xcode라는 녀석을 한 번 뜯어보도록 하죠.
Xcode실행!!
실행 못하시는 분은 없으리라 믿고..ㅋㅋ

지난 번에 지나가면서 보여드렸던 화면입니다.
Xcode화면구성을 간략히 보여주고 있는데요, 제가 부연설명을 쬐끔 하겠습니다..^^




각자 버튼들을 누르면 화면이 어떻게 변하고 어떤 동작을 하는지 스크린샷은 찍지 않았습니다.
감히 아뢰온데, 여러분들께서 직접 눌러보셨으면 합니다.

<1> 종료, 최소화, 확대
MS Windows와는 반대죠? 빨간놈이 종료, 노란놈이 최소화, 초록색놈이 확대입니다. 눌러보세요~

<2> 실행, 정지
어플리케이션 또는 테스트 단위.. 등등을 실행할 수 있는 버튼과 중지 하는 버튼입니다.
지난 번에 실행 한 번 눌러보셨죠?ㅎ
꾸욱 누르고 있으면 또 다른 녀석들도 나타납니다.. 그 녀석들은 추후에 설명하도록 해요~

<3> Scheme 선택
쉽게말해서, 이 앱을 어디에서 실행할까 설정해 주는 역할을 합니다. 시뮬레이터, 기기 등을 선택할 수 있습니다.

<4> Breakpoints
우리는 차후에 Debug라는 것을 할 때가 올겁니다. 디버그... 즉 벌레시키들을 잡아야 한다.. 버그를 없앤다 뭐 그런거죠 ㅋㅋ 여튼 그 디버그를 할때, 프로그램에서 의심가는 부분 등을 체크해 놓고 유심히 볼때 쓰는 그런 기능입니다. <13>의 Breakpoint gutter로 Breakpoint를 설정 해 줄 수 있고, 지금 이 버튼으로 Breakpoint들을 활성/비활성화 시킬 수 있습니다.

<5> 프로젝트명, 파일명
현재 작업중인 프로젝트와 파일명을 보여줍니다.

<6> 작업내역 확인창
아.. 위에 적은 것들은 제가 임의로 이름 붙인거예요.. 정식 명칭은... 궁금하면 찾아보세요..ㅋㅋ
빌드나 실행 중, 혹은 후에 결과들을 보여줍니다.

<7> 최대화
OSX Lion을 설치하신 분들이라면 보이는 최대화 버튼입니다.

<8> Editor Mode 버튼
화면 하단에 코드가 나오는 에디터 부분의 보기형식을 바꾸는 버튼들입니다.
궁금하시죠? 한 번 눌러보세요~ㅎㅎ 다 눌러보세요~
첫 번째는 단일 기본 화면. (Standard editor Mode)
두 번째는 두개의 에디터창이 생기는 모드. (Assistance editor Mode)
세 번째는 버전 에디터 모드. (Version editor Mode)
버전 에디터가 뭔지는 다음에 설명하도록 할게요~ 한 번에 너무 많은 것을 알면 머리가 뽀개집니다..ㅋㅋㅋ 궁금하시면 검색창에 버전컨트롤, 또는 Repository 등을 치면 많은 정보가 나올거예요.. 일단은 궁금증을 덮어봅시다 ㅋㅋ

<9> View 버튼
전체적인 화면을 크게보면 네 화면으로 나뉘는데요,
첫 번째 버튼으로 나왔다 사라졌다 하는 <11>영역. 네비게이터입니다.
즉, 소스파일이나 검색, 에러 결과창 등등 많은 것들을 우리에게 안내하고 보여주죠.
두 번째 버튼으로 나왔다 사라졌다 하는 <17>영역. 디버그영역입니다.
아까 말씀드렸듯이 버그 때려잡을때 쓰게되는 창입니다.
세 번째 버튼으로 나왔다 사라졌다 하는 <15>,<16>영역. 유틸리티입니다.
정말 유용하고 좋은 기능들을 가지고 있죠. 자세한 설명은 아래에서..

<10> Organizer
Organizer창을 띄우는 버튼입니다.
Organizer에서는 디바이스 관리, Repository관리 등등을 할 수 있구요, 우리에게 가장 필요하고 중요하고 개발 내내 친구가 될 Documentation을 볼 수 있는 창입니다.
개발 문서는 정말 너무너무 중요합니다. 추후에 설명해 드릴게요~

<11> Navigator
Project Navigator, Symbol Navigator, Search Navigator, Issue Navigator, Debug Navigator, Breakpoint Navigator, Log Navigator 등으로 이루어져 있습니다.
말 그대로 안내자 입니다. 현재 작업중인 프로젝트에 관련한 대부분의 내용을 이곳에서 훑어 볼 수 있습니다. 한 번씩 쭈욱 눌러보고 돌아보세요~ 아무런 문제 생기지 않습니다..ㅎㅎ

<12> Jump Bars
프로젝트 내부의 여러 곳들을 점프 점프 하면서 다닐 수 있는 막대기 입니다..ㅋㅋ 한 번 눌러서 여기저기 점프하고 놀러다녀 보세요~

<13> Breakpoint gutter
아까 위에서 말씀드린대로 Breakpoint를 지정할 수 있는 막대 공간입니다.
한번 콕 찍어 눌러보세요. 그럼 퍼런놈이 생깁니다. 이것이 Breakpoint인데요 동시에 <4>영역 Breakpoints도 활성화 될거예요. 그러면 또 Breakpoints도 눌러서 비활성화도 시켜보고 놀아보세요. 그러고 다 놀만큼 놀아보셨으면 Breakpoint들 다 제거해 주세요 ㅋㅋㅋ 제거하는 방법은 스스로 연구해 보시길!! 여러가지 있으니까요..^^
참고로 네비게이션영역에선 프로젝트의 모든 것을 훑어 볼 수 있다고 말씀드렸죠?ㅎ

<14> Editor area
말그대로 에디터 영역입니다. 우리가 소스코드를 작성, 수정하는 곳이죠. xib파일을 누르면 물론 IB 화면이 나옵니다. 이 말이 무엇이냐구요? 저번에 해 봤잖아요~

<15> Inspector pane
인스펙터 판입니다. Inspector하면 한국어로 검열자, 감시관, 감독관 등등의 뜻이있죠? 여기선 관리감독이 가장 맞는 표현이 아닐까 싶은데요, 이녀석은 에디터 영역에 선택된 것들의 속성, 정보 등등 모든 것들을 알고 있구요, 내가 선택한 Object또는 코드내용에 대한 속성과 도움말 등등 많은 것을 알려줍니다. 한 번 프로젝트의 모든 파일들을 한 번씩 클릭해 가며 어떤 내용들을 담고있는지 확인해 보세요~ 

<16> Library pane
말그대로 라이브러리 판입니다. 
File Template Library, Code Snippet Library, Objects Library, Media Library 등이 있습니다. 이곳에도 정말 많은 정보들이 있습니다.
파일 샘플, 코드 샘플, 오브젝트들, 미디어 라이브러리..
그 중 우리가 제일 많이 보게 될 라이브러리는 오브젝트 라이브러리구요, 그 다음으로는 간간히 코드 샘플도 보게 될거예요. 코딩 초보라면 코드 샘플도 많이 많이 봐두시면 좋아요~
비단 Objective-C뿐만 아니라 C/C++샘플 코드들도 있거든요^^

<17> Debug area
말그대로 디버그 할 때 쓰는 영역입니다.
지금 화면 모드가 두개로 나뉘어진 모드인데요.
왼쪽에 보이는 것이 변수들이 나올 창이구요, 오른쪽에 보이는 것이 콘솔창입니다.
디버깅 할때 왼쪽 창에는 변수들과 그 메모리 주소 등이 나오고, 오른쪽에서는 콘솔에 로그들이 찍혀 나오겠죠? 지금 잘 몰라도 차츰 배워가면 되니 걱정마세요~


오늘은 여기까지..^^
지금 있는 설명들은 최대한 간략하게 정리 해 본거예요~
어디 하나 쓸모없는 것 없이 기능들을 알차게 잘 만들어 놓았으니 이것저것 만져보며 익숙해 지시길 바랍니다. 어떤 버튼이 어떤 기능을 하는지도 파악해 두시면 좋구요..^^
또한, 제가 가르쳐 드리지는 않았지만 각 기능에는 대부분 단축키가 있죠? 한 번 알아보세요~
첫 습관과 첫 기초가 중요합니다. 빨리 무언가 해보고 싶더라도, 꼭 한번 Xcode를 쥐잡들이 뜯어보세요 ㅎ
자, 그럼 다음에 뵙겠습니다~


by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기


 

↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓

저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. iTunes Connect에 계좌정보 입력하기


네 번째 시간입니다.
지난번에는 iOS Developer Program 등록 마무리와 개발을 위한 인증서 및 프로비저닝 파일 설치를 했구요~
이번에는 iTunes Connect에 대해 조금 알아봅니다~
자 이제 본론으로 고고 ^^


# iTunesConnect에 계좌정보 입력하기
지난 번에 마지막으로 도착한 의문의 이메일이 있었습니다.
참지 못하고 눌러보신 분들도 계시겠습니다..^^
그 메일이 왜 왔는지 한 번 살펴보도록 할게요~
기쁜 마음으로 iTunes Connect를 클릭해 볼까요?? 후훗..

물론 직접 http://itunesconnect.apple.com/ 으로 진격하셔도 됩니다~! 고고씽~


로그인을 해달라고 하네요~

기쁜 마음으로 로그인~

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile26.uf@1946BD3C4EB0FCDA093DC3.png%7Cwidth="500"_##]
또.. 약관에 동의 하라네요~ 뭐 해야지요~
동의~

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile23.uf@1746BD3C4EB0FCDA0A786C.png%7Cwidth=%22500%22%20height=%22330%22%20alt=%22%22%20filename=%223.png%22%20filemime=%22image/jpeg%22%7C_##]
자.. 이제 연락처, 세금, 뱅킹 정보를 입력하는 화면이 나옵니다.
All이라고 써있는 줄의 Request버튼을 눌러줍니다.

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile25.uf@1946BD3C4EB0FCDB0B63A7.png%7Cwidth=%22500%22%20height=%22401%22%20alt=%22%22%20filename=%224.png%22%20filemime=%22image/jpeg%22%7C_##]
물론 또 약관이 나오겠지요?
동의해주시구요~


동의 했으니 당연히 고마워 해야죠~
Done버튼 클릭~
 


일단 연락처 정보 먼저 입력해 봅시다. Contact Info의 Set Up버튼을 클릭~


현재 나의 연락처 정보가 입력이 되어있지 않으므로, Add New Contact 클릭~


요런 창이 올라오면 이름, 성, 이메일주소, 직위, 전화번호를 차례로 적어줍니다. 팩스번호는 적지 않아도 무관합니다.
직위에는 개인개발자 또는 1인기업이라면 President라고 적어줍시다.
나 혼자니까 내가 짱이잖아요 ㅋㅋㅋ
만약 회사라면 적당한 직위를 적어주면 되겠습니다.


관리자, 회계, 기술, 법률, 프로모션 담당자가 전부 저군요...ㅋㅋㅋ 전부 세팅해 주고 Done버튼을 눌러줍니다.


자, 이번에는 은행계좌 정보를 입력해 봅시다.
Bank Info 의 Set Up버튼을 눌러줍니다~


미리 저장되어 있는 계좌 정보가 없으므로 Add Bank Account버튼을 눌러줍니다~


은행계좌가 저는 한국꺼 밖에 없으므로.. 한국을 선택해 줍니다.
Korea, Republic of
아... 우리나라는 민주공화국인데... 맞나요? 흐음...
민주 공화국이었나...?
지금 민주공화국이라고 왜 생각이 안들까요...
아! 사설 죄송합니다 ㅋㅋ
젠장 대한민국은 민주공화국인데.. 젠장


여튼 이제 은행 코드를 입력하라고 나오는데요, 우리가 은행코드를 어찌 알겠습니까.
Lookup your Bank를 클릭!


저는 이름으로 검색해 보았습니다.
영어로 검색하셔야 합니다~
자신의 은행정보를 클릭하고 Next를 눌러줍시다.


은행이 맞는지 확인하고 다음 클릭해 줍니다.


계좌번호를 입력하구요, 이름, 그리과 화폐단위는 저는 KRW즉, 한화를 선택했구요, 전화번호를 입력했습니다.
그러나 여기서 주의할 것은 Account Holder Name. 즉, 계좌주 이름이 정확하지 않으면 입금되지 않는다는 내용이 주의사항으로 나와있습니다.
저는 자신의 은행의 고객센터에 전화하여 꼭 영문명을 확인하시길 추천드립니다.
저도 혹시나 해서 전화해보니 아예 영문명이 등록이 되어있지 않아 전화상으로 영문명을 등록했습니다.
카드나 여권 등에 적힌 것과는 달리 은행에 등록되는 영문명은 또 다르니 꼭 확인하시길 바랍니다.


내용이 맞는지 확인하고 저장을 눌러줍니다.
내용이 맞지 않으면 추후에 수입이 들어오지 않을 수 있으니 잘 확인하시길 바랍니다.


자신의 은행정보를 선택하고 저장을 눌러줍시다.


자 이제 Tax Info의 Set Up 버튼을 눌러줍니다. 이건 스샷을 못찍었네요..^^
그럼 아래와 같은 화면이 나옵니다.
우린 호주인도 아니고 캐나다인도 아니고.. U.S. Tax Forms는 모두에게 필요하다고 하니 그거 작성해 줍시다.
U.S Tax Forms의 Set Up버튼 클릭!


미국 시민권자이거나 거주자냐고 묻네요. 아니니까 No.


미국에서 사업중이냐고 묻네요. 아니니까 No.


아래 칸들을 잘 작성해 주시고 확인 버튼 클릭.


다시 한 번 확인하라고 하네요. 앞으로 웹상으로 수정이 불가능하다고 경고하네요. 다시 한 번 확실한지 확인하고 제출합니다.


이번에는 iAd Network에 정보를 등록합니다.
iAd는 애플이 제공하는 모바일 광고 플랫폼입니다.
언제 쓸줄은 모르지만, 뭐 쓰던 안쓰던 나중에 언제 쓸지도 모르고, 지금 시간 얼마 안걸리니까 요것도 작성해 줍시다.
작성방법은 아까와 마찬가지이지만, 이미 정보를 다 등록해 놓았으므로 선택하고 제출만 눌러주면 됩니다. 
방법은 동일하기 때문에 따로 안찍었습니다.


자, 이렇게 하여 모든 정보를 다 입력하였습니다.
추후에 확인이 완료되면 Status가 Processing이 아니라 유효기간이 나오게 됩니다. 


이렇게요~


자, 드디어 등록이 끝나고 iTunes Connect 홈 화면으로 왔습니다~
iTunes Connect에서는 내가 등록한 어플들을 관리하고, 수입과 다운로드 회수 체크 등 여러가지를 할 수 있습니다.
한 번 쭈욱 둘러보세요
어플을 하나 완성하기 전까지는 들어올일이 거의 없지만, 하나 완성하고 나면 자주 들어와볼 그런 곳입니다..ㅎㅎ



오늘은... 아쉽지만 여기까지~
이제 다음 부터는 본격적으로 어플 만들기에 필요한 것들을 차근차근 알아가 볼게요 ㅎㅎ
그럼 다음에 또 만나요~ :-) 

by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기

저작자 표시 비영리 변경 금지
신고
Posted by yagom

오늘의 주제

1. iOS Developer Program 등록 마무리하기

2. 인증서 및 프로비저닝 파일 설치 



세 번째 시간입니다.
지난 번에는 iOS Developer Proram에 등록하고 처음 Xcode로 의미없는 어플 하나 만들어 봤습니다.
이번에는 iOS Developer Program 등록 마무리와 개발을 위한 인증서 및 프로비저닝 파일 설치를 할까 합니다~
자 이제 본론으로 고고 ^^


# iOS Developer Program 등록 마무리
iOS Developer Program을 구매하고 긴긴 기다림 끝에 이메일이 도착했습니다^^.
기쁜 마음으로 Activation Code를 클릭해 볼까요?? 후훗..!


아.. 그런데 이게 무슨 날벼락 같은 소식입니까??ㅠㅠ
애플 개발자 프로그램 멤버쉽을 활성화 할 수 없다고 나오네요... (물론 무사통과 하신 분들도 있을 겁니다.)
그런데 저는 이런 내용이 화면에 나오네요..
당황하지 말고 contact us 를 클릭하여 당당히 물어봅시다.



우리는 Program Enrollments 부분을 클릭하여 메일을 보내봅니다.
영어로 쓰시는 것이 가장 빠르고 효율적으로 답변을 받으실 수 있습니다.
영어가 잘 안되더라도 최선을 다하여 영어로 써봅니다.
무슨 연유로 내가 통과되지 않았는지 알고 싶다고 영어로 써서 문의를 했습니다.
메일을 보내실 때에는 반드시 Enrollment ID를 함께 적어 넣어 주셔야 합니다.


그랬더니 다음 날 저에게 회신이 돌아왔습니다. (제가 쓴 내용은 상상에 맡기겠습니다..^^;)
================================================================================
Re: Apple Developer Support

Hello,

Thank you for contacting Apple Developer Support regarding your recent program purchase.

Please know that we use technology which matches your Apple Developer program enrollment detail with the billing information for your program order. Your recent order information did not sufficiently verify your identity against your enrollment detail and your order was placed on a temporary hold.

We have reviewed the issue and have removed the hold on the order. At this time, we ask that you please refer to the original activation code email that you received and click through the link once again. You should be able to now successfully activate your program.

We apologize for any inconvenience. If you have any questions or need further assistance, please let us know.

Regards,
================================================================================
대충, 임시적으로 홀드 상태였다고... 메일에 있던 엑티베이션 코드를 다시 클릭하면 정상 등록이 될거라고 써있네요.
그와 함께 아래와 같은 메일도 함께 왔습니다.
홀드 상태에서 해방되었으니 다시 인증하라고 나오네요.


처음 인증번호가 왔던 메일을 열어 다시 인증번호를 눌러줍시다.



자 이제 정상적으로 등록이 되는 절차입니다.
당당히 Activate 버튼을 클릭!


Activation Complete!! 드디어 기다림의 시간이 끝을 내리는군요 ㅎㅎ
Get Started!!!


메일로 또 뭔가 왔습니다. 한 번 읽어보시구요~


아까 Get Started!! 를 누르면 보이는 화면입니다.
멤버 센터인데요.
iOS Provisioning Portal로 이동합시다~
(이 화면이 보이지 않는 분께서는 iOS Dev Center의 Member Center로 오시면 됩니다!)


iOS Provisioning Protal 입니다.
일단 인증서를 받아봅시다.
Certificates를 클릭!


인증서를 획득하기 위한 과정이 필요합니다.
일단 아래와 같은 화면이 나오지 않는다 하시면 Certificates를 누른 화면에서 Request Certificate.. 였나 그 버튼을 눌러주시면 됩니다.
인증서를 만드는 방법이 아래 쭈욱 설명이 되어있습니다.
제가 설명해 드릴테니 따라오세요~


자신의 맥의 응용프로그램 폴더의 유틸리티 폴더로 가서 키체인 접근 앱을 실행합니다.
못찾으시겠다구요?
힌트!!
/Applications/Utilities


키체인 접근을 실행 시키시고 화면 상단의 메뉴바에서 키체인 접근을 눌러주시고, 인증서 지원 - 인증기관에서 인증서 요청 을 눌러줍니다.


그럼 아래와 같은 화면이 나올텐데요, 자신의 개발자 등록 메일주소와 등록시의 이름을 적어주시고,
디스크에 저장됨을 선택하신 후 계속을 눌러줍니다.


파일 저장 장소를 묻는 화면이 나오는데요, 저는 데스크탑에 저장하겠습니다.
만약 데스크탑이 지정이 되어있다면 그냥 저장 눌러주시고,
그렇지 않은 경우에는 화면에 보이는 화살표를 누르시던지 위치를 눌러서 데스크탑으로 지정하시면 됩니다. (꼭 데스크탑이 아니더라도 자신이 찾기 쉬운곳에 넣어주세요)

 


짜잔~ 끝났네요.


그럼 다시 아까 웹브라우저로 돌아와서 파일 선택 버튼을 눌러주고, 아까 만들어놓은 인증서 요청 파일을 선택해 줍니다.


자 그러면 인증서 목록에 인증서가 보입니다. Status가 Issued로 나오네요.
그런데 이것을 나의 맥에 설치를 해야 하는데, 다운로드 받을 수 있는 곳이 안보입니다.ㅠㅠ
Development라는 버튼 다시 한 번 클릭해 줍시다.


다운로드 버튼이 보일 때 까지 몇 번 눌러주셔도 됩니다.
다운로드 버튼이 보이면 다운로드 받아줍시다.
후에 화면 상단에 보시면 다운로드 내역 보기 버튼을 눌러보면 인증서가 보일거예요.
더블클릭 해주세요~
그러면 인증서 설치가 됩니다.


방금 위에서 한것은 개발 전용 인증서 입니다.
나중에 개발을 완료한 후에 배포용 인증서가 별도로 필요한데, 그때가서 다시 만드려면 귀찮으니까 오늘 다 만들어 줍시다.
아까 눌렀던 Development 옆의 Distribution을 눌러줍니다.
여기서도 마찬가지로 Request Certificate를 누르고 파일 선택을 누르신 후에 아까 생성해 놓은 인증서 지원 파일을 선택해 줍니다. (새로 인증서 지원 파일을 만드실 필요가 없습니다)


여기서도 다운로드 버튼이 나올 때 까지 눌러주다가 나오면 다운로드 받아서 설치해 줍니다.



자 여기까지 했고, 자신의 개발용 기기가 있다면! 웹브라우져는 열어둔 상태로 Xcode를 실행해 줍니다.
물론 개발용 기기도 USB로 맥에 연결하여 줍시다.
(만약 개발용 기기가 아직 준비가 되어있지 않다면, 준비가 되었을 때 추가적으로 이 작업을 해주시면 됩니다. 아래 진행되는 사항들은 개발자 포털에 나의 기기를 등록하고 개발을 위해 쓰기 위함입니다.)
Xcode를 실행 한 후 화면 상단의 메뉴에서 Windows를 클릭하여 메뉴 중 Organizer를 클릭!


아래와 같은 화면이 나옵니다. 물론 똑같진 않으실겁니다. 만약 다른 화면이 나오면 상단의 메뉴중에 Devices를 눌러줍니다.
그 후 연결된 자신의 기기가 보이면, Use for development를 눌러줍니다.
로그인 하라고 하면 자신의 개발자 계정으로 로그인 합니다.
그 후에 화면 하단에 Add to Portal를 클릭!


진행 중에 이런 메시지가 나온다면 항상 허용을 눌러주세요~


웹 브라우저로 돌아옵시다. (기기를 여러대 등록하고 싶으시면 여기로 돌아오시기 전에 Organizer 창에서 Use for development와 Add to Portal을 각각 해주고 오세요~ 뭐.. 물론 나중에 해도 큰 지장은 없습니다)

브라우저로 돌아오셔서 Devices를 눌러보시면 방금 자신이 등록한 기기가 나옵니다.
걍 확인해 보시라구요^^ 그 다음 Provisioning 을 클릭!


자동으로 Provisioning파일이 생성되어져 있을 겁니다.
다운로드 해 줍시다.


좀 전과 마찬가지로 다운로드 내역을 보고 실행 해 줍니다~


그러면 자동으로 다음과 같은 창이 뜹니다.
등록이 제대로 되었나 확인 해 주세요~


자... 여기까지 마치고 나니 의문의 이메일이 한 통 또 도착했습니다.
이 이메일에 대해서는 다음 번에 알려드릴게요~^^*


그럼 다음에 봬요~
(뵈요는 틀린 말입니다. 뵈어요의 준말 봬요..^^)

by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
저작자 표시 비영리 변경 금지
신고
Posted by yagom


티스토리 툴바