λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
🍎 iOS/UIKit

[iOS] iOS μ•± 개발 ν”„λ ˆμž„μ›Œν¬ - CocoaPod, UIKit, Foundation

by Danna 2021. 6. 13.
728x90
728x90

Cocoa Touch, UIKit, Foundation - iOS μ•± κ°œλ°œμ— ν•„μš”ν•œ ν”„λ ˆμž„μ›Œν¬


 

iOS μ•± ν”„λ‘œκ·Έλž˜λ°

λΆ€μŠ€νŠΈμ½”μŠ€ 무료 κ°•μ˜

www.boostcourse.org

 

1μž₯μ—μ„œ μŒμ•…μž¬μƒ 앱을 λ§Œλ“€λ©΄μ„œ μ•„λž˜μ˜ λ‚΄μš©λ“€μ„ ν•™μŠ΅ν–ˆμŠ΅λ‹ˆλ‹€.

 

  • 에셋(Asset) - μ•± μ•„μ΄μ½˜, 이미지 파일, 데이터 νŒŒμΌμ„ 관리, μ•± μ‹€ν–‰μ‹œ νŒŒμΌμ— μ‰½κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ 도와쀀닀.
  • μ•± μ‹œλ‹(App thinning)κ³Ό μ•± μŠ¬λΌμ΄μ‹±(App slicing) - λ‹€μ–‘ν•œ λ””λ°”μ΄μŠ€μ—μ„œ λΉ λ₯΄κ²Œ λ‹€μš΄λ‘œλ“œν•  수 μžˆλ„λ‘ ν•˜λŠ” μ΅œμ ν™” 기술 
  • Cocoa Touch, UIKit, Foundation - iOS μ•± κ°œλ°œμ— ν•„μš”ν•œ ν”„λ ˆμž„μ›Œν¬ 
  • UI λ₯Ό κ°œλ°œν•˜κ³  Autolayout 을 μ μš©ν•˜λŠ” 방법 - μΈν„°νŽ˜μ΄μŠ€ λΉŒλ” vs μ½”λ“œλ‘œ μž‘μ„±
  • iOS의 View 체계 - λ·° 계측, 뷰의 μ’Œν‘œ, ν”„λ ˆμž„ vs λ°”μš΄λ“œ, λ·° 계측 디버깅 툴
  • λ””μžμΈ νŒ¨ν„΄κ³Ό MVC νŒ¨ν„΄ - μ‹±κΈ€ν„΄ νŒ¨ν„΄κ³Ό μ•±κ°œλ°œμ—μ„œμ˜ MVC νŒ¨ν„΄μ„ μ€‘μ μ μœΌλ‘œ
  • AVAudioPlayer, Timer - μŒμ•… νŒŒμΌμ„ μž¬μƒν•˜κΈ° μœ„ν•œ AVAudioPlayer, μ‹œκ°„μ΄ˆλ₯Ό 재기 μœ„ν•œ Timer

 

πŸ’‘ Cocoa Touch, UIKit, Foundation

μ½”μ½”μ•„ ν„°μΉ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λŠ₯ κ΅¬ν˜„μ— ν•„μš”ν•œ UIKit, Foundation 등을 ν¬ν•¨ν•˜λŠ” μ΅œμƒμœ„ ν”„λ ˆμž„μ›Œν¬ 계측이닀. UIKit 은 iOS μ•± κ°œλ°œμ‹œ μ‚¬μš©μžμ—κ²Œ λ³΄μ—¬μ§€λŠ” ν™”λ©΄(λ·°)λ₯Ό κ΅¬μ„±ν•˜κ³ , μ‚¬μš©μž μ•‘μ…˜ λ“±μ˜ 이벀트λ₯Ό κ΄€λ¦¬ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μ΄λ‹€. Foundation ν”„λ ˆμž„μ›Œν¬λŠ” iOS μ•±μ˜ 운영체제 μ„œλΉ„μŠ€, κΈ°λ³Έ κΈ°λŠ₯을 ν¬ν•¨ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μ΄λ‹€.

