はじめに:
- 急速なペースで技術が進化し続ける現代において、ロードマップは静的な文書ではなく動的なものであり、業界の現状を反映したもので、将来の洞察や予測が必要です。
- この文章ではiOS開発の競技場で成功するために必要な知識とツールをまとめようとします。
- 私は全然達者ではありません。今後の学び、振り返り、ビルディングブロック作りで一人を超えた人々参考になればもっとうれしいです。
- 他にもSwiftとObjective-C、UIKitとSwiftUIのようにある程度スタック選択可能、重要度、アドバンテージ性の違いも反映させたい考えです。
- もちろんのことですが全ての知識ではなく幾つかの知識を活かせれば開発に取り組むのが可能なので初心者視点での最短ルートのコンテンツも今後反映します。
- もしも少しても役に立つと思い、コメントいただければ積極的に検討後反映いたします。
下のMarkdownコードはチェックアウトし、XmindかObsidianでカスタマイズ可能です。
iOS Development Roadmap
1. Programming Languages
- Swift
- Basics
- Protocol Oriented Programming
- Associated type
- Generics]]
- Property Wrapper
- Concurrency
- Objective-C
- Memory Management (ARC)
- Objective-C Runtime]]
- Categories and Extensions
- C++
- Object-Oriented Concepts
- STL (Standard Template Library)
- RAII (Resource Acquisition Is Initialization)
2. Coding Fundamentals
- Clean Code
- SOLID
- Design Patterns
- Creational
- Structural
- Behavioral
- Data Structures and Algorithms
3. iOS Development Fundamentals
- Xcode IDE
- App States
- ViewController Lifecycle
- iOS Features
- Push Notifications
- Home Screen Quick Actions
- App Clips
- Widgets
- Deep Links / Universal Links
4. Version Control
- Git Basics
- Commits and Branches
- Merge and Rebase
- Git Workflow
- Branching and Merging
- Feature Branches
- Pull Requests
- Conflict Resolution
- Collaborative Workflows
- Git Collaboration (GitHub, GitLab)
- Git Best Practices
- Code Reviews
- Strategies
- Release Train
- Gitflow
- Trunk-Based
5. Architecture Patterns
- MVC, MVP
- MVVM (Model-View-ViewModel)
- Data Binding
- Reactive Programming
- MVVM in iOS
- VIPER (View-Interactor-Presenter-Entity-Router)
- Modular Design
- Testability
- Coordinator
6. User Interface
- UIKit
- Storyboards and XIBs
- Programmatic Views
- Auto Layout
- Constraints and Priorities
- Stack Views
- Layout Anchors
- Custom UI Components
- UIView Subclasses
- Creating Custom Controls
- Core Graphics for Custom Drawing
- SwiftUI
7. Networking
- HTTP and REST APIs
- HTTP Methods (GET, POST, PUT, DELETE)
- RESTful Web Services
- API Authentication
- URLSession
- Data Tasks
- Download and Upload Tasks
- Background Downloads
- Alamofire Library
- Networking Abstraction
- Request and Response Serialization
- Error Handling and Validation
- GraphQL
- Connectivity status
- NWPathMonitor
- Reachability
8. Data Persistence
- UserDefaults
- Core Data
- Managed Object Model
- Core Data Stack
- Data Fetching and Sorting
- SwiftData
- Realm
- Keychain
- Cloud
- Firebase
- iCloud
9. Memory Management
- ARC (Automatic Reference Counting)
- Strong, Weak, Unowned References
- Reference Cycles (Retain Cycles)
- ARC in Closures
- Memory Leaks
- Identifying Leaks with Instruments
- Deallocating Resources
- Retain Cycles Resolution
- Profiling Tools
- Xcode Instruments
- Memory Debugger
- Allocations and Leaks Instruments
10. Concurrency
- Grand Central Dispatch (GCD)
- Operations
- Async/ Await
11. Reactive Programming
- RxSwift
- ReactiveCocoa
- Combine Framework
- Publishers and Subscribers
- Operators (map, filter, merge)
- Error Handling with Combine
12. Accessibility
- VoiceOver
- Dynamic Type
- Accessibility Audit
13. Debugging
- LLDB Debugger
- Breakpoints
- View Hierarchy Debugger
- Crash Reporting
- Crash Logs and Diagnostics
- Symbolication
- Analyzing Crash Reports
14. Building Process
- Xcode Build Settings
- Build Configurations
- Build Settings / Phases / Rules
- Scheme / Target
- Preprocessor Macros
- Build Settings Inheritance
- Build Configurations
- Code Signing
- Code Signing Identities
- Provisioning Profiles
- Code Signing in Xcode
- Continuous Integration (CI/CD)
15. Performance
- Instruments Profiling
- CPU / Memory / Disk / Network
- App Optimization
- Performance Analysis
- Code Optimization
- Network Performance
- Caching Strategies
- Data Caching
- Image Caching
- Cache Management
16. Dependency Managers
- CocoaPods
- Carthage
- Swift Package Manager
- Package.swift File
- Dependencies and Targets
- SPM in Xcode Projects
17. Framework Creation
- Creating Custom Frameworks
- Framework Structure
- Static Library / Framework / XCFramework
- Public and Private APIs
- Module Setup
- Framework Structure
- API Design
- Design Guidelines
- Versioning and Stability
- Documentation Practices
- Documentation
- Header Documentation
- Markdown Documentation
- Jazzy Documentation Generation
18. Analytics
- Integrating Analytics Tools
- Google Analytics
- Firebase Analytics
- Mixpanel Integration
- User Behavior Analysis
- Event Tracking
- User Segmentation
- Conversion Tracking
- A/B Testing
- Experiment Design
- A/B Testing Tools
- Data-Driven Decisions
- New Relic
19. Testing
- Unit Testing
- XCTest
- Mocking Dependencies
- UI Testing
- XCUI Testing
- UI Test Automation
- UI Test Strategies
- Test-Driven Development (TDD)
- TDD Principles
- Red-Green-Refactor Cycle
- TDD in Practice
- Beta Testing
- TestFlight
- Firebase App Distribution
20. Security
- Data Storage
- Encrypt Data
- CommonCrypto
- CryptoKit
- Encrypt Data
- App Permissions
- Privacy Settings
- Permission Requests
- Handling Denials
- Communications
- App Transport Security Settings
- Exception Domains
- SSL Pinning
- App Transport Security Settings
- Identity and Access Management
- Touch ID / Face ID
- Server-Sid Token Validation
- Code
- Avoid Injection Attacks
21. Internationalization
- Localizations
- Localizable Strings
- Pluralized Strings
- Date and Number Formatting
- DateFormatter and NumberFormatter
- Locale Settings
- Custom Formatting
22. Continuous Integration
- CI Tools
- Jenkins
- TravisBuilds
- GitHub Actions
- App Center
- Device Farms
- AWS Device Farm
- Firebase TestLab
- BrowserStack
- Fastlane
- SwiftLint
23. App Distribution
- App Store Submission
- App Store Connect
- App Submission Process
- App Review Guidelines
- Ad Hoc Distribution
- Provisioning Devices
- Ad Hoc Builds
- Testing on Devices
- Enterprise Distribution
- In-House Apps
- Enterprise Certificates
- Enterprise App Deployment
- MDM
- Airwatch
- Intune
24. Keep Learning
- Stay Updated
- Apple WWDC
- iOS News and Blogs
- Twitter iOS Community
- Online Courses
- Coursera and edX
- iOS Development Courses
- Swift Programming Tutorials
- Conferences and Meetups
- Attending Tech Conferences
- Local iOS Developer Meetups
- Networking and Learning
参考文献:
https://medium.com/@andres.carort/ios-developer-roadmap-2023-330fd5cb7479