forked from shangerxin/BookNotes
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBuilding your first windows phone app=Lars Klint;Note=Erxin.txt
499 lines (368 loc) · 12.6 KB
/
Building your first windows phone app=Lars Klint;Note=Erxin.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
Building your first windows phone app=Lars Klint;Note=Erxin
# introduction
- why would I develop for windows phone?
critical thinking
single best developer opportunity
- windows phone user is more like to buy app
- both for window store, phone and pc
- who is course for
+ no wp experience
+ know visual studio
+ c#
+ xaml
+ apps, not games
- reference
building windows phone apps stand out, in pluralsight
- how do you get the great idea?
- who will be using it
- visual design for engage user
- windows phone workflow
- blend tool
- code architecture
mvvm framework
- business logic
- testing your app
- marketing
# How to get the create idea
- introduction
- passion to build the best project you can
- research your competition and be aware
- differentiate yourself
- self-check your idea and think from potential users
- starting a project
+ code, c#
+ technology, learning a new, explore the option
+ competition
- how do you get the idea?
+ no limit
+ passion rules supreme
* skill, you are going to live
* ambition
* emotion, involve in any idea of your project
* enjoyment
- research the market
+ what is the competition doing
+ research the market
* search the key relative to apps
* reading relative articles
* solving a problems that large number users
- differentiating factor
+ what are the factor make your user stand out
+ provide brand new features
+ turning point, if there are multiple apps implement the almost the same features
+ competitor matrix and your apps
+-----------+--------------+---------------+
| |competitor a | competitor b |
+-----------+--------------+---------------+
|kittens | V | |
+-----------+--------------+---------------+
|birds | | V |
+-----------+--------------+---------------+
+ passion, be the best
- self check your idea
+ distance your idea and your apps
+ what is the reason to download your apps
+ personas
* mother, kids
* younger people
* analyse your user group and forcus on the largest user group
- creating personas
+ conduct research
+ condense research
+ brainstorm
+ refine
- hands on personas, create at the start of the project
# use Case and Workflow
- Development strategy
- identifying features
+ roadmap for project
+ use personas to priorites
- use cases
+ feature relationships
- high level
- single develop project
+ Ad Hoc
+ have to think features and better choose which feature to develop
+ water flow
* gather requirements
* design
* build
* verify, quality assurance
* maintenance
+ this required know everything in front
- Agile development
+ sprint -> sprint -> sprint -> sprint
each sprint is seems a water flow process
0 ---------> n
+ develop small features and show production code every sprint
+ choose short sprint about two weeks
- identifying features
+ features
+ backlog
+ current sprint
- use cases
+ use case, focus on the features
* actor
* action
* how to interact different features
* precondition
+ get a use case diagram
- hands on uses case, define use case
use case
goal including
scope
level
primary actor
priority
frequency
preconditons
triggers
success scenario
step 1
step 2
step 3
related information
effort
dependent use case
open issues
- high level workflow, will define workflow how user interact with your app. workflow is composed with use case
place the visual element on the screen
use the interactive wire frame
# Design Your App
- introduction
+ handy tips for designing
+ layouts and elements
* grids
* theming
* common elements
+ design implementation
* Hierarchy
+ make your app unique
- designing as developer
+ half copy other apps and compose them together
+ 1 to 5 colors, keep it simple, color skin , use adobe Kuler to help choose the color
+ how many font should use same font, Segoe UI
+ less is more
+ generate the detail into the design is the developer, keep the only useful information to user
- design guidelines and approach
+ everything layout is in a grid
+ use accents color which is build in with windows phone, you don't have to worry about which theme user choosen
+ allow user to pin to start screen
+ whether or not use splash screen, if you app delay then have to use splash screen
+ typography
+ icon style should be consistent
- design implementation
+ layout
absolute, set x/y to play element
contain elements in Canvas
+ dynamic
StackPanel
Grid
+ Panorama control, is a unique way to layout horizontal screen
suggest to limit to five tabs
+ pages, like wizard experience
+ app bar, may user to quick access functions, you can show up four icons and any number of context menus
- hands on, Metro Studio, free download have
http://www.syncfusion.com/download/metro
have 2500 icons metro style
convert fonts to icons
- making your app unique
- put users first
- outsourcing use Gigbucks to hire designer
+ provide features
+ provide colors
+ be available and provide feedback
# Your app comes to life
- tools
blend, visual studio, strengths and weakness
xaml, declarative markup language
- hands on frist visual studio project
+ create a window phone project app with template
+ solution file structure
Solution
Project
Properties
AppManifest.xml
AssemblyInfo.cs
WMAppManifest.xml //for setup the icons which used by the app
References
Assets //folder to keep images or other resources
*.png
Resources //for localization
App.xaml //where the app start, this is the first file to run
LocalizedStrings.cs
MainPage.xaml
+ there are several kinds of phone emulators
Emulator WXGA 512MB,
Emulator WVGA 512MB,
Device
Emulator WXGA 512MB
Emulator WVGA
Emulator WXGA
Emulator 720p
+ test managemeng for windows phone, for pluralsight courses
- designer workflow,software developer write c#, designer use blend output xaml
- hands on blend
+ open project in blend
+ use the sample data use the right data tab, could create a sample data file
the sample data type support boolean, string, number, image
- being a sole developer
# Organize your code
- introduction
+ important of getting the right start
+ identify dangers lurking for your project
+ model, view, view model (MVVM)
* decoupling
* code structure
* easily tested
+ source control
* control
* confidence
* collaboration
* git & github demo
- start out right, solid structure is crucial
- consequences
+ no strategy
+ inadequate information
+ higher risk
+ more analysis
+ no reference
+ change your mind
+ increase complex
+ maintenance
+ more integration issues
+ project demise
- MVVM framework, not for small project, it is fit for medium or large, data binding is tricky
- hands on MVVM framework
+ create MVVM code structure for the solution
+ move the mainPage.xaml to the view
+ change the WMAppManifest.xml file and change the location for the MainPage.xaml to point to the View/MainPage.xaml to let the app.xaml find the main page file
+ add model class
- source control
- using github with visual studio
- hands on using source tree, is a free jira tool, source tree works with
+ bitbucket
+ stash
+ github
- keeping on track
+ be critical
+ redactor often
+ constantly improve
# Business logic
- efficient structures
- portable class libraries, PCL, for business logic
+ cross platform reuse
+ mvvm integration
+ Xamarin is also compatible for PCL
+ anything you want to test you could place it into PCL to support cross platform development and test
+ makes the MVVM's ViewModel and Model into PCL project to simple the cross platform development
- cloud services
+ toast notification, such as push notification from cloud service
* simpler architecture
* lightweight
* less maintenance
+ live title
+ notification have a security key
- hands on push notifications from window azure
+ login management for window azure by a window account
+ use notificaton hub to achieve push notification, the steps are
* new
* app service
* service bus
* notification hub
give a name and configuration
+ install nuget package from visual studio to support push notification
install window azure messaging package
var channel = HttpNotificatonChannel.Find("notificationName");
if(channel != null)
{
channel = new HttpNotificatonChannel("notificaitonName");
channel.Open();
channel.BindToShellToast();
}
channel.ChannelUriUpdated += (s, e)=>
{
var hub = new NotificationHub("notificationName", "Endpoint=sb://excuserhub-")
await hub.RegisterNativeAsync(args.ChannelUri.ToString());
};
+ make sure check the WMAppManifest.xml's property Capability ID_CAP_PUSH_NOTIFICATION
+ step a console application to send push notification
install window azure service bus package for the project, create a NotificationClient and send the toast
NotificationClient hub = NotificationHubClient.CreateNotificationFromConnectionString("...");
//this is a toast format required by window phone
string toast = "<xml content or json>";
await hub.SendMonsNotificationAsync(toast);
the connection string is supply by the window azure push notification service
- best practices
+ implement feature X using best practices and everything will be fine
+ first make it work
+ second make it fast
+ ask more professionals
- demo
# Test Solution
- start testing coming up
+ what to test
+ business logic and intellectual
+ certification testing
+ events out of your control
+ first run of your app
+ performance testing
+ a good test plan save time
+ unit tests, integration tests and built-in tests
- what should i test
+ include area your app interact with
+ app certification requirements for window phone, there are several test items
* install
* verify uninstall
* low memory device
+ static values, settings, references
+ Uses base notification, don't show this kinds of message in the first 20 would be best choice
+ keep testing first run
+ use in build performance test
- unit test
+ NUnit
+ XUnit
+ MSTest
- hands on unit test
+ add unit test project
+ unit test steps
//arrages
//act
//assert
- integration test
- build-in test
+ open store test kit, which is a buid in windows phone test tool, right click the project and click Open Store Test kit
- hands on store test toolkit
# Future proofing your app
- nearing the end of the journey
- future proof your app
- feedback
+ various ways to get feedback
- code maintenance
+ fixing bugs
+ adhering your architecture
- updates
+ keep code fresh and value
- feedbak
+ promote for ask ranking your app
+ email
+ twitter
+ bugsense
feature useage
user behavior
workflow analysis
- hands on about page
+ use nuget search for ylad, your last about dialog
+ the introduction is installed with the package and easy to setup
+ it also support localization
- maintain your code
+ customer service
- provide updates, indicate users your app is live
+ update apps, what's new
+ push out small updates more offen
+ major update for example refresh UI as less as possible
- market your app
+ sign up DLVUP
+ get into the local development community
+ write articles and in your blog
+ use social media