Jelajahi Sumber

Add UITests and Insights

James Montemagno 10 tahun lalu
induk
melakukan
e90cb5d23f

+ 34 - 0
Demos/MyWeather/MyWeather.UITests/AppInitializer.cs

@@ -0,0 +1,34 @@
+using System;
+using System.IO;
+using System.Linq;
+using Xamarin.UITest;
+using Xamarin.UITest.Queries;
+
+namespace MyWeather.UITests
+{
+	public class AppInitializer
+	{
+		public static IApp StartApp (Platform platform)
+		{
+			// TODO: If the iOS or Android app being tested is included in the solution 
+			// then open the Unit Tests window, right click Test Apps, select Add App Project
+			// and select the app projects that should be tested.
+			if (platform == Platform.Android) {
+				return ConfigureApp
+					.Android
+				// TODO: Update this path to point to your Android app and uncomment the
+				// code if the app is not included in the solution.
+					.ApkFile ("../../../MyWeather/MyWeather.Droid/bin/Debug/com.devdays.myweather.apk")
+					.StartApp ();
+			}
+
+			return ConfigureApp
+				.iOS
+			// TODO: Update this path to point to your iOS app and uncomment the
+			// code if the app is not included in the solution.
+				.AppBundle ("../../../MyWeather/MyWeather.iOS/bin/iPhoneSimulator/Debug/MyWeatheriOS.app")
+				.StartApp ();
+		}
+	}
+}
+

+ 61 - 0
Demos/MyWeather/MyWeather.UITests/MyWeather.UITests.csproj

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{5D272574-A190-4674-B250-DBB29FAFA884}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>MyWeather.UITests</RootNamespace>
+    <AssemblyName>MyWeather.UITests</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="Xamarin.UITest">
+      <HintPath>..\packages\Xamarin.UITest.0.7.2\lib\Xamarin.UITest.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework">
+      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Tests.cs" />
+    <Compile Include="AppInitializer.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\MyWeather\MyWeather.iOS\MyWeather.iOS.csproj">
+      <Project>{CD4A0DB1-7D99-48B5-955E-06B2923F3745}</Project>
+      <Name>MyWeather.iOS</Name>
+      <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\MyWeather\MyWeather.Droid\MyWeather.Droid.csproj">
+      <Project>{C0578B30-CC73-4EB1-BDF8-7F96481B5159}</Project>
+      <Name>MyWeather.Droid</Name>
+      <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
+</Project>

+ 81 - 0
Demos/MyWeather/MyWeather.UITests/Tests.cs

@@ -0,0 +1,81 @@
+using System;
+using System.IO;
+using System.Linq;
+using NUnit.Framework;
+using Xamarin.UITest;
+using Xamarin.UITest.Queries;
+
+namespace MyWeather.UITests
+{
+	[TestFixture (Platform.Android)]
+	[TestFixture (Platform.iOS)]
+	public class Tests
+	{
+		IApp app;
+		Platform platform;
+
+		public Tests (Platform platform)
+		{
+			this.platform = platform;
+		}
+
+		[SetUp]
+		public void BeforeEachTest ()
+		{
+			app = AppInitializer.StartApp (platform);
+		}
+
+		[Test]
+		public void A_AppLaunches ()
+		{
+			app.Screenshot ("First screen.");
+			app.Repl ();
+		}
+
+		[Test]
+		public void B_GetWeatherSuccess()
+		{
+			app.Screenshot ("First screen.");
+			app.ClearText(x => x.Marked("EntryCity"));
+			app.Screenshot ("Screen Cleared");
+			app.EnterText(x => x.Marked("EntryCity"), "Cleveland,OH");
+			app.Screenshot ("Enter Cleveland");
+			app.Tap (x => x.Marked ("LabelUseCity"));//dismiss keyboard
+			app.Tap(x => x.Marked("ButtonGetWeather"));
+			app.Screenshot ("Click Get Weather");
+			app.WaitForElement (x => x.Marked ("IsBusyIndicator"));
+			app.Screenshot ("Is Loading");
+			app.WaitForNoElement (x => x.Marked ("IsBusyIndicator"));
+			app.Screenshot ("Done Loading");
+			app.WaitForElement (x => x.Marked ("LabelBigTemp"));
+			app.Screenshot ("Display Weather");
+			var results = app.Query (x => x.Marked ("LabelTempBig"));
+			int test = 0;
+			var passed = int.TryParse (results [0].Text.Replace("°", ""), out test);
+			Assert.IsTrue (passed, "Didn't Display Result");
+		}
+
+
+
+		[Test]
+		public void C_EntryCityDisablesWhenSwitchedOff()
+		{
+			app.Screenshot ("First screen.");
+			app.Tap(x => x.Marked("SwitchUseCity"));
+			app.Screenshot ("Switch off use city");
+			var results = app.Query(x => x.Marked("EntryCity"));
+			Assert.IsFalse (results [0].Enabled, "Entry was not disabled when toggled off");
+		}
+
+		[Test]
+		public void D_GetWeatherButtonDisabledNoCitySpecified()
+		{
+			app.Screenshot ("First screen.");
+			app.ClearText(x => x.Marked("EntryCity"));
+			app.Screenshot ("Screen Cleared");
+			var results = app.Query(x => x.Marked("ButtonGetWeather"));
+			Assert.IsFalse (results [0].Enabled, "Button was not disabled when city was cleared");
+		}
+	}
+}
+

