SlideShare une entreprise Scribd logo
1  sur  17
An Introduction to
Universal Windows Apps
Ken Cenerelli
@KenCenerelli
What is it?
 Build one app that targets Windows and Windows Phone
 Provides a common experience, shared app identity, single app
purchase, shared in-app purchases and shared data/profile
 It is not:
 A single binary
 A non-Windows application (i.e. Supporting Android & iOS)
 A non-native HTML/JavaScript application (i.e. Apache Cordova)
Overview
 Announced in April 2014
 Develop once for all Windows devices using a unified
Windows runtime and set of tools
 Project structure comes from Linked Files, a technology since
the early days of .NET 2005
Platform Convergence
 Windows Phone 8.1, Windows 8 RT and Window 8.1 flavours of
Windows share a common runtime
 Existing Windows 8 apps can be migrated to shared projects
 Share code while just making tweaks to the UI
 Silverlight Phone 8.0 apps work on 8.1 without upgrade
The Windows Runtime API & Microsoft SDKs are
around 90% converged and closing
Why should you care?
 Windows 10 is coming with a free upgrade for Windows 8 so
exponentially more adoption within the enterprise
Source: OS Platform Statistics, http://www.w3schools.com/browsers/browsers_os.asp
 Flip side though is Windows Phone market share is 2.9%
compared to ~84% for Android and ~12% for iOS
Source: Smartphone OS Market Share, Q3 2014, http://www.idc.com/prodserv/smartphone-os-market-share.jsp
Things to know
 Multiple languages supported (C# or C++ with XAML,
C++ with DirectX, and JavaScript with HTML/CSS)
 The IDE is free
 Must be Visual Studio 2013 with Update 2 or later
 Works with the Express versions and the new Community Edition
 Physical device nice to have but not essential
 Requires a developer license for your computer
 Needs a Microsoft account (i.e. Windows Live account)
 Requires a developer account to publish ($20 CAD)
Demo
 Our first Universal Windows App
How to share code?
 Before UA there were:
 Linked Files
 Portable Class Libraries
 We now have:
 Shared Projects (Conditional Compilation)
 Partial Classes (Split the code across multiple files)
 Portable Class Libraries
 Base Classes
 User Controls
 Visibility
