CodeGym/課程/Swift Course

Swift Course

Go from basic syntax to the architecture of high-load applications. 72 levels, 1000+ interactive tasks with instant Code Review. You will learn to write reliable CLI tools, test logic, and work with networking and multithreading using async/await. Take a step into backend development with a fast and memory-safe language where salaries are higher and competition is lower.
4.9
500+ reviews
30k alumni have built IT careers
了解更多
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
  • 遊戲化
  • 激勵講座