오늘의 주제

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. 이전 댓글 더보기
  2. 루감 2012.11.21 12:21  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    지난주부터 시작해서 덕분에 잘 배우고 있습니다. 쉽게 설명해주셔서 따라하기만 하면 되더군요.
    근데 드디어 진행이 안되고 막혔네요.
    xcode 4.5.2 사용하고 있는데요. (iOS SDK 6.0 입니다.)
    이 글의 UIViewController를 추가를 위해 New File 메뉴를 선택하니..
    화면이 틀려요.
    Choose a options for your new file: 이라는 그림과 같은 창이 아니고요.
    Choose a template for your new file: 이라는 이름의 창이 뜨고, iOS, OSX 두가지 범주에서
    Cocoa Touch, C and C++, User Interface 등 여러가지 항목과 그 하위에 수많은 클래스들을
    선택할 수 있게 되있네요..
    다 눌러봐도 UIViewController 또는 그와 비슷한것도 찾을수가 없네요.
    뭘 선택해서 추가해야 하나요?

  3. Lisa 2012.11.22 12:36  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 야곰님의 블로그에서 많은 정보를 얻고 열심히 아이폰 개발을 하고 있는 초짜 인데요.
    질문을 좀 몇가지만 드리려고 합니다.

    참고로 Xcode 4.5.2, 스토리보드X, xib View - Bottom Bar 로 Tab Bar 형태로 개발하고 있습니다.

    1. A뷰콘트롤러에는 여러개의 버튼들이 있습니다. 그리고 하단에는 Tab Bar 가 있어서 A, B, C... 순서대로 탭바 내용이 보이게 됩니다. 그리고 그 버튼들은 각 B, C... 뷰콘트롤러로 이동할 예정입니다.
    그런데 A -> B 로 화면전환 할때
    SecondViewController *secondModal = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 초기화를 한 후
    [self presentViewController:secondModal animated:YES completion:nil]; 모달뷰 형태로 지정해서 실행하면 Tab Bar는 보이지 않은 상태에서 View 내용이 보이게 됩니다. 그렇다고 [self.view addSubview:secondModal.view]; 형태로는 현재 뷰 위에 얹혀서 보이는 식으로 나타나게 됩니다. (이 부분은 당연한 부분이겠죠.)

    해서 제가 원하는 결과는 A뷰컨트롤러에서 B, C....뷰컨트롤러로 화면전환이 이동되면서 Tab Bar가 보이고 Tab Bar Item도 각 Tab 위치에 맞는 활성화된 상태로 보이도록 하는것이 목표입니다.

    2. FifthViewController에는 툴바가 있고 네비게이션바는 없는 상태입니다. 해당 뷰안에 버튼이 있는데 이 버튼을 누르게 되면
    SixthViewControlller 로 화면전환 하려 합니다. 그런데 SixthViewController 에서는 툴바는 설정 안해놨습니다. 네비게이션바와 Back 버튼이 보이고 클릭하면 FifthViewController 로 돌아가고 싶습니다. 가능한지요?

    아직 실력이 미흡해 제대로 설명을 못드린것 같아 죄송합니다.

    염치불구하지만 답변 기다릴게요 ^^;;

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.22 13:06 신고  댓글주소  수정/삭제

      안녕하세요 Lisa님! 반갑습니다 :)
      1번의 경우에는 모달은 원래 그런 용도(새로운 화면으로 덮어버리는...)이기 때문에 원하는 기능에 적절하지 않은 것 같습니다. 네비게이션 컨트롤러를 이용하는 것이 좋을 것 같습니다.

      2번의 경우에는 이동할 때마다 네비게이션 컨트롤러의 setNavigationBarHidden: 메소드로 보였다 가렷다 하면 될 것 같습니다~ :)

      도움이 될지 모르겠습니다. ^^;

  4. Lisa 2012.11.23 16:25  댓글주소  수정/삭제  댓글쓰기

    답변 달아주셔서 감사합니다.

    기존 작업들 다 엎고 모달로 불러올 수 있도록 재작업중에 있습니다. ㅡ.ㅜ
    제대로 된 교육도 안받고 기초도 없는 상태에서 사정상 개발부터 하려니 참... 힘드네요. ㅠㅠ

    아무쪼록 또 궁금한 사항 생기면 여쭤봅도록 하겠습니다.

    주말 잘 보내세요 ^^

  5. Favicon of http://blackturtle.tistory.com BlogIcon 까만거북이 2013.01.03 22:16  댓글주소  수정/삭제  댓글쓰기

    또 고맙습니다.
    저도 블로거로써 이 고마움을 어찌 전해야할지 모르겠네요. :)

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.01.04 07:46 신고  댓글주소  수정/삭제

      까만거북이님 :)
      저도 거북이님 블로그 보면서 많은 정보 얻어갑니다 ㅎㅎ
      유용한 팁과 정보들이 정말 많네요 ㅎ

  6. 첼로와 짜짜 2013.01.11 17:21  댓글주소  수정/삭제  댓글쓰기

    ㅋㅋㅋㅋㅋㅋ 탭바에 이미지 넣는거 좀 헤매다가 결국 알아냈어요. 끝까지 다 볼겁니다. 정말 도움이 많이되요. 감사합니다.
    탭 4개 만들었어요ㅋㅋㅋㅋ

  7. 딴또 2013.03.07 08:11  댓글주소  수정/삭제  댓글쓰기

    명강의 감사합니다.

  8. Favicon of http://keepingstar.tistory.com BlogIcon keepingstar 2013.03.30 13:59  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 야(한)곰님~
    따라하기로 하고 있는데 이상하게 이미지뷰를 집어넣은 곳과
    시뮬레이터로 실행시킨 후의 위치가 틀리네요-?

    지금 제가 6.0을 사용하고있는데 이것의 버그일까요?
    흠..

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.03.31 00:08 신고  댓글주소  수정/삭제

      야한곰은 절대로 아니구요...ㅠㅠ
      일단 탭뷰안에 들어가서 위치가 달라보일 수도 있고
      뷰가 오토 리사이징이 되어서 그럴 수도 있을 것 같습니다..

  9. 청담동개발자 2013.04.15 16:36  댓글주소  수정/삭제  댓글쓰기

    안녕하세요~ 궁금한거 하나만 물어볼께요

    Tabbed Application을 이용하면 FirstViewController ,SecondViewController 라고 이름이 정해지는데

    이름을 바꿀 수 없나요? 이름 바꿨더니..오류나고 실행이 안되네여..

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.04.16 09:53 신고  댓글주소  수정/삭제

      당연히 바꿀 수 있습니다... ^^;
      어디서 어떤 이름을 바꾸셨는지 모르겠지만...
      파일이름을 변경하고 싶으시면 파일이름 변경 후에 #import에서도 바꿔주셔야 하구요...
      클래스 이름을 바꿔주셨으면 xib에서도 클래스 정보를 바꿔주셔야 합니다...

  10. 질문돌이 2013.06.08 15:59  댓글주소  수정/삭제  댓글쓰기

    제가 뭘 잘 몰라서 그런데요,
    탭바에 view controller를 등록하기 전에

    UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];

    이런식으로 UIViewController instance를 만드는데,
    막상 생성하는건 FirstViewController instance네요.

    이래도 되는건가요?

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.09 14:43 신고  댓글주소  수정/삭제

      제가 잘못 표현한 부분입니다 ^^;
      FirstViewController와 SecondViewController 포인터로 선언해 주는것이 더 맞겠습니다 ㅎㅎ

  11. 개개개발의 귀태랑 2013.07.01 17:39  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    좋은 강의 잘 보고 있습니다.

    한가지 궁금한 점이 있는데요. 이번 강좌를 다 따라했고, run실행 시 오류도 없었습니다.
    그런데 시뮬레이션 화면에서 세번째 탭( star이미지도 잘 뜹니다)을 누르기만 하면 시뮬레이터가 멈춰 버리는데요.;

    이건... 어떤 문제인지 알 수 있을까요?

    xcode는 4.6.2버전입니다~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.02 10:02 신고  댓글주소  수정/삭제

      글쎄요...^^;

      그렇게만 말씀해 주시면 저도 뭐라고 답변을 드려야 할지 잘 모르겠습니다 ㅠ_ㅠ

    • 개개개의 귀태랑 2013.07.02 10:54  댓글주소  수정/삭제

      아... 어디가 잘못되었는지를 모르니 질문을 상세하게 드릴 수가 없네요.ㅠㅠ

      디버그 네비게이터에

      int main(int argc, char *argv[])
      {
      @autoreleasepool {
      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); <--Thread 1: signal SIGABAT
      }
      }

      이라고 나옵니다. 댓글 중에도 몇분이 SIGABAT얘기를 하시는 것 같은데 무슨 말인지 모르겠네요.ㅜㅜ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.02 11:29 신고  댓글주소  수정/삭제

      난감한 상황이 아닐 수 없습니다..ㅠ_ㅠ

      메모리에 잘못 접근하고 있는 것 같은데, AppDelegate쪽에 오타나 잘못 입력한 부분이 있는지 확인해 보시고, ThirdViewController의 xib파일에 문제가 없는지 확인해 보시는 것도 좋을 것 같습니다. 'ㅁ'

  12. 개개개의 귀태랑 2013.07.02 17:23  댓글주소  수정/삭제  댓글쓰기

    해결했습니다.ㅎㅎ;

    탭을 새로 추가하는 부분에 문제가 있었습니다. 본문에는 New File을 하고 템플릿에서 UIViewController subclass를 선택하면 된다고 되어 있습니다만, 저 같은 경우 그런 템플릿을 못찾아서;; 그냥 템플릿 라이브러리에서 만들어 썼던 게 문제였던 것 같습니다.

    제 xcode에서는 new file을 한 뒤 'ios' --> 'cocoa touch' --> 'objective-c class'를 선택해 줘야 'UIViewController subclass'를 선택할 수 있었습니다.

    아무튼 이제 나머지 부분을 따라갈 수 있겠네요~~ 감쏴함다~~ㅎ

  13. sunju 2013.07.30 11:54  댓글주소  수정/삭제  댓글쓰기

    혹시 두번째 tab에 안녕하세요이런 문자열을 저장해 놓구 첫번째 tab에서 읽어 올수 있는 방법은 없나요??? 블로거님 delegate 부분 보구 해봣는데 안되네요 ㅠㅠ 도와주세요~ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.30 12:02 신고  댓글주소  수정/삭제

      안녕하세요 선주님!! :)
      어떤식으로 저장하셨고, 어떤 식으로 델리게이트 연결을 하셔서 구현을 하셨는지에 대한 정확한 설명과 코드 없이는 제가 도와드릴 수 있는 부분이 없을 것 같아요...^^
      어떤 부분이 어떻게 동작을 안하는지 직접 쉽게 설명할 수 있는 정도로 자신의 코드를 이해해서 설명해 보셔요. 아마 그때 쯤이면 스스로 원하는 기능을 완성하셨을 거예요.
      그럼에도 불구하고 원하는 기능이 동작하지 않는다면, 이해한 내용을 저에게 다시 설명해 주세요. 함께 방법을 찾아보아요 :)

  14. sunju 2013.07.30 13:22  댓글주소  수정/삭제  댓글쓰기

    답변감사합니다
    아직 해결이 안되서 또 물어볼게요 ㅠㅠ
    두번째 tab view에 uislider 만들고 viewDidDisappear에서[self.delegate returnValue...] 이런식으로 코딩하고 첫번째 tabview에서 returnvalue란 함수를 통해서 값을 읽어오구 싶은데 우선 첫번째 setDelegate을 어디부분에서 해야될지 막막합니다. viewDidload에서 setDelegate을 했더니 returnvalue 함수가 호출도 되지 않네요...ㅜㅜ 설명이 제대로 됬는지는 잘모르겠네요 ㅠㅠ 감사합니다.

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.30 13:28 신고  댓글주소  수정/삭제

      탭바에서는 viewDidDisappear가 호출이 안될텐데, 로그 찍어보셨나요?
      viewDidDisappear말고 다른 방법으로 해당 메소드를 호출해줘 보세요.
      가령 예를 들어 버튼을 누른다던지, 첫 번째 탭에서 다른 방법으로 불러오는 방식이라던지요... ^^

  15. Hide 2013.11.05 19:57  댓글주소  수정/삭제  댓글쓰기

    감사합니다. ~

  16. 무숙자 2013.12.16 22:18  댓글주소  수정/삭제  댓글쓰기

    설명 최고네요 최고....감탄을 하고 갑니다.
    저같이 일반인도 이해가 가다니요

  17. Bart 2014.02.04 22:43  댓글주소  수정/삭제  댓글쓰기

    요즘 맥을 시작하는 초보사용자로 야곰님 강좌를 처음부터 따라하기 시작한 사람입니다

    저는 xcode5.0.2 사용 중인데, 프로젝트 생성할때 storyborad 선택이 없어서 메소드 부분이 없어서 막히고 있는데요,
    혹시 다른 해결 방안은 없는지요?

  18. myonug 2014.05.21 19:56  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    좋은 강좌 감사합니다.!
    그때 한번 댓글 달았는데 빠른 답변도 정말 감사드리고요^^

    궁금한점이 있습니다.
    혹시 title의 사이즈를 좀더 키울 수 없을까요?
    키울수 있다면 어떤 방법으로 키워야 되나요?

    • Favicon of https://blog.yagom.net BlogIcon yagom 2014.05.21 20:38 신고  댓글주소  수정/삭제

      http://goo.gl/BE1tCF
      한 번 참고해 보셔요 :)
      제가 지금 문서를 안봐서 모르겠지만 아마 iOS 6 이상에서부터 사용할 수 있는 메소드일거예요 ㅎㅎ

  19. myonug 2014.06.10 15:59  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 벌써 세번째 댓글을 다는거 같습니다.
    항상 답변해주셔서 감사해요!

    탭뷰를 하면서 5페이지를 만들었어요.. 근데 1245페이지는 버튼을 눌렀을때 지정해준 뷰로 이동을 하는
    일반적인 탭뷰형식입니다. 3번째 위치한 탭뷰버튼을 눌르면 마지막으로 보여진 뷰는 유지되면서
    그위에 버튼을 구현을 할려고 하는데 혹시 조언이나.. 검색을 어떻게 하면 되는지 가르쳐주실수 잇나요..ㅠㅠ
    머라고 검색을 해야되는지.. 잘 몰라서 물어봅니다!

    0
    0
    탭뷰: 1 2 3 4 5

    탭뷰 3번째를 클릭했을때 0이라는 버튼이 그위에 구현되는 방식입니다.


    • Favicon of https://blog.yagom.net BlogIcon yagom 2014.06.11 16:43 신고  댓글주소  수정/삭제

      안녕하세요 :)
      UITabBarControllerDelegate 에 대해서 알아보시면 될 것 같아요 :)
      탭바를 눌렀을 때 호출되는 델리게이트 메소드가 있을거예요 ㅎ

  20. 2014.11.13 18:06  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  21. 루나 2016.01.02 15:11  댓글주소  수정/삭제  댓글쓰기

    포스팅이 2011년으로 오래되긴 했지만 너무 자세히 설명해 주셔서 차근 차근 따라하고 있습니다.
    Xcode 7.2를 사용해서 배우는 중인데 지금은 ViewController Class 파일을 만들지 않고 Object에서 ViewController를 추가하여 오른쪽 버튼으로 연결하게 변경이 된거 같아요. 코딩 필요 없이요. 그래서 게시글과 달라 조금 헤맸습니다. ㅎㅎㅎ
    시뮬레이터로 띄워봤을 때 3번째 탭이 나타납니다.
    다만 정말 초보기에 질문드리는데... 이렇게 Object로 ViewController를 연결하면 첫번째, 두번째 탭처럼 h, m 파일이 생성되지 않아서 궁금합니다. 제가 Xcode 최신 버전을 사용해서 다른 걸까요? 아님 제가 뭘 잘못한 걸까요?

    새해 복 많이 받으세요. :)

    • Favicon of https://blog.yagom.net BlogIcon yagom 2016.01.09 03:01 신고  댓글주소  수정/삭제

      안녕하세요 루나님~!
      음... 그것은 기본적으로 UIViewController 클래스의 객체를 스토리보드에서 자동으로 생성해주기 때문입니다. 쉽게 말로 풀어쓰기가 정말 어려운데... 음...ㅠㅠ
      스토리보드의 ViewController 객체를 스토리보드에 올려놓으면 코드로 UIViewController를 생성해주는 것과 같은 효과를 얻게됩니다. 컴파일 할 때 자동으로 스토리보드를 분석해서 Xcode가 대신 코딩해주는 효과라고 할까나요?
      지금 위에서처럼 UIViewController 클래스를 상속받는 클래스 두 개를 더 만든 후에 스토리보드에 올린 UIViewController 객체를 선택하시고 Identity inspector 메뉴(참고 : https://goo.gl/UwdTx4)에서 Class 이름을 우리가 만들어준 클래스 이름으로 지정해주면 위에서 해본 예제랑 같은 효과를 얻어보실 수 있습니다 :)

      말로 최대한 풀어 써보려고 했는데 잘 이해가 되실지는 모르겠어요ㅠ

      더 궁금하신 사항이 있으면 또 글 남겨주세요~!


오늘의 주제

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. 말썽쩡 2011.12.12 19:46  댓글주소  수정/삭제  댓글쓰기

    감사해요 막막했는데 이렇게 설명을 잘해주시다니 ㅋㅋ 잘봤어요 ^^

  2. 옥탑방원순이S 2012.03.03 09:58  댓글주소  수정/삭제  댓글쓰기

    진짜 신나게 읽었습니다.
    다음번 실전도 너무 재밌을 것 같아요 ^_^
    정리해서 책으로 내셔도 될 것 같아요~~~
    잘 봤습니다 ^_^

  3. 블루아빠넹 2012.04.20 09:13  댓글주소  수정/삭제  댓글쓰기

    정말 잘 보고 있습니다.
    친절한 포스팅 너무 감사하구요.
    앞으로도 꾸준한 포스팅 부탁드려요~!!

  4. 봇짱 2012.06.17 19:51  댓글주소  수정/삭제  댓글쓰기

    쉬운 설명 감사합니다.
    정말 잘 보고 갑니다.

  5. 자몽주스 2012.06.25 13:40  댓글주소  수정/삭제  댓글쓰기

    이제야 아이콘들이 어떤기능들을 하는지 알것 같아요 정말감사합니다.

  6. SODA 2012.06.27 16:13  댓글주소  수정/삭제  댓글쓰기

    죄송한데 IB가 무엇을 말하는 건가요?

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.06.27 17:21 신고  댓글주소  수정/삭제

      google에서 Xcode IB라고 검색하시면 제가 답변해 드리는 것 보다 훨씬 속시원한 답을 얻으실 수 있을 것 같아요 ^^*

  7. 딴또 2013.03.06 08:43  댓글주소  수정/삭제  댓글쓰기

    좋은 강의 정말 감사합니다.

  8. ios 개발자 될놈.. 2013.05.08 19:04  댓글주소  수정/삭제  댓글쓰기

    야곰님 앞으로도 쭉,!!

  9. ryan 2014.06.17 09:38  댓글주소  수정/삭제  댓글쓰기

    아 글 너무 잘 읽고 있습니다. 안드로이드를 조금 만지다가 Swift 가 나왔다고해서 이참에 iOS도 배우고 있는 중인데요. 설명을 너무 잘 해주셨네요. Swift 에 관련된 강좌는 하실 계획이 없으신지요? :)

  10. 동기 2017.03.17 14:55  댓글주소  수정/삭제  댓글쓰기

    책을 안 사서 무작정 하고 있는데 이런 좋은 글들 때문에 서점이 망하지 않을까 우려가 되네요...ㅎㅎㅎ 감사합니다 잘 보고 있습니다!! 댓글을 웬만해선 귀찮아서 안 다는데 너무 감사해서 댓글 달고 갑니다 ㅎㅎ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2017.03.17 16:05 신고  댓글주소  수정/삭제

      안녕하세요 동기님!
      덧글 고맙습니다 :) 너무 예전 자료라 많이 도움이 될지는 잘 모르겠습니다^^; 종종 들러주세요~

  11. 김성욱 2017.03.28 10:36  댓글주소  수정/삭제  댓글쓰기

    잘 봐씁니다. 감사합니다.


