iOS

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

MVVM pattern, ViewModel, data binding, separation of concerns, āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļš

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

ViewModel āđƒāļ™āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄ MVVM āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

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

ViewModel āļŦāđˆāļ­āļŦāļļāđ‰āļĄāļĨāļ­āļˆāļīāļāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāđāļĨāļ°āļˆāļąāļ”āļāļēāļĢāļŠāļ–āļēāļ™āļ°āļ‚āļ­āļ‡ view āđ‚āļ”āļĒāđ„āļĄāđˆāļ‚āļķāđ‰āļ™āļāļąāļš UIKit āļŦāļĢāļ·āļ­ SwiftUI āļĄāļąāļ™āđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ€āļĨāđ€āļĒāļ­āļĢāđŒ Model āđāļĨāļ° View āļžāļĢāđ‰āļ­āļĄāļĢāļąāļāļĐāļēāļāļēāļĢāđāļĒāļāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ­āļĒāđˆāļēāļ‡āļŠāļąāļ”āđ€āļˆāļ™ āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāļ™āļĩāđ‰āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ—āļģ unit testing āđ„āļ”āđ‰āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļšāļģāļĢāļļāļ‡āļĢāļąāļāļĐāļēāđāļĨāļ°āļāļēāļĢāļ™āļģāđ‚āļ„āđ‰āļ”āļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđƒāļŦāļĄāđˆ

2

āļ„āļ§āļēāļĄāļĢāļąāļšāļœāļīāļ”āļŠāļ­āļšāļŦāļĨāļąāļāļ‚āļ­āļ‡ Model āđƒāļ™ MVVM āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

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

Model āđāļ—āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļĨāļ­āļˆāļīāļāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļĄāļąāļ™āļāļģāļŦāļ™āļ”āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļāļŽāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ āđāļĨāļ°āļĒāļąāļ‡āļ„āļ‡āđ€āļ›āđ‡āļ™āļ­āļīāļŠāļĢāļ°āļˆāļēāļāđ€āļĨāđ€āļĒāļ­āļĢāđŒ View āđāļĨāļ° ViewModel āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļ­āļīāļŠāļĢāļ°āļ‚āļ­āļ‡ Model āļˆāļēāļ UI framework āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļģāļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđƒāļŦāļĄāđˆāđ„āļ”āđ‰āđāļĨāļ°āļ—āļ”āļŠāļ­āļšāđ„āļ”āđ‰ āļĄāļąāļ™āļ—āļģāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āđāļŦāļĨāđˆāļ‡āļ„āļ§āļēāļĄāļˆāļĢāļīāļ‡āđ€āļžāļĩāļĒāļ‡āđāļŦāļĨāđˆāļ‡āđ€āļ”āļĩāļĒāļ§āļŠāļģāļŦāļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

3

āļšāļ—āļšāļēāļ—āļŦāļĨāļąāļāļ‚āļ­āļ‡ View āđƒāļ™āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄ MVVM āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

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

View āļĄāļĩāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļĢāļąāļšāļāļēāļĢāđ‚āļ•āđ‰āļ•āļ­āļšāļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰ āļ„āļ§āļĢāļĄāļĩāđ€āļ‰āļžāļēāļ°āđ‚āļ„āđ‰āļ”āļāļēāļĢāļ™āļģāđ€āļŠāļ™āļ­āđāļĨāļ°āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļĨāļ­āļˆāļīāļāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ View āļœāļđāļāļāļąāļš ViewModel āļœāđˆāļēāļ™ data binding āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļĢāļĩāļĒāļšāļ‡āđˆāļēāļĒāđāļĨāļ°āļ—āļ”āļŠāļ­āļšāđ„āļ”āđ‰ āđƒāļ™ SwiftUI āđƒāļŠāđ‰ @ObservedObject āļŦāļĢāļ·āļ­ @StateObject āđ€āļžāļ·āđˆāļ­āļŠāļąāļ‡āđ€āļāļ• ViewModel āđƒāļ™ UIKit āđƒāļŠāđ‰ Combine āđ€āļžāļ·āđˆāļ­āļŠāļĄāļąāļ„āļĢāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡

4

data binding āđƒāļ™āļšāļĢāļīāļšāļ—āļ‚āļ­āļ‡ MVVM āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

5

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ @Published āđāļĨāļ° @ObservedObject āđƒāļ™ SwiftUI āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

+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 āļ„āļģāļ–āļēāļĄ

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

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 āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

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