Things to share
 Reusable business logic (C# code)
 Resources & Assets (images)
 Views similar to both projects:
 Login Page
 Privacy Page
Demo
 Sharing code and views:
 Shared Projects
 Conditional Compilation
 Partial Classes
 XAML UI code
Rules of Thumb
 Conditional Compilation
 Can make code difficult to read
 Solves small, quick-hit platform problems
 Only supported when using the Shared project
 Partial classes
 Makes it easy to isolate platform code
 Difficult to see the entirety of your code
 Don’t expect to save time writing XAML
 Do expect to save time writing implementation code
Tips for design
 Think through the design for both platforms before you
start coding
 If you keep the Microsoft design, it means that the user
knows how to move around the app intuitively
 Device variability: Default for tablet Is landscape and
default for phone is portrait
 It’s okay if each version doesn’t look the same and
doesn’t have the same features
 There is no silver bullet solution
 There are just small choices you will make as you develop a
pattern of practice
Tips for development
 Develop apps in sync to solve problems in parallel
 Target lowest supported device for phone development
 ~50% of Windows Phone users use a low-end device
 Startup both projects in the emulator at the same time
 Use the Navigation Bar to segment your code per project
 Optimize the user experience for the device they are on
Testing
 Unit Tests
 Create separate unit test projects for each platform
 Coded UI
 Need Visual Studio Premium and Ultimate
 Windows App Certification Kit (WACK)
 Available as separate download
 Windows Store app test cases
Publishing
 Reserve a name in the store for your app
 Valid for 12 months
 Must match the Display Name in your app manifest
 If the app connects to internet, must have a Privacy Policy
 Publish first app and then associate the second to it
 Approval takes anywhere from 0.5 days to a week
Resources
 Get started with Universal Windows Apps:
 http://bit.ly/1L45n62
 http://bit.ly/1MrKx3Q
 http://bit.ly/1u033XM
Summary
 Please fill out your surveys!
 Title: An Introduction to Universal Windows Apps
 https://joind.in/talk/view/13288
 Contact Details:
 @KenCenerelli
 Ken_Cenerelli@Outlook.com
 kencenerelli.wordpress.com/contact

Contenu connexe

Tendances

Capturing Your Audience with Kinect
Capturing Your Audience with KinectCapturing Your Audience with Kinect
Capturing Your Audience with KinectShahed Chowdhuri
 
Android development
Android developmentAndroid development
Android developmentRaynax668
 
Windows store app development V1
Windows store app development V1Windows store app development V1
Windows store app development V1Foyzul Karim
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming'Zamin Mammadov
 
[Android] Introduction to Android Programming
[Android] Introduction to Android Programming[Android] Introduction to Android Programming
[Android] Introduction to Android ProgrammingNikmesoft Ltd
 
Best Interactive guide on Top 10 Mobile App Development Frameworks
Best Interactive guide on Top 10 Mobile App Development FrameworksBest Interactive guide on Top 10 Mobile App Development Frameworks
Best Interactive guide on Top 10 Mobile App Development Frameworksvarshasolanki7
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.netSaad Wazir
 
Experience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW IndiaExperience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW IndiaVishakhaTalmale
 
Flutter dhaval solanki
Flutter   dhaval solankiFlutter   dhaval solanki
Flutter dhaval solankiDhaval Solanki
 
Develop hololens
Develop hololensDevelop hololens
Develop hololensJames Quick
 
Windows Phone 8 App Development
Windows Phone 8 App DevelopmentWindows Phone 8 App Development
Windows Phone 8 App DevelopmentDalpatTapaniya
 
Develop for Windows Phone Mango and Windows 8: our Tips
Develop for Windows Phone Mango and Windows 8: our TipsDevelop for Windows Phone Mango and Windows 8: our Tips
Develop for Windows Phone Mango and Windows 8: our TipsSoumow Dollon
 
Flutter 2.2 version | skywave info solutions
Flutter 2.2 version | skywave info solutionsFlutter 2.2 version | skywave info solutions
Flutter 2.2 version | skywave info solutionsSkywave Info Solutions
 
QBS Visual Studio 2012 and modern windows apps
QBS Visual Studio 2012 and modern windows appsQBS Visual Studio 2012 and modern windows apps
QBS Visual Studio 2012 and modern windows appsLee Stott
 
Presentation on Visual Studio
Presentation on Visual StudioPresentation on Visual Studio
Presentation on Visual StudioMuhammad Aqeel
 
Windows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentWindows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentChristos Matskas
 
Developing with Adobe AIR
Developing with Adobe AIRDeveloping with Adobe AIR
Developing with Adobe AIRPeter Elst
 
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSBENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSbrtechnosoft2018
 

Tendances (20)

Capturing Your Audience with Kinect
Capturing Your Audience with KinectCapturing Your Audience with Kinect
Capturing Your Audience with Kinect
 
Android development
Android developmentAndroid development
Android development
 
Windows store app development V1
Windows store app development V1Windows store app development V1
Windows store app development V1
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
[Android] Introduction to Android Programming
[Android] Introduction to Android Programming[Android] Introduction to Android Programming
[Android] Introduction to Android Programming
 
Best Interactive guide on Top 10 Mobile App Development Frameworks
Best Interactive guide on Top 10 Mobile App Development FrameworksBest Interactive guide on Top 10 Mobile App Development Frameworks
Best Interactive guide on Top 10 Mobile App Development Frameworks
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.net
 
Experience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW IndiaExperience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW India
 
Flutter dhaval solanki
Flutter   dhaval solankiFlutter   dhaval solanki
Flutter dhaval solanki
 
Develop hololens
Develop hololensDevelop hololens
Develop hololens
 
Windows Phone 8 App Development
Windows Phone 8 App DevelopmentWindows Phone 8 App Development
Windows Phone 8 App Development
 
Develop for Windows Phone Mango and Windows 8: our Tips
Develop for Windows Phone Mango and Windows 8: our TipsDevelop for Windows Phone Mango and Windows 8: our Tips
Develop for Windows Phone Mango and Windows 8: our Tips
 
Flutter 2.2 version | skywave info solutions
Flutter 2.2 version | skywave info solutionsFlutter 2.2 version | skywave info solutions
Flutter 2.2 version | skywave info solutions
 
QBS Visual Studio 2012 and modern windows apps
QBS Visual Studio 2012 and modern windows appsQBS Visual Studio 2012 and modern windows apps
QBS Visual Studio 2012 and modern windows apps
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
Presentation on Visual Studio
Presentation on Visual StudioPresentation on Visual Studio
Presentation on Visual Studio
 
Everything you need to know about flutter 2.2
Everything you need to know about flutter 2.2Everything you need to know about flutter 2.2
Everything you need to know about flutter 2.2
 
Windows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentWindows Phone and Windows 8 application development
Windows Phone and Windows 8 application development
 
Developing with Adobe AIR
Developing with Adobe AIRDeveloping with Adobe AIR
Developing with Adobe AIR
 
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSBENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
 

Similaire à An Introduction to Universal Windows Apps

Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)Shahed Chowdhuri
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchSteve Drucker
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionCesar Augusto Nogueira
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phonesDennise Layague
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsShahed Chowdhuri
 
