Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Windows phone 8 overview
1. What's new in WP8
Andrea Boschin – Most Valuable Professional (XAML)
Windows Phone 8 overview
2. meet new aspects of Windows Phone
8
be in touch with changes from 7.x
explore new features
Talk goals
3. what about old apps?
the 120000 apps in the store still works!
"quirks mode" ensure 100% compatibility
do i need to recompile?
existing apps works without any action
conversion requires to re-compile
after conversion "quirk mode" is not available anymore
be careful of breaking changes
http://msdn.microsoft.com/en-
us/library/windowsphone/develop/jj206947(v=vs.105).aspx
pay attention to multi-core environments when moving
from 7 to 8
wp7 does not requires attention but wp8 does.
legacy apps compatibility
4. business apps means:
publish to a private set of users
full control over deployment
protect intellectual property
Windows Phone 7.x
business scenario is almost impossible
Windows Phone 8.0
business scenario is fully supported!
business scenario
5. how to?
register a Microsoft account (company-only)
buy a Symantec certificate (299$ approx)
generate an Application Token (.aetx)
distribute token to devices
sign the apps with the token
then
only token-enabled devices run the signed apps
side-loading is enabled without MS Company Store
also
create your own company-hub to manage content and apps from a single point.
business scenario
6. windows phone 7.x
based on windows ce kernel
completely distinct platform from desktop
o.s.
windows phone 8
based on common windows 8 architecture
shares a common kernel with pcs and
tablets
architecture
7. what's does it mean?
low level functions & driver model
shared between win8 and wp8
shared api
about 2800 member over 11000 in w8
600 additional members for wp8
shared kernel
8. what's the problem?
precompilation takes long time
on mobile these waiting are awful
recap: wp7 application startup is really slow
JIT: how do it works?
members are compiled before the use
when application is closed precompilation is discarted
how can we do?
NGEN assemblies before download?
precompilation when download happens, is too slow
what wp8 does?
compile in the cloud!
assemblies are pre-compiled before the download
a mdil file is prepared
MDIL = machine dependent intermediale language
it is something like a template with holes to fill
after download, mdil is converted to ngen
holes are filled. now it runs natively!
compilation model
9. why coding native?
reusability
use of existing code you don't want to write again
portability
use code in different platforms
skills
use existing skills in C++
performances
the last of the problems... often not a good reason
native C++ code
10. how-to
create a WinRT component
All your code is wrapped into the component
write code using specific conventions
classes must be "ref" and "sealed"
use compatible WinRT types
reference component by a C# project
fully native apps does not exists!
use the classes in the component from C#
all the magic is made by the WinRT projection layer
native C++ code
11. Windows Phone 7.x
only 480 x 800 resolution allowed
Windows Phone 8.0
supports different sizes and resolutions
virtually you work always with 480x800 (or 853)
multiple screen resolutions
WVGA 720p WXGA
true resolution 480x800 720x1280 768x1280
virtual resolution 480x800 480x853 480x800
aspect ratio 15:9 16:9 15:9
platform Windows
Phone 7.x/8.0
Windows Phone
8.0
Windows Phone
8.0
scale 100 150 160
var width = Application.Current.Host.Content.ActualWidth;
var height = Application.Current.Host.Content.ActualHeight;
12. multiple screen resolutions
multiple sizes = much more attention
always pretend screen = 480 x 800
draw apps without size constraints
avoid absolute positioning
prefer "vector" to "raster"
provide large images or different scales
large images are scaled gracefully
with different scales: choose the better size
you can also:
disable specific resolution in manifest
this means to forget a particular segment of the market
13. Windows Phone 7.x
G&L is made by tricks
Windows Phone 8.0
easy & effective
project automatically prepared for G&L
localization works by Binding to resx
support for multiple languages
problems
ApplicationBar still doesn't support Binding
AppTitle localization requires Win32 resources
globalization & localization
14. new concept of Contact Store
every app has its own store
can add and remove contacts silently
can prevent deletion from the its store
when uninstalled, contact store goes away
Notes
a contact store is an isolated sandbox
similar contacts in different stores are merged
Security
guaranteed by Windows Store Certification
if check fails, you can simply delete the app...
contact stores
15. tiles
3 formats available to developers
small: 159x159
medium: 336x336
wide: 691x336
small & medium are required!
new Templates
TemplateFlip
front & rear predefined content
TemplateCycle
up to 9 rolling tiles
TemplateIconic
automatically reflects WP design guidelines
also supported in 7.8
manually via reflection
with Mangopollo project on codeplex
http://mangopollo.codeplex.com/
tiles & lock screen
17. lock screen
when enabled reflects content from
tile
User must enable app to lock screen
settings can be launched with a
protocol
LockScreenManager
allow request authorization directly
tiles & lock screen
private async void OpenLockScreenSettings(object sender, RoutedEventArgs e)
{
await Windows.System.Launcher.LaunchUriAsync(
new Uri("ms-settings-lock:"));
}
18. protocol association
a protocol is registered (ex: myapp://)
if someone launch the protocol the app in called
the app receives the full uri
parameters are passed in the uri
file type association
a file extension is registered (ex: *.myapp)
when a file type is opened the app is called
the app receives a reference to the file
modification the original file require a copy.
other info
system protocol and types cannot be overriden (es: mp3, etc...)
multiple association are allowed. the choice is up to the user.
a file type supports an icon (3 sizes)
to launch an association
LaunchUriAsync Protocols
LaunchFileAsync File Types
protocol & file association
19. near field communication
limited to short range (3-5 cm)
supports
custom string or binary messages
via publish-subscribe
use of known protocols
launch apps by id or protocol association
launch an url in the browser
initiator for launching sockets
bluetooh or wi-fi (developer choice)
read or write tags
write is limited
api allows to
set capability and requirements for app
check if NFC is supported/enabled
bluetooth & NFC
20. bluetooth
Windows Phone 7.x
bluetooth is supported
no developer APIs
Windows Phone 8.0
bluetooth is extended (no HID profile)
developer APIs are provided
scenarios
Phone to Device
socket based
pick one of paired devices
your app is client to the device
Phone to Phone
socket based
search for another instance of your app to pair
your app is client & server
Windows 8 to Windows Phone 8 is allowed
bluetooth & NFC
21. text to speech
supports different language inflections
supports SSML (Speech Synth Markup
Language)
speech to text
supported two modes
SpeechRecognizerUI uses default UI
SpeechRecognizer allow speech recognition without UI
allowed to use preloaded grammar to improve
recognition
result
speech
SpeechSynthesizer tts = new SpeechSynthesizer();
await tts.SpeakTextAsync("Please hold on!");
22. predefined sequences that matches an
action
start music player and play latin songs
and play latin songs
result
app music player is started
app get "PlaySongs" command with 'latin' argument
voice commands
starts the app
optional
command command
dynamic
discarted argument