새소식

iOS/클론코딩(입대 전 IOS 맛보기)

[iOS앱개발] #1 명언생성기(UIKit, UIViewController, AutoLayout, IBOulet & IBAction)

  • -

구현 목표 : 버튼을 누를 때마다 랜덤한 명언을 보여준다.


iOS개발 지식 알아보고 구현하기

UIKit, UIViewController, AutoLayout, IBOulet & IBAction 

 

UIKit

 

Cocoa touch Framework : iOS개발환경을 구축하기 위한 최상위 프레임워크로 그 중 가장 많이 사용되는 것은 UIKitFoundation

 

Foundation : 기본적인 데이터타입부터 자료구조, 각종 구조체, 타이머, 네트워크통신, 파일관리등 기본적인 프로그램의 중심을 담당 

UIKit : 사용자의 인터페이스를 관리하고 이벤트를 처리하는 프레임워크

  • 인터페이스 : 테이블뷰, 슬라이더, 버튼, 텍스트필드, 알럿창 등
    • 이벤트 : 제스쳐, 애니메이션, 그림그리기, 이미지처리, 텍스트처리 등

 

 

UIKit 앱의 구조는 기본적으로 MVC디자인 패턴을 사용

 

MVC디자인 패턴

  • Model : 앱의 데이터와 비즈니스로직
  • View : 사용자에게 데이터를 보여주는 UI를 담당
  • Controller : Model과 View의  중간다리 역할
    • View로부터 사용자 액션을 전달받아서 모델에게 어떤 작업을 해야하는지 알려준다.
    • 모델의 데이터변화를 뷰에게 전달하여 뷰를 어떻게 업데이트할지 알려준다.

View와 Model의 상호 의존성을 없애고 Controller가 Model과 View의 중간다리역할을하는것이 이상적인 MVC패턴

 

MVC 디자인 패턴

 

 

현실의 UIKit구조

  • View와 Controller가 강하게 연결되어있어 View와 Controller가 거의 모든 기능을 담당한다.
  • Controller가 View의 라이프사이클을 관여하기 때문에 View와 컨트롤러를 분리하기는 어렵다.
  • 프로젝트 규모가 커질수록 Controller가 비대해지고 내부 구조가 복잡하게 되어 유지보수가 힘들어지는 상황이 발생한다.

이러한 이유 때문에 어느정도 이상의 큰프로젝트들은 다양한 디자인패턴들로 MVC의 단점을 해결하려 한다.

 

 


UIViewController

 

UIView : 화면의 직사각형 영역에 대한 내용을 관리하는 개체

 

UIView는 여러 UI컴포턴트들의 분모클래스

 

UIViewController : 앱의 근간을 이루는 객체로 모든 앱은 최소한 하나 이상의 뷰컨트롤러를 가지고 있다.

  • 데이터 변화에 따라서 view컨텐츠를 업데이트
  • view들과 함께 사용자 상호작용에 응답
  • view를 리사이징하고 전체적인 인터페이스의 레이아웃관리
  • 다른 뷰컨트롤러들과 함께 앱을 구성

AutoLayout

 

AutoLayOut : 제약조건을 이용해서 뷰의 크기와 위치를 지정하는 것으로 아이폰의 다양한 해상도에 대응하기 위한 기능

 

IBOutlet&IBActions

 

IBOutlet  : 스토리보드에 등록한 UIObject를 코드에 변수로 접근 할 수 있게 한다.

IBActions : 버튼과 연동해 이벤트를 처리하는 함수를 생성 할 수 있게 한다.

 

Content Hugging&Compression Resistance

 

UILavel과 UIButton 등 텍스트, 이미지에 따라 크기가 결정되는 View들이 다른 View들 간에 걸린 제약에 의해 본래의 컨텐츠 고유 사이즈보다 늘어나거나 줄어드는데 이를 조정하기위해 사용되는 도구들이 있다.

  • Content Hugging : 늘어나는것에 대해 저항하는 제약으로 우선순위가 높을 수록 크기를 유지하고 낮으면 크기가 늘어난다.
  • Compression Resistance : 줄어드는것에 대해 저항하는 제약으로우선순위가 높으면 자신의 크기를 유지하고 낮으면 크기가 줄어든다.

어플리케이션 구현

 

명언생성기

 


글의 모든 내용은 패스트캠퍼스 강의를 시청하고 작성한 내용입니다.

End

'iOS > 클론코딩(입대 전 IOS 맛보기)' 카테고리의 다른 글

[iOS앱개발] #4 To Do List  (0) 2023.03.21
[iOS앱개발] #3 계산기 앱  (0) 2023.03.21
[iOS앱개발] #2 LED전광판 앱  (1) 2023.03.17
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.