오늘의 주제

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. 무한도전 2012.01.11 09:10  댓글주소  수정/삭제  댓글쓰기

    설명 정말 쉽고 재밌게 잘 해주셨네요. 잊어버릴만한 내용들도 다시 떠오르고, 모르는 부분도 이해되구요. 잘 봤습니다. 감사해요~!!

  2. 옥탑방원순이S 2012.03.03 09:48  댓글주소  수정/삭제  댓글쓰기

    한번에 정리된 자료들로 보니 훨씬 이해가 쉽습니다. ^_^ 다음 강의로 더 정진!!!

  3. 나이마흔에앱만들기 2012.04.23 03:17  댓글주소  수정/삭제  댓글쓰기

    엊그제 시작했는데, 객체 붕어빵, 클래스 붕어빵틀에서 확 와닿는데요. 부지런히 배울께요. 배워서 남주셔서 감사합니다.

  4. 오싹이 2012.04.25 07:57  댓글주소  수정/삭제  댓글쓰기

     와~~~ 언제 이렇게 다 준비하셨나요!!!
    너무 고생이 많았겠습니다....
    너무 감사 드립니다.
    아이폰 개발 공부하려고 여기저기 찾다가 여기왔는데... 너무 정리가 잘 되어 있네요....
    열심히 공부하겠습니다.
    의욕이 생깁니다....

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.04.25 10:54 신고  댓글주소  수정/삭제

      도움이 되신다니 저도 기분이 좋습니다~^^
      시간이 되신다면 추천도 꽝꽝 박아주세요 ㅎㅎㅎ
      자주 놀러오세요~^^

  5. vip0331 2012.05.14 15:19  댓글주소  수정/삭제  댓글쓰기

    이렇게 보니 막 정리되는 기분이네요.
    많은양 만드시느라 수고하셨습니다.
    감사합니다. ㅎㅎ

  6. Favicon of https://rakubaru.tistory.com BlogIcon 산책고냥이 2012.06.26 09:54 신고  댓글주소  수정/삭제  댓글쓰기

    깔꼼하고 보기 쉽게 설명해주셔서 머리에 쏙쏙 들어와요!!

  7. Lewis6 2012.10.25 17:01  댓글주소  수정/삭제  댓글쓰기

    진심 감사드립니다~~!

    입문자를 배려한 강좌 정말 감동이네요 ㅎㅎ

  8. Favicon of http://blackturtle.tistory.com BlogIcon 까만거북이 2013.01.03 19:43  댓글주소  수정/삭제  댓글쓰기

    정말 고맙습니다! :)

  9. 딴또 2013.03.06 07:38  댓글주소  수정/삭제  댓글쓰기

    번거롭고 힘든 작업을 정말 멋지게 하셨습니다. 감사합니다.

  10. 찰리 2013.12.30 15:25  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다. 잘 봤습니다.

