Dev days. windows phone development

Preview:

Citation preview

mobile development

from developer’s point of viewIvan Kirkorau, EPAM Systems

MS Dev Days 2011

me

reason to go mobile

path to choose

they are different

single screenview controllers

delegation

reference counting

MVC

many pagesnavigationUI <-> codedata bindingMVVM (?)

activitiescomponentsintentscallback i-fMVC (?)

ask right questions

doesn’t matter “what is greater?”

does matter “what suits you best!”

#01: leverage your skills

#02: IDE, tools, emulator

#03: documentation

#04: lang & libs

Objective-C

#05: learning curve • Is it hard to learn basics?• How far from basics to professional?• Is it a “pleasant” learning

experience?

• Does it help avoid mistakes?• Is it easy to make your code crash?

#06: making mistakes

#07: good-looking UI• Is it easy to create good looking

UI?

• How often will devs make crappy apps?

#08: making piece of s…

#09: standard & custom• Is it easy to implement common

tasks?–navigating between screens–displaying lists– loading data from web service–parsing xml

• Is it easy to customize?

#10: developer image

codename “Mango”

what’s new and what’s old

reading Manga

my favorite features• LINQ (to objects, to XML, to

HTML)• data binding• lambda expressions

• everything is asynchronous• BACK button and tombstoning

having difficulties

local database• API: LINQ to SQL• Design: in code, attributes• Store: Isolated Storage

• article on MSDN

background …• AGENT–PeriodicTask (~25 sec)–ResourceIntensiveTask (~10 min)

• DOWNLOADING–download/upload up to 5 requests–control execution

tiles & notifications• tiles updates• deep linking • multiple tiles per application• number on tile• local toast notification• … notification services

network• sockets API• TCP• UDP

marketplace

easier than before, but required

…fast forward

submission walkthrough

• app hub account + ready .xap file

• description and comments– dev and testing comments

• upload images (some unexpected

sizes)– should have high quality master

images

• categories and pricingsubmit

back & back againback = the source of all evili. can you exit the app?ii. “back” cycles?iii. loss of state and crashiv. press back in unexpected

placesv. lost handlers/bindings

loss of internetif your main action is to download stuff – test the connectivity loss!how to simulate connectivity loss?• connect device to a computer• remove the cable/WiFi–when connected device ALWAYS

uses PC internet connection

memory limiton devices your app must not use >90Mb at peak.

how to get memory tests?• use DeviceStatuscheck

ApplicationPeakMemoryUsagecheck

ApplicationCurrentMemoryUsage

exception handling• do not CRASH!• notify the user with a solution:

“try again later”“check your internet connection”“contact support@…”

black & white• test dark and light themes– some icons may look unexpectedly

white– some colors may not correlate well

capability testing• use “CapabilityDetection.exe”– c:\Program Files (x86)\Microsoft SDKs\ Windows

Phone\v7.0\Tools\CapDetect\CapabilityDetection.exe

• remove all unnecessary stuff– debug libs– test data–…

getting feedbackyou should think about users that will try to find your app, download and use• provide keywords for search• provide contact information in

the description or inside the app

look up statistics• number of downloads (AppHub)– results come 1 week late

• ads – pubcenter/adMob site• preemptive stats– http://www.preemptive.com/know-

more/application-monitoring

marketplace test kit• select WP7.1 project• [menu] Project->Open

Marketplace…

conclusion• developer focused tools• powerful UI with Silverlight/XNA• requires

q&a