This repository contains an iOS Project with a Clean Architecture( MVVM with COORDINATORS). It provides nearby Venues using FourSquareAPI. If device is offline it will load latest 5 venues. I use Core Data to store data for offline usage.
To Get this project just git clone
. There are no pods or third-party libraries installed on this project
The repository contains an app that will list 5 nearby venues. It has an offline usage too, if user doesn't have internet app will load latest saved 5 venues.s
The iOS template consists of an Xcode project file for the app (iOSProject.xcodeproj). The structure is:
The app project is separated into two main folders: Source and Resources. Inside Source folder I have three subfolders: API, APP and DATA. There is a separate folder for each layer, making the app structure very scalable.Subfolders Structure is:
Source: Containts all the code for the project
- API: Is the
API
layer that is reponsible for the web service layer. - App is the layer that handles the application logic, views, viewControllers etc
- DATA Is responible for the
Data
layer wich means: Models, Repositorys etc
Resources: Contains all assets for the app, like the launch screen or the image assets.
SceneDelegate.swift: In the SceneDelegate
the main UIWindow
instance of the app is created, and the VenuesViewController
instance is assigned as the root view controller. Modern app architectures, like MVVM work better with manual creation of the entry point, than using the Main Interface
possibility. Therefore the Main.storyboard
file was deleted and the Main Interface
reference from the project removed.
There is an AppCoordinator
that is responsible for launching and navigation and an Injector
that will handle dependency.