오늘의 주제

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. 옥탑방원순이S 2012.03.03 09:43  댓글주소  수정/삭제  댓글쓰기

    이렇게 멋드러지게 잘 설명해주시다니 ^_^
    시중에 파는 책보다 훨씬 낫네요!!
    책에서는 대부분 xcode3 버전으로 된 것들이 많아서
    많이 헷갈렷거든요 >.<
    열심히 배우고 멋진 앱 만들기 도~전!!!

  2. 더벅머리 2012.05.09 17:56  댓글주소  수정/삭제  댓글쓰기

    기초와 기본이 중요하다!!! 새겨듣겠습니다!! 저도 의욕만 앞서 기초와 기본을 제쳐둔 것이 아닌가 돌아보게 되네요. xcode란 프로그램을 일단 잘 알아야 코딩도 할 수 있는 법!! 오늘부터 좀 더 그 녀석이랑 친해져볼께요!~!

  3. 초보kay 2012.07.23 17:23  댓글주소  수정/삭제  댓글쓰기

    많은걸 배우고 갑니다. 감사합니다.

  4. Favicon of http://blackturtle.tistory.com BlogIcon 까만거북이 2013.01.02 22:48  댓글주소  수정/삭제  댓글쓰기

    정말 고맙습니다. 잘 배우고 갑니다. :)

  5. 딴또 2013.03.06 07:15  댓글주소  수정/삭제  댓글쓰기

    정말 너무 감사합니다. 열심히 공부하겠습니다.

  6. 차나한잔 2013.03.19 19:01  댓글주소  수정/삭제  댓글쓰기

    정말 고맙습니다. 너무 잘 보고 있습니다. 추천 100만번 꾸욱 누릅니다~ ^^

  7. 조언이필요한자 2014.02.20 10:34  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 질문이 있어서요 ㅠㅠ

    프로젝트명을 변경하려고 하는데요

    인터넷 찾아서 View - > Utilities - > File Inspector 클릭후

    변경이름을 치고 리턴을 쳤습니다

    그리고 Rename 으로도 해보고 Don't Rename 을 클릭 하여 프로젝트 명이 변경된것으로 보였는데요

    이제 실행을 시키면 Apple LLVM Compiler 5.0 error 라면서

    Command /Applications/xcode 5/Xcode 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

    이 에러가 나는데 해결 방법좀 알려주실수 있을까요??ㅜ

    읽어주셔서 감사합니다.

    좋은하루되십시오~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2014.02.20 18:08 신고  댓글주소  수정/삭제

      안녕하세요!

      일단 프로젝트 명 변경 방법부터 잘못되긴 했는데...

      음... 우선 클린 후 빌드해 보시구요...

      뭐가 잘못되었는지 딱히 잘 모르겠어요..ㅠ