Android deep dive
Android deep diveAndroid deep dive
Android deep diveAnuSahniNCI
 
.Net Technologies Lesson 1.pptx
.Net Technologies Lesson 1.pptx.Net Technologies Lesson 1.pptx
.Net Technologies Lesson 1.pptxEllenGracePorras
 
Creating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for AndroidCreating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for AndroidMotorola Mobility - MOTODEV
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfAbdullahMunir32
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 
Analysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAnalysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAmanda Brady
 
Flutter vs React Native
Flutter vs React NativeFlutter vs React Native
Flutter vs React NativeSofiaCarter4
 
Mobile Devolpment Slides
Mobile Devolpment SlidesMobile Devolpment Slides
Mobile Devolpment SlidesLuke Angel
 
Classification of the document
Classification of the documentClassification of the document
Classification of the documentthink_cloud
 

Similaire à An Introduction to Universal Windows Apps (20)

Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)Azure Mobile Services (+ Universal Apps)
Azure Mobile Services (+ Universal Apps)
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Mobile app
Mobile appMobile app
Mobile app
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal Apps
 
Windows 7 mobile
Windows 7 mobileWindows 7 mobile
Windows 7 mobile
 
Android deep dive
Android deep diveAndroid deep dive
Android deep dive
 
.Net Technologies Lesson 1.pptx
.Net Technologies Lesson 1.pptx.Net Technologies Lesson 1.pptx
.Net Technologies Lesson 1.pptx
 
Presentation[1]
Presentation[1]Presentation[1]
Presentation[1]
 
Creating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for AndroidCreating Great Apps with MOTODEV Studio for Android
Creating Great Apps with MOTODEV Studio for Android
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdf
 
Android Web app
Android Web app Android Web app
Android Web app
 
Analysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAnalysis Of The Original Version Of Java
Analysis Of The Original Version Of Java
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Flutter vs React Native
Flutter vs React NativeFlutter vs React Native
Flutter vs React Native
 
Mobile Devolpment Slides
Mobile Devolpment SlidesMobile Devolpment Slides
Mobile Devolpment Slides
 
Introduction to Android Environment
Introduction to Android EnvironmentIntroduction to Android Environment
Introduction to Android Environment
 
Classification of the document
Classification of the documentClassification of the document
Classification of the document
 
Windows 8 App Development
Windows 8 App DevelopmentWindows 8 App Development
Windows 8 App Development
 

Plus de Ken Cenerelli

