essentials of developing windows phone apps
DESCRIPTION
Essentials of Developing Windows Phone Apps. Chinthaka Dissanayake Tech Lead Exilesoft. Is it difficult to become a WP Developer??. Runtime APIs. Web Developers. Windows Developers. One Windows for All. Shared Dev registration Shared Entitlement. Core Platform. Development Platform. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/1.jpg)
Essentials of Developing Windows
Phone AppsChinthaka Dissanayake
Tech Lead Exilesoft
![Page 2: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/2.jpg)
Is it difficult to become a WP Developer??
Web Developers
Windows Developers
Runtime APIs
![Page 3: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/3.jpg)
One Windows for All
Development Platform
Core Platform
90%+• More skillset Reuse• More code reuse• More seamless app experiences
• Shared Dev registration• Shared Entitlement
• Proximity and Location Frameworks• Security and Identity• Task Scheduler
![Page 4: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/4.jpg)
Windows Developer Platform
WinJS(HTML + JS)
Windows XAML
(C#/VB/C++)
Windows Phone Silverlight (C#/VB)
DirectX (C++)
Windows Runtime (WinRT) .NET CLR
Navigation
Packaging
Contracts
Background
App Model Services
Store
Push
Roaming
App Data Backup
Windows Kernel
Graphics Audio Media Commerce
Networking File System Input Sensors
Windows Runtime API Set
![Page 5: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/5.jpg)
Getting Windows Phone 8.1• New Devices sold into market from July 2014 will have
Windows Phone 8.1 pre-installed• All devices running Windows Phone 8.0 are capable of
being upgraded to Windows Phone 8.1– Availability of upgrades for devices is under the control of
the Mobile Operator• Registered developers can upgrade their phone
through the “Preview for Developers” Program– http://dev.windowsphone.com– http://appstudio.windowsphone.com
https://dev.windowsphone.com/en-us/develop/devpreview
![Page 6: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/6.jpg)
Development PC requirements• Supported Operating Systems– Windows 8.1 (X86 or X64)
• Hardware– 4GB of Disk Space– 1.5GB of RAM– 64 bit Motherboard
• To use Windows Phone Emulators– Windows 8.1 Pro or Higher (for Hyper-V)– Second Level Address Translation– Min 4GB RAM
![Page 7: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/7.jpg)
Development Choices
WP 7.0Silverlight
WP 7.5Silverlight
WP 8.0Silverlight
WP 8.1Silverlight
WP 8.1 WinRT
![Page 8: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/8.jpg)
Design Principles• Content, NOT Chrome• Alive and in Motion• Clean, Light, Open and Fast• Celebrate Typography• Windows 8 UI Guidelines
http://msdn.microsoft.com/en-us/library/windows/apps/hh465424.aspx
![Page 9: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/9.jpg)
MVVM
ViewModel
ModelView
Binding
Commands
• Stands for Model-View-ViewModel• Architectural Pattern that employs Data binding and strict
Separation of Concerns
See : http://msdn.microsoft.com/en-us/library/hh821028.aspx
![Page 10: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/10.jpg)
Let’s Develop a Real App
![Page 11: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/11.jpg)
How data binding Works
<TextBlock Text={Binding ItemName}
ToDoItemsPage.XAML
<ToDoItemsPage DataContext=ToDoItemsViewModel>
View
Property : ItemName: Value = “Meetup”
ToDoItemsViewModel : INotifyPropertyChanged
ViewModel
Subscribes to
PropertyChanged
![Page 12: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/12.jpg)
Application Lifecycle, Why ?• Phone Resources are scarce• OS Runs one foreground app at a time• Other apps are suspended and/or terminated• OS has many mechanisms for an app to
appear ‘alive’• OS has controlled mechanisms for
background code
![Page 13: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/13.jpg)
Application Lifecycle
Request app in foreground
Use Suspending and OnLaunched States to save and restore state
Save State during Suspending
App activated (User or contract)
OS Preserves the Status
Suspended
Running App sent to background
Not running
OS reclaims system resources
Activated
Resuming Suspending
Can we debug these State Transitions ?
![Page 14: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/14.jpg)
Manifest, Device Capabilities and App Packaging
• Describes your Application– Display Name– Entry Point / Navigation Page– App Icon/Images tiles and Logos– Capabilities– Requirements
• Demo
![Page 15: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/15.jpg)
Testing – Windows App Certification Kit (WACK)
• Create App Package via Visual Studio• Run WACK and selected the created AppX• Select tests to be run• Output is an XML file that can be opened in a
browser to analyze result• Demo
![Page 16: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/16.jpg)
Windows Phone Store
• Only way you can put executable content into Windows Phone
• Users can buy applications and deploy them onto their devices
• Developers can unlock their own devices for testing
![Page 17: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/17.jpg)
Joining the Store• How to become a Publisher– $19/Year for individual registrations– $99/Year for companies
• Options for Students– DreamSpark– MSDN Benefits
• Join at– http://dev.windowsphone.com– http://dev.windows.com
![Page 18: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/18.jpg)
Monetization Options
• Paid App• Paid App with free trial
– Time limited Trial– Feature limited Trial
• Paid/Free App with in-app purchase• Free App with Ads
– Microsoft Ads SDK– Third party ad SDKs or Product Rotators
• Free App
![Page 19: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/19.jpg)
Developer Portal and App Submission
• Shared Identity Apps– Customer gets app and Entitlements across
Windows and Phone– Roaming data enabled across Windows and Phone– Single Push Notification Channel
![Page 20: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/20.jpg)
What's Next ?
![Page 21: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/21.jpg)
Questions ?
![Page 22: Essentials of Developing Windows Phone Apps](https://reader035.vdocuments.mx/reader035/viewer/2022062300/56812bc6550346895d900f7a/html5/thumbnails/22.jpg)
Summary
Development Choices Data Binding
Lifecycle Packaging
Testing
Architecture and Design
UI Design
Store Submission Monetization
Universal Apps