오늘의 주제

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. Favicon of http://talkit.tistory.com BlogIcon 가야태자 2012.06.06 22:08  댓글주소  수정/삭제  댓글쓰기

    음 오늘은 저도 이만 자야겠습니다. ^^;;

    내일 부터는 본격적으로 XCode를 통해서 공부를 해보겠습니다.

    앗 내일은 안되고 주말에 공부할 수도 있구요 ^^;;

  2. Favicon of http://hatnim.tistory.com BlogIcon 햇 님 2012.07.26 17:15  댓글주소  수정/삭제  댓글쓰기

    요즘 한창 iOS 앱 개발을 하는 도중인데 Lion 버젼으로 정리가 잘되어있어서 추천 꾹꾹 눌렀습니다.

    항시 개발은 준비과정에서 반이상은 먹고 들어가는거 같네요!

    구글링과 애플에서 제공하는 샘플코드로 머리 빡빡 굴리던게 뻥 뚫린기분입니다! ^-^

  3. poku 2012.09.04 10:23  댓글주소  수정/삭제  댓글쓰기

    만든 어플을 기기에 등록하는거만 하려면 이건 안해도 되죠..?

  4. 2012.10.30 21:31  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  5. Favicon of http://trapping.egloos.com/ BlogIcon TrappinG 2013.07.02 21:00  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다. 덕분에 수월하게 등록할 수 있었네요.

    다시 한번 감사의 말씀 드립니다.

  6. 김성욱 2017.03.25 14:07  댓글주소  수정/삭제  댓글쓰기

    잘보았습니다

  7. Ted 2017.09.20 04:42  댓글주소  수정/삭제  댓글쓰기

    잘보고 갑니다.~ 혹시

    Tax Information 등록하실 때, EIN 발급받으셔서 등록하셨나요?

    W-8BEN 폼에 어떻게 작성해야하는지 잘 모르겠네요

    • Favicon of https://blog.yagom.net BlogIcon yagom 2017.09.20 22:48 신고  댓글주소  수정/삭제

      안녕하세요 Ted님,

      그 부분에 대해선 저도 자세히 모르겠습니다^^;

      요즘 등록할때는 어떻게 나오는지 잘 모르겠네요^^;; 도움이 되지 못해 죄송합니다!

오늘의 주제

1. iOS Developer Program에 등록하기

2. Xcode를 실행하여 첫 Application 만들어 보기 



두 번째 시간입니다.
지난 번에는 개발을 위한 준비와 ADC 등록, Xcode 설치 등 개발을 위한 기초준비를 해 보았습니다.
이번에는 iOS Developer Program 에 등록하고, Xcode를 한 번 실행해 볼까 합니다~
자 이제 본론으로 고고 ^^


# iOS Developer Program 등록하기 
iOS Application을 개발 기기에서 테스트하고 App Store에 배포하기 위해서는 iOS Developer Program 에 등록을 해야 합니다.
하지만 이는 연 회비 $99입니다.
자, 당장은 이것에 가입할 필요는 없습니다. 다만, 어플리케이션 배포 최소 한 달 전에 등록하실 것을 권해드립니다.
그럼 시작해 봅시다~
다시 ADC로 이동합니다.

http://developer.apple.com/

