posted by 네코냥이 2013. 2. 4. 00:31

본 글은 아래의 책에서 참고된 내용입니다. 

Sams Teach Yourself iOS 6 Application Development in 24 Hours, 4th Edition




 이 글은 본인이 공부하려고 포스팅하는 것이다.

아직 아이폰 프로그래밍은 경험이 없으며 (간단히 예제정도는 돌려봤지만,)

배우고자 하는 것을, 참고하는 책의 내용과 함께 서술할 뿐이다.



아이폰에서 어떻게 MVC 패턴을 구현할까 궁금하다.

대강 프로젝트 생성 햇을 때, 폴더나 파일 구조를 보니 MVC 패턴 아닐까 추측은 해보았다.

(대강의 작동이나 코딩 방식이 그럴꺼라고 생각됬다.)



Understanding the Model-View-ControllerDesign Pattern   


  When you start programming, you’ll quickly come to the conclusion that there is more than one 

“correct” way to do just about everything.


 This doesn’t mean, however, that adding structure to the development process is a bad idea.


  The application design approach that you’ll be using in iOS is known as Model-View-Controller 

(MVC), and it can help you create clean, efficient applications.



Making Spaghetti   


또 재미있는 소제목이 나왔다. ㅋㅋ


(본인은 웃기다고 생각하지만, 집필자의 의도는 조크가 아니었다라고 하면, 살짝 걱정이 된다.)


 위의 제목은 예상과 달리 MVC에 관한 비유가 아니었다.



  Before we get into MVC, let’s first talk about the development practice that we want to avoid, and why. When creating an application that interacts with a user, several things must be taken 

into account. First, the user interface (UI). You must present   something   that the user interacts 

with: buttons, fields, and so on. Second, handling and reacting to the user input. And third, the 

application must store the information necessary to correctly react to the user (often in the form 

of a database).


  One approach to incorporating all these pieces is to combine them into a single class. 

The code that displays the interface is mixed with the code that implements the logic and the code that handles data.


X              When code is mixed together, it is difficult for multiple developers to work together 

X            The interface, application logic, and data are unlikely to be reusable in other applications 

X        The application is difficult to extend.


  In short, mixing code, logic, and data leads to a mess. 



Structured Application Design with MVC   


MVC에 대한 간단한 개념 설명정도 되겠다. (슬슬 공부하기도 짜증나짐...)


MVC defines three parts of an application:   


 A model   provides the underlying data and methods that offer information to the rest of 

the application. The model does not define how the application will look or how it 

will act.     


One or more   views make up the UI. A view consists of the different onscreen widgets (but-

tons, fields, switches, and so forth) that a user can interact with.     


A controller   is typically paired with a view.

 In short, it bridges the MVC components and provides the “brains” of the application. 

(두뇌로 비유했는데, 내 생각엔 신경계가 더 좋은 비유 아닐까 한다.)



이런 설명 뒤에, MVC가 어떻게 작동할까 이런 의문을 품게 되는데, 

걱정할 필요가 없다고 한다.


  In Xcode, MVC design is natural. As you create new projects and start coding, you are guided 

into using MVC design patterns automatically. 


 우리는 자연스럽게 MVC 패턴을 이용하게 될꺼라 한다. 

(흐... 프로젝트를 생성했을 때의 복선이 옳았군...)





    How Xcode Implements MVC   


이건 다음 소단원 제목이다.

이건 다음 강의로... ( Xcode에서 어떻게 MVC를 운용하는가? )


posted by 네코냥이 2013. 2. 3. 23:12

본 글은 아래의 책에서 참고된 내용입니다. 

Sams Teach Yourself iOS 6 Application Development in 24 Hours, 4th Edition



          What Is Cocoa Touch?   


 Cocoa Touch is the collection of software frameworks that is used to build iOS applications and the runtime that those applications are executed within.


  Cocoa Touch is the highest of several “layers” of services in the iOS and isn’t necessarily the 

