NearbyWeather - OpenWeatherMap Client

Overview

NearbyWeather for iOS

NearbyWeather - OpenWeatherMap Client

About the AppMission of this ProjectApp ReleasesHow to Get StartedHow to ContributeSupport & FeedbackLicensing


Platform: iOS Swift Contributors License: MIT

Download on the App Store

NearbyWeather Screenshots

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 🔄 In Progress
Architecture MVVM+C 🔄 In Progress
Navigation Coordinator Pattern with RxFlow
UI-Construction Autolayout in Code + Factory Pattern 🔄 In Progress
Dependencies Dependency Injection with Swinject & Singletons 🔄 In Progress /
Data Persistence Realm & Files on Disk 🔄 In Progress /
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 🅾️ Coming Soon

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

  1. Install the latest version of Xcode from the Mac AppStore
  2. Install the latest Xcode command line tools
    xcode-select --install
    
  3. Install CocoaPods to your machine
  4. Install fastlane to your machine
  5. Install SwiftLint to your machine
  6. Fork the project and clone it to your local machine
  7. Configure signing via fastlane match to use your personal certificates
  8. 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 Discord: NearbyWeather by Erik Martens
Twitter Twitter: @erik_m_martens
Email

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.

You might also like...
Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.
Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework.

A xkcd client written in SwiftUI.
A xkcd client written in SwiftUI.

xkcd A xkcd client written in SwiftUI. Architechture: Tried to use MVVM but with CoreData... If you know, you know. Features: Supports Dark/Light mode

Client library for making in-app purchases on iOS and macOS Automattic apps

MobilePayKit Client library for making in-app purchases on iOS and macOS Automattic apps Introduction MobilePayKit is a client library for making in-a

A swift client library for GoTrue.

gotrue-swift Swift client for the GoTrue API. Using The usage should be the same as gotrue-js except: Oauth2: signIn with oauth2 provider only return

Swift client library to interact with Supabase Storage
Swift client library to interact with Supabase Storage

storage-swift Swift Client library to interact with Supabase Storage.

The alternative last.fm client for iOS made with SwiftUI
The alternative last.fm client for iOS made with SwiftUI

first.fm - The alternative last.fm client for iOS (it's actually not available on the App Store... yet) Features Your profile (top artists, tracks and

A Swift client for Supabase
A Swift client for Supabase

supabase-swift Supabase client for swift. Mirrors the design of supabase-js Installation Swift Package Manager: Add the following lines to your Packag

Client that retrieves specific information about stocks.
Client that retrieves specific information about stocks.

Client that retrieves specific information about stocks. This app is used as training to develop design pattern skills, in this case: the Coordinator Pattern

Tanukis-Stash - Open source e621 client for iOS built with SwiftUI
Tanukis-Stash - Open source e621 client for iOS built with SwiftUI

The Tanuki's Stash The worlds first e621 client for iOS, iPadOS, and macOS built

Releases(v2.2.1)
  • v2.2.1(Dec 31, 2020)

  • v2.2.0(Apr 15, 2020)

    FEATURES:

    • State (US only) and country are now specified for weather station search results
    • The number of nearby results and the sorting orientation can directly be set from the list

    BUGFIXES:

    DESIGN:

    • Nearby weather results are now coloured in white in the list and for map pins
    • Settings have received a new more distinguished look
    • New app icon

    MISC:

    • Included Firebase Crashlytics

    CONTRIBUTORS:

    • Erik Maximilian Martens

    MORE DETAILS

    Release Project

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Feb 19, 2020)

    FEATURES:

    • Show the current temperature of a selected location as an app icon badge

    BUGFIXES:

    • Prohibit deletion of last bookmark

    DESIGN:

    • App is now using a tab bar controller
    • Toned down user interface style by using white colours throughout
    • Using SF Symbols for all icons

    MISC:

    • Added localizations: French
    • Optimized for iOS 13 and for all iPhone 11 models
    • Added privacy policy (reachable via settings)

    CONTRIBUTORS:

    • Erik Maximilian Martens
    • Lukáš Prokein
    • M. Bohling
    • Nischal Hada
    • Pierre-Yves Lapersonne
    • Ryan Rosello

    MORE DETAILS

    Release Project

    Source code(tar.gz)
    Source code(zip)
  • v2.0(Mar 14, 2018)

    FEATURES:

    • Add, sort and remove multiple bookmarked locations
    • Indicate local day- and night-time in bookmarked locations
    • Indicate current local time for bookmarked locations
    • Map view for locations with options for focussing on bookmarked places or user location
    • Detail view for places with additional weather data
    • Option to reload data on app start
    • List view UINavigationBar shows data and time of last refresh
    • Sort nearby results in the list view by distance (if user location available)
    • Miles per hour for windspeed
    • Notify user when successfully saved API Key
    • Turn off rotation to landscape
    • Error codes per request are saved and displayed
    • Added link for rating the app in the about-screen
    • Added options for leaving feedback in the about-screen
    • Remove help section and legend
    • List libraries (pods) used in about-screen

    BUGFIXES:

    • Changing the API Key resulted in a crash
    • Previous weather-data was deleted if there was no internet connection and the reload request failed
    • Don't override downloaded data when request times out (e.g. due to bad connection)
    • Fix wrong naming "SimpleWeather" used in various locations

    DESIGN:

    • Custom map pins (MKAnnotaionView)
    • Removed text on UIBackBarButtonItems
    • New UINavigationBar extensions for styling
    • Launchscreen design
    • Custom refresh animation
    • Icons from Icons8 are no longer used (custom designed icons are used)
    • Defined app's brand colours
    • Link colours are set to brand colour

    MISC:

    • Update to Swift4
    • Filepersistence using JSON to disk via codables instead of NSCdoing
    • Incorporate Cocoa Pods
    • Incorporate OpenWeatherMap location data base for adding bookmarked locations
    • Versionnumber in about-screen dynamically retrieved via CFBundleDictionairy
    • Links are opened using Safari ViewControllers
    • Use UIStackViews inside UITableViewCells
    • Separation of Storyboards
    • Refactoring of various class names

    CONTRIBUTORS:

    • Erik Maximilian Martens
    Source code(tar.gz)
    Source code(zip)
    NearbyWeather.Release.ipa(105.09 MB)
  • v1.1.2(Oct 12, 2017)

    FEATURES

    • /

    BUGFIXES

    • Fixed an issue that would prevent the weather data list to automatically reload after setting a different temperature unit

    MISC

    • /

    CONTRIBUTORS

    • Erik Maximilian Martens
    Source code(tar.gz)
    Source code(zip)