자, 이제 좀 익숙해 지셔야 합니다 ㅎㅎ
iOS Dev Center로 이동합니다.
[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile5.uf@141240484EA26A4E316DB0.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_2.png%22%20filemime=%22image/jpeg%22%7C_##]
로그인 해주시구요~
 

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile9.uf@181240484EA26A563CD9F8.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_3.png%22%20filemime=%22image/jpeg%22%7C_##]

아이디 비밀번호 입력하시고 Sign In 클릭!
[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile9.uf@131240484EA26A5F47E873.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_4.png%22%20filemime=%22image/jpeg%22%7C_##]Join the iOS Developer Program 클릭!

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile4.uf@141240484EA26A6049FE1B.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_5.png%22%20filemime=%22image/jpeg%22%7C_##]Enroll Now를 클릭해 줍니다.

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile25.uf@131240484EA26A614A6B14.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_6.png%22%20filemime=%22image/jpeg%22%7C_##]자, 쭉쭉 계속~ Continue~

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile29.uf@151240484EA26A624B88D5.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_7.png%22%20filemime=%22image/jpeg%22%7C_##]
우리는 이미 ADC에 가입되어 있으니 Existing Apple Developer 이고, 이미 등록된 개발자이므로 위에 라디오버튼에 체크 해 주시고 Continue~ 

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile25.uf@161240484EA26A624C0FFB.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_8.png%22%20filemime=%22image/jpeg%22%7C_##]우리는 개인 개발자 입니다.
Individual클릭!
(만약 기업용 ID를 생성하시려면 Company를 클릭하세요~) 

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile22.uf@181240484EA26A634DB07B.png%7Cwidth=%22480%22%20height=%22381%22%20alt=%22%22%20filename=%222_9.png%22%20filemime=%22image/jpeg%22%7C_##]
로그인 해주세요~



자 이제 본격적인 등록절차입니다~
이름과 주소 등이 정확하게 입력되어있는지 확인해 주세요.
특히 이름과 성 등은 자신이 지불할 카드 앞면에 기재된 영문명과 일치하게 작성하셔야 합니다. 
다 확인하셨으면 Continue~ 


우리는 iOS Developer Program에 등록합니다.
선택해 주시고 Continue~
 


정보가 모두 정확히 작성되었는지 확인합니다.
Continue~ 


라이센스에 동의 합니다. I Agree~
 


개발자 프로그램은 상품 형식으로 지불을 하게 됩니다. 개발자 프로그램 상품을 장바구니에 담습니다. Add to cart~
 


카트에 이쁜 상자가 담겨있습니다. 저넘이 뭐길래 도대체 $99나..ㅋㅋ
일단 결제하기로 마음먹은 이상 과감하게 쭉쭉 진행합시다!
지금 결제 클릭!
 


다시 한 번 로그인 해 줍니다.


배송 연락처와 주소를 입력한 후 계속을 누릅니다.
사실 크게 중요한 부분은 아니지만 너무 대충 쓰지는 마세요~
이왕 쓰는거 한자 한자 정성스럽게 입력해 봅시다 :-)
 


이제 드디어 걸제정보를 입력하는 시간입니다.
국민카드, BC카드, 롯데카드, 삼성카드, 신한카드로 결제가 가능하네요.
자신이 소지한 카드와 할부개월수를 선택해 준 후 계속~
 


약관에 동의를 해 주시고 또 계속~
 


오른쪽에 결제 진행을 눌러줍니다~


결제 창이 떡하니 뜹니다.
또 약관에 동의 해 주시고... 


결제 정보를 입력해 주시고 입력 클릭!
 


결제가 완료된 화면입니다.
화면 위쪽에 보시면
'고객님의 주문을 처리 중이며 곧 확인 이메일이 발송됩니다.' 라고 나오네요.
새 창을 열어 이메일을 확인 해 봅시다.
 


네, 메일이 와 있네요.
 


스토어 주문내역 주문확인 창입니다.
배송이 '이메일로 24시간 이내'라고 써있네요. (아마 제 생각에는 영업일 기준 24시간 인듯 합니다. 주말엔 일하지 않는듯...)
네, 아무리 $99를 결제했다고 해도 도도한 애플은 바로 떡하니 개발자 프로그램에 등록해 주지 않습니다.
내 정보가 신용이 가는 정보인지, 개발자로 등록을 해주고 이 사람이 개발한 어플을 자신들의 앱스토어에 등재해도 될 만큼 신용이 있는지 등을 파악하고 등록해 주는 것 같습니다.
그. 래. 서. 누차 말씀드리듯이 내 정보는 정확하고 깔끔하게 입력해 주시는 것이 좋습니다.


iOS Dev Center 화면입니다. 자신의 아이디로 로그인 해 보면 나의 등록 현황이 나옵니다.
24시간 내에 주문 확인 메일과 등록 메일이 온다고 하네요. 24시간 안쪽에 메일을 받는다..
언제 올지 모르잖아요~ 그래서 그 기다림의 시간 동안 우리는 Xcode를 켜 봅시다.
드디어 켭니다!
Xcode 어떻게 실행하냐구요?
이런... 
힌트! 
/Developer/Applications
 


Xcode 첫 실행화면입니다.
네 개의 메뉴가 나오는군요.

1) Create a new Xcode project
   - 새로운 Xcode 프로젝트를 생성합니다.
   - 프로젝트는 하나의 어플리케이션을 만들기 위한 모든 것들의 묶음 이라고 생각하시면 됩니다. 하나의 어플리케이션을 만들기 위해서는 하나 또는 그 이상의 프로젝트의 묶음이 필요한데요, 기초적이고 간단한 어플리케이션은 하나의 프로젝트 안에서 모든 것들이 이루어 진다고 생각하시면 됩니다. 즉, 하나의 어플리케이션을 만들기 위한 큰 묶음이라고 생각하세요.
예를 들어, 우리가 하나의 책을 쓴다고 생각할 때 그 책 한권을 프로젝트라고 생각하시면 됩니다. 프로젝트(책)에는 책 표지부터 시작해서 목차, 내용, 저자 정보, 서문, 본문 등등 책의 모든 내용이 들어있을 것입니다. 그것이 프로젝트 입니다. 

2) Connect to a repository
    - 전문 개발자, 협업 개발자가 아니라면 지금 당장 이해하지 못할 부분이 많다는 판단이 들어 네이버 백과사전에게 설명을 넘기도록 하겠습니다. Repository(네이버 백과사전)

3) Learn about using Xcode
    - 말 그대로 Xcode사용법을 기술해 놓은 문서입니다. 영어 되시고 시간 되시면 쭉 정도해 보시길 권해드립니다. 제가 여기서 설명하지 못하는 많은 정보들이 담겨 있을테니까요^^

4) Go to Apple's developer portal
    - ADC 웹사이트로 이동합니다. 



자. 이제 메뉴에 대한 설명은 대충 끝났구요, 미친척 하고 Create a new Xcode project를 과감히 눌러 줘 봅시다.
여러가지 프로젝트 템플릿이 있습니다.
가장 기본적인 템플릿은 역시나 Empty Application이겠죠?
아주 기본적인 틀만 제공을 하고 개발자가 원하는 것들을 조금씩 추가해 나가는 형식입니다.
하지만 우리는 Single View Application을 선택하고 Next~



이제 프로젝트 옵션들을 선택할 수 있는 창이 나옵니다.

1) Product Name
저는 Product Name 을 MyFirstApp으로 지정해 주었습니다.
Product Name은 말 그대로 만들어질 어플리케이션 이름을 말하는데요, 추후에 앱스토어에 등록할 때나 어플리케이션 아이콘 아래에 나오는 이름은 변경 할 수 있으니 Product Name에 그리 큰 의미를 두지는 않으셔도 됩니다. 영어로만 작성하셔야 하며, 첫 글자는 대문자로 띄어쓰기 없이 생성하시기를 강력히 권고합니다.

2) Company Identifier
말그대로 회사 ID인데요, 일단 뭐 자신의 별명을 적어 봅시다.

3) Bundle Identifier
이 어플리케이션만의 고유식별 ID입니다. 자동으로 생성되어 입력되어집니다.

4) Class Prefix
클래스 접두어 입니다. 일단 기본적으로 XYZ라고 되어있는데, 그대로 놔둡니다.

