Post on 24-May-2015
description
Apps Development on Windows Phone
-ByPruthvi.
-Overview-MVVM-Building Windows Phone apps
Agenda
General ConceptSoftware
Architecture
App Model
Cloud and Integration
Services
Hardware Foundation
UI Model
New Concept
4
DESIGN: END USER COMES FIRST
PLATFORM: RICHER, DEEPER, EASIER APPS
HARDWARE:FASTER TO MARKET, LESS HEAVY LIFTING
The table below provides a summary of each Windows & Windows Phone device type, its operating system, CPU architecture, what applications & games you can buy, install and run, and how you build those apps & games. I’ve also added a last row to clearly show where Microsoft is positioning these devices in the competitive marketplace.Devices Microsoft Surface
(Pro)Microsoft Surface
(RT)Windows Phone 7.5(e.g. Nokia Lumia)
Windows Phone8 / vNext
Operating System Windows 8 Pro Windows RT Windows Phone 7.1 Windows Phone 8.0CPU Architecture Intel/AMD x32 & x64 ARM ARM ARM
Applications you can buy in the official Microsoft Windows App Store
Metro AppsMetro Games
Metro AppsMetro Games
Windows Phone AppsWindows Phone
Games
Windows Phone AppsWindows Phone
Games
Applications you can run
Metro Apps, .NET Apps, native apps and
anything that runs on Windows 7 today
Metro Apps Windows Phone AppsWindows Phone
Games
Anything that runs on Windows Phone 7.5
has been confirmed to run on vNext
Side-load Applications Desktop-only for consumers. Metro apps can be side-loaded in
enterprise
No. Metro apps can be side-loaded in
enterprise
No No. Metro apps can be side-loaded in enterprise via
corporate app hubsRuns Microsoft Office Yes Yes Yes, mobile version Yes, mobile version
Plays Xbox LIVE Games Yes Yes Yes YesDeveloper Platform WinRT, .NET, WPF,
Silverlight, XNA, Java, Native, and everything else used to build apps
for Windows 7 today
WinRT
.NET + Silverlight 4 for Windows Phone
apps.XNA for Windows
Phone games
WinRT for Windows Phone apps.
Choice of XNA or Native D3D for Windows Phone
games
Developer Languages C#, VB, C/C++, Java, F#, Ruby, Python,
JavaScript, PHP, Perl, Haskell and any other language you can use
for Windows 7 dev
C#/VB + XAML for Metro Apps.
D3D & C++ for Metro Games
C#/VB + XAML for Silverlight apps.
C#/VB.NET + XNA for games
C#/VB + XAML for WP Metro Apps.
C#/VB + XNA or C++ & D3D for Windows Phone
games
Primary Competitors Apple MacBook AirX86/x64 Ultrabooks, Netbooks & Tablets
Apple iPadAndroid Tablets
Blackberry PlaybookKindle Fire
Apple iPhoneAndroid Smartphones
Blackberry devices
Same as WP 7.5
Overview
Two Flavors of Applications
7
High performance game framework
Rapid creation of multi-screen 2D and 3D games
Rich content pipeline Mature, robust, widely
adopted technology spanning Xbox 360, Windows, and Zune
Modern XAML/event-driven application UI framework
Rapid creation of visually stunning apps
Metro-themed UI controls
HTML/JavaScript 500,000 developers
spanning Windows and web
A declarative, markup-based language to define your user experienceThe way to write apps for Windows PhoneAligns with Windows 8
eXtensible ApplicationMarkupLanguage
What is XAML?
MVVM Made Easy
DEV216
MVVM?
Model-View-ViewModelModel = Data ClassView = User InterfaceViewModel (VM)UI binds to this classCommunication from View to VM is via data binding
Simple Case
Examplepublic class StudentData : INotifyPropertyChanged{ string _firstName = null; public string StudentFirstName { get { return _firstName; } set { _firstName = value; OnPropertyChanged("StudentFirstName"); } }
double _gradePointAverage; public double StudentGradePointAverage { get { return _gradePointAverage; }
set { _gradePointAverage = value; OnPropertyChanged("StudentGradePointAverage"); } }}
<TextBox Text="{Binding Path=StudentFirstName}" Grid.Row="1"
Grid.Column="2" VerticalAlignment="Center" />
...<TextBox Text="{Binding Path=StudentGradePointAverage}"
Grid.Row="2" Grid.Column="2"
VerticalAlignment="Center" />
Architecture
Building WP apps
New and Updated Project TemplatesHTML5, Localization Support, Alignment Grid
Project templates
Windows Phone Developer Tools
16
Packaging & Verification Tools
myapp.xap
Windows Phone device
Windows PhoneEmulator
Phone EmulatorSamples DocumentationGuides Community
Packaging and Verification Tools
Tools
Register Your Device
17
Test on a physical deviceRegister your deviceInstall, run, and debug unsigned applicationsUse Zune to register your device
Deployment Process
18
Develop & Debug
Submit& Validate
Certify & Sign
Windows Phone Application Deployment Service
Marketplace
Application Lifecycle Software
Architecture
App Model
Cloud and Integration
Services
Hardware Foundation
UI Model
Application Lifecycle
running
deactivated
DormantTomb
stoned
activated
Save State!
Load State!
e.IsApplicationInstancePreserved ? Dormant : Tomb stoned
- Phone removed from memory
App Demo Dormant vs Tomb stone
UIModel
Software Architecture
App Model
Cloud and Integration
Services
Hardware Foundation
UI Model
Application Bar and System Tray
System TrayNo integration, but does affect LayoutShow:Hide using SystemTray.IsVisible
Application BarUp to 4 ButtonsMenu Items (Recommended 6) Toggle Visibility<mypage>.ApplicationBar.IsVisible
23
Panorama
24
Part of the native Windows Phone look and feelPanorama is a long horizontal canvasPanoramaItem serves as a container that hosts other content and controls
Pivot
25
Provides a quick way to manage views or pagesPivot is a container of pivot itemsPivotItem contain individual page content such as controls, grids, or links
Many more…
Standard ControlsButtons, Image, Layout, ListBox, TextBox, Slider, Other…
Bing MapsBing Map Control, Integration with Bing Maps Services
Web BrowserDisplays network and local content, Supports pan, double tap and pinch to zoom, Supports transforms & projections, Application can interact with javascript
26
LongListSelector
JumpList Sticky HeadersGrid View
-infinite scrolling-Remember to set IsGroupingEnabled
Launchers & ChoosersLaunchers let you fire and forgetSMS, Email, Web Browser, Dialer, Search, etc.
Choosers let you fire and pick the results backPicture, Camera, Contact, etc.
Localization(Global reach)Culture InfoUse resource strings from the start, both code-behind and XAML.
28
Push Notifications(Integration Service) Software
Architecture
App Model
Cloud and Integration
Services
Hardware Foundation
UI Model
Types of Push Notifications
Tile notificationsUpdate tile count, title and background image
30
<wp:Notification xmlns:wp="WPNotification"> <wp:Tile Id="/WorldNews.xaml?how=start"> <wp:BackgroundImage>http://www.contoso.com/worldTile.png</wp:BackgroundImage> <wp:Count>1</wp:Count> <wp:Title>Weather</wp:Title> <wp:BackBackgroundImage>http://www.contoso.com/worldBack.png</wp:BackBackgroundImage> <wp:BackContent>Happy World News</wp:BackContent> <wp:BackTitle>World News</wp:BackTitle> </wp:Tile></wp:Notification>
Toast notificationsDisplay a on-top-like message
<wp:Notification xmlns:wp="WPNotification"> <wp:Toast> <wp:Text1>Tile</wp:Text1> <wp:Text2>Sub-title</wp:Text2> <wp:Param>/detailsPage.xaml</wp:Param> </wp:Toast></wp:Notification>
Push Notifications
32
“Response”Device Connection Status : Connected
Notification Status : Received Subscription Status : Active
Windows Phone Dev Centerhttp://dev.windowsphone.com/en-us
Windows Phone Toolkithttp://phone.codeplex.com
- Thank You Questions?(Please do your eval!)