+ 5 - 0
Demos/MyWeather/MyWeather.UITests/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="NUnit" version="2.6.4" targetFramework="net45" />
+  <package id="Xamarin.UITest" version="0.7.2" targetFramework="net45" />
+</packages>

+ 262 - 212
Demos/MyWeather/MyWeather.sln

@@ -1,212 +1,262 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30723.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather", "MyWeather\MyWeather\MyWeather.csproj", "{94329F87-C05E-4C93-A716-5E11B876811E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.iOS", "MyWeather\MyWeather.iOS\MyWeather.iOS.csproj", "{CD4A0DB1-7D99-48B5-955E-06B2923F3745}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.Droid", "MyWeather\MyWeather.Droid\MyWeather.Droid.csproj", "{C0578B30-CC73-4EB1-BDF8-7F96481B5159}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.WinPhone", "MyWeather\MyWeather.WinPhone\MyWeather.WinPhone.csproj", "{83F9B393-BB2D-48BA-A6A5-761E8905A23D}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
-		Ad-Hoc|ARM = Ad-Hoc|ARM
-		Ad-Hoc|iPhone = Ad-Hoc|iPhone
-		Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
-		Ad-Hoc|Mixed Platforms = Ad-Hoc|Mixed Platforms
-		Ad-Hoc|x86 = Ad-Hoc|x86
-		AppStore|Any CPU = AppStore|Any CPU
-		AppStore|ARM = AppStore|ARM
-		AppStore|iPhone = AppStore|iPhone
-		AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
-		AppStore|Mixed Platforms = AppStore|Mixed Platforms
-		AppStore|x86 = AppStore|x86
-		Debug|Any CPU = Debug|Any CPU
-		Debug|ARM = Debug|ARM
-		Debug|iPhone = Debug|iPhone
-		Debug|iPhoneSimulator = Debug|iPhoneSimulator
-		Debug|Mixed Platforms = Debug|Mixed Platforms
-		Debug|x86 = Debug|x86
-		Release|Any CPU = Release|Any CPU
-		Release|ARM = Release|ARM
-		Release|iPhone = Release|iPhone
-		Release|iPhoneSimulator = Release|iPhoneSimulator
-		Release|Mixed Platforms = Release|Mixed Platforms
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|ARM.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|x86.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|ARM.ActiveCfg = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|ARM.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|x86.ActiveCfg = Release|Any CPU
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|Mixed Platforms.ActiveCfg = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|Mixed Platforms.Build.0 = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|ARM.ActiveCfg = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhone.Build.0 = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|Mixed Platforms.ActiveCfg = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|Mixed Platforms.Build.0 = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|x86.ActiveCfg = AppStore|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Any CPU.ActiveCfg = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Any CPU.Build.0 = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|ARM.ActiveCfg = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhone.ActiveCfg = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhone.Build.0 = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Mixed Platforms.ActiveCfg = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Mixed Platforms.Build.0 = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|x86.ActiveCfg = Debug|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|Any CPU.ActiveCfg = Release|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|ARM.ActiveCfg = Release|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhone.ActiveCfg = Release|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhone.Build.0 = Release|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|Mixed Platforms.ActiveCfg = Release|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|Mixed Platforms.Build.0 = Release|iPhone
-		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|x86.ActiveCfg = Release|iPhone
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Mixed Platforms.Deploy.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|ARM.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Mixed Platforms.Deploy.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|x86.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|ARM.ActiveCfg = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Any CPU.Build.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Any CPU.Deploy.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|ARM.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Mixed Platforms.Deploy.0 = Release|Any CPU
-		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|x86.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|ARM.Build.0 = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Mixed Platforms.Build.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Mixed Platforms.Deploy.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|x86.ActiveCfg = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|x86.Build.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|x86.Deploy.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|ARM.ActiveCfg = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|ARM.Build.0 = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|ARM.Deploy.0 = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Mixed Platforms.Build.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Mixed Platforms.Deploy.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|x86.ActiveCfg = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|x86.Build.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|x86.Deploy.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|ARM.ActiveCfg = Debug|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|ARM.Build.0 = Debug|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|ARM.Deploy.0 = Debug|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|x86.ActiveCfg = Debug|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|x86.Build.0 = Debug|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|x86.Deploy.0 = Debug|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Any CPU.Deploy.0 = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|ARM.ActiveCfg = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|ARM.Build.0 = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|ARM.Deploy.0 = Release|ARM
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Mixed Platforms.Build.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Mixed Platforms.Deploy.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|x86.ActiveCfg = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|x86.Build.0 = Release|x86
-		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|x86.Deploy.0 = Release|x86
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+VisualStudioVersion = 12.0.30723.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather", "MyWeather\MyWeather\MyWeather.csproj", "{94329F87-C05E-4C93-A716-5E11B876811E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.iOS", "MyWeather\MyWeather.iOS\MyWeather.iOS.csproj", "{CD4A0DB1-7D99-48B5-955E-06B2923F3745}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.Droid", "MyWeather\MyWeather.Droid\MyWeather.Droid.csproj", "{C0578B30-CC73-4EB1-BDF8-7F96481B5159}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.WinPhone", "MyWeather\MyWeather.WinPhone\MyWeather.WinPhone.csproj", "{83F9B393-BB2D-48BA-A6A5-761E8905A23D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyWeather.UITests", "MyWeather.UITests\MyWeather.UITests.csproj", "{5D272574-A190-4674-B250-DBB29FAFA884}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
+		Ad-Hoc|ARM = Ad-Hoc|ARM
+		Ad-Hoc|iPhone = Ad-Hoc|iPhone
+		Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
+		Ad-Hoc|Mixed Platforms = Ad-Hoc|Mixed Platforms
+		Ad-Hoc|x86 = Ad-Hoc|x86
+		AppStore|Any CPU = AppStore|Any CPU
+		AppStore|ARM = AppStore|ARM
+		AppStore|iPhone = AppStore|iPhone
+		AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
+		AppStore|Mixed Platforms = AppStore|Mixed Platforms
+		AppStore|x86 = AppStore|x86
+		Debug|Any CPU = Debug|Any CPU
+		Debug|ARM = Debug|ARM
+		Debug|iPhone = Debug|iPhone
+		Debug|iPhoneSimulator = Debug|iPhoneSimulator
+		Debug|Mixed Platforms = Debug|Mixed Platforms
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|ARM = Release|ARM
+		Release|iPhone = Release|iPhone
+		Release|iPhoneSimulator = Release|iPhoneSimulator
+		Release|Mixed Platforms = Release|Mixed Platforms
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|ARM.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|iPhone.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.AppStore|x86.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|ARM.Build.0 = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Debug|x86.Build.0 = Debug|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|ARM.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|ARM.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|iPhone.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|x86.ActiveCfg = Release|Any CPU
+		{5D272574-A190-4674-B250-DBB29FAFA884}.Release|x86.Build.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|ARM.Build.0 = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Mixed Platforms.Build.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|Mixed Platforms.Deploy.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|x86.ActiveCfg = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|x86.Build.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Ad-Hoc|x86.Deploy.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|ARM.ActiveCfg = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|ARM.Build.0 = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|ARM.Deploy.0 = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Mixed Platforms.Build.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|Mixed Platforms.Deploy.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|x86.ActiveCfg = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|x86.Build.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.AppStore|x86.Deploy.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|ARM.ActiveCfg = Debug|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|ARM.Build.0 = Debug|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|ARM.Deploy.0 = Debug|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|x86.ActiveCfg = Debug|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|x86.Build.0 = Debug|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Debug|x86.Deploy.0 = Debug|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Any CPU.Deploy.0 = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|ARM.ActiveCfg = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|ARM.Build.0 = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|ARM.Deploy.0 = Release|ARM
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Mixed Platforms.Build.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|Mixed Platforms.Deploy.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|x86.ActiveCfg = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|x86.Build.0 = Release|x86
+		{83F9B393-BB2D-48BA-A6A5-761E8905A23D}.Release|x86.Deploy.0 = Release|x86
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|ARM.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{94329F87-C05E-4C93-A716-5E11B876811E}.Release|x86.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|Mixed Platforms.Deploy.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|Mixed Platforms.Deploy.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Any CPU.Deploy.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|ARM.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|Mixed Platforms.Deploy.0 = Release|Any CPU
+		{C0578B30-CC73-4EB1-BDF8-7F96481B5159}.Release|x86.ActiveCfg = Release|Any CPU
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|Mixed Platforms.ActiveCfg = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|Mixed Platforms.Build.0 = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|ARM.ActiveCfg = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhone.Build.0 = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|Mixed Platforms.ActiveCfg = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|Mixed Platforms.Build.0 = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.AppStore|x86.ActiveCfg = AppStore|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Any CPU.ActiveCfg = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Any CPU.Build.0 = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|ARM.ActiveCfg = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhone.ActiveCfg = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhone.Build.0 = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Mixed Platforms.ActiveCfg = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|Mixed Platforms.Build.0 = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Debug|x86.ActiveCfg = Debug|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|Any CPU.ActiveCfg = Release|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|ARM.ActiveCfg = Release|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhone.ActiveCfg = Release|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhone.Build.0 = Release|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|Mixed Platforms.ActiveCfg = Release|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|Mixed Platforms.Build.0 = Release|iPhone
+		{CD4A0DB1-7D99-48B5-955E-06B2923F3745}.Release|x86.ActiveCfg = Release|iPhone
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 8 - 1
Demos/MyWeather/MyWeather/MyWeather.Droid/MainActivity.cs

@@ -15,9 +15,16 @@ namespace MyWeather.Droid
 		protected override void OnCreate(Bundle bundle)
 		{
 			base.OnCreate(bundle);
-
+			Xamarin.Insights.Initialize("dbf5b73b9b8dc2b52514eb4d62edb05b63a6c8b5", this);
+			Xamarin.Insights.ForceDataTransmission = true;
 			global::Xamarin.Forms.Forms.Init(this, bundle);
 			LoadApplication(new App());
+
+			Xamarin.Forms.Forms.ViewInitialized += (object sender, Xamarin.Forms.ViewInitializedEventArgs e) => {
+				if (!string.IsNullOrWhiteSpace(e.View.StyleId)) {
+					e.NativeView.ContentDescription = e.View.StyleId;
+				}
+			};
 		}
 	}
 }

+ 33 - 43
Demos/MyWeather/MyWeather/MyWeather.Droid/MyWeather.Droid.csproj

@@ -3,8 +3,6 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{C0578B30-CC73-4EB1-BDF8-7F96481B5159}</ProjectGuid>
     <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <OutputType>Library</OutputType>
@@ -16,12 +14,11 @@
     <AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
     <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
     <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
-    <AndroidUseLatestPlatformSdk>true</AndroidUseLatestPlatformSdk>
+    <AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
     <AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
-    <AndroidStoreUncompressedFileExtensions />
     <MandroidI18n />
-    <JavaMaximumHeapSize />
-    <JavaOptions />
+    <JavaMaximumHeapSize>
+    </JavaMaximumHeapSize>
     <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
     <NuGetPackageImportStamp>0909e611</NuGetPackageImportStamp>
   </PropertyGroup>
@@ -33,8 +30,8 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
     <AndroidLinkMode>None</AndroidLinkMode>
+    <AndroidSupportedAbis>armeabi;armeabi-v7a;x86</AndroidSupportedAbis>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -44,71 +41,63 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
-    <AndroidLinkMode>SdkOnly</AndroidLinkMode>
+    <AndroidStoreUncompressedFileExtensions>
+    </AndroidStoreUncompressedFileExtensions>
+    <JavaOptions>
+    </JavaOptions>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="FormsViewGroup, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Mono.Android" />
+    <Reference Include="mscorlib" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Xml" />
+    <Reference Include="FormsViewGroup, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Geolocator.Plugin, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Geolocator.Plugin, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugin.Geolocator.1.0.1\lib\MonoAndroid10\Geolocator.Plugin.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Geolocator.Plugin.Abstractions, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Geolocator.Plugin.Abstractions, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugin.Geolocator.1.0.1\lib\MonoAndroid10\Geolocator.Plugin.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Mono.Android" />
-    <Reference Include="mscorlib" />
-    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
       <HintPath>..\..\packages\Newtonsoft.Json.6.0.8\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.Settings, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.Settings, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.Settings.1.5.1\lib\MonoAndroid10\Refractored.Xam.Settings.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.Settings.Abstractions, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.Settings.Abstractions, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.Settings.1.5.1\lib\MonoAndroid10\Refractored.Xam.Settings.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.TTS, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.TTS, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.1.0.1\lib\MonoAndroid10\Refractored.Xam.TTS.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.TTS.Abstractions, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.TTS.Abstractions, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.1.0.1\lib\MonoAndroid10\Refractored.Xam.TTS.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\monoandroid\System.Net.Http.Extensions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\monoandroid\System.Net.Http.Primitives.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Xamarin.Android.Support.v4, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Android.Support.v4, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Android.Support.v4.21.0.3.0\lib\MonoAndroid10\Xamarin.Android.Support.v4.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Core, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Core, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Platform.Android, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Platform.Android, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Xaml, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Xaml, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
-      <Private>True</Private>
+    </Reference>
+    <Reference Include="Xamarin.Insights">
+      <HintPath>..\..\packages\Xamarin.Insights.1.10.1.109\lib\MonoAndroid10\Xamarin.Insights.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -137,6 +126,7 @@
   <ItemGroup>
     <ProjectReference Include="..\MyWeather\MyWeather.csproj">
       <Name>MyWeather</Name>
+      <Project>{94329F87-C05E-4C93-A716-5E11B876811E}</Project>
     </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />

+ 4 - 3
Demos/MyWeather/MyWeather/MyWeather.Droid/Properties/AndroidManifest.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
-	<uses-sdk android:minSdkVersion="15" />
-	<application></application>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="com.devdays.myweather" android:versionCode="1" android:versionName="1">
+	<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21" />
+	<application android:label="My Weather" android:icon="@drawable/icon">
+	</application>
 	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 	<uses-permission android:name="android.permission.INTERNET" />

+ 10 - 10
Demos/MyWeather/MyWeather/MyWeather.Droid/Resources/Resource.Designer.cs

@@ -1,15 +1,15 @@
 #pragma warning disable 1591
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.34014
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------
+//  <autogenerated>
+//      This code was generated by a tool.
+//      Mono Runtime Version: 4.0.30319.17020
+// 
+//      Changes to this file may cause incorrect behavior and will be lost if 
+//      the code is regenerated.
+//  </autogenerated>
+// ------------------------------------------------------------------------------
 
-[assembly: global::Android.Runtime.ResourceDesignerAttribute("MyWeather.Droid.Resource", IsApplication=true)]
+[assembly: Android.Runtime.ResourceDesignerAttribute("MyWeather.Droid.Resource", IsApplication=true)]
 
 namespace MyWeather.Droid
 {

+ 12 - 11
Demos/MyWeather/MyWeather/MyWeather.Droid/packages.config

@@ -1,12 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="MonoAndroid50" />
-  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="MonoAndroid50" />
-  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="MonoAndroid50" />
-  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="MonoAndroid50" />
-  <package id="Xam.Plugin.Geolocator" version="1.0.1" targetFramework="MonoAndroid50" />
-  <package id="Xam.Plugins.Settings" version="1.5.1" targetFramework="MonoAndroid50" />
-  <package id="Xam.Plugins.TextToSpeech" version="1.0.1" targetFramework="MonoAndroid50" />
-  <package id="Xamarin.Android.Support.v4" version="21.0.3.0" targetFramework="MonoAndroid23" />
-  <package id="Xamarin.Forms" version="1.3.3.6323" targetFramework="MonoAndroid23" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="MonoAndroid50" />
+  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="MonoAndroid50" />
+  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="MonoAndroid50" />
+  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="MonoAndroid50" />
+  <package id="Xam.Plugin.Geolocator" version="1.0.1" targetFramework="MonoAndroid50" />
+  <package id="Xam.Plugins.Settings" version="1.5.1" targetFramework="MonoAndroid50" />
+  <package id="Xam.Plugins.TextToSpeech" version="1.0.1" targetFramework="MonoAndroid50" />
+  <package id="Xamarin.Android.Support.v4" version="21.0.3.0" targetFramework="MonoAndroid23" />
+  <package id="Xamarin.Forms" version="1.3.3.6323" targetFramework="MonoAndroid23" />
+  <package id="Xamarin.Insights" version="1.10.1.109" targetFramework="MonoAndroid50" />
 </packages>

+ 1 - 3
Demos/MyWeather/MyWeather/MyWeather.WinPhone/MyWeather.WinPhone.csproj

@@ -1,10 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>10.0.20506</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{83F9B393-BB2D-48BA-A6A5-761E8905A23D}</ProjectGuid>
     <ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
     <OutputType>Library</OutputType>

+ 14 - 0
Demos/MyWeather/MyWeather/MyWeather.iOS/AppDelegate.cs

@@ -4,6 +4,7 @@ using System.Linq;
 
 using Foundation;
 using UIKit;
+using Xamarin.Forms;
 
 namespace MyWeather.iOS
 {
@@ -22,9 +23,22 @@ namespace MyWeather.iOS
 		//
 		public override bool FinishedLaunching(UIApplication app, NSDictionary options)
 		{
+			#if DEBUG
+			Xamarin.Calabash.Start();
+			#endif
+
+			Xamarin.Insights.Initialize("dbf5b73b9b8dc2b52514eb4d62edb05b63a6c8b5");
+			Xamarin.Insights.ForceDataTransmission = true;
 			global::Xamarin.Forms.Forms.Init();
 			LoadApplication(new App());
 
+			Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) => {
+				// http://developer.xamarin.com/recipes/testcloud/set-accessibilityidentifier-ios/
+				if (null != e.View.StyleId) {
+					e.NativeView.AccessibilityIdentifier = e.View.StyleId;
+				}
+			};
+
 			return base.FinishedLaunching(app, options);
 		}
 	}

+ 49 - 51
Demos/MyWeather/MyWeather/MyWeather.iOS/Info.plist

@@ -1,54 +1,52 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
-  <dict>
-    <key>UIDeviceFamily</key>
-    <array>
-      <integer>1</integer>
-      <integer>2</integer>
-    </array>
-    <key>UISupportedInterfaceOrientations</key>
-    <array>
-      <string>UIInterfaceOrientationPortrait</string>
-      <string>UIInterfaceOrientationLandscapeLeft</string>
-      <string>UIInterfaceOrientationLandscapeRight</string>
-    </array>
-    <key>UISupportedInterfaceOrientations~ipad</key>
-    <array>
-      <string>UIInterfaceOrientationPortrait</string>
-      <string>UIInterfaceOrientationPortraitUpsideDown</string>
-      <string>UIInterfaceOrientationLandscapeLeft</string>
-      <string>UIInterfaceOrientationLandscapeRight</string>
-    </array>
-    <key>MinimumOSVersion</key>
-    <string>6.0</string>
-    <key>CFBundleDisplayName</key>
-    <string>MyWeather</string>
-    <key>CFBundleIdentifier</key>
-    <string>com.yourcompany.MyWeather</string>
-    <key>CFBundleVersion</key>
-    <string>1.0</string>
-    <key>CFBundleIconFiles</key>
-    <array>
-      <string>Icon-60@2x</string>
-      <string>Icon-60@3x</string>
-      <string>Icon-76</string>
-      <string>Icon-76@2x</string>
-      <string>Default</string>
-      <string>Default@2x</string>
-      <string>Default-568h@2x</string>
-      <string>Default-Portrait</string>
-      <string>Default-Portrait@2x</string>
-      <string>Icon-Small-40</string>
-      <string>Icon-Small-40@2x</string>
-      <string>Icon-Small-40@3x</string>
-      <string>Icon-Small</string>
-      <string>Icon-Small@2x</string>
-      <string>Icon-Small@3x</string>
-    </array>
-    <key>UILaunchStoryboardName</key>
-    <string>LaunchScreen</string>
-    <key>NSLocationWhenInUseUsageDescription</key>
-    <string>Allow auto detection of location for weather.</string>
-  </dict>
+<dict>
+	<key>UIDeviceFamily</key>
+	<array>
+		<integer>1</integer>
+		<integer>2</integer>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>MinimumOSVersion</key>
+	<string>7.0</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.devdays.myweather</string>
+	<key>CFBundleIconFiles</key>
+	<array>
+		<string>Icon-60@2x</string>
+		<string>Icon-60@3x</string>
+		<string>Icon-76</string>
+		<string>Icon-76@2x</string>
+		<string>Default</string>
+		<string>Default@2x</string>
+		<string>Default-568h@2x</string>
+		<string>Default-Portrait</string>
+		<string>Default-Portrait@2x</string>
+		<string>Icon-Small-40</string>
+		<string>Icon-Small-40@2x</string>
+		<string>Icon-Small-40@3x</string>
+		<string>Icon-Small</string>
+		<string>Icon-Small@2x</string>
+		<string>Icon-Small@3x</string>
+	</array>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>NSLocationWhenInUseUsageDescription</key>
+	<string>Allow auto detection of location for weather.</string>
+	<key>CFBundleDisplayName</key>
+	<string>My Weather</string>
+</dict>
 </plist>

+ 37 - 31
Demos/MyWeather/MyWeather/MyWeather.iOS/MyWeather.iOS.csproj

@@ -3,8 +3,6 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{CD4A0DB1-7D99-48B5-955E-06B2923F3745}</ProjectGuid>
     <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <OutputType>Exe</OutputType>
@@ -51,6 +49,10 @@
     <CodesignKey>iPhone Developer</CodesignKey>
     <MtouchDebug>true</MtouchDebug>
     <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <MtouchI18n>
+    </MtouchI18n>
+    <BuildIpa>true</BuildIpa>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
     <DebugType>none</DebugType>
@@ -96,12 +98,13 @@
     <None Include="Info.plist" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <ITunesArtwork Include="iTunesArtwork" />
-    <ITunesArtwork Include="iTunesArtwork@2x" />
     <None Include="packages.config" />
+    <ITunesArtwork Include="iTunesArtwork%402x" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\MyWeather\MyWeather.csproj">
       <Name>MyWeather</Name>
+      <Project>{94329F87-C05E-4C93-A716-5E11B876811E}</Project>
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
@@ -123,58 +126,55 @@
     <InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />
   </ItemGroup>
   <ItemGroup>
-    <Reference Include="Geolocator.Plugin, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="Xamarin.iOS" />
+    <Reference Include="Geolocator.Plugin, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugin.Geolocator.1.0.1\lib\Xamarin.iOS10\Geolocator.Plugin.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Geolocator.Plugin.Abstractions, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Geolocator.Plugin.Abstractions, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugin.Geolocator.1.0.1\lib\Xamarin.iOS10\Geolocator.Plugin.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
       <HintPath>..\..\packages\Newtonsoft.Json.6.0.8\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.Settings, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.Settings, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.Settings.1.5.1\lib\Xamarin.iOS10\Refractored.Xam.Settings.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.Settings.Abstractions, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.Settings.Abstractions, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.Settings.1.5.1\lib\Xamarin.iOS10\Refractored.Xam.Settings.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.TTS, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.TTS, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.1.0.1\lib\Xamarin.iOS10\Refractored.Xam.TTS.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.TTS.Abstractions, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.TTS.Abstractions, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.1.0.1\lib\Xamarin.iOS10\Refractored.Xam.TTS.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\Xamarin.iOS10\System.Net.Http.Extensions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\Xamarin.iOS10\System.Net.Http.Primitives.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-    <Reference Include="Xamarin.Forms.Core, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Core, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Platform.iOS, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Platform.iOS, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Xaml, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Xaml, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.iOS" />
+    <Reference Include="Calabash">
+      <HintPath>..\..\packages\Xamarin.TestCloud.Agent.0.13.0\lib\Xamarin.iOS10\Calabash.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Insights">
+      <HintPath>..\..\packages\Xamarin.Insights.1.10.1.109\lib\Xamarin.iOS10\Xamarin.Insights.dll</HintPath>
+    </Reference>
+    <Reference Include="PLCrashReporterUnifiedBinding">
+      <HintPath>..\..\packages\Xamarin.Insights.1.10.1.109\lib\Xamarin.iOS10\PLCrashReporterUnifiedBinding.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Content Include="PluginsHelp\GeolocatorReadme.txt" />
@@ -194,4 +194,10 @@
     <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
     <Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
   </Target>
+  <ItemGroup>
+    <XamarinComponentReference Include="calabash">
+      <Version>13.0</Version>
+      <Visible>False</Visible>
+    </XamarinComponentReference>
+  </ItemGroup>
 </Project>

+ 12 - 10
Demos/MyWeather/MyWeather/MyWeather.iOS/packages.config

@@ -1,11 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" />
-  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="xamarinios10" />
-  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" />
-  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="xamarinios10" />
-  <package id="Xam.Plugin.Geolocator" version="1.0.1" targetFramework="xamarinios10" />
-  <package id="Xam.Plugins.Settings" version="1.5.1" targetFramework="xamarinios10" />
-  <package id="Xam.Plugins.TextToSpeech" version="1.0.1" targetFramework="xamarinios10" />
-  <package id="Xamarin.Forms" version="1.3.3.6323" targetFramework="xamarinios10" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" />
+  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="xamarinios10" />
+  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" />
+  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="xamarinios10" />
+  <package id="Xam.Plugin.Geolocator" version="1.0.1" targetFramework="xamarinios10" />
+  <package id="Xam.Plugins.Settings" version="1.5.1" targetFramework="xamarinios10" />
+  <package id="Xam.Plugins.TextToSpeech" version="1.0.1" targetFramework="xamarinios10" />
+  <package id="Xamarin.Forms" version="1.3.3.6323" targetFramework="xamarinios10" />
+  <package id="Xamarin.Insights" version="1.10.1.109" targetFramework="xamarinios10" />
+  <package id="Xamarin.TestCloud.Agent" version="0.13.0" targetFramework="xamarinios10" />
 </packages>

+ 16 - 25
Demos/MyWeather/MyWeather/MyWeather/MyWeather.csproj

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
@@ -45,53 +45,44 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
-    <Reference Include="Geolocator.Plugin, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Geolocator.Plugin, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugin.Geolocator.1.0.1\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Geolocator.Plugin.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Geolocator.Plugin.Abstractions, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Geolocator.Plugin.Abstractions, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugin.Geolocator.1.0.1\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Geolocator.Plugin.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
       <HintPath>..\..\packages\Newtonsoft.Json.6.0.8\lib\portable-net45+wp80+win8+wpa81+aspnetcore50\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.Settings, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.Settings, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.Settings.1.5.1\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10\Refractored.Xam.Settings.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.Settings.Abstractions, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.Settings.Abstractions, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.Settings.1.5.1\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10\Refractored.Xam.Settings.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.TTS, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.TTS, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.1.0.1\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Refractored.Xam.TTS.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Refractored.Xam.TTS.Abstractions, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Refractored.Xam.TTS.Abstractions, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xam.Plugins.TextToSpeech.1.0.1\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Refractored.Xam.TTS.Abstractions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Net.Http.Extensions, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http.Extensions, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Core, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Core, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
-      <Private>True</Private>
     </Reference>
-    <Reference Include="Xamarin.Forms.Xaml, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Xamarin.Forms.Xaml, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null">
       <HintPath>..\..\packages\Xamarin.Forms.1.3.3.6323\lib\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
-      <Private>True</Private>
+    </Reference>
+    <Reference Include="Xamarin.Insights">
+      <HintPath>..\..\packages\Xamarin.Insights.1.10.1.109\lib\portable-win+net40+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>

+ 13 - 0
Demos/MyWeather/MyWeather/MyWeather/ViewModels/WeatherViewModel.cs

@@ -130,11 +130,23 @@ namespace MyWeather.ViewModels
 				var units = IsImperial ? Units.Imperial : Units.Metric;
 				if(UseCity)
 				{
+					Xamarin.Insights.Track("GetWeather", new Dictionary<string, string>
+						{
+							{"city", Location.Trim()},
+							{"units", units.ToString()}
+						});
 					weatherRoot = await weatherService.GetWeather(Location.Trim(), units);
+
 				}
 				else
 				{
+					
 					var location = await CrossGeolocator.Current.GetPositionAsync(10000);
+					Xamarin.Insights.Track("GetWeather", new Dictionary<string, string>
+						{
+							{"city", "gps"},
+							{"units", units.ToString()}
+						});
 					weatherRoot = await weatherService.GetWeather(location.Latitude, location.Longitude, units);
 				}
 
@@ -174,6 +186,7 @@ namespace MyWeather.ViewModels
 			catch (Exception ex)
 			{
 				Temp = "Unable to get Weather";
+				Xamarin.Insights.Report (ex);
 			}
 			finally
 			{

+ 13 - 13
Demos/MyWeather/MyWeather/MyWeather/Views/WeatherView.xaml

@@ -3,7 +3,7 @@
              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
              x:Class="MyWeather.Views.WeatherView"
              BackgroundImage="background.jpg">
-  <Grid Padding="25,50" RowSpacing="10" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
+  <Grid StyleId="Background" Padding="25,50" RowSpacing="10" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
     <Grid.RowDefinitions>
       <RowDefinition Height="Auto" /> <!--0-->
       <RowDefinition Height="Auto" /> <!--1-->
@@ -18,30 +18,30 @@
     </Grid.ColumnDefinitions>
 
 
-    <Entry Text="{Binding Location}"  Grid.ColumnSpan="2" IsEnabled="{Binding UseCity}"  HorizontalOptions="FillAndExpand" />
+    <Entry x:Name="EntryCity" StyleId="EntryCity" Text="{Binding Location}"  Grid.ColumnSpan="2" IsEnabled="{Binding UseCity}"  HorizontalOptions="FillAndExpand" />
 
 
 
-    <Label Grid.Column="0" Grid.Row="1" Text="Use City: " HorizontalOptions="StartAndExpand" VerticalOptions="Center"/>
-    <Switch Grid.Column="1" Grid.Row="1" IsToggled="{Binding UseCity}" HorizontalOptions="EndAndExpand"/>
+    <Label x:Name="LabelUseCity" StyleId="LabelUseCity" Grid.Column="0" Grid.Row="1" Text="Use City: " HorizontalOptions="StartAndExpand" VerticalOptions="Center"/>
+    <Switch x:Name="SwichUseCity" StyleId="SwitchUseCity" Grid.Column="1" Grid.Row="1" IsToggled="{Binding UseCity}" HorizontalOptions="EndAndExpand"/>
 
-    <Label Grid.Column="0" Grid.Row="2" Text="Imperial: " HorizontalOptions="StartAndExpand" VerticalOptions="Center"/>
-    <Switch Grid.Column="1" Grid.Row="2" IsToggled="{Binding IsImperial}" HorizontalOptions="EndAndExpand"/>
+    <Label x:Name="LabelUnits" StyleId="LabelUnits" Grid.Column="0" Grid.Row="2" Text="Imperial: " HorizontalOptions="StartAndExpand" VerticalOptions="Center"/>
+    <Switch x:Name="SwitchUnits" StyleId="SwitchUnits" Grid.Column="1" Grid.Row="2" IsToggled="{Binding IsImperial}" HorizontalOptions="EndAndExpand"/>
 
 
 
     <StackLayout Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Spacing="10" HorizontalOptions="FillAndExpand">
-      <Button Text="Get Weather" Command="{Binding GetWeatherCommand}" HorizontalOptions="FillAndExpand"/>
-      <Label x:Name="LabelTemp" Text="{Binding Temp}" TextColor="White"  HorizontalOptions="FillAndExpand"/>
-      <Label x:Name="LabelTempHigh" Text="{Binding TempHigh}" TextColor="White" HorizontalOptions="FillAndExpand" />
-      <Label x:Name="LabelTempLow" Text="{Binding TempLow}" TextColor="White" HorizontalOptions="FillAndExpand"/>
-      <Label x:Name="LabelCondition" Text="{Binding Condition}" TextColor="White" HorizontalOptions="FillAndExpand"/>
+      <Button x:Name="ButtonGetWeather" StyleId="ButtonGetWeather" Text="Get Weather" Command="{Binding GetWeatherCommand}" HorizontalOptions="FillAndExpand"/>
+      <Label x:Name="LabelTemp" StyleId="LabelTemp" Text="{Binding Temp}" TextColor="White"  HorizontalOptions="FillAndExpand"/>
+      <Label x:Name="LabelTempHigh" StyleId="LabelTempHigh" Text="{Binding TempHigh}" TextColor="White" HorizontalOptions="FillAndExpand" />
+      <Label x:Name="LabelTempLow" StyleId="LabelTempLow" Text="{Binding TempLow}" TextColor="White" HorizontalOptions="FillAndExpand"/>
+      <Label x:Name="LabelCondition" StyleId="LabelCondition" Text="{Binding Condition}" TextColor="White" HorizontalOptions="FillAndExpand"/>
     </StackLayout>
 
-    <ActivityIndicator Grid.Row="4" Grid.ColumnSpan="2" HorizontalOptions="Center" VerticalOptions="Center"
+    <ActivityIndicator x:Name="IsBusyIndicator" StyleId="IsBusyIndicator" Grid.Row="4" Grid.ColumnSpan="2" HorizontalOptions="Center" VerticalOptions="Center"
                        IsRunning="{Binding IsBusy}" IsVisible="{Binding IsBusy}"/>
 
-    <Label Grid.Row="5" Grid.Column="1" Text="{Binding TempBig}" TextColor="White" HorizontalOptions="End">
+    <Label x:Name="LabelBigTemp" StyleId="LabelBigTemp" Grid.Row="5" Grid.Column="1" Text="{Binding TempBig}" TextColor="White" HorizontalOptions="End">
       <Label.Font>
         <OnPlatform x:TypeArguments="Font">
           <OnPlatform.iOS>84</OnPlatform.iOS>

+ 11 - 10
Demos/MyWeather/MyWeather/MyWeather/packages.config

@@ -1,11 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Xam.Plugin.Geolocator" version="1.0.1" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Xam.Plugins.Settings" version="1.5.1" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Xam.Plugins.TextToSpeech" version="1.0.1" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
-  <package id="Xamarin.Forms" version="1.3.3.6323" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Xam.Plugin.Geolocator" version="1.0.1" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Xam.Plugins.Settings" version="1.5.1" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Xam.Plugins.TextToSpeech" version="1.0.1" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Xamarin.Forms" version="1.3.3.6323" targetFramework="portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="Xamarin.Insights" version="1.10.1.109" targetFramework="portable-net45+win+wp80+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10" />
 </packages>