5) Device Family
iPhone, iPad, Universal 세가지가 있는데, iPhone을 선택하면 iPod, iPhone, iPad 모두에서 동작 할 수 있구요, iPad버전은 iPad에서만, Universal도 모든 기기에서 동작할 수 있습니다.
iPhone과 Universal의 차이점이라면, iPad에서의 동작 방식의 차이에 있습니다.
iPhone 버전 어플리케이션을 iPad에서 동작시키면 화면을 확대해서 사용할 순 있지만 iPad전용 어플리케이션이 아니기 때문에 iPad전용 기능들을 사용할 수 없고 화질 또한 낮아지게 되겠지요.
Universal은 하나의 프로젝트에서 iPhone과 iPad 코드를 모두 관리하게 되며 앱스토어에서도 아이콘 하단에 + 표기가 되며, iPhone버전과 iPad버전 어플리케이션이 함께 나오게 됩니다.

일단 우리는 iPhone으로 선택해 주고 Next를 클릭!

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile29.uf@196C24414EA2797D25DD10.png%7Cwidth=%22480%22%20height=%22330%22%20alt=%22%22%20filename=%222_31.png%22%20filemime=%22image/jpeg%22%7C_##]


이제 드디어 어디에 저장할 것이냐고 묻네요.
저처럼 목록 층계 방식으로 나오지 않으면  상단의 보기 옵션 아이콘들 중 자신이 편한 것으로 변경해 줍니다.
일단 저는 데스크탑(바탕화면)에 새 폴더를 만들어 보겠습니다.
 



withYagom이라는 폴더를 생성하고 그곳에 프로젝트를 저장해 보도록 하겠습니다.


프로젝트가 생성되었네요! 드디어 첫 화면입니다!
현재 나의 프로젝트가 선택되어 있고, 거기서 Summery탭에 있네요.
즉 이 프로젝트의 정보를 요약하고 있는 화면입니다.
화면구성이 저와 같지 않다면 우측 상단에 View 아이콘들을 클릭하여 화면 구성을 바꿔줄 수 있습니다.
또 뭐 이것저것 만져 보고 눌러보세요~ 절대 컴퓨터 폭발하지 않습니다. :)
이 화면에서의 많은 설명들은 다음으로 미뤄봅시다.
지금까지 한 것만으로도 머리아프잖아요^^

참, Xcode 사용 도중 갑자기 뜬금없이 창이 하나 뜨면서 암호를 입력하라고 나올 수 있습니다. 개발 문서와 라이브러리를 설치하기 위해 암호를 묻는 것입니다. (대부분의 맥 응용프로그램을 설치할 때에는 암호를 묻습니다.). 아마도 두 번을 묻게 될텐데요. 무시하지 마시고 암호 입력하여 문서와 라이브러리를 설치하도록 하세요^^

 



이것은 애플에서 제공한 Xcode화면 구성 설명 그림입니다. 뭐 그냥 한 번 봐두세요. 다음에 제가 설명 해 드릴게요~^^


자 그럼 좌측 Project Navigator에서 ViewController.xib라는 파일을 클릭해 봅시다. 위와 같은 그림이 나오는데요, 거기서 또 중간쯔음 View를 클릭해 줍니다. 그러면 오른쪽에 속성들이 주욱 나오는 화면을 보게 되실거예요~
만약 오른쪽 창같이 속성 창이 나오지 않으면 우측상단에 View라고 써있는 것 아래에 보이는 아이콘들 중에 네 번째 녀석을 클릭해 줘 봅시다.
그 후, 배경색을 바꿔볼게요. 속성 중에 Background에서 색상 옆의 화살표를 눌러봅니다.
 


아래 처럼 색상을 설정 할 수 있는 창이 뜨는데, 저는 검정색을 선택해 보았습니다.
다른 색을 골라보고 싶으시면 Other...누르시면 다른 색상 선택도 가능합니다~


자. 그런다음 Object들을 끌어와 봅시다.
우측 하단의 창에 보면 이상한 애들과 함께 설명들이 있습니다. 화면으로 마구 끌어잡아 와 봅시다.
 


화면에 올라오지 않는 애들은 그냥 두세요~ 안올라오는 애들이예요 ㅎㅎ
내 어플리케이션 화면 위로 그냥 무작위로 올려 봅시다.
 


그 후에 상단의 Scheme선택에서 iPhone 5.0 Simulator를 선택해 주고 좌측의 Run아이콘을 눌러줍니다. 혹은 커맨드 + R 키로 실행 해 볼 수도 있습니다.


짜잔!! 컴파일과 빌드가 끝난 후에 아이폰 시뮬레이터가 눈앞에 등장합니다!!
컴파일과 빌드가 뭐냐구요!? 너무 많이 알려고 하지 마세요... 다음 기회에^^

일단 여기까지 해서 아주 말도 안되는 초간단 앱 하나 만들어 보았습니다~

어떠세요? 점점 흥미로워 지나요?

다음 시간에도 저와 함께 해주실거죠?^^
 

다음에 뵙도록 해요!

by yagom

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

RSS Feed 받기
 

 



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

댓글을 달아 주세요

  1. Favicon of https://rakubaru.tistory.com BlogIcon 산책고냥이 2012.05.08 04:05 신고  댓글주소  수정/삭제  댓글쓰기

    마음먹은 김에 개발자등록도 마쳤습니다!!!
    앞으로 고고! 하겠습니다!

  2. vip0331 2012.05.14 14:47  댓글주소  수정/삭제  댓글쓰기

    너무 잘보고 갑니다.
    바로 세번째 글까지 보러 갑니다.
    감사합니다.

  3. Favicon of http://talkit.tistory.com BlogIcon 가야태자 2012.06.06 22:05  댓글주소  수정/삭제  댓글쓰기

    오늘은 네번째 강의 까지 보고 잘 생각입니다. ^^;;

  4. 자몽주스 2012.06.15 21:30  댓글주소  수정/삭제  댓글쓰기

    제가 필요한게 여기다 모였네요 감사합니다 차근차근 보겠습니다. 이걸 보고 따라 하다보면 제가 목표했던 것이 보일거 같습니다. 아이폰 어플개발하려고 책만3권샀는데 도통 무슨내용인지 하나도 모르겠네요...제가 기초가 없어서 그럴수도 있겠지만 이건 아직 황무지.... 개발하시는분은 많은데 배우는데는 아직 황무지 같습니다. 한줄기 빛과 생수한통을 발견한 느낌임니다.
    감사합니다.

  5. R 2014.05.10 18:39  댓글주소  수정/삭제  댓글쓰기

    아 ~ 정말 이렇게 쉽고 깔끔하게 설명된 블로그.. 몇 없는듯 해요~~
    자주자주 들어와서 배우겠습니다~
    감사해요~

  6. vezita 2015.07.29 12:15  댓글주소  수정/삭제  댓글쓰기

    야곰님 제가 최근에 스위프트 공부를 시작했는데 검색을 하다가 오게 되었습니다.
    위 글은 2011년 자료인데, 최신버전의 스위프트로 다시 써보시는건 어떨까요?
    야곰님이 쉬운 말로 차근차근 설명해주셔서 저처럼 초보자들이 보면 잘 이해할 수 있을 것 같습니다.
    그럼...^^;

    • Favicon of https://blog.yagom.net BlogIcon yagom 2015.07.30 18:54 신고  댓글주소  수정/삭제

      안녕하세요 베지타님!
      방문해 주셔서 고맙습니다 :) 당분간 Swift 위주의 포스팅을 하기는 좀 어려울 것 같아요 ㅠ_ㅠ 요즘 개인적인 사정이 복잡해서 ㅠㅠㅠ Swift 언어는 Playground라는 툴을 사용해서 익히기가 비교적 쉬운 언어입니다. 웹상에 많은 튜토리얼들이 있으니 한 번씩 따라해 보시는 것도 좋을 것 같아요 :) 당장 도움을 드리지 못해 정말 죄송스러운 마음뿐입니다 ㅠ_ㅠ
      저는 어떤 컨텐츠를 가지고 다시 돌아올지는 모르겠지만 2015년 안에는 다시 돌아올 계획입니다.
      관심과 덧글 정말 고맙습니다! 기회가 된다면 다음 컨텐츠에 반영토록 하겠습니다.

