24.08.19 Today I Learned
2024. 8. 19. 20:48
프로젝트를 하다가 같이 공부하면 좋을 부분을 공유하게돼서 공부할 부분을 찾았다.
1. Import Foundation 과 Import UIKit이 뜻하는 바를 알아보기
2. 각 프레임워크가 어떤 기능을 제공하는지 알아보기
3. MVC 패턴 적용중인 프로젝트에서 view파일에 어떤 프레임 워크가 적절한지
4. final 키워드에 대해 알아보고 viewController 앞에 쓰면 어떤 점이 좋은지
5. Generic이 어떤 것인지, 왜 필요한지, 안쓰면 어떻게 되는지.
1. Import Foundation 과 Import UIKit이 뜻하는 바를 알아보기
Import Foundation
- Foundation은 Swift의 기본적인 데이터 구조와 유틸리티를 제공함
- 문자열, 배열, 딕셔너리와 같은 컬렉션 타입, 날짜와 시간 관리, 파일 관리, 데이터 형식 변환, 네트워킹 등 기본적인 기능들이 포함됨
- Apple의 모든 플랫폼에서 사용됨
- 예를 들어, Date, URL, Data, JSONSerialization 등의 클래스나 구조체는 Foundation 프레임워크에서 제공됨
Import UIKit
- UIKit은 주로 iOS 애플리케이션의 사용자 인터페이스를 구축하는 데 사용됨. 이 프레임워크는 화면에 뷰를 표시하고, 터치 이벤트를 처리하며, 뷰 컨트롤러를 통해 화면 간 전환을 관리하는 등 UI 관련 기능을 제공함.
- UIKit에는 버튼, 레이블, 텍스트 필드, 테이블 뷰, 컬렉션 뷰 등 UI 요소와 애니메이션, 제스처 처리, 화면 전환 등의 기능이 포함됨.
- 예를 들어, UIView, UIButton, UILabel, UITableViewController 등의 클래스는 UIKit에서 제공됨.
-> 프로젝트 중 MVC 패턴에서 Model을 다루는 부분에서 Import Foundation을 사용하고 UIKit을 사용하지 않았는데 그 이유였다.
2. 각 프레임워크가 어떤 기능을 제공하는지 알아보기
Foundation은 앱의 기본적인 데이터 처리와 유틸리티 기능을 제공
- 데이터 타입 관리: 문자열(String), 배열(Array), 딕셔너리(Dictionary) 등의 기본 데이터 구조를 제공
- 날짜와 시간: Date, Calendar, DateFormatter 등을 사용하여 날짜와 시간을 처리
- 파일 관리: FileManager를 사용하여 파일과 디렉토리를 생성, 삭제, 이동하는 등의 작업을 할 수 있음
- 네트워킹: URLSession을 통해 인터넷에서 데이터를 주고받는 작업을 수행할 수 있음
- 데이터 변환: JSONSerialization 등을 통해 JSON 데이터를 Swift 객체로 변환하거나 그 반대로 변환할 수 있음
UIKit은 **사용자 인터페이스(UI)**를 만들고 사용자와의 상호작용을 처리하는 기능을 제공
- UI 요소: 버튼(UIButton), 레이블(UILabel), 이미지 뷰(UIImageView), 텍스트 필드(UITextField) 등 화면에 표시되는 UI 요소들을 제공
- 뷰 컨트롤러: UIViewController를 사용하여 화면 간 전환과 화면 내용을 관리
- 제스처 및 터치 이벤트: 터치, 스와이프, 핀치 등의 제스처를 인식하고 처리할 수 있음
- 애니메이션: 뷰의 이동, 크기 조절, 투명도 변화 등을 부드럽게 애니메이션으로 구현할 수 있음
- 자동 레이아웃: 다양한 화면 크기에 맞게 UI 요소들의 위치와 크기를 자동으로 조정할 수 있음
3. MVC 패턴 적용중인 프로젝트에서 view파일에 어떤 프레임 워크가 적절한지
.. 이건 내일 이어서 작성해야겠다
'Today I Learned > 2024' 카테고리의 다른 글
24.08.23 Today I Learned (0) | 2024.08.25 |
---|---|
24.08.20 Today I Learned (0) | 2024.08.20 |
24.08.08 Today I Learned (0) | 2024.08.08 |
24.08.05 Today I Learned (0) | 2024.08.05 |
24.08.02 Today I Learned (0) | 2024.08.05 |