ASP.NET Core deployment options
ASP.NET Core deployment optionsASP.NET Core deployment options
ASP.NET Core deployment optionsKen Cenerelli
 
No SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBNo SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBKen Cenerelli
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile appsKen Cenerelli
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsKen Cenerelli
 
Analyze Your Code With Visual Studio 2015 Diagnostic Tools
Analyze Your Code With Visual Studio 2015 Diagnostic ToolsAnalyze Your Code With Visual Studio 2015 Diagnostic Tools
Analyze Your Code With Visual Studio 2015 Diagnostic ToolsKen Cenerelli
 
Building high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsBuilding high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsKen Cenerelli
 
Build end-to-end video experiences with Azure Media Services
Build end-to-end video experiences with Azure Media ServicesBuild end-to-end video experiences with Azure Media Services
Build end-to-end video experiences with Azure Media ServicesKen Cenerelli
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureKen Cenerelli
 
Building Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile ServicesBuilding Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile ServicesKen Cenerelli
 
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...Ken Cenerelli
 
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...Ken Cenerelli
 
An Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 DevelopmentAn Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 DevelopmentKen Cenerelli
 
Introduction To Umbraco
Introduction To UmbracoIntroduction To Umbraco
Introduction To UmbracoKen Cenerelli
 

Plus de Ken Cenerelli (14)

ASP.NET Core deployment options
ASP.NET Core deployment optionsASP.NET Core deployment options
ASP.NET Core deployment options
 
No SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBNo SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDB
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile apps
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bits
 
Analyze Your Code With Visual Studio 2015 Diagnostic Tools
Analyze Your Code With Visual Studio 2015 Diagnostic ToolsAnalyze Your Code With Visual Studio 2015 Diagnostic Tools
Analyze Your Code With Visual Studio 2015 Diagnostic Tools
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
Building high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsBuilding high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application Insights
 
Build end-to-end video experiences with Azure Media Services
Build end-to-end video experiences with Azure Media ServicesBuild end-to-end video experiences with Azure Media Services
Build end-to-end video experiences with Azure Media Services
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
Building Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile ServicesBuilding Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile Services
 
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
 
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
 
An Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 DevelopmentAn Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 Development
 
Introduction To Umbraco
Introduction To UmbracoIntroduction To Umbraco
Introduction To Umbraco
 