Owner
Erik Maximilian Martens
I am a Native Software Application Engineer focusing on Apple Platforms.
Erik Maximilian Martens
WeatherApp - WeatherApp Using Openweathermap api

WeatherApp Requirements XCode 13 IOS 15 Highlights Use [OpenWeatherMap] API Use

Atharv Shinde 2 Jan 10, 2022
Swift iPhone and iPad Client for Polls API, using Hyperdrive API client

Polls Client This is a Swift iPhone and iPad client for the Polls API - a simple application allowing users to view polls and vote in them. Polls is a

Apiary 34 Jul 15, 2022
A cross-platform Reddit client built in SwiftUI

A cross-platform Reddit client created in SwiftUI. Get the Public Beta Note: This project is far from complete. It still lacks many features of your t

Carson Katri 1.2k Dec 25, 2022
A small SwiftUI based chat client for IRC, using swift-nio-irc

NeoIRC A simple Internet Relay Chat client implemented using SwiftNIO and SwiftUI. Inspired by: For maximum NIO someone (I’m tempted) should adopt NIO

The Noze Consortium 18 Jun 22, 2022
An open-source SwiftUI Stack Overflow client

StackOv A SwiftUI Stackoverflow client We are currently in the developing process of the next version of StackOv app. The demo version of StackOv is a

Surf 235 Dec 17, 2022
A swift client library for GoTrue.

gotrue-swift Swift client for the GoTrue API. Using The usage should be the same as gotrue-js except: Oauth2: signIn with oauth2 provider only return

Supabase 23 Jan 7, 2023
Tutorial GraphQL + Node Express + MySQL, and sample for Android / iOS client

GraphQL-tutorial Tutorial for GraphQL + Node Express + MySQL, and sample for Android / iOS client Blog NeoRoman's GraphQL-tutorial (Korean) Materials

Henry Kim 4 Oct 20, 2022
Native Jellyfin Client for iOS and tvOS

Swiftfin Swiftfin is a modern client for the Jellyfin media server. Redesigned in Swift to maximize direct play with the power of VLC and look native

Jellyfin 1.1k Jan 6, 2023
Basic Unsplash client for iOS made with SwiftUI (beta).

PapersSwiftUI Basic Unsplash client for iOS made with SwiftUI (beta). Note SwiftUI is still in beta and I'm also still learning how it works. To-Do: P

Don 19 Dec 17, 2022
💥 a modern xkcd iOS client

XKCDY / app This is the source code of the XKCDY app. I built this app primarily as a way to learn Swift and SwiftUI. Because I was learning as I buil

null 32 Oct 30, 2022