주니곰의 괴발노트
SeSAC TIL - 22.07.05 본문
1. 오늘 배운 내용
- iOS의 계층 구조, Framework 등에 대해서 학습하였습니다.
- Core OS -> Core Service -> Media -> Cocoa Touch(UIKit 포함) 의 순서로 계층이 구성되어 있습니다
- Core OS - Hardware와 가까이 있는 최하위 계층으로 보안, 접근, 네트워크 등을 담당합니다.
- Core Service - 조도센서, GPS, 중력가속도센서 등 기기의 움직임이나 Hardware의 특성에 기반한 기능을 제공합니다.
- Media - 음악, 비디오 등을 재생할 때 사용되고 그래픽이나 Media 관련 기능을 제공합니다.
- Cocoa Touch - Apple Platform에서 App을 제작하기 위한 도구 모음으로 화면의 터치기능이나 UI등을 포함하고 있습니다.
2. Checklist
2-1. UIKit
iOS나 tvOS 등에서 그래픽, 이벤트 동작 기반 인터페이스를 설계하고 관리할 수 있게 해주는 Framework입니다. 인터페이스를 구성하기 위해 화면과 여러 UI관련 기능, 이벤트 동작을 처리하는 기반을 제공합니다. Main Run Loop를 제공하여 사용자와 앱, 시스템간의 상호작용을 관리하기도 합니다.
2-2. UIViewController
인터페이스를 관리하고 App의 컨텐츠를 탐색할 수 있게 해줍니다. 단일 Root View를 관리하며 Root View에 여러 Subview를 넣을 수 있습니다. 모든 App에는 최소 한 개의 View Controller가 있으며, 한 화면에 담을 수 없는 양의 컨텐츠가 있을 경우 여러 View Controller를 만들어 여러 종류의 컨텐츠를 관리할 수 있습니다. 생성하는 방법은 Xcode 우측 상단의 + 버튼을 눌러 생성합니다.
2-3. UIView
사용자 인터페이스의 기본 구성 요소이며 직사각형 내의 콘텐츠를 렌더링하며, 상호 작용합니다. View를 서브클래스하여 레이블, 이미지, 버튼 등 UIKit에서 제공하는 기능을 활용할 수도 있습니다. 생성하는 방법은 View Controller와 유사합니다.
2-4. @IBOutlet
Storyboard에 있는 Label, View, Button 등과 연결이 가능하며 연결 후에는 코드를 통해 각 요소들의 형태나 색 등을 변경할 수 있습니다. 항상 사용 전에는 각 요소들이 확실하게 연결되어 있는지 확인해야 하며 연결이 끊어졌을 경우 에러가 발생할 수 있습니다. 앞의 @는 컴파일러에게 어떤 속성을 가지고 있다고 전하는 역할을 하는 예약어입니다.
2-5. @IBAction
IBOutlet과 마찬가지로 Storyboard에 있는 요소들과 연결할 수 있으며, 어떤 동작을 감지헀을 때 IBAction 내부의 코드를 실행합니다. Output이 Void이기 때문에 return값을 넣을 수 없습니다.
3. 과제 및 실습
구성한 화면을 코드로 속성 조절하기(Netflix, 배달의 민족)
Netflix
- 최하단 Image View를 원형으로 만들기 위해 높이 / 2 적용
- 이미지 중복을 막기 위해 배열을 섞은 후, 0번 Index부터 차례대로 이미지 삽입
- 재생버튼 누를 경우, 이미지 4개가 랜덤 적용되도록 Action 버튼 생성
- 이미지 중복을 막기 위해 배열을 섞은 후, 0번 Index부터 차례대로 이미지 삽입
배달의 민족
- 앱을 실행 시킬 때마다 랜덤으로 이미지가 변경되도록 구성
- 이미지 중복을 막기 위해 배열을 섞은 후, 0번 Index부터 차례대로 이미지 삽입
4. 자료 출처
구글 검색어: what is uikit -> https://developer.apple.com/documentation/uikit
2-1의 이미지 출처 -> https://developer.apple.com/documentation/uikit/about_app_development_with_uikit
https://developer.apple.com/documentation/uikit/view_controllers
https://developer.apple.com/documentation/uikit/uiview
구글 검색어: iboutlet -> https://etst.tistory.com/74
구글 검색어: iboutlet -> https://www.hackingwithswift.com/example-code/xcode/what-is-an-iboutlet
'기타' 카테고리의 다른 글
SeSAC TIL - 22.07.11 (0) | 2022.07.17 |
---|---|
SeSAC TIL - 22.07.08 (0) | 2022.07.17 |
SeSAC TIL - 22.07.07 (0) | 2022.07.14 |
SeSAC TIL - 22.07.06 (0) | 2022.07.13 |
SeSAC TIL - 22.07.04 (0) | 2022.07.13 |