Detailed training program
- Commands and your first Swift program
- Variables, constants (let/var), and basic typing
- Working with integers, strings, and data input
- Conditional statements and basic logic
- Loops and control flow
- Installing an IDE, SDK, Noctule, and project setup
- Strings: operations, formatting, split, and trim
- Switch and ranges: basic pattern matching
- Functions: parameters, labels, inout, and tuple returns
- Optionals in depth: if let, guard let, ??, chaining
- Array: basics
- Array Under the Hood: ArraySlice, COW (Copy-On-Write), and operation costs
- Dictionary: key-value and frequency maps
- Set and tuples
- Strings Under the Hood: Character, indices, and Substring
- Closures I: syntax, map, filter, compactMap
- Closures II: reduce, pipelines, and code readability
- Sequence and Collection protocols, lazy evaluation
- Comparing and sorting: Equatable, Comparable, binary search
- Recursion and algorithmic problem breakdown
- Array algorithms: two pointers, sliding window, prefix sums
- Dictionary and Set algorithms: hashing, grouping, indexing
- Struct I: struct basics, data, and methods
- Struct II: computed properties, observers, and type design
- Enum I: basics, raw values, CaseIterable
- Enum II: associated values for states and commands
- Optionals deep dive: binding, chaining, map, flatMap
- Initialization: failable init (?) and Value Objects
- Errors I: Error protocol, throws, try, do/catch
- Errors II: try?, try!, handling layers, and error UX
- Control flow: Result, defer, assert, precondition
- Dates and time: Date, Calendar, formatting (ISO8601)
- CLI I: command-line argument parsing and tokenization
- CLI II: regular expressions (Regex) and validation
- Memory management: Value vs Reference semantics
- Class: basics, init, deinit, object identity
- ARC: memory ownership, retain cycles, weak, unowned
- Closures in memory: escaping and capture lists
- OOP: inheritance, composition, and type casting
- Protocols I: contracts, composition, and any
- Protocols II: default implementations and POP (Protocol-Oriented Programming)
- Extensions and introduction to Generics
- Generics I: constraints (where), algorithms, and rethrows
- Generics II: Stack practice, invariants, Hashable
- Advanced protocols: associatedtype, Comparable, ID
- Type Erasure: Existentials and architecture basics
- Architecture: DTO, Domain, error routing, and module boundaries
- SwiftPM I: targets, dependencies, build, run, test
- SwiftPM II: Access control, SemVer, and local packages
- Engineering: API design, documentation, and Git basics
- CI/CD basics: GitHub and introduction to XCTest
- Testing I: AAA pattern, testable, table-driven tests
- Testing II: Mocks and interaction tests
- Engineering: debugging strategies and logging infrastructure
- File system: FileManager, paths, and data-dir
- Text files: I/O operations, UTF-8, CSV, streaming
- Binary files: Data, bytes, hex dump, chunked I/O
- Parsing I: JSON, basic Codable
- Parsing II: advanced Codable (CodingKeys, strategies)
- Data: schemaVersion, migrations, and validation
- Data: Repository pattern, backup, reliable writing
- Indexing, mini-profiling, and HTTP basics
- Network I: URLSession, URLRequest, URLComponents
- Network II: Endpoint builder, DTO mapping, intro to async/await
- Async/Await I: Task, cancellation, timeouts
- Network III: fault tolerance, retry, mocks, and async testing
- Network IV: caching, rate limiting, and pipelines
- Concurrency I: async let and structured concurrency
- Concurrency II: TaskGroup, priorities, and limits
- Concurrency III: Actors, Sendable, state isolation, reentrancy
- Concurrency IV: AsyncSequence, AsyncStream, buffering
- CLI Finalization: progress indication, unsafe memory, optimization, and cross-compilation
360+
課程
1000+
練習題
72
測驗
此外:
- 即時任務驗證
- AI 程式碼驗證器
- IDE 外掛
- WebIDE
- 遊戲化
- 激勵講座