/swift-weather-app

Cross-platform Swift application for iOS/Mac/Android/Windows

Primary LanguageSwiftMIT LicenseMIT

🇺🇦 #StandWithUkraine

On Feb. 24, 2022 Russia declared an unprovoked war on Ukraine and launched a full-scale invasion. Russia is currently bombing peaceful Ukrainian cities, including schools and hospitals and attacking civilians who are fleeing conflict zones.

Please support Ukraine by lobbying your governments, protesting peacefully, and donating money to support the people of Ukraine. Below are links to trustworthy organizations that are helping to defend Ukraine in this unprovoked war:

Swift Weather App AndroidCore MacCore

Cross-platform Swift application

GitHub Logo

Arhitecture

Architecture based on reusing as much as possible code written on Swift. Currently, Swift Weather Core includes weather repository that handles loading info from the database and fetching new data from providers.

                                    ------------------------------------------
                                  /                        \                   \
  +---------+    +---------------------+    +-----------+   \   +---------+     \   +----------+
  |  macOS  |<-->|  Swift Weather Core |<-->|  Android  |     ->|   iOS   |       ->|  Windows |
  +---------+    +---------------------+    +-----------+       +---------+         +----------+
                 |  Weather repository |
                 +---------------------+
                 |   Weather database  |
                 +---------------------+
                 |   Weather provider  |
                 +---------------------+

How to build [Android]

For building an Android application you need Readdle's Swift Android Toolchain. Please follow the guideline on installation first. After a successful setup, you can clone this repo and build it with Android Studio as any other android project.

How to build [iOS/MacOS]

For building an iOS application you need Xcode 12. Minimal target version of operation systems is iOS 14 and MacOS 11.

How to build [Windows]

In progress...