-독학으로 IOS 개발을 배우다 보니 자신이 어느 지점에 있는지, 앞으로 어떤 것을 배워야 할지 가늠하기가 힘들다.
그래서 로드맵을 찾다보니 좋은 IOS 개발자 학습 로드맵 강의가 있어서 정리해본다.(모두 필수적으로 따라야 하는 길이 아니라 나의 목표와 위치를 파악하거나, 내게 필요한 개념이 무엇일지 등의 생각에 참고용으로 보면 좋을 것 같다.)
-로드맵이기도 하지만 이 지도는 앱을 설계하고, 디자인 등의 과정들을 모두 거쳐 앱스토어에 배포하기까지의 과정에 요구되는 정보?들이라고 봐도 될 것 같다.
IOS 개발자 로드맵 이전에 모든 개발자가 공통적으로 학습해야 하는 부분
1. 데이터 구조와 알고리즘
2. 기본 터미널 사용방법
3. 깃사용과 버전 컨트롤 사용방법
4. SSH
5. HTTP/HTTPs 그리고 API 호출 방법
6. 내가 필요한 부분을 캐치하고, 학습할 수 있는 능력
7. Character Encodings
8. Github 사용방법
IOS 개발자 로드맵
-먼저 개발을 하기 위해서는 크게 개발 툴, 개발 언어, 개발 프레임워크에 대해서 알아야 한다. (ex) xcode, swift, cocoa touch)
-IOS 버전의 HIG(Human Interface Guideline) 꼭 읽어보기!
IOS 기술
1. APP Architect
2. APP Life-Cycle
3. View - ViewCOntroller Programming - Auto Layout
4. Multi-Touch Event Handling
Cocoa Design Patterns
1. MVC(Model-View-Controller) 패턴
2. Singleton 패턴
3. Delegate 패턴
4. Responder Chain 패턴
5. Observer 패턴
Network Programming
1. RESTful API
2. TCP/IP Socket API
Swift와 Objective - C 언어를 나누어서 배우기보다는 각자 개발에 필요한 개념들을 모아서 배우는 것이 중요
1. Manual Memory Management - ARC를 통한 강한 참조, 약한 참조, 미소유 참조 개념 등
2. Protocol - Oriented Programming - Generics, Value Semantics
3. Concurrent Programming - GCD와 DispatchQueue
Reactive Programming을 위한
1. Combine - SwiftUI
2. RxSwift - VIPER, MVVM 패턴 ReactorKit
Data persistence : 데이터들을 어디에 저장하고, 어떤 구조로 저장할 것인지 등에 관한
1. Realm
2. Serialize - JSON, Keychain, PList
3. KeyedArchiver
4. Clout - ICloud, Firebase
Project와 Workspace : 프로젝트 관리 차원
1. Build Config
2. Target
3. Scheme
Package Manager
1. Swift Package Manager
2. CocoaPods
3. Carthage
Instruments
1. Allocations
2. Leaks
3. Time Profile
Testing
1. XCTest - TDD, Quick / Nimble
2. UI Test
3. Code Coverage
Debugging
1. LLDB
2. Break - Pointer : 매우 유용하다.
3. Visual Debugging : 매우 좋아졌고, 거의 필수적
Build와 Deployment (빌드와 배포의 단계)
1. CI - Fastlane : 가장 많이 쓰이는?
- Travis
- bitrise
2. Analytic Tools (사용성 분석)
1. GA
2. Firebase - Crashlytics
3. TestFlight
4. UserHabit
참고:
'강의 정리' 카테고리의 다른 글
앱으로 문제 해결하는 순서와 방법(강의 정리) (0) | 2023.05.27 |
---|---|
HTTP에 관하여 (0) | 2023.03.30 |
그런 REST API로 괜찮은가 (1) | 2023.03.19 |
TCP/IP (Transmission Control Protocol/Internet Protocol) (0) | 2022.09.29 |
OSI 7 Layer (0) | 2022.09.29 |