오늘의 주제

1. 개발에 앞서 준비하기

반갑습니다. 처음 뵙겠습니다.
저는 야곰이라고 합니다!
이렇게 저의 블로그를 찾아주시니 반갑기 그지없습니다.
iOS개발 준비를 하고 계신 분들을 위하여 허접하지만 작은 블로그를 하나 열었습니다.
그럼 바쁘신 분들을 위하여 서론 생략하고 본론으로 고고 ^^


# 개발 장비 준비하기
iOS개발을 위한 장비는 최소한의 조건이 딱 하나 있습니다.
Mac시스템일 것!
즉, Mac운영체제를 사용하는 시스템을 필요로 합니다.
공식적으로는 애플에서 판매하는 MacBook, MacBook Air, MacBook Pro, iMac, Mac mini 등등 다양한 제품이 있습니다.
각자 자신의 취향이나 사용 스타일에 따라 구매하시면 되겠습니다.
가격고 사양 등의 정보는 http://store.apple.com/kr 에 방문해 보시면 자세히 알 수 있습니다.
물론 중고제품을 구매하셔도 큰 상관은 없습니다.

또한, 개발 중에는 내장 iOS 시뮬레이터로 테스트 및 실행을 해 볼 수 있지만, 개발 후 배포 전에는 기기로 꼭 테스트를 해 보아야 하므로 자신이 개발 목표로 삼는 타겟 기기를 하나쯤은 구비를 해 놓으시는 편이 좋습니다. 당연한 이야기지만 시뮬레이터로는 가속도 센서 등 실제 기기에 들어있는 기능이 동작하지 않는 경우도 있습니다.

자, 이렇게 개발을 위한 기기가 완벽히 준비되었다면, 본격적으로 출발해 봅시다!


# 개발자 등록
iOS어플리케이션을 개발하려면 일단 ADC(Apple Developer Connection)에 등록이 되어야 합니다.
자, ADC로 가 봅시다!
http://developer.apple.com
자... 일단 자신있게 들어오긴 했는데, 죄다 영어라 이거 난감..=_=
하,지,만!
익숙해 지셔야 해요~ 앞으로 모든 애플문서는 영어로 만나게 되실테니까요~
오늘은 제가 자세히 안내해 드릴테니 걱정 마시고 스크롤만 내리면서 따라오시면 됩니다!!

자, ADC 홈페이지 입니다. 추후에 변경될 수도 있지만 현재 모습니다.
앞으로 그림을 보면서 제가 표시해 놓은 네모를 클릭하며 따라오세요~
일단 iOS Dev Center로 갑니다!


도착!
그럼 이제 등록절차를 시작해야겠죠?
Register를 클릭!


Get Start!!

우리는 새로운 아이디를 만들어 봅시다. Create an Apple ID에 체크하고 Continue~

개인정보 입력을 시작합니다.
자신의 이메일 주소가 아이디로 쓰이게 됩니다.

보통 포털 사이트 가입절차와 크게 다를것이 없습니다.
각각 필드를 ‘모두’ 채워주시고 Continue~

 


어떤 플랫폼에서 개발하고 어떤 관심사를 가지고 있는지 묻네요.
iOS를 체크해 주시고, 관심가는 곳에 대한 설문에 대답해 주시고 또 Continue~

약관에 동의를 하시고 Continue~  

메일로 인증코드를 보냈다고 나오네요~
메일을 확인하러 가 봅니다~


요로코롬 메일이 도착해 있네요.
인증코드를 입력해주고 또 Continue~

이로써 ADC에 iOS개발자 등록이 완료되었습니다.
이렇게 무료로 가입한 개발자들은 시뮬레이터는 무료로 사용하여 개발할 수 있지만, 내가 소지하고 있는 테스트 기기를 사용하려면 유료결제를 해야 합니다.
1년에 $99 라는 약간의 압박이 있긴 하지만, 앱을 만들어서 수익을 내면 $99 못받겠습니까 ㅎㅎ 그런 용기를 가지고 $99 까이꺼 결제해 봅시다.
하, 지, 만. 일단 참아봅시다. 잠깐만 기다리세요 ㅎㅎ 제가 다음에 알려드리겠습니다.

# Xcode 설치
자, 개발자 등록도 끝났겠다, 시작해 볼까요?
어? 그런데 뭐로 어떻게 시작해요?
네... ㅎㅎ 그래서 한 번 설치해 봅시다.
Mac OS 및 iOS 개발 툴 Xcode를 설치해 봅니다.
아래 스크린 캡쳐 이미지들은 OSX Lion 기준으로 작성되었기 때문에 다른 OS버전 ( Snow Leopard ) 사용자 분들은 약간 상이 할 수 있습니다. 하지만 기본적으로 비슷하니 걱정하지 않으셔도 되요^^
자, 그럼 설치해 볼까요?
일단, 그 전에!

 

왼쪽 위에 사과모양 메뉴를 클릭해 보시면 요런 메뉴가 나타납니다. 거기서 소프트웨어 업데이트... 라는 버튼을 클릭해 봅시다.
자신의 운영체제가 SnowLeopard라면 최신버전일 때 App Store이용이 가능하기 때문입니다^^

 

 

윈도우 업데이트와 비슷한 개념이라고 보시면 되겠습니다.

저는 최신 소프트웨어라고 나오네요. 만약 업데이트 항목이 나온다면 일단 먼저 모두 업데이트 하고 돌아와 주세요^~^

자 그럼 이제 진짜로 한 번 해봅시다.ㅋ
Finder에서
/응용 프로그램
또는
/Application
으로 이동해 봅니다.

Finder가 도대체 뭐냐구요??
윈도우의 탐색기와 같은 기능을 하는 맥 기본 어플리케이션입니다^^
아래 아이콘이 쭈욱 있는 Dock에서 사람 둘이 쏙닥거리고 있는 모양이 있는데, 그놈이 Finder입니다.
실행시켜 봅시다.

그런데.. /응용프로그램. 이게 대체 뭐냐구요?
윈도우즈에서는 경로 표시를 흔히 C:\Application 등으로 표현을 하지요. 하지만 매킨토시에서는 맨 윗 경로가 C:\가 아니라, / 로 표현이 됩니다. Root라고 표현해요.
그래서 Finder를 열어서 루트폴더를 찾아갑니다.
어떻게 가는지 정 모르겠으면 ‘커맨드키 + ↑ 방향키’를 연타해주세요 ㅎㅎ 그러면 어느새 루트로 와 있을거예요.

자 그럼 응용 프로그램 폴더 찾으셨죠?
그럼 그곳으로 이동해서


요 녀석을 찾아서 가차없이 더블클릭을 해 주세요!
더블클릭이 뭐냐구요?
........ㅋㅋㅋ 너무하다구요? 알겠습니다.

자 그럼 이제 아래와 같은 화면이 출현합니다.

  

 네, 앱스토어입니다.  

 

 스크롤을 아래로 쭉 내려보세요.
혹시 국가설정이 미국으로 되어있으면 클릭하여 대한민국으로 변경해 줍시다.

 


