Skip to content

The weather-tracking application is an open-source iOS project that serves as a showcase of best practices, architectural design, and other relevant concepts.

Notifications You must be signed in to change notification settings

mrugama/Weather

Repository files navigation

Weather

The weather iOS app provides free access to weather and geo data. This is a sample project used to apply best practices and keep up to date with modern programming languages.

Compatibility

Frameworks

Frameworks Frameworks Frameworks Frameworks Frameworks

App architecture

The weather-tracking app has a single feature component. Landing Page is a self-contained feature component with some module dependencies as shown in the graph below.

graph TD;
    WeatherApp-->LandingPage;
    LandingPage-->RestAPI;
    RestAPI-->EndpointManager;
    RestAPI-->WTLogging;
    EndpointManager-->WTLogging;
    RestAPI-->Networking;
    Networking-->WTLogging;
    LandingPage-->DecoratorUI;
Loading

App states

No location selected Searching loading Location details Error handler
No city selected Search loading Location details Error handler

Card designs

Searching result Details
Searching result Location details

Steps to Run the App

  1. Clone the Repository
    • Run the following command in your terminal:
    git clone git@github.com:mrugama/Weather.git
    
  2. Open the Project
    • Open the project in Xcode by double-clicking on Weather.xcodeproj.
  3. Update Key API
  4. Run the App
    • Select the desired simulator or device in Xcode.
    • Press the Run button (▢️) or use the shortcut Cmd + R to build and launch the app.

Test Coverage

πŸ“Š General Coverage

Test Coverage


πŸ“„ File-wise Coverage Breakdown

File Covered Lines Executable Lines Coverage
EndpointManager.swift 4 4 Coverage
MockEndpointManager.swift 14 14 Coverage
EndpointManager+Implementation.swift 40 50 Coverage
EndpointManagerTests.swift 22 22 Coverage
LandingPage.swift 0 9 Coverage
SearchViewModelTests.swift 44 44 Coverage
SearchResultContent.swift 0 188 Coverage
MockDataLoader.swift 7 8 Coverage
HomePage.swift 0 143 Coverage
RestAPI.swift 4 4 Coverage
RestAPI+Implementation.swift 19 22 Coverage
SearchViewModel.swift 26 26 Coverage
SearchResultCard.swift 0 106 Coverage
MockRestAPI.swift 13 13 Coverage
SearchContentUnavailableView.swift 0 29 Coverage
Model.swift 43 44 Coverage
NetworkError.swift 7 8 Coverage
DataLoader+Implementation.swift 21 26 Coverage
DataLoaderTests.swift 46 49 Coverage
DataLoaderService.swift 4 4 Coverage
RestAPI.swift 4 4 Coverage
RestAPITests.swift 52 56 Coverage
MockDataLoader.swift 7 8 Coverage
RestAPI+Implementation.swift 19 22 Coverage
MockRestAPI.swift 13 13 Coverage
WeatherApp.swift 0 8 Coverage

About

The weather-tracking application is an open-source iOS project that serves as a showcase of best practices, architectural design, and other relevant concepts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages