SlideShare a Scribd company logo
Matt Lacey @mrlacey http://mrlacey.com/
me
Freelance developer
Doing “mobile” development over 10 years
Organise the Windows Phone User Group
Wants to help you build awesome apps
YOU
Developer
Experienced on other mobile platforms
Some Windows Phone awareness
Want to build awesome apps
native x-platform games
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
principles language&
1. Pride in craftsmanship
2. Be fast and fluid
3. Authentically digital
4. Do more with less
5. Win as one
The OS implementation of the principles
Can follow the principles
without implementing the
language
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
Apps can be more than just
white text on a black
background
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
Are drop shadows, gradients,
rounded corners and gloss
really a part of your brand?
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
http://www.flickr.com/photos/winterofdiscontent/3231416496/
.net
async
C#
5
var client = new WebClient();
client.DownloadStringCompleted +=
(sender, args) =>
MessageBox.Show(args.Result.Length.ToString(),
"Response length",
MessageBoxButton.OK);
client.DownloadStringAsync(
new Uri("http://www.mobdevcon.com/"));
10 tips for porting to Windows Phone 8
private async Task ShowPageLength()
{
var client = new HttpClient();
var response = await client.GetStringAsync(
"http://www.mobdevcon.com/");
MessageBox.Show(response.Length.ToString(),
"Response length",
MessageBoxButton.OK);
}
[CompilerGenerated]
private struct <MakeAwaitableRequest>d__0 : IAsyncStateMachine
{
public int <>1__state;
public MainPage <>4__this;
public AsyncVoidMethodBuilder <>t__builder;
private object <>t__stack;
private TaskAwaiter<string> <>u__$awaiter3;
public HttpClient <client>5__1;
public string <response>5__2;
private void MoveNext()
{
try
{
TaskAwaiter<string> awaiter;
bool flag = true;
switch (this.<>1__state)
{
case -3:
goto Label_00DD;
case 0:
break;
default:
this.<client>5__1 = new HttpClient();
awaiter = this.<client>5__1.GetStringAsync("http://www.mobdevcon.com/").GetAwaiter();
if (awaiter.IsCompleted)
{
goto Label_008A;
}
this.<>1__state = 0;
this.<>u__$awaiter3 = awaiter;
this.<>t__builder.AwaitUnsafeOnCompleted<TaskAwaiter<string>, MainPage.<MakeAwaitableRequest>d__0>(ref awaiter, ref this);
flag = false;
return;
}
awaiter = this.<>u__$awaiter3;
this.<>u__$awaiter3 = new TaskAwaiter<string>();
this.<>1__state = -1;
Label_008A:
string introduced7 = awaiter.GetResult();
awaiter = new TaskAwaiter<string>();
string str = introduced7;
this.<response>5__2 = str;
MessageBox.Show(this.<response>5__2.Length.ToString(), "Response length", MessageBoxButton.OK);
}
catch (Exception exception)
{
this.<>1__state = -2;
this.<>t__builder.SetException(exception);
return;
}
Label_00DD:
this.<>1__state = -2;
this.<>t__builder.SetResult();
}
public IList<BlogPost> FindPopularPosts(IList<BlogPost> allPosts)
{
var popularPosts = new List<BlogPost>();
foreach (var post in allPosts)
{
if (post.Views >= 10000)
{
popularPosts.Add(post);
}
}
return popularPosts;
}
public IList<BlogPost> FindPopularPosts(IList<BlogPost> allPosts)
{
return allPosts.Where(p => p.Views >= 10000).ToList();
}
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
MVP data binding+
<TextBlock Text="{Binding SomeString}" />
<Button Command="{Binding DoSomething}"
Content="do something" />
10 tips for porting to Windows Phone 8
http://flic.kr/p/9ny7B6
MVVMLight Caliburn.Micro MVVMCros
s
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
10 tips for porting to Windows Phone 8
http://flic.kr/p/9vjqMk
10 tips for porting to Windows Phone 8
http://flic.kr/p/aNbQui
toast, tile & raw
no interception
no notification center
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
Good news
Better than WP7
Great tools
Bad news
Low spec devices
Large/complex apps
Images
Background agents
frame rate counters
redraw visualizations
cache visualizations
memory counters
application analysis
execution profiling
memory profiling
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
.resx
.xlf
bindings
custom
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
1. Metro
2. Visuals
3. Controls
4. .net
5. MVVM
6. Lifecycle
7. Navigation
8. Memory
9. Localization
10. Beyond 8.0
http://dev.windowsphone.com/
http://www.developer.nokia.com/
http://mrlacey.com/
10 tips for porting to Windows Phone 8

More Related Content

PDF
MTDDC Nagoya 201104
PDF
PPT
Revenue watch index_2010_-presentation_-_icgfm_miami_17_may_2011
PPS
Un test incredibil_de_exact 3 11 l i
PPTX
"Write Once, Run Everywhere" & Windows 10
PDF
Inside Erlang Vm II
PPT
Ronsolt the pefa framework a tool for monitoring government performance19166 9
MTDDC Nagoya 201104
Revenue watch index_2010_-presentation_-_icgfm_miami_17_may_2011
Un test incredibil_de_exact 3 11 l i
"Write Once, Run Everywhere" & Windows 10
Inside Erlang Vm II
Ronsolt the pefa framework a tool for monitoring government performance19166 9

Similar to 10 tips for porting to Windows Phone 8 (20)

PPTX
Windows 8 Metro Apps with XAML @ GRDevDay
PPTX
Windows 8 Metro Apps
PPTX
Dev days. windows phone development
PPTX
Windows Phone 7 and Silverlight
PPTX
An end-to-end experience of Windows Phone 7 development (Part 2)
PPTX
Windows 8 store apps development
PPTX
Revealing C# 5
PPT
PPTX
Windows phone 8 overview
PPTX
13 networking, mobile services, and authentication
PPTX
What's new in Xamarin.Forms
PPTX
W8/WP8 App Dev for SAP, Part 3B: Developing for Windows Phone 8 and Windows 8
PPTX
Microsoft hackathon presentation 2013.02.15
PPTX
Building the windows 8 community app
PPTX
App innovationcircles xamarin
PDF
Windows phone 8 session 2
PPTX
Optimizing windows phone apps
PDF
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
PPTX
Preparing for Windows 8 and Metro
PPTX
Awesome Windows Phone Development (Aberdeen)
Windows 8 Metro Apps with XAML @ GRDevDay
Windows 8 Metro Apps
Dev days. windows phone development
Windows Phone 7 and Silverlight
An end-to-end experience of Windows Phone 7 development (Part 2)
Windows 8 store apps development
Revealing C# 5
Windows phone 8 overview
13 networking, mobile services, and authentication
What's new in Xamarin.Forms
W8/WP8 App Dev for SAP, Part 3B: Developing for Windows Phone 8 and Windows 8
Microsoft hackathon presentation 2013.02.15
Building the windows 8 community app
App innovationcircles xamarin
Windows phone 8 session 2
Optimizing windows phone apps
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Preparing for Windows 8 and Metro
Awesome Windows Phone Development (Aberdeen)
Ad

More from Matt Lacey (20)

PPTX
Modern XAML Development - Matt Lacey
PPTX
Is your mobile app as secure as you think?
PPTX
A look behind the scenes: Windows 8 background processing
PPTX
Intro to the App Developers Alliance @ WPUG
PDF
Wpug vserv developer deck- march 2014 global
PPTX
Pricing mobile apps
PPTX
Preparing for WP8
PPTX
Thinking mobile and beyond (Dundee)
PPTX
WPSDK 7.1.1
PPTX
Deep linking and secondary tiles
PPTX
PhoneGap @ LDNUG
PPTX
Introducing Windows Phone 7 Development
PPTX
WP7Dev with HTML & JavaScript
PPTX
Xna for wp7
PPTX
Why care about mobile? And what is Windows Phone 7?
PPTX
Developing for Windows7 with the APICodepack
PPTX
Mobile Web 2.0 & MDBF (DDDSW - Grok Talk)
PPTX
Mobile Web 2.0 (DDD Scotland - Grok Talk)
PPTX
Mobilise your ASP.NET website
PPT
What you "really" need to know about developing for Windows Mobile
Modern XAML Development - Matt Lacey
Is your mobile app as secure as you think?
A look behind the scenes: Windows 8 background processing
Intro to the App Developers Alliance @ WPUG
Wpug vserv developer deck- march 2014 global
Pricing mobile apps
Preparing for WP8
Thinking mobile and beyond (Dundee)
WPSDK 7.1.1
Deep linking and secondary tiles
PhoneGap @ LDNUG
Introducing Windows Phone 7 Development
WP7Dev with HTML & JavaScript
Xna for wp7
Why care about mobile? And what is Windows Phone 7?
Developing for Windows7 with the APICodepack
Mobile Web 2.0 & MDBF (DDDSW - Grok Talk)
Mobile Web 2.0 (DDD Scotland - Grok Talk)
Mobilise your ASP.NET website
What you "really" need to know about developing for Windows Mobile
Ad

Recently uploaded (20)

PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Getting started with AI Agents and Multi-Agent Systems
PPT
What is a Computer? Input Devices /output devices
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Programs and apps: productivity, graphics, security and other tools
Hindi spoken digit analysis for native and non-native speakers
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
1 - Historical Antecedents, Social Consideration.pdf
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Web App vs Mobile App What Should You Build First.pdf
A comparative study of natural language inference in Swahili using monolingua...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
1. Introduction to Computer Programming.pptx
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
Enhancing emotion recognition model for a student engagement use case through...
WOOl fibre morphology and structure.pdf for textiles
Group 1 Presentation -Planning and Decision Making .pptx
Zenith AI: Advanced Artificial Intelligence
cloud_computing_Infrastucture_as_cloud_p
Module 1.ppt Iot fundamentals and Architecture
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Getting started with AI Agents and Multi-Agent Systems
What is a Computer? Input Devices /output devices
Assigned Numbers - 2025 - Bluetooth® Document
Programs and apps: productivity, graphics, security and other tools

10 tips for porting to Windows Phone 8

Editor's Notes