πŸ«β˜•οΈ CocoaλΌλŠ” 이름은 κ·Έλ‹Ήμ‹œ μ§€κΈˆ μ΄μƒμœΌλ‘œ ν•«ν–ˆλ˜ 언어인 Javaκ°€ μ»€ν”Όμ›μ‚°μ§€μ—μ„œ λ”°μ˜¨ 이름이기 λ•Œλ¬Έμ—, Apple κ°œλ°œμžλŠ” 어린아이도 ν•  수 μžˆλŠ” μžλ°”(Java for kids)λΌλŠ” μ˜λ―Έμ—μ„œ Cocoa라고 μ΄λ¦„μ§€μ—ˆλ‹€κ³  ν•œλ‹€

μ½”μ½”μ•„ ν„°μΉ˜ 이미지 - [좜처: λΆ€μŠ€νŠΈμ½”μŠ€ κ°•μ˜]

 

βœ”οΈŽ UIKit ν”„λ ˆμž„μ›Œν¬

UIKit 은 iOS μ•± κ°œλ°œμ‹œ μ‚¬μš©μžμ—κ²Œ λ³΄μ—¬μ§ˆ 화면인 λ·°λ₯Ό κ΅¬μ„±ν•˜κ³  μ‚¬μš©μž μ•‘μ…˜ λ“± 이벀트λ₯Ό κ΄€λ¦¬ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μ΄λ‹€. ν„°μΉ˜λ‚˜ 제슀처 처리, μ• λ‹ˆλ©”μ΄μ…˜, κ·Έλ¦Ό 그리기, μ΄λ―Έμ§€λ‚˜ ν…μŠ€νŠΈ 처리 λ“± μ‚¬μš©μž 이벀트 처리λ₯Ό μœ„ν•œ 클래슀λ₯Ό ν¬ν•¨ν•˜λ©°, TableView, Slider, Button, Text Field, Alert λ“± μ•±μ˜ 화면을 κ΅¬μ„±ν•˜λŠ” μš”μ†Œλ₯Ό ν¬ν•¨ν•œλ‹€. UIKit 클래슀 쀑 UIResponder μ—μ„œ νŒŒμƒλœ 클래슀 or μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ— κ΄€λ ¨λœ ν΄λž˜μŠ€λŠ” μ•±μ˜ 메인 μ“°λ ˆλ“œ(or Main Dispatch Queue) μ—μ„œλ§Œ μ‚¬μš©ν•΄μ•Όν•œλ‹€. 

 

UIKit ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ™€ κ΄€λ ¨λœ 클래슀

 

  • View and Control : 화면에 μ½˜ν…μΈ λ₯Ό ν‘œμ‹œν•œλ‹€. Control = Button, Slider .. λ“± μ‚¬μš©μžκ°€ μ»¨νŠΈλ‘€ν•  수 μžˆλŠ” 것
  • View Controller : μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•œλ‹€.
  • Animation and Haptics : μ• λ‹ˆλ©”μ΄μ…˜κ³Ό 햅틱을 ν†΅ν•œ ν”Όλ“œλ°± 제곡
  • Window and Screen : λ·° 계측을 μœ„ν•œ μœˆλ„μš° 제곡 

 

UIKit ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ‚¬μš©μž μ•‘μ…˜κ³Ό κ΄€λ ¨λœ κΈ°λŠ₯

 

  • Touch, Press, Gesture : 제슀처 인식을 ν†΅ν•œ 이벀트 처리 κΈ°λŠ₯
  • Drag and Drop : ν™”λ©΄ μœ„μ—μ„œ λ“œλž˜κ·Έ μ•€ λ“œλ‘­ κΈ°λŠ₯
  • Peek and Pop : 3D ν„°μΉ˜μ— λŒ€μ‘ν•œ 미리 보기 κΈ°λŠ₯
  • Keyboard and Menu : ν‚€λ³΄λ“œ μž…λ ₯ 처리 / μ‚¬μš©μž μ •μ˜ 메뉴 ν‘œμ‹œ

 

