iOS

āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠāļīāļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨ

Protocols, extensions, default implementations, PATs, protocol composition, type erasure

20 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

Protocol āđƒāļ™ Swift āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Protocol āļāļģāļŦāļ™āļ”āļŠāļļāļ”āļ‚āļ­āļ‡āļžāļĢāđ‡āļ­āļžāđ€āļžāļ­āļĢāđŒāļ•āļĩāđ‰āđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āļ—āļĩāđˆ type āļŦāļ™āļķāđˆāļ‡āļ•āđ‰āļ­āļ‡āļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™ āļĄāļąāļ™āļ—āļģāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļŠāļąāļāļāļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡ protocol āļāļąāļš type āļ—āļĩāđˆāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļ™ Protocol āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļīāļĒāļēāļĄ interface āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļĨāļģāļ”āļąāļšāļŠāļąāđ‰āļ™āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ” āļŠāđˆāļ‡āđ€āļŠāļĢāļīāļĄāļāļēāļĢāļ›āļĢāļ°āļāļ­āļšāđāļĨāļ°āļāļēāļĢāļ™āļģāđ‚āļ„āđ‰āļ”āļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđƒāļŦāļĄāđˆ

2

āļāļēāļĢāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļš protocol āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

āļāļēāļĢāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļē type āļŦāļ™āļķāđˆāļ‡ (class, struct āļŦāļĢāļ·āļ­ enum) āļ™āļģāļžāļĢāđ‡āļ­āļžāđ€āļžāļ­āļĢāđŒāļ•āļĩāđ‰āđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ—āļĩāđˆ protocol āļ•āđ‰āļ­āļ‡āļāļēāļĢāļĄāļēāđƒāļŠāđ‰āļ‡āļēāļ™ type āļŦāļ™āļķāđˆāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļšāļŦāļĨāļēāļĒ protocol āļžāļĢāđ‰āļ­āļĄāļāļąāļ™āđ„āļ”āđ‰ āļāļēāļĢāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļŠāļĢāđ‰āļēāļ‡āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļ‚āļ­āļ‡ type āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ­āļīāļŠāļĢāļ°āļˆāļēāļāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”

3

Protocol extension āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Protocol extension āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļŦāļē default implementation āđƒāļŦāđ‰āļāļąāļšāđ€āļĄāļ˜āļ­āļ”āļ‚āļ­āļ‡ protocol āđ„āļ”āđ‰ āļ—āļļāļ type āļ—āļĩāđˆāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļˆāļ°āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ™āļīāļĒāļēāļĄāđƒāļŦāļĄāđˆ āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āļŠāđˆāļ‡āđ€āļŠāļĢāļīāļĄāļāļēāļĢāļ™āļģāđ‚āļ„āđ‰āļ”āļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđƒāļŦāļĄāđˆāđāļĨāļ°āļĨāļ” boilerplate āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĄāļēāļ

4

āļˆāļ°āļ™āļīāļĒāļēāļĄ protocol āļ—āļĩāđˆāļĄāļĩāļžāļĢāđ‡āļ­āļžāđ€āļžāļ­āļĢāđŒāļ•āļĩāđ‰āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

5

āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ” protocol āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

+17 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ iOS āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ Swift

Junior
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™āļ āļēāļĐāļē Swift

Junior
15 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ UIKit

Junior
18 āļ„āļģāļ–āļēāļĄ

āļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āļ‚āļ­āļ‡ UIViewController

Junior
20 āļ„āļģāļ–āļēāļĄ

UserDefaults & Keychain

Junior
20 āļ„āļģāļ–āļēāļĄ

āļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

Junior
20 āļ„āļģāļ–āļēāļĄ

Auto Layout & Constraints

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

UITableView & UICollectionView

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ SwiftUI

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ State āđƒāļ™ SwiftUI

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ™āļģāļ—āļēāļ‡ SwiftUI

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Networking & URLSession

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Codable āđāļĨāļ°āļāļēāļĢāđāļĒāļāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ JSON

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Core Data

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄ MVVM

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āđāļšāļš Push

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Unit Testing āđāļĨāļ° XCTest

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļš UI

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Xcode āđāļĨāļ°āļĢāļ°āļšāļš Build

Mid-Level
16 āļ„āļģāļ–āļēāļĄ

Swift Package Manager

Mid-Level
16 āļ„āļģāļ–āļēāļĄ

Memory Management & ARC

Senior
22 āļ„āļģāļ–āļēāļĄ

Combine Framework

Senior
24 āļ„āļģāļ–āļēāļĄ

Concurrency & async/await

Senior
26 āļ„āļģāļ–āļēāļĄ

iOS Design Patterns

Senior
24 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

Senior
22 āļ„āļģāļ–āļēāļĄ

āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ

Senior
20 āļ„āļģāļ–āļēāļĄ

SwiftUI Advanced

Senior
22 āļ„āļģāļ–āļēāļĄ

āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ iOS

Senior
22 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ iOS āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