only layer that you’ll be developing in.



그 와중에 소제목들을 살펴보면, ㅋㅋ 유머가 돋는다.


- Keeping Your Cool in the Face of Overwhelming Functionality 

Young, Yet Mature




    Exploring the iOS Technology Layers   


  Apple describes the technologies implemented within the iOS as a series of layers, with each 

layer being made up of different frameworks that can be used in your applications. As you 

might expect, the Cocoa Touch layer is at the top (see   Figure     4.1      ).   




아이폰 IOS는 위와같은 계층으로 구성된다고 한다.

그러나 독자들에게 코코아 터치란,

아직까진 추상적이고 은유로 가득찬 문학서적을 읽는 이해도에 불과할 것이라 생각된다.




하지만 코코아터치 레이어가 무엇으로 이루어져있는지 한 번 보면, 이해가 확 올 것이다.


    The Cocoa Touch Layer   

  The Cocoa Touch layer is made up of several frameworks that will provide the core functionality 

for your applications, including multitasking and advertising in iOS 4.x. UIKit could be described 

as the “rock star,” delivering much more than the UI in its name implies.   

    UIKit   

  UIKit covers a wide range of functionality. It is responsible for application launching and termi-

nation, controlling the interface and multitouch events, and providing access to common views 

of data (including web pages and Word and Excel documents, among others).   

  UIKit is also responsible for many intra-iOS integration features. Accessing the Media Library, 

Photo Library, and accelerometer is also accomplished using the classes and methods within 

UIKit.     

    Map Kit   

  The Map Kit framework enables developers to add Apple’s map views to any application, includ-

ing annotation, location, and event-handling features.     

    Game Kit   

  The Game Kit framework adds network-interactivity to iOS applications. Game Kit supplies 

mechanisms for creating and using peer-to-peer networks, including session discovery, media-

tion, and voice chat. These features can be added to any application or game (or not).     

    Message UI/Address Book UI/Event Kit UI   

  Apple is sensitive to the need for integration between iOS applications. The Message UI, Address 

Book UI, and Event UI frameworks can be used to access mail, contacts, and calendar events 

from any application you develop.     

From the Library of Hyun-Ho CHEAExploring the iOS Technology Layers 101

    iAd   

  The iAd framework supports the addition of ads to your applications. iAds are interactive adver-

tising pieces that can be added to your software with a simple drag and drop. You do not need to 

manage iAds interactions in your application; Apple does this for you. 




아직 공부를 많이 안해서 모르지만,

UIKit는 우리가 맨날 Import 하던 클레스 아닌가...

단지 이 사실만으로도 코코아터치를 이해한 기분이 든다.



보너스 내용

    What’s the Difference Between Cocoa and Cocoa Touch?   

  Cocoa is the development framework used for most native OS X applications. iOS, although 

based on many of the foundational technologies of OS X, isn’t quite the same. Cocoa Touch is 

heavily customized for a touch interface and working within the constraints of a handheld system. 

Desktop application components that would traditionally require extensive screen real estate 

have been replaced by simpler multiple-view components, mouse clicks with “touch up” and 

“touch down” events.   

  The good news is that if you decide to transition from iOS developer to Mac developer, you’ll 

follow many of the same development patterns on both platforms; it won’t be like starting from 

scratch



posted by 네코냥이 2013. 2. 3. 22:34



 개인적으로 e-book을 좋아하는 지라, 컴퓨터 책들도 가끔 이북으로 사곤한다.


하지만, 우리나라에서 나오는 e-book은 약간 출시가 느리다.


더군다나 아이폰 관련 e-book은 몇권되지 않을 뿐더러, 최신판도 나오지 않는다.



---------------------------------------------------------------------------------


 아이폰 프로그래밍을 공부하던 도중 스토리보드에 대해 정보가 필요했고


그 와중에, 스토리보드 강좌를 집필한 블로거 님이 보시는 책에 관심이 갔다.