Dernier

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Dernier (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

An Introduction to Universal Windows Apps

  • 1. An Introduction to Universal Windows Apps Ken Cenerelli @KenCenerelli
  • 2. What is it?  Build one app that targets Windows and Windows Phone  Provides a common experience, shared app identity, single app purchase, shared in-app purchases and shared data/profile  It is not:  A single binary  A non-Windows application (i.e. Supporting Android & iOS)  A non-native HTML/JavaScript application (i.e. Apache Cordova)
  • 3. Overview  Announced in April 2014  Develop once for all Windows devices using a unified Windows runtime and set of tools  Project structure comes from Linked Files, a technology since the early days of .NET 2005
  • 4. Platform Convergence  Windows Phone 8.1, Windows 8 RT and Window 8.1 flavours of Windows share a common runtime  Existing Windows 8 apps can be migrated to shared projects  Share code while just making tweaks to the UI  Silverlight Phone 8.0 apps work on 8.1 without upgrade The Windows Runtime API & Microsoft SDKs are around 90% converged and closing
  • 5. Why should you care?  Windows 10 is coming with a free upgrade for Windows 8 so exponentially more adoption within the enterprise Source: OS Platform Statistics, http://www.w3schools.com/browsers/browsers_os.asp  Flip side though is Windows Phone market share is 2.9% compared to ~84% for Android and ~12% for iOS Source: Smartphone OS Market Share, Q3 2014, http://www.idc.com/prodserv/smartphone-os-market-share.jsp
  • 6. Things to know  Multiple languages supported (C# or C++ with XAML, C++ with DirectX, and JavaScript with HTML/CSS)  The IDE is free  Must be Visual Studio 2013 with Update 2 or later  Works with the Express versions and the new Community Edition  Physical device nice to have but not essential  Requires a developer license for your computer  Needs a Microsoft account (i.e. Windows Live account)  Requires a developer account to publish ($20 CAD)
  • 7. Demo  Our first Universal Windows App
  • 8. How to share code?  Before UA there were:  Linked Files  Portable Class Libraries  We now have:  Shared Projects (Conditional Compilation)  Partial Classes (Split the code across multiple files)  Portable Class Libraries  Base Classes  User Controls  Visibility
  • 9. Things to share  Reusable business logic (C# code)  Resources & Assets (images)  Views similar to both projects:  Login Page  Privacy Page
  • 10. Demo  Sharing code and views:  Shared Projects  Conditional Compilation  Partial Classes  XAML UI code
  • 11. Rules of Thumb  Conditional Compilation  Can make code difficult to read  Solves small, quick-hit platform problems  Only supported when using the Shared project  Partial classes  Makes it easy to isolate platform code  Difficult to see the entirety of your code  Don’t expect to save time writing XAML  Do expect to save time writing implementation code
  • 12. Tips for design  Think through the design for both platforms before you start coding  If you keep the Microsoft design, it means that the user knows how to move around the app intuitively  Device variability: Default for tablet Is landscape and default for phone is portrait  It’s okay if each version doesn’t look the same and doesn’t have the same features  There is no silver bullet solution  There are just small choices you will make as you develop a pattern of practice
  • 13. Tips for development  Develop apps in sync to solve problems in parallel  Target lowest supported device for phone development  ~50% of Windows Phone users use a low-end device  Startup both projects in the emulator at the same time  Use the Navigation Bar to segment your code per project  Optimize the user experience for the device they are on
  • 14. Testing  Unit Tests  Create separate unit test projects for each platform  Coded UI  Need Visual Studio Premium and Ultimate  Windows App Certification Kit (WACK)  Available as separate download  Windows Store app test cases
  • 15. Publishing  Reserve a name in the store for your app  Valid for 12 months  Must match the Display Name in your app manifest  If the app connects to internet, must have a Privacy Policy  Publish first app and then associate the second to it  Approval takes anywhere from 0.5 days to a week
  • 16. Resources  Get started with Universal Windows Apps:  http://bit.ly/1L45n62  http://bit.ly/1MrKx3Q  http://bit.ly/1u033XM
  • 17. Summary  Please fill out your surveys!  Title: An Introduction to Universal Windows Apps  https://joind.in/talk/view/13288  Contact Details:  @KenCenerelli  Ken_Cenerelli@Outlook.com  kencenerelli.wordpress.com/contact

Notes de l'éditeur

  1. - 100% will probably never happen; different devices and different expectations; e.g. Phone calls but not on tablet
  2. Windows 10 is in Technical Preview now and scheduled for mid-2015
  3. Can create a Mixed app to move existing code towards a universal model Add a Windows app 8.1 Add a Class Library (Portable for Universal Apps) Right click PCL | Properties | Change to change targets
  4. Linked Files: Linked Files and Shared Projects are pretty much the same Universal Apps use Linked Files in the background but provides us with better tooling and makes it easier to get started developing Conditional Compilation: Means compiling the bits we need for that project; they compile to two different projects Visibility: Can add visible in the various elements to only show for that Collapsed means it does not take up screen real estate or render time for that project
  5. - Resource files can be used in XAML and code
  6. - Shared project + conditional compilation is the most used
  7. Platform differences is natural and expected on both the user and developer sides; targeting different devices and different user expectations You can have responsive design to trap the switch from landscape to portrait Can use Blend to design your UI There are 191 Markets and 54 languages
  8. WACK test for certification Microsoft uses this tool before they manually test Even use for side loading apps Get a full report on pass/fail
  9. You can reserve your app name well before you submit (or even build) your app This value must be no more than 256 characters Make sure that you use your reserved app name as the DisplayName in your app's manifest