Weather app based on openweathermap.org.
The main purpose of this project is to practice clean architecture approaches and testing. It is still in its really EARLY stages of development.
- Clean Architecture
- Composition Root + Dependecny Containter
- MVVM Presentation layer
- Feature based modules
- Loosely coupled code
- Abstract Implementation
- Unit Testing
- Search for weather forecast by citiy name
- View 5 days forecast for user's location
Weather uses a number of open source projects to work properly:
- Moya - Network abstraction layer written in Swift!
- PromiseKit - Promises simplify asynchronous programming.
- SnapKit - A Swift Autolayout DSL for iOS & OS X.
And of course Weather itself is open source with a [public repository][dill] on GitHub.
- iOS 12.0+
- Xcode 10+
- Swift 5.0+
- Cocoapods installed
Clone the codebase to your machine.
Open a terminal window, and run below command into project directory:
$ cd Weather
Then install the dependencies:
$ pod install
Make sure to open the Xcode workspace instead of the project:
$ open App.xcworkspace
To run Test Cases:
Select scheme WeatherSearch_Example
Then
Run the test - ⌘ U
Select scheme App
Then build and run
- Write MORE Tests
- Refeactor Network api call implementation to avoid boilerplate code
- Bind UITableViewCell with CellViewModel
- Add String Resources file
- Add Scene Coordinator
GNU General Public License (GPL)
Free Software, Yallah!