IOS 5 Application Development in 24Hours 


http://blog.naver.com/taehun3718/140175855452


 강좌를 보고 저 책  IOS6 개정판은 없나 검색했다.


하지만 없었다.


---------------------------------------------------------------------------------


구글링 도중에 같이 튀어나온 녀석


Sams Teach Yourself iOS 6 Application Development in 24 Hours, 4th Edition


하는 수 없이 이 책을 구매하기로 했고,


도착한 싸이트는 InformIT (클릭)


싸이트는 엄청 간단하다.

구조가 너무 심플하길래 사기 싸이튼 줄 알았다. --;...


하지만 구글링, 네이버 검색 결과, 오래전 부터 현존하는 싸이트였다.


---------------------------------------------------------------------------------


구매방법까지는 쓰기는 너무 줄줄이고, e-book으로 구매했다. 

해외로 배송에는 한국은 포함되어 있지 않다.

문제는 e-book 구매에 왜 주소를 써야하는건지...

거기에 유효성 검사는 참 엄격해서, 아무 주소나 써넣어으면 다음단계로 안넘어간다.


VISA, MasterCard, PayPal 등의 카드만 있으면 결제는 어렵지 않다.


결제 후, e-Book 은 상단의 'account' 를 눌르면 구매목록이 나온다.

그런데, 해외라 그런지 다운로드 속도가 무지 느리다... (책 받는데 30분)


참고로, 내가 산책은 PDF, EPUB 두 파일 모두 지원한다.


( 두 파일 모두 용량이 160메가에 달한다. pdf는 그렇다쳐도 

epub를 저용량을 열수있는 리더가 있을지 의문...휴대기기에서 말이죠.)

posted by 네코냥이 2013. 2. 3. 15:38



