SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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

Editor's Notes

  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