/XWeather

A weather app for iOS and Android built with Xamarin

Primary LanguageC#MIT LicenseMIT

apple-app-store

XWeather

Build status

XWeather is a weather app for iOS and Android built with Xamarin.

iOS

ios-daily ios-hourly ios-details ios-locations ios-search

Android

android-daily android-hourly android-details android-locations android-search

Getting Started

PrivateKeys.cs

There is a PrivateKeys.cs file the Constants directory located at XWeather/XWeather/Constants that contains four const string keys.

All keys can be left as empty strings and the app will build/run just fine, however it will display static 'testing' weather data. In order to set up the live weather API and use GPS services on Android, you'll need to follow the instructions below to obtain the appropriate API keys.

Weather Underground

XWeather gets weather data from Weather Underground's API. There are static data files included in the iOS and Android app bundle that will allow you to build and run the app with "test data". However, in order to get live weather data, add additional locations, etc., you'll need to create an Weather Underground account and obtain an API key. The free "Developer" tier is sufficient to run the app.

  • Sign up for new a Weather Underground account (or login to an existing one)
  • Purchase an new API Key. Make sure to select ANVIL PLAN, as the app uses several pieces of data in that plat.
  • In PrivateKeys.cs set the value of WuApiKey to your Weather Underground API Key.

Google Maps API key (Android)

To use location services in the Android version of XWeather, you'll need to obtain a Google Maps API key.

  • Follow the step-by-step guide to obtain a Google Maps API key.
  • In PrivateKeys.cs set the value of GoogleMapsApiKey to your Weather Underground API Key.

Visual Studio Mobile Center (optional)

Mobile Center is the amalgamation of HockeyApp, Xamarin Test Cloud, Xamarin Insights, and a bunch of new services like automated builds. It is a single platform to manage all aspects of continuous integration and continuous deployment, including build, test, distribution, crash reporting, and analytics.

Setting up Mobile Center is completely optional. If you'd like to use it, you can set it up by following the steps listed below. However, if you'd rather skip this step for now, simply leave the two values of AppSecret as empty strings.

  • Register for new a Mobile Center account (or login using GitHub, Microsoft, or an existing Mobile Center account)
  • Create a new app for both iOS and Android
  • In PrivateKeys.cs set the two values of AppSecret your new iOS and Android app's respective App Secrets.

Visual Studio Mobile Center

This app uses Mobile Center for Continuous Integration and Continuous Deployment, by taking advantage of the functionality provided by each of the following "beacons":

Build

Each time someone commits new code to this repo, Mobile Center's Build beacon automatically builds and distributes a new version for iOS and Android:

Screenshots

Test

Mobile Center's Test beacon moves the power of Xamarin Test Cloud to run UI tests on real devices into a single dashboard:

Screenshots

Screenshots

Distribute

Once a new version of XWeather successfully builds and passes all tests, Mobile Center's Distribute beacon deploys the pre-release version a selected group of beta testers.

Screenshots

Crash Reporting

All of HockeyApp's crash reporting features were included in Mobile Center's Crashes beacon, including real-time details and stack-traces from crashes that happen "in the wild":

Screenshots

Analytics

Finally, the app uses Mobile Center's Analytics beacon to monitor and record information about the app's user base as well as custom events:

Screenshots

Screenshots

About

XWeather was created by Colby Williams. Thanks to @charlieyllobre for the awesome (free) weather icons.

License

Licensed under the MIT License (MIT). See LICENSE for details.