  • #3: Ask questions, butAround all day
  • #4: How much will be relevant
  • #8: Pride in craftsmanshipAttention to detailEngineer the experience to feel polished at every stageBe fast and fluidImmersive and responsiveUse motion to bring life and continuityAuthentically digitalTake advantage of the digital mediumInfographic not iconographicRealism, skeuoporphs and verisimilitudeDo more with lessPurposeful experienceContent, not chromeFierce reduction of UI elementsWin as oneNative integrationAcross form factors and experiencesStructure to aid creativity, not inhibit it
  • #12: Because we can do principles without language
  • #13: You can be visually stunning
  • #14: Can adjust to the conventions of the platform
  • #15: Can still reflect brand identity
  • #16: iOS – Pure Android – iOS7Your app on Windows Phone won’t be compared visually with how it look on other platforms
  • #18: Reviews last
  • #20: Summary overview, encourage exploration, like a magazine cover
  • #21: Not exactly like a tab control.Intended to show related items or differing views of the same data – e.g. emailNot for wizard type interface
  • #22: Lots of optionsDefinitely value for money to be hadToolkit &amp; Telerik
  • #23: RadControls essentially freeLarge range of other Open Source controls available too: GeekChamp, GitHub, Codeplex
  • #29: State machine3 lines of code is actually 60
  • #31: ReSharper – CodeRush - JustCode
  • #34: Aids testability
  • #35: Is code behind bad
  • #38: Suspend and resumeFAS &amp; FAR
  • #39: http://www.fanpop.com/clubs/nintendo/images/26503062/Agents – periodic &amp; intensiveDownloading
  • #40: Pride in craftsmanshipAttention to detailEngineer the experience to feel polished at every stageBe fast and fluidImmersive and responsiveUse motion to bring life and continuityAuthentically digitalTake advantage of the digital mediumInfographic not iconographicRealism, skeuoporphs and verisimilitudeDo more with lessPurposeful experienceContent, not chromeFierce reduction of UI elementsWin as oneNative integrationAcross form factors and experiencesStructure to aid creativity, not inhibit it
  • #42: don&apos;t break the back stack - be predictable
  • #43: don&apos;t break the back stack - be predictable
  • #44: exceptions- end of flow- long navigation- poss. deep link. Toast, not tile?
  • #45: exceptions- end of flow- long navigation- poss. deep link. Toast, not tile?
  • #49: 190+ countries &amp; 50 languagesLocalization can be an easier way to reach more users than porting to another platform
  • #52: Still 10 million devices out there. Only just moved to less than 50% of WP devicesVery easy to support both, especially if not using functionality specific to 87 apps run unmodified + some functionality available via reflection
  • #53: IDC estimates 30M WP devices by Christmas, but 200M Windows8 installsCan share code, even the same libraries as there are commonalities to the APIs of bothDon’t share the same UI though.