Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Welcome
Xcode 9 and Swift 4
What You’ll Learn
How to Use This Book
1 Is MVC Dead
What Is It?
Advantages
Problems
An Example
How Can We Solve This?
2 How Does MVVM Work
Advantages of MVVM
Basic Rules
It’s Time to Refactor
3 Meet Cloudy
Application Architecture
4 What Is Wrong With Cloudy
Day View Controller
Week View Controller
Locations View Controller
Settings View Controller
What’s Next
5 A Quick Recap
MVVM Architecture
Naming the View Model
6 Time to Create a View Model
Creating the View Model
Creating the Public Interface
7 Put the View Model to Work
Adding the View Model to the Day View Controller
Creating the View Model in the Root View Controller
Updating the Weather Data Container
Build and Run
8 Rinse and Repeat
Creating the Week View View Model
Creating the View Model in the Root View Controller
Updating the Table View
9 Using MVVM In the Settings View
Creating the Settings View Time View Model
Importing UIKit
Refactoring the Settings View Controller
Your Turn
10 Adding Protocols to the Mix
Creating the Protocol
Conforming to the Protocol
Refactoring the Settings View Controller
11 Making Table View Cells Autoconfigurable
Updating the Settings Table View Cell
Updating the Settings View Controller
Protocol-Oriented Programming
Conclusion
12 Supercharging MVVM With Protocols
Creating a New View Model
Refactoring the Week View View Model
Creating Another Protocol
Updating the Weather Day Table View Cell
Updating the Week View Controller
13 Ready, Set, Test
Adding a Unit Test Target
Organizing the Unit Test Target
14 Testing Your First View Model
Creating a Test Case
Importing the Cloudy Module
Writing a Unit Test
Writing More Unit Tests
Resetting State
Unit Testing the Other View Models
15 Using Stubs for Better Unit Tests
Adding Stub Data
Loading Stub Data
Unit Testing the Day View View Model
16 A Few More Unit Tests
Unit Testing the Week View View Model
Unit Testing the Weather Day View View Model
17 Taking MVVM to the Next Level
18 What Are the Options
19 DIY Bindings
Creating the View Model
Implementing the View Model
Performing Geocoding Requests
Notifying the View Controller
Refactoring the Add Location View Controller
Updating the User Interface
More Refactoring
20 Why RxSwift
It’s a Library
Testability
Powerful
21 Integrating RxSwift and RxCocoa
Defining Dependencies
Installing Dependencies
22 Refactoring the View Model
Refactoring the View Model
Reducing State
23 Refactoring the View Controller
What Have We Accomplished
24 Protocol Oriented Programming and Dependency Injection
A Plan of Action
Defining the Protocol
Adopting the Protocol
Refactoring the Add Location View View Model
Refactoring the Add Location View Controller
25 Testing and Mocking
Setting Up the Environment
Mocking the Location Service
Writing Unit Tests
26 Where to Go From Here
Putting the View Controllers On a Diet
Introducing View Models
Improved Testability
More Flexibility
Where to Start
← Prev
Back
Next →
← Prev
Back
Next →