(이미지 출처: http://starpl.com/jidolstar/11333156 )

UISegmentedControl Class Reference

Overview

UISegmentedControl object is a horizontal control made of multiple segments, each segment functioning as a discrete button. A segmented control affords a compact means to group together a number of controls.


A segmented control can display a title (an NSString object) or an image (UIImage object). The UISegmentedControl object automatically resizes segments to fit proportionally within their superview unless they have a specific width set. When you add and remove segments, you can request that the action be animated with sliding and fading effects.



You register the target-action methods for a segmented control using the UIControlEventValueChanged constant as shown below.

[segmentedControl addTarget:self
                     action:@selector(action:)
           forControlEvents:UIControlEventValueChanged];

How you configure a segmented control can affect its display behavior:

  • If you set a segmented control to have a momentary style, a segment doesn’t show itself as selected (blue background) when the user touches it. The disclosure button is always momentary and doesn’t affect the actual selection.

  • In versions of iOS prior to 3.0, if a segmented control has only two segments, then it behaves like a switch—tapping the currently-selected segment causes the other segment to be selected. On iOS 3.0 and later, tapping the currently-selected segment does not cause the other segment to be selected.



posted by 네코냥이 2013. 2. 3. 10:36

mutable 과 unmutable의 차이점이 무엇인가요? QnA | 기타일반2012.09.23 03:49
답변 1 
조회 58
추천1

mutableArray 랑 Array가 있잖아요~ 

딕셔너리도 그렇고


둘의 차이점이 무엇인가요?? 

데이타를 넣을 수 있고 못 넣고의 차이말고 더 심층적인 답변 부탁드립니다;;

  • 답변 1개

닌자(kdohyun21)
정회원(正) 1:1대화
2012.09.23 08:59
저도 초보개발자라 자세히는 모르는데 배우거나 아는대로 답변해드릴게요.

Mutable속성과 일반 속성이 여러가지 존재하는데요.
NSMutableArray-NSArray (String, Dictionary 등등...)

Mutable속성이 들어간 것은 한번 alloc해서 메모리 할당을 했더라도
 추후에 메모리가 유동적으로 변경될 수 있어요.
예를 들어 MutableArray속성으로 배열을 만들었다면 배열의 크기를
 0으로 잡아도 추후에 addObject메서드로 객체를 추가하여도
자동으로 메모리를 늘려줘서 넣을 수 있어요.
 (자동으로 늘어나는게 10개 단위로 늘어난다고 배웠는데 확실하지 않아요)
이런식으로 Mutable속성을 가진 객체들은 추후 추가 삭제 등 관리가 가능한데요.
일반 속성의 객체들은 한번 설정되면 추후에 변경 수정이 불가능해요.
두가지의 장단점이 있는데요 일반속성의 장점이라면
 메모리 효율성 및 퍼포먼스에서 이익을 볼 수 있어요.
큰 차이점이라고 보면 할당 후에 추후 관리라고 보면 될것 같아요.

'메모 > 아이폰 IOS' 카테고리의 다른 글

[IOS] 코코아 터치란 무엇인가? - 01  (0) 2013.02.03
[eBook] 해외에서 IOS6 관련 서적 구매  (0) 2013.02.03
UISegmentedControl Class Reference  (658) 2013.02.03
아이폰 중급 커리큘럼  (441) 2013.02.03
아이폰 초급 커리큘럼  (427) 2013.02.03
posted by 네코냥이 2013. 2. 3. 09:57

iPhone 하이브리드 앱 개발 실무과정
 
강의안내





개요본강좌는 아이폰과 아이팟 터치용 앱 개발을 위한 실용적인 경험을 제공하며.
 쉽게 따라 해 볼 수 있도록 구성된 여러 샘플 예제를 통해서 Xcode 도구 사용법,
오브젝티브-C, 코어 프레임워크 등을 배우게 된다. 자신도 모르는 사이에 앱 개발에
 필요한 기술은 물론이고 아이튠즈 앱스토어에 앱을 제출하는 과정도 알게 된다.
 아이폰 프로그래밍에 첫 발을 내딛는 입문자 혹은 랭귀지 개발자에게 적합한 교육이다.


Xcode와 인터페이스 빌더 사용법, 오브젝티브-C를 이용한 모델-뷰-컨트롤러 구조,
데이터 입력 인터페이스 구현 및 입력 데이터 핸들링, 다양한 예제를 빌드를 통해
일반적으로 발생하는 문제 해결법, 앱스토어와 임시 배포에 필요한 요구 사항,
 아이폰 가속도계, 근접 센서, 아이폰의 설정 앱 핸들링,이후 아이폰에서의
 SQLite 활용, SQLite 관리 도구 활용, 실전에서 활용 가능한 최적화 기법
 등의 내용을 배우게 됩니다.
교육목표- MAC 사용방법 실습
- Objective-C 프로그램 언어 이해
- Xcode와 인터페이스 빌더 사용법
- 오브젝티브-C를 이용한 모델-뷰-컨트롤러 구조 이해
- 데이터 입력 인터페이스 구현 및 입력 이헤
- 데이터 핸들링 이해
- 앱스토어와 임시 배포에 필요한 요구 사항
- UIKit프레임웍 이해
- 프로토콜, 델리게이트의 이해
- NSXMLParser
- 웹서버와 GET, POST 방식의 통신
- 임베디드 기기를 위한 SQLite 최적화
- SQLite 활용, SQLite 관리 도구 활용 이해
- SQLite 실전에서 활용 가능한 최적화 기법 이해
- 하이브리드앱 개발
교육대상-Objective-C 활용분야에 관심이 있는 자
-Cocoa / Xcode / iPhone 기반 애플리케이션/스마트폰 개발자
-SQLite 개발자
-SDK APP 개발자 
선수학습- c, c++ 
-프로그래밍 초보자
 

교육내용
아이폰 개발 준비- MAC에 대한 개요와 이해
- MAC 사용방법 실습
- 개발자 라이센스 등록 절차 및 인증서 등록
- 앱의 다양한 배포방법(adHoc, Appstore, OTA)
objective-c- objective-c의 개요
- 콘솔창에서 클래스 만들고 gcc로 컴파일하기
- iPhone에 대한 개요과 구조 설명, Xcode 사용방법
- 메모리 관리(수동메모리관리)
- Foundation 프레임웍 개요
- UIKit프레임웍의 개요
- 세터와 게터 만들기
- 프로퍼티에 대한 이해, 점연산자
- 프로퍼티 속성
- 메시지 전달 방식에 대한 이해
- 프로토콜, 델리게이트의 이해 및 실습
iPhone SDK- Xcode에서 프로젝트 설정
- NSLog 및 출력 서식 사용하기
- 인터페이스 빌더, IBOutlet, IBAction에 대해 이해하기
- Immutable, Mutable 클래스의 차이
- MVC, Delegate, SingleTon, Target Action 패턴 이해
- 아이폰의 샌드박스구조에 대한 이해 및 파일처리
- UIButton, UILabel, UIImmageView 실습
- UISwitch, Webkit, UISegmetedControl 실습
- UITextField, UITextView, UISlider 실습
- main 구조파헤치기
- UIApplication 라이프 사이클 이해하기
- UIViewController , UIView 라이프 사이클 이해하기
- UIAlertView, UIActionSheet 실습
- UIPickerView 커스터마이징
- TableView 커스터마이징
- TableView Cell 커스터마이징
- UIKit Frameowork 와 Interface builder의 개연성 이해하기
- NSXMLParser
- 웹서버와 GET, POST 방식의 통신 구현
- Navigation Template 구현하기
- NSConnection을 이용한 ASynchronous 통신
SQLite3- Sqlite3 사용실습
- Sqlite3 사용실습
실무 하이브리드앱 개발- 하이브리드앱 개발
- 하이브리드앱 개발
- 하이브리드앱 개발

posted by 네코냥이 2013. 2. 3. 09:49

iPhone 프로그래밍개발
 

강의안내

교육개요본과정은 iPhone 응용 프로그램 개발의 표준언어인 Objective-C 프로그램을 통해 
Mac OS X용 Cocoa 프로그램 및 iPhone 응용 프로그램을 이해하고 
iPhone SDK(Software Development Kit) 의 손쉬운 접근을 통해 
iPhone 플랫폼의 원리, Mac OS X에 사용되는 추상화 계층 및 디자인 패턴을 응용함
으로써 iPhone 프로그램 개발방법을 학습하고,다양한 상황을 프로젝트 기반으로 
제공하도록 구성하였습니다
교육목표-c, c++의 기본 및 Objective-C 프로그램 언어 이해
-Xcode를 이용해서 iPhone 애플리케이션 제작 
-iPhone SDK 사용방법 및 개발능력강화
교육대상-Objective-C 활용분야에 관심이 있는 자
-Cocoa / iPhone 기반 애플리케이션/스마트폰 개발자
-SDK APP 개발자
선수학습c, c++

 
교육내용
OBJECTIVE-C 프로그램객체지향 개발 

상속과 클래스 

객체 타입과 동적 결합 

레퍼런스 카운트를 이용한 메모리 관리 방식 

가비지 컬렉션 

NSObject 클래스와 런타임 시스템 

주요 FOUNDATION 프레임워크 클래스 
iPhone SDK
-Xcode에서 프로젝트 설정

-기본적인 상호작용 

-사용자 인터페이스, 컨트롤 만들기 

-자동회전과 자동크기조절 

-멀티뷰 애플리케이션 

-탭바와 피커 

-테이블 뷰 입문 

-내비게이션 컨트롤러와 테이블 뷰 

-애플리케이션 설정과 사용자 기본값 

-기본적인 데이터 저장 방법 

-쿼츠와 OpenGL을 이용한 그리기 

-탭, 터치 그리고 제스처 

-코어 로케이션 사용

-가속도 센서사용

-아이폰의 카메라와 포토 라이브러리 

-애플리케이션 지역화