- We will look at how to structure our Event Countdown application using Coordinators starting with our AppCoordinator which will be created in our SceneDelegate and is responsible for setting up the app before creating an EventListCoordinator to handle our events list interactions
- Build an event countdown iOS app using MVVM we will setup our event model. Using core data we will be able to save and fetch events
- Create our view models and handle the add event flow by creating an add event coordinator and also handling when the coordinator has finished this flow
- We build out the add event screen. We create a cell view model to represent the cell and look at how we can use callbacks to replicate bindings.We also work out how We can display a datepicker when the user taps on the date textfield vs a normal textfield
- we look at how we can allow the user to select an image using UIImagePickerController. Once we have the image we will run through how we can update our view models and cell to handle this as well as how this flows through the architecture,We then save an event using the information from the viewmodel through our core date manager and dismiss the add event view controller and tidy up the coordinator appropriately
- We leverage the power of UIStackView to build our event cells and show some tricks around getting the spacing we need
- DateComponentsFormatter and Image Caching: we use DateComponentsFormatter to display the time remaining until the event and adjust the contents of the vertical stack view to display this. We then use a cache and a background queue to improve performance
- we fix a few sneaky bugs from previous parts and then start building out our EventDetailCoordinator. The first step is to add the tableview delegate function to detect when someone taps on an event and then we handle this in the view model which tells our coordintor to trigger our EventDetailCoordinator flow
- We build a reusable component for displaying our time remaining parts driven by its own view model and we then make sure the detail coordinator and detail view model are then correctly tidied up by calling childDidFinish
- we discuss different approaches to the editing event flow and decide on a separate implementation to adding an event, Once the edit flow is completed we handle how we can update the previous screens to reflect this information 11 - the final part, of building an event countdown MVVM iOS app we refactor the CoreDataManager through the use of Generics so it can handle any entity and we create an EventService to inject into our view models via an EventServiceProtocol which keeps our app testable.
eventsmvvm-navigation-coordinator's Introduction
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.