πŸ‘€ iOS μ•± ν”„λ‘œμ νŠΈμ—μ„œ ViewController νŒŒμΌμ„ μƒμ„±ν•˜λ©΄ UIKit λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžλ™μœΌλ‘œ μ™œ μΆ”κ°€λ κΉŒ?

ViewController 의 μƒμœ„ ν΄λž˜μŠ€λŠ” UIViewController 둜 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” 역할을 ν•œλ‹€. μ΄λŸ¬ν•œ UIViewController λŠ” UIKit ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ •μ˜λœ 클래슀이기 λ•Œλ¬Έμ—, λ‹¨μ§μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. λ§Œμ•½ UIKit 을 import ν•˜μ§€ μ•Šκ³ , UIViewController λ₯Ό μƒμ†λ°›μœΌλ €κ³  ν•œλ‹€λ©΄, μ»΄νŒŒμΌλŸ¬λŠ” μ–΄λ–€ 역할을 ν•˜λŠ” ν΄λž˜μŠ€μΈμ§€ μ•Œ 수 μ—†λ‹€.

πŸ’‘ UIViewController :: An object that manages a view hierarchy for your UIKit app.

 

 

βœ”οΈŽ Foundation ν”„λ ˆμž„μ›Œν¬

Foundation μ—μ„œ μ œκ³΅ν•˜λŠ” 데이터 νƒ€μž…(Number, Data, String), μ»¬λ ‰μ…˜ νƒ€μž…(Array, Dictionary, Set), μ»¬λ ‰μ…˜ μ—°μ‚°(Filter, Sorting)의 λŒ€λΆ€λΆ„μ€ Objective-C μ–Έμ–΄μ—μ„œ μ§€μ›λ˜μ§€ μ•ŠλŠ” κΈ°λŠ₯을 λ³΄μ™„ν•˜κΈ° μœ„ν•œ κ΅¬ν˜„μ΄λ‹€. Swift μ—μ„œλŠ” κΈ°λ³Έ 데이터 νƒ€μž…κ³Ό κΈ°λŠ₯ λŒ€λΆ€λΆ„μ„ Swift ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ œκ³΅ν•˜λ―€λ‘œ, Foundation ν”„λ ˆμž„μ›Œν¬λ₯Ό μΆ”κ°€ν•˜μ§€ μ•Šμ•„λ„ μ‚¬μš©ν•  수 μžˆλ‹€.

 

κ·Έ μ™Έ, μ•„λž˜μ˜ κΈ°λŠ₯듀을 μ œκ³΅ν•œλ‹€.

 

  • Data and Time : λ‚ μ§œμ™€ μ‹œκ°„ 계산, 비ꡐ
  • Unit and Measurement : 물리적 μ°¨μ›μ΄λ‚˜ λ‹¨μœ„λ₯Ό λ³€ν™˜ν•  수 μžˆλŠ” κΈ°λŠ₯
  • Data Formatting : 숫자, λ‚ μ§œ 등을 λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜κ±°λ‚˜ λ°˜λŒ€λ‘œ λ³€ν™˜ν•˜λŠ” κΈ°λŠ₯

 

* 일반 Swift 파일 ν˜Ήμ€ Playground ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜λŠ” 경우, 'import Foundation' 이 기본적으둜 λͺ…μ‹œλ˜μ–΄ μžˆλ‹€.

* UIKit ν”„λ ˆμž„μ›Œν¬μ—μ„œ Foundation ν”„λ ˆμž„μ›Œν¬λ₯Ό import ν•˜κ³  μžˆμœΌλ―€λ‘œ, UIKit 을 μΆ”κ°€ν–ˆλ‹€λ©΄ Foundation 을 λ³„λ„λ‘œ μΆ”κ°€ν•˜μ§€ μ•Šμ•„λ„ κΈ°λŠ₯을 μ΄μš©ν•  수 μžˆλ‹€.

728x90
728x90