Este documento apresenta uma introdução ao desenvolvimento de aplicações para Windows Phone usando Silverlight. Resume as seguintes informações essenciais:
1) Apresenta as principais ferramentas de desenvolvimento como Visual Studio e Expression Blend para criar interfaces gráficas e lógica de programação.
2) Explica conceitos fundamentais como a navegação entre páginas e o uso de XAML para construir interfaces.
3) Destaca recursos adicionados nas versões Mango e Tango como mapas, câmara, sensores e suporte para
2. Agenda
• Introdução ao Windows Phone
• Ferramentas
• Silverlight
• Novidades na versão Mango
• Novidades na versão Tango
• Truques e dicas
• App-me-up
Windows Phone
4. O nosso ecossistema
Outlook e
Office
integrados
Integra-se
com as suas
infraestrutur
as
Facilita o
desenvolvimento
de aplicações
empresariais
Windows Phone
10. Modelos de projecto
• O Visual Studio
oferece uma
série de modelos
de projecto
• Cada um
corresponde a
um tipo
especifico de
aplicação
10
Windows Phone
11. Modelos de aplicação
• “Windows Phone” application
– Projecto simples de uma página
• “DataBound” application
– É um exeplo de aplicação que utiliza databinding
• Class Library
– Projecto sem UI para conter classes reutilizaveis
• “Pivot” application
– Aplicação com vários ecrãs onde a navegação é feita na
horizontal
• “Panorama” application
– Aplicação com o fundo panorâmico (na horizontal), que
ocupa mais do que um ecrã
11
Windows Phone
12. Tipos de aplicação
• Os três tipos de projectos de aplicação oferecem
um user interface para diferentes experiências de
utilização
12
Windows Phone
13. Expression Blend: Design
gráfico
• Orientado para os designers, permite importar e
criar gráficos e vectores, e ainda criar animações.
– O Blend faz parte do SDK.
13
Windows Phone
14. Visual Studio: Criação do código
• Um programador pode pegar na base desenhada
no Blend e tratar da “canalização” para que a
mesma funcione.
– O Visual Studio também permite trabalhar o design de
uma aplicação mas não de forma tão completa como o 14
Windows Phone
Expression Blend
16. Elementos e o XAML
<Grid x:Name="ContentPanel" Grid.Row="1"
Margin="12,0,12,0">
<TextBox Height="72" HorizontalAlignment="Left"
Margin="8,19,0,0" Name="firstNumberTextBox"
Text="0" VerticalAlignment="Top"
Width="460"
TextAlignment="Center" />
. . .
<Button Content="equals" Height="72"
HorizontalAlignment="Left"
Margin="158,275,0,0" Name="equalsButton"
VerticalAlignment="Top" Width="160"
Click="equalsButton_Click" />
. . .
</Grid>
• O XAML é a linguagem que descreve os
componentes do interface do Silverlight
16
Windows Phone 1
17. O code behind
• Cada página XAML tem associada um ficheiro,
denominado de code behind no qual assenta a
lógica de programação
17
Windows Phone 1
18. Application Chrome
System Tray e Application Bar
System Tray
Àrea que mostra informações do sistema
(reservada ao sistema)
O programador pode esconder esta na sua app:
Microsoft.Phone.Shell.SystemTray.IsVisible =
false;
Application Bar
Àrea da aplicação onde estão os botões de
acesso às tarefas mais comuns da aplicação
19. Navegação - Application Bar
Utilizar ApplicationBar em vez de
criar um menu próprio
Até 4 botões + menu opcional
Basta deslizar a barra para cima de
modo a mostrar o menu
Pode ter opacidade e ficar
minimizado
Windows Phone
21. Navegação
• O Silverlight no Windows Phone
utiliza um modelo de navegação
baseado em páginas
– Semelhante ao modelo das
páginas de internet
– Cada página é identificada por um
URI diferente
– A navegação é feita com ajuda do
botão “Back”
– O botão “Back” pode ser
contornado
– É ainda possível passar dados
entre páginas
Windows Phone
22. Navegação não linear
• Atenção ao desenhar a
aplicação!
• Se navegar da „pagina3‟ para
a „MainPage‟ e o utilizador
tocar no botão Back, o que é
que acontece?
– O utilizador espera que a
aplicação feche?
– De facto é levado de novo para
a página 3!
• Solução: nova API
22
– NavigationService.Removebac
Windows Phone
23. NavigationService.RemoveBack
Entry()
• Quando se navega da „Pagina3‟ para a „MainPage‟,
deve-se introduzir um marcador na query string:
NavigationService.Navigate(new Uri("/MainPage.xaml?homeFromThird=true",
UriKind.Relative));
• E no método OnNavigatedTo() na MainPage,
procura-se pelo marcador, e remove-se a „
Pagina3‟ e „Pagina2‟ do histórico de navegação
protected override void history stack):
(navigation OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e
)
{
if (e.NavigationMode == System.Windows.Navigation.NavigationMode.New &&
NavigationContext.QueryString.ContainsKey( “homeFromThird" ))
{
NavigationService.RemoveBackEntry(); // Remove ThirdPage
NavigationService.RemoveBackEntry(); // Remove SecondPage
}
23
Windows Phone
26. Windows Phone 7.5
Extras, Tiles
Calendar
Cloud and Integration Contacts Maps
Push, Alerts
Services
Fast App Switch
Silverlight and
App
UI Model XNA Integration
Model Multitasking
Gen GC SQL CE
Software Architecture
Silverlight 4.0 Sockets
Hardware Foundation Camera, Sensors & Motion
Gyro Flexible chassis
27. Silverlight Bing Map
• Controle do Silverlight Map
• Optimizado para Windows Phone
– Touch Enabled
Pinch – zoom in/out
Trandução
– Caching
http://www.microsoft.com/maps/developers/mobile.aspx
Windows Phone
28. Localização no emulador
• O emulador do SDK 7.1 do Windows Phone trás
um simulador de localização
28
Windows Phone
29. Câmara
• É possível
capturar uma
imagem a partir
de uma aplicação
• A aplicação
também pode
apresentar a
visualização da
•câmara
A aplicação pode aceder directamente ao vídeo e mostrar o mesmo
para se criar uma aplicação de realidade aumentada ou uma câmara
com interface personalizado.
• A classe PhotoCamera permite controlar a cârmara e mostrar a
Windows Phone no ecrã.
mesma 29
30. Sensores disponíveis
• Existem 3 sensores diferentes
– Acelerometro
– Compasso
– Giroscópio
• Nem todos os sensores estão disponíveis em
todos o telefones
– O Giroscópio apenas está disponíveis em telefones com
o Mango
• Os sensores são utilizados todos da mesma forma:
– Despoletam um evento quando têm alguma leitura
Windows Phone
31. A biblioteca de sensores
using Microsoft.Devices.Sensors;
• Os sensores de
movimento estão em
Devices.Sensors library
• É necessário adicionar
uma referência para o
projecto
Windows Phone
32. Determinar se os sensores estão
disponíveis
if (Gyroscope.IsSupported)
{
// we have a gyro on the phone
}
• Todos os sensores expôem a propriedade
IsSupported que pode ser utilizada para verificar
se o equipamento tem o sensor
• Se uma aplicação tentar utilizar um sensor que não
esteja disponível ocorre uma excepção:
– Testar sempre antes de usar!
• Todos os telefones têm acelerómetro
Windows Phone
33. Simulador de movimento
• O SDK do
Windows Phone
tem um
simulador que
permite testar o
código.
Windows Phone
36. Tango explicado
Equipamentos de baixo custo para
mercados emergentes
23 novos mercados
Bahrain, Bulgária, China, Costa Rica, Croacia,
Estonia, Islandia, Iraque, Israel, Cazaquistão,
Letónia, Lituania, Qatar, Roménia, Arábia
Saudita, Eslováquia, Eslovenia, Tailandia,
Turquia, EAU, Ucrania, Venezuela e Vietname
Requisitos de memória e processador
Acomoda processadores 7x27 e 256 MB de
memória.
Não permite correr Background agents.
Windows Phone
37. Testem o Tango hoje!
Instalem o Windows Phone 7.1.1 SDK Update
Download: http://tinyurl.com/cuh8nez
Confirmem que a vossa app correm bem em baixa
memória
Adicionem a vossa app a 23 novos mercados!
41. Marketplace Test Kit
Verifica o
Xap para ver
se passa nos
testes de
certificação
do
Marketplace
Fornece
detalhes em
caso de falha
e aponta
soluções
Windows Phone
42. +Recursos
App Hub http://create.msdn.com
Tools http://wpdev.ms/wpsdk71rc
WP on MSDN Library http://wpdev.ms/wponmsdn
WP “How To” Index http://wpdev.ms/wphowtos
WP UX Guide http://wpdev.ms/wpuxguide
WP P&P Guide http://wpdev.ms/wppnpguide
WP Dev Blog http://wpdev.ms/developerblog
Porting to WP http://wpdev.ms/porting
WP Labs (WP7) http://wpdev.ms/wprtmhols
WP Labs (WP7.5) http://wpdev.ms/mangohol
WP SL Quick Starts http://wpdev.ms/xamlquick
Windows Phone
43. +Recursos: Videos
WP Jumpstart http://wpdev.ms/jumpstarts
WP How To Videos http://wpdev.ms/howvids
WP “Absolute http://wpdev.ms/beginvids
Beginners”
Inside WP on C9 http://wpdev.ms/insidewp
Design Toolbox http://wpdev.ms/designtb
WP Game Dev Vids http://wpdev.ms/gamevids
WP at MIX 11 Vids http://wpdev.ms/wpmix11
WP at TENA 11 Vids http://wpdev.ms/wptena11
Windows Phone
44. +Recursos: Outros
App Hub FAQ http://wpdev.ms/apphubfaq
App Hub Forums http://wpdev.ms/ahforum
Registration http://wpdev.ms/regwalk
Walkthrough
Submission http://wpdev.ms/subwalk
Walkthrough
Cert Requirements http://wpdev.ms/certreq
WP Samples on http://wpdev.ms/officialsamples
MSDN
SL Toolkit for WP http://wpdev.ms/wpsltk
Azure Toolkit for WP http://wpdev.ms/wpwaztk
Windows Phone
45. +Recursos: de terceiros
Silverlight Show onhttp://www.silverlightshow.net/Searc
WP h.aspx?q=%5Bwindows-phone-
7%5D
Windows Phone Geek http://www.windowsphonegeek.com
/
WPDEV on Twitter http://twitter.com/#search?q=wp7de
v
WPDEV on REDDIT http://www.reddit.com/r/wp7dev
WPDEV on Stack http://stackoverflow.com/questions/t
Overflow agged/windows-phone-7
Windows Phone
47. App me up
Formação e tutoriais
Suporte directo
Notícias e novidades em primeira mão
App VIP – ganha um Nokia
Windows Phone
48. Programa
Microsoft Student
Partner
O programa Microsoft Student Partners destina-se a jovens estudantes, de todo
o mundo, com espírito empreendedor, paixão por tecnologia e que
desempenhem um papel activo nas respectivas comunidades académicas.
Através da ligação privilegiada que mantém com a Microsoft, as funções do
MSP passam por:
- Organizar eventos de teor tecnológico;
- Divulgar as mais recentes novidades tecnológicas;
- Apoiar no desenvolvimento das ideias dos seus colegas;
- Participar em projectos de cariz social;
- Etc.
Em suma, o MSP tem a tarefa de aproximar a sua comunidade académica das
tecnologias Microsoft.
http://microsoftstudentpartners.com
Once you have picked your theme you can then create an application based on that.
If you have time you can create a default application of each kind.
Make the point that these are fundamentally the same, in that they are created and managed in exactly the same way.Also make the point that the screens above have been entirely created by the Silverlight templates that are provided as part of Visual StudioThe folder Application Types provides each of the above projects, if you have time to show them in action you can.
Make the point that we will be going into more detail on expression blend in the Advanced Silverlight section, for now we are going to focus on how Silverlight works.
Make the point that you can create UIs any way you want:Drag components onto the design surface.Use the XAML language to specify the design of the application.Create components “on the fly” in your code. Silverlight supports all these ways of working, and all have their place.
Make the point that XAML is text based. It is what Expression Blend produces and it is also produced by the design surface in Visual Studio.
Make the point that XAML is text based. It is what Expression Blend produces and it is also produced by the design surface in Visual Studio.
Note that the sensors library is not automatically loaded when the program is built.
Make the point that you must always check to see if the sensor is there before you use it.There is a software and a hardware thing here. Pre mango phones are fitted with a compass which can now be used.Post mango phones may also have a gyroscope.Make the point that you might find it useful to implement an Accelerometer as a fallback.