NearbyWeather - OpenWeatherMap Client
About the App • Mission of this Project • App Releases • How to Get Started • How to Contribute • Support & Feedback • Licensing
About the App
ℹ️ By using the app you automatically agree to the privacy policy and the terms of use.
NearbyWeather is a simple weather app, that provides current weather information for nearby cities, as well for bookmarked locations. NearbyWeather uses the OpenWeatherMap API to download weather data. Additionally the OpenWeatherMaps location database is directly bootstrapped into the app for quick access.
With NearbyWeather you can:
- See current weather information for bookmarked and nearby places via a list and a map view
- See the current temperature on your app icon
- Detailed weather information is offered in addition to the overviews
- Add places as bookmarks via OpenWeatherMaps weather-station data base
- Choose your preferred units (celsius/fahrenheit/kelvin & kilometres/miles)
- Access previously loaded data offline
❗️Please note that you need to supply your own OpenWeatherMap API key, in order to use the app.
Mission of this Project
NearbyWeather was created to help you as a reference for developing your skills. The app is kept up to date with the latest best practices in mobile app development. Find out how how modern iOS apps are engineered:
Area | Concepts | Status |
---|---|---|
Language | Swift (latest release) | |
Additional Languages | Objective-C, JavaScript | |
Additional Frameworks | RxSwift | |
Architecture | MVVM+C | |
Navigation | Coordinator Pattern with RxFlow | |
UI-Construction | Autolayout in Code + Factory Pattern | |
Dependencies | Dependency Injection with Swinject & Singletons | |
Data Persistence | Realm & Files on Disk | |
Networking | Alamofire | |
Asset Management | R.Swift | |
Code Quality | SwiftLint | |
Analytics and Reporting | Google Firebase | |
Library Management | CocoaPods | |
Bootsrapped Bundle Data | Node.js Scripts | |
Deployment | Fastlane | |
Testing and Quality Assurance | Unit Tests and UI Tests, SwiftUI Scene Previews | |
App Releases
Past releases are documented in the release section of this repository. Future releases are planned via the project board.
Version | Tag |
---|---|
Current Release | v2.2.1 |
Next Release | v2.2.0 |
Future Releases | v?.?.? |
How to Get Started
- Install the latest version of Xcode from the Mac AppStore
- Install the latest Xcode command line tools
xcode-select --install
- Install CocoaPods to your machine
- Install fastlane to your machine
- Install SwiftLint to your machine
- Fork the project and clone it to your local machine
- Configure signing via fastlane match to use your personal certificates
- Run
pod install
to be able to build locally
How to Contribute
Development
We looking forward to receiving your contributions. You can find out how to take part in the development of this application. Please find out how to submit code to this repository via the contribution guidelines.
Beta Testing
You may also assist as a beta tester. Periodically test-builds will become available via Testflight. In order to take part in testing those submit an email address used as an Apple-ID to [email protected] to be added to the list of testers.
Support & Feedback
If you are having technical issues or want to raise a bug/issue with the app, the preferred way is through GitHub issues. In order to contact Erik Maximilian Martens for any other request please reach out via one of the channels detailed in table below:
Platform | Link |
---|---|
Discord | |
Licensing
Copyright © 2016 - 2021 Erik Maximilian Martens.
Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at https://opensource.org/licenses/MIT.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the LICENSE for the specific language governing permissions and limitations under the License.