This document provides an overview and agenda for developing Windows 10 apps, covering topics like the new Windows Core, universal app platform, app-to-app communications enhancements, and the Action Center for managing notifications. It demonstrates new controls like the RelativePanel and MonthCalendar, and how to use the SplitView control. It also shows how to check for capabilities, target platform versions, and use platform extensions.
Report
Share
Report
Share
1 of 35
More Related Content
2015 dan ardelean develop for windows 10
1. Develop for Windows 10
(PREVIEW)
Dan Ardelean – Mahiz
Twitter: @danardelean Email: dan.ardelean@live.com
Microsoft MVP Window Platform Development
Xamarin Certified Mobile Developer
12. Test capabilities at runtime
var ns = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(ns))
{
Windows.Phone.UI.Input.HardwareButtons
.BackPressed += Back_BackPressed;
}
13. Platform extensions
<ItemGroup>
<!-- Reference to the .Net Framework
and Windows SDK are automatic -->
<SDKReference Include="Windows Desktop,
Version=10.0.9910.0"/>
<SDKReference Include="Windows Mobile,
Version=10.0.0.1"/>
</ItemGroup>
20. Visual State setters & triggers
Setters set discrete properties
Many properties do not need animation
Triggers declare when a state is applied
No need to manually handle events in code-behind
<VisualState x:Name="wideState">
<VisualState.Setters>
<Setter Target="myPanel.Orientation" Value="Horizontal" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
</VisualState>
21. App to App Communication
enhancements in Windows 10
22. Enhanced App to App in Windows 10
Send file token, send data
Launch a *specific* app
App Services
Launch for Results
23. URI Activation++
Invoke a specific app
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriAsync(launchUri, options);
24. URI Activation++
Send Files
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";
var token = SharedStorageAccessManager.AddFile (gpxFile);
ValueSet inputData = new ValueSet();
inputData.Add("Token", token);
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriAsync(launchUri, options, inputData);
25. Query URI Support
Discover if app already installed to handle a Uri
var queryUri = new Uri("instapaper:");
await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUri);
?
var queryUri = new Uri("instapaper:");
string packageFamilyName = "24919.InstapaperIt";
await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUriForResults, packageFamilyName);
26. Launch for Results
Launching the app
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.Instap";
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriForResultsAsync(launchUri, options, data);
var resultData = new ValueSet();
resultData.Add("Result", value);
operation.ProtocolForResultsOperation.ReportCompleted(resultData);A
App1 App2
30. Action Center – User Experience
20 Notifications per app
Persistent notifications for 7 days (or shorter)
Users can:
- “chase” (tap) a notification (removes it from the action center)
- remove a group of notifications
- remove all notifications
First available on Phone in 8.1 - now on Windows
10 desktop as well!
31. Action Center Management APIs
Manage app notifications
Developers can:
• Remove one or many notifications
• Tag and group notifications
• Replace a notification with a new one
• Set an expiration on notifications
• Send “Ghost Toast” notifications (only show up in the notification center)
32. Action Center change triggers
ToastNotificationHistoryChangedTrigger
• Fires whenever a user dismisses a notification from Action Center
• Or when an app adds or removes or replaces a notification
Use to trigger a Background task in which you can maintain
consistency of unactioned item counts in app state and on
Tiles
33. Action Center change trigger
// Background task for a ToastNotificationHistoryChangedTrigger
public sealed class ActionCenterChangedTask: IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
var toasts = ToastNotificationManager.History.GetHistory();
if (toasts != null)
{
var count = toasts.Count();
if (count== 0)
{
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
}
else
{
XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);
XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
badgeElement.SetAttribute("value", count.ToString());
BadgeNotification badge = new BadgeNotification(badgeXml);
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badge);
}
}
}
}
34. Where to start
Installation
Windows 10 preview
• http://insider.windows.com/
Visual Studio 2015 preview
• http://www.visualstudio.com
The Visual Studio installer includes
the Windows 10 preview SDK
Extras
Microsoft Account
• Windows Developer License
Hyper-V (hardware dependent)
• Phone emulator