대한민국 스토어로 변경이 되었으면 이제 한글이 나옵니다...ㅎ

위쪽의 검색창에 Xcode라고 입력해 줍니다.

 


결과화면이 나오면 “무료”라고 떠있는 회색버튼을 눌러줍니다. 위와같이 녹색버튼으로 변경되면 “App설치”를 눌러줍시다.
그러면 로그인을 하라는 창이 뜹니다.
아까 만들어둔 개발자 아이디를 또박또박 입력해 주세용.
그러면 아래와같은 경고창을 만나게 되실텐데요.  

확인을 눌러주면 계정 정보 화면으로 넘어갑니다.
한글로 상세히 설명해줄테니 잘 따라가시면 됩니다.
참고로 마지막에 카드번호 설정하고 나면 $1 결제되었다고 문자오실텐데, 걱정하지 마세요. 가상결제고, 카드가 작동하는지 확인만 하는 절차이고 절대로 절대로 1달러 안나갑니다.
앱스토어에 무료라고 해놓고 1달러 왜 결제되나요? 여기까진 이해하겠는데, 욕해놓고 화내고 무조건 개발자 욕하는 이딴 댓글 저는 개인적으로 정말 짜증납니다..ㅠㅠ  

자 다운로드가 시작되면 이런 아이콘을 보게 되실거예요. (OSX Lion 기준).
(Snow Leopard 사용자는 아래 Dock에 생기실 거예요)

 

완료되면 이렇게 뜹니다.
자 가차없이 클릭해줍니다.  


다른 설치프로그램들과 별반 다를 바 없습니다. 저는 이미 설치되어 있기 때문에 업데이트라고 나오는데요, 처음 설치하실때도 그냥 계속 쭉쭉 진행해 주시면 됩니다.

 

 


이렇게 해서 설치까지 마무리가 되면 아래 화면처럼 Xcode창이 뜹니다.

위 화면이 Xcode 첫 화면입니다.

휴~ 여기까지 따라오시느라 수고 많으셨어요~
저도 힘들어 죽겠네요 =ㅅ=
여기까지 따라 오셨으면 기지개 한 번 쭉 펴주시고, 허리 한 번 쫙 펴주시고!!
나쁜자세는 개발자들의 최고 적입니다..ㅎㅎ
공복에 코딩도 적입니다.
전... 지금 공복에 작성중이지만 ㅠㅠㅋ

자, 그럼 오늘은 여기까지 하구요. 다음 번에 뵈어요~ :-)


다음 번에는...
1.Xcode 뜯어보기
2.$99 결제 도전!

 

RSS Feed 받기




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

Posted by yagom

댓글을 달아 주세요

  1. 정졍 2011.12.16 02:29  댓글주소  수정/삭제  댓글쓰기

    감사합니다

  2. Favicon of https://rakubaru.tistory.com BlogIcon 산책고냥이 2012.05.08 03:39 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다!
    하나하나 차근차근 공부해서 어플을 개발하려고 합니다.
    종종 찾아오겠습니다!

  3. 더벅머리 2012.05.09 17:45  댓글주소  수정/삭제  댓글쓰기

    >_<으아니!! 이렇게 친절한 분이!!! 좋은 정보 쉽고 재미있게 공유하시는 것 같아요. 전 기획자인데 이번에 Objective-C 개발에 직접 발로 뛰게 되어서 혼자 이래저래 막공부 중이었거든요. 그러다가 마침내!! 오늘 야곰님의 블로그를 발견하고 희망의 빛이 내리쬠을 느낍니다!! 앞으로 자주 들러서 열심히 공부할께요!! >ㅂ</ 잘 부탁드립니다~~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.05.09 18:13 신고  댓글주소  수정/삭제

      네~ 더벅머리님 반갑습니다^^*
      기획자랑 개발자랑 자주 싸우죠...ㅎ
      그래서 다른 분야 분들도 여기서 조금이나마 이해했으면 하는 바람도 있었는데, 딱 맞는 걸까요?ㅎ
      자주자주 놀러오세요~
      댓글도 왕창~ㅎㅎ

  4. Favicon of http://talkit.tistory.com BlogIcon 가야태자 2012.06.06 22:03  댓글주소  수정/삭제  댓글쓰기

    네이브앱에 한번 도전해 보려고 합니다.

    강좌 잘 경청 하겠습니다.

    감사합니다.

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.06.07 01:50 신고  댓글주소  수정/삭제

      찾아주셔서 정말 고맙습니다^^*
      저도 하이브리드 쪽이나 폰갭 같은 것 이용해서 만들어 보아야 하는데 아직 못해보고 있네요 ㅎ
      블로그 보니 내공이 상상하신 것 같은데 많은 질타와 도움 부탁드립니다^^
      자주 들러주세요 ㅎ

  5. Favicon of http://aircook.tistory.com/ BlogIcon Francis 2012.07.17 11:26  댓글주소  수정/삭제  댓글쓰기

    1년만에 다시 아이폰 개발 공부하니 기억이 잘 안나네요..xcode4도 많이 바뀐거 같고.. 정성들여 작성하신 글.. 다시 공부한다 생각하고 열심히 보겠습니다.

  6. 초보kay 2012.07.23 16:44  댓글주소  수정/삭제  댓글쓰기

    아이폰에 완전 초보라 처음부터 잘 보겠습니다.
    친절한 설명 감사드립니다.

  7. Nanashi 2012.11.22 20:47  댓글주소  수정/삭제  댓글쓰기

    오 멋지시네요. 정주행중입니다 ㅎㅎㅎ

  8. toddler 2012.12.11 12:01  댓글주소  수정/삭제  댓글쓰기

    아이맥 구입후 무엇을할까 고심하던중, 오랫동안 손놓고 있던 프로그래밍을 해보기로 결정했습니다. 자세한 설명감사합니다. 열심히 보겠습니다. 다시한번 감사드립니다.

  9. 차나한잔 2013.03.19 16:35  댓글주소  수정/삭제  댓글쓰기

    맥은 전혀 모르는데 갑자기 아이폰 앱개발 하게 되어 쫄아있었는데, 알기쉽고 상세하게 설명한 글 너무 감사합니다. ㅠ.ㅠ 인터넷 귀져봤는데 이만한 정보가 없네요. 정말 감사합니다. 저뿐만 아니라 많은 분들이 도움 받으실 듯 합니다. 글 한 줄 안남길 수 가 없네요. ^^

  10. Favicon of http://02log.com BlogIcon 땡이 2014.01.21 15:07  댓글주소  수정/삭제  댓글쓰기

    많은 양의 콘텐츠를 올리셨네요. 천천히 함 읽어보려고 합니다~~ ^^

  11. 정주행 시작 2016.11.29 18:33  댓글주소  수정/삭제  댓글쓰기

    2016.11.29 정주행을 시작하였습니다.
    매우 느릿느릿 하지만
    잘 부탁드리겠습니다.

    티스토리 블로그는 아니지만 개인적으로 가끔 끄적이는 블로그에 퍼가도 되는지 여쭙고 싶습니다.

    출처는 당연히 표기하겠습니다.

  12. 내일날씨맑음 2016.12.01 10:40  댓글주소  수정/삭제  댓글쓰기

    <정주행 시작>
    앞으로 요 이름으로 할게요. 티스토리 가입 권한이 없어서 ^^;
    스위프트만 하고 회사에 입사했는데, 스위프트를 사용할 일이 없어졌습니다.
    오래된 자료이지만 중요한 부분이 많아서 좋네요.
    종종 찾아뵐게요~