[TIL] 앱개발 입문 시작하기

남보경·2023년 7월 31일
2

TIL

목록 보기
2/10
post-thumbnail

이전까지는 swift 문법을 배웠고 오늘부터는 본격적으로 Xcode를 이용한 앱개발 입문과정이 시작됐다.
새로운 개념들이 비수가 되어 내 머리에 꽂히고 있지만,,,, 일단은 내 머리가 밑 빠진 독이든 말든 쑤셔 넣고 있다.
익숙하지 않은 개념들을 좀 더 정리해보고자 한다.

UIView

UI는 User Interface로 사용자가 어플상에서 마주치게 되는 요소들, 화면을 말한다

  • UIView는 화면에 보이는 모든 요소들의 클래스기 때문에 모든 종류의 시각적 요소들은 UIView의 하위클래스(subClass)가 된다.
  • UIView 자체는 아무 것도 나타내지 않기 때문에 override 등을 이용해서 시각적 요소를 개발자의 입맛에 맞게 구성할 수 있다.
  • 위치나 크기를 조절할 수 있으며 배경색이나 애니메이션 효과를 구현할 수 있다.
    (frame, bound, center, backgroundColor, alpha, layer, UIView.animate, UIViewPropertyAnimator 등)
  • 계층적 구조를 통해서 superview, subview로 정의하면서 조화롭게(?) 화면의 인터페이스를 그려낸다(addSubview(_:))활용, Auto layout을 이용하면 위치나 크기를 고정할 수 있다.
  • Storyboard에서는 기본적인 구성요소다.
// UIView 객체 생성
let myUIView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

// 배경색상 설정하기 
myUIView.backgroundColor = UIColor.white

// 생성된 뷰를 서브뷰로 추가
self.view.addSubview(myUIView)

// frame을 이용한 뷰의 위치 및 크기 변경
myUIView.frame = CGRect(x: 50, y: 50, width: 200, height: 200)

UIViewController

(UIViewController,UITableViewController,UICollectionViewController, Container ViewController 등)

  • UI를 관리하는데 사용하며, UIViewController의 객체를 생성할 수 있다.
  • 한 UIViewController 객체로 여러 UIView들을 관리하고, 사용자가 어플을 사용하는 사용자 상호작용을 처리한다(User Interaction/ 예시: 화면 터치, 드래그 등)
  • 다른 UIViewController와 데이터를 공유할 수 있다.
  • 생성하는 방법은 스토리 보드로 생성하거나, 생성자 코드를 이용한 객체 생성 방법 이렇게 두 가지
  • 하나 이상의 UIView 객체와 연결되어야 하기 때문에 self.view와 같이 property를 가지고 있는데 이 view를 통해 UIView를 상속하는 UI 요소(components)들을 하위 View로 배치할 수 있다
  • 생명주기를 통해서 다양한 method와 함께 관리할 수 있다.(viewDidLoad())

Container view controller

종류 - (UISplitViewController - iPadOS에서 많이 쓰임, UINavigationController, UITabBarController, UIPageViewController)

  • Content view controller를 포함하고 있는 View controller다. -> 그래서 Content view controller가 무엇인고 하니 UIViewController와 유사한 역할을 하는데, 화면에 표시될 내용의 구성을 담당하는 것이고 데이터를 표시하면서 사용자 상호작용을 처리한다.
profile
꿈꾸자 그리고 그것을 이뤄내자

5개의 댓글

comment-user-thumbnail
2023년 7월 31일

저도 오늘 같은 내용 공부했는데 덕분에 한번 더 머릿속에 정리가 되고 복습하는 효과가 있었습니다, 감사합니다! 앞으로도 좋은 포스팅 부탁드려요~ :)

1개의 답글
comment-user-thumbnail
2023년 7월 31일

오... container ViewController가 따로 있었는지는 몰랐네요!
깔끔하게 정리해주셔서 감사드립니다~

1개의 답글