Distribuição
Lidel – edições técnicas, lda
SEDE: R. D. Estefânia, 183, R/C Dto., 1049-057 LISBOA Internet: 21 354 14 18 – livrarialx@lidel.pt / Revenda: 21 351 14 43 – revenda@lidel.pt Formação/Marketing: 21 351 14 48 – formacao@lidel.pt / marketing@lidel.pt Ens. Línguas/Exportação: 21 351 14 42 – depinternacional@lidel.pt Fax: 21 352 26 84 LIVRARIA: Av. Praia da Vitória, 14 – 1000-247 LISBOA – Tel.: 21 354 14 18, e-mail: livrarialx@lidel.pt
Copyright © janeiro de 2013 FCA – Editora de Informática, Lda. ISBN: 978-972-722-754-9 Capa: Emília Calçada Impressão e acabamento: Tipografia Lousanense, Lda. – Lousã Depósito Legal N.º 353047/12 Livro segundo o Novo Acordo Ortográfico
Os nomes comerciais referenciados neste livro têm patente registada
Marcas Registadas de FCA – Editora de Informática, Lda. –
®
®
®
Este pictograma merece uma explicação. O seu propósito é alertar o leitor para a ameaça que representa para o futuro da escrita, nomeadamente na área da edição técnica e universitária, o desenvolvimento massivo da fotocópia. O Código do Direito de Autor estabelece que é crime punido por lei, a fotocópia sem autorização dos proprietários do copyright. No entanto, esta prática generalizou-se sobretudo no ensino superior, provocando uma queda substancial na compra de livros técnicos. Assim, num país em que a literatura técnica é tão escassa, os autores não sentem motivação para criar obras inéditas e fazê-las publicar, ficando os leitores impossibilitados de ter bibliografia em português. Lembramos portanto, que é expressamente proibida a reprodução, no todo ou em parte, da presente obra sem autorização da editora.
ÍNDICE GERAL AGRADECIMENTOS .............................................................................................. XV PREFÁCIO...................................................................................................... XVII 0. INTRODUÇÃO ................................................................................................... 1
0.1 0.2 0.3 0.4 0.5 0.6
O que posso encontrar neste livro ................................................................................... 1 Requisitos ............................................................................................................................ 1 A quem se dirige este livro? ............................................................................................. 2 Código e samples ................................................................................................................. 2 Convenções ......................................................................................................................... 3 Organização do livro ......................................................................................................... 3 0.6.1 Capítulo 1: Introdução às Windows Store Apps................................................... 3 0.6.2 Capítulo 2: Controlos ............................................................................................. 3 0.6.3 Capítulo 3: Layouts, Vistas e Navegação ............................................................. 4 0.6.4 Capítulo 4: Input ..................................................................................................... 4 0.6.5 Capítulo 5: Ficheiros .............................................................................................. 4 0.6.6 Capítulo 6: Data Binding ........................................................................................ 4 0.6.7 Capítulo 7: Networking ........................................................................................... 4 0.6.8 Capítulo 8: Tiles, Badges e Toasts ........................................................................... 5 0.6.9 Capítulo 9: Contratos ............................................................................................. 5 0.6.10 Capítulo 10: Multimédia ....................................................................................... 5 0.6.11 Capítulo 11: Periféricos e Sensores ...................................................................... 5 0.6.12 Capítulo 12: Animações ........................................................................................ 6 0.6.13 Capítulo 13: Aplicações ......................................................................................... 6 0.7 Suporte ................................................................................................................................. 6
1. INTRODUÇÃO ÀS WINDOWS STORE APPS ............................................................... 7
1.1 Uma visita guiada à nova interface gráfica .................................................................... 7 1.1.1 Introdução ao ecrã inicial ...................................................................................... 7 1.1.2 Introdução às aplicações Windows Store ........................................................... 10 1.2 Ambiente de runtime e SDK............................................................................................ 19 1.2.1 WinRT e metadata ................................................................................................ 21 1.3 Anatomia de um projeto WinRT .................................................................................... 22 1.3.1 Design de uma aplicação ..................................................................................... 37 2. CONTROLOS .................................................................................................. 39
2.1 Introdução aos controlos ................................................................................................. 39 2.2 Controlos intrínsecos ....................................................................................................... 39 © FCA – Editora de Informática
VIII
DESENVOLVIMENTO EM WINDOWS 8
2.2.1 Estilos predefinidos ............................................................................................. 41 2.2.2 Interação a partir de JavaScript ........................................................................... 50 2.3 Controlos WinJS................................................................................................................ 52 2.3.1 Rating ..................................................................................................................... 53 2.3.1.1 Abordagem imperativa ........................................................................ 63 2.3.2 DatePicker e TimePicker ..................................................................................... 64 2.3.3 ToggleSwitch......................................................................................................... 66 2.3.4 FlipView ................................................................................................................ 66 2.3.4.1 Outras propriedades, métodos e eventos ......................................... 72 2.3.4.2 Estilos CSS.............................................................................................. 73 2.3.5 ListView ................................................................................................................. 73 2.3.5.1 Agrupamento de itens ......................................................................... 79 2.3.5.2 Carregamentos de dados ..................................................................... 84 2.3.5.3 Seleção de itens ..................................................................................... 86 2.3.5.4 Observações finais ................................................................................ 88 2.3.6 SemanticZoom ...................................................................................................... 89 2.3.7 Flyout ..................................................................................................................... 92 2.3.8 MessageDialog...................................................................................................... 95 2.3.9 AppBar ................................................................................................................... 97 2.3.9.1 Personalização do aspeto dos comandos ........................................ 103 2.3.9.2 Modificação dos comandos apresentados em runtime .................. 104 2.3.9.3 Personalização do layout .................................................................... 106 2.3.9.4 Observações finais .............................................................................. 108 2.3.10 Menu .................................................................................................................... 108 2.3.11 PopupMenu .......................................................................................................... 111 2.3.12 Tooltip .................................................................................................................. 114 2.3.13 SettingsPane ........................................................................................................ 115 2.3.14 HtmlControl ........................................................................................................ 115 2.3.15 Page ...................................................................................................................... 116 3. LAYOUTS, VISTAS E NAVEGAÇÃO ...................................................................... 117
3.1 Layouts .............................................................................................................................. 117 3.1.1 Flexible Box ........................................................................................................... 117 3.1.2 Grid ....................................................................................................................... 121 3.1.3 Multicolumn ......................................................................................................... 124 3.1.4 Regiões CSS3 ....................................................................................................... 126 3.2 Vistas ................................................................................................................................ 129 3.2.1 Media queries ........................................................................................................ 130 3.2.2 Adaptação através do tratamento de eventos ............................................... 131 3.2.2.1 Snapping ................................................................................................ 132 3.2.2.2 Orientação do ecrã .............................................................................. 135 © FCA – Editora de Informática
ÍNDICE GERAL
IX
3.3 Navegação ....................................................................................................................... 138 3.3.1 Navegação básica ............................................................................................... 138 3.3.1.1 Contexto local vs. contexto Web ........................................................ 142 3.3.1.2 Navegação entre páginas internas e externas ................................ 144 3.3.2 Controlo HtmlControl ....................................................................................... 144 3.3.3 Fragmentos .......................................................................................................... 144 3.3.3.1 Funcionamento interno dos fragmentos ......................................... 148 3.3.4 Controlo Page ..................................................................................................... 150 3.3.4.1 Método render ..................................................................................... 152 3.3.4.2 Instanciação como controlo ............................................................... 153 3.3.4.3 Ciclo de vida de um controlo Page .................................................. 155 3.3.5 Suporte à navegação .......................................................................................... 161 3.3.5.1 Navegação com fragmentos .............................................................. 161 3.3.5.2 Navegação com controlos Page ........................................................ 167 4. INPUT ....................................................................................................... 171
4.1 Interação com o utilizador ............................................................................................ 171 4.1.1 Desenho baseado no toque (touch) .................................................................. 171 4.1.2 Experiência com base no toque (touch) ........................................................... 172 4.1.3 Windows 8 Touch Language ................................................................................ 173 4.1.4 Teclado e rato num desenho baseado no toque ............................................ 175 4.2 Identificação de dispositivos ........................................................................................ 176 4.2.1 Deteção do rato ................................................................................................... 177 4.2.2 Deteção do teclado ............................................................................................. 177 4.2.3 Deteção de toque ................................................................................................ 178 4.2.4 Deteção de dispositivos do tipo pointer .......................................................... 178 4.3 Exemplos práticos: desenhar para o toque................................................................. 180 4.3.1 Scrolling, panning e zooming ............................................................................... 180 4.3.1.1 Snappoints ............................................................................................. 182 4.3.1.2 Zooming ................................................................................................. 185 4.3.2 Pointers ................................................................................................................. 186 4.3.2.1 Integração com scrolling e zooming ................................................... 189 4.3.3 Gestos (Gestures) ................................................................................................. 194 4.3.3.1 Eventos do tipo static gestures ........................................................... 195 4.3.3.2 Eventos do tipo dynamic gestures ...................................................... 195 4.3.3.3 Cenários avançados: GestureRecognizer ........................................ 199 5. FICHEIROS.................................................................................................. 205
5.1 Introdução aos ficheiros em WinRT ............................................................................ 205 5.1.1 Zonas de acesso a ficheiros ............................................................................... 206 5.1.2 API de acesso ...................................................................................................... 207 © FCA – Editora de Informática
X
DESENVOLVIMENTO EM WINDOWS 8
5.1.3 StorageFile e StorageFolder .............................................................................. 208 5.2 Acesso a ficheiros ........................................................................................................... 208 5.2.1 Acesso de dados à zona app data ...................................................................... 209 5.2.1.1 Definições da aplicação ...................................................................... 215 5.2.1.2 Definições da aplicação – parte II ..................................................... 218 5.2.2 Acesso de ficheiros em libraries ........................................................................ 222 5.2.2.1 Agrupamento por álbum ................................................................... 226 5.2.2.2 Filtragem por género .......................................................................... 228 5.2.2.3 Músicas de um álbum ........................................................................ 231 5.2.2.4 E a música, toca? ................................................................................. 234 5.2.3 Pickers ................................................................................................................... 236 5.2.3.1 Gravação de ficheiros ......................................................................... 238 5.2.3.2 Pastas .................................................................................................... 240 5.2.3.3 Future-access list (FAL)........................................................................ 240 5.2.3.4 Most-recently used list (MRU) ............................................................. 243 5.2.4 Download e upload de ficheiros .......................................................................... 245 5.3 File Open Picker Contract ................................................................................................ 252 5.3.1 File Save Picker Contract ...................................................................................... 263 5.4 Associação de ficheiros e AutoPlay .............................................................................. 265 5.4.1 Associação de uma aplicação a um tipo de ficheiro ..................................... 268 5.4.2 AutoPlay ............................................................................................................... 272 6. DATA BINDING ............................................................................................ 281
6.1 Introdução ao data binding ............................................................................................ 281 6.2 Data binding declarativo ................................................................................................ 281 6.2.1 Atualização de dados ........................................................................................ 284 6.2.2 Inicializadores ..................................................................................................... 285 6.2.3 Conversores......................................................................................................... 287 6.2.4 Criação de objetos observáveis ........................................................................ 288 6.3 Binding bidirecional ....................................................................................................... 290 6.4 Binding programático..................................................................................................... 291 6.4.1 Notificação de alterações................................................................................... 292 6.5 Templates .......................................................................................................................... 293 6.5.1 Renderização de vários templates ..................................................................... 295 6.6 Objetos data source .......................................................................................................... 296 6.6.1 Configuração dos serviços da Google .............................................................. 298 6.6.2 Construção do objeto data source ...................................................................... 300 7. NETWORKING .............................................................................................. 307
7.1 A rede e o manifesto de uma aplicação ...................................................................... 307 7.2 Deteção de rede .............................................................................................................. 309 © FCA – Editora de Informática
ÍNDICE GERAL
7.3
7.4 7.5 7.6 7.7
7.8
XI
7.2.1 Perfil de ligação à rede ...................................................................................... 309 7.2.1.1 Estatísticas de uso local ...................................................................... 317 7.2.2 Deteção de ligação à rede .................................................................................. 318 Interação com Web services ............................................................................................ 320 7.3.1 Evitar o caching ................................................................................................... 325 7.3.2 Timeouts ................................................................................................................ 326 Syndication ....................................................................................................................... 326 7.4.1 Modificação de uma feed ................................................................................... 329 Autenticação com WebAuthenticationBroker ........................................................... 337 Serviços Live .................................................................................................................... 342 Sockets ............................................................................................................................... 345 7.7.1 TCP vs. UDP ........................................................................................................ 346 7.7.2 Tipos de sockets ................................................................................................... 346 7.7.3 Informação estatística ........................................................................................ 347 7.7.4 Streamsocket: Um exemplo prático ................................................................... 348 7.7.5 DatagramSocket ................................................................................................. 357 7.7.6 Web Sockets ........................................................................................................... 361 7.7.7 Ligação de proximidade .................................................................................... 363 Transferência de dados em background ....................................................................... 363
8. TILES, BADGES E TOASTS ............................................................................... 365
8.1 Tiles ................................................................................................................................... 365 8.1.1 Tile predefinido ................................................................................................... 367 8.1.2 Envio de notificações ......................................................................................... 369 8.1.2.1 Envio de notificações para diferentes tipos de tile ......................... 371 8.1.2.2 Uso de imagens em notificações ....................................................... 372 8.1.2.3 Pilha de notificações ........................................................................... 374 8.1.2.4 Tempo de vida de uma notificação .................................................. 376 8.1.2.5 Uso de tags ........................................................................................... 376 8.1.2.6 Notificações periódicas ...................................................................... 376 8.1.2.7 Notificações calendarizadas .............................................................. 377 8.1.2.8 Notificações push ................................................................................. 378 8.1.3 Tile secundário .................................................................................................... 387 8.1.3.1 Enumerar tiles ...................................................................................... 391 8.1.3.2 Envio de notificações .......................................................................... 391 8.1.3.3 Ativação de uma aplicação................................................................ 393 8.2 Badges ............................................................................................................................... 394 8.2.1 Tempo de vida de um badge ............................................................................. 396 8.2.2 Notificações periódicas...................................................................................... 397 8.2.3 Notificações push ................................................................................................ 397 8.2.4 Tiles secundários ................................................................................................. 398 © FCA – Editora de Informática
XII
DESENVOLVIMENTO EM WINDOWS 8
8.3 Toasts ................................................................................................................................ 398 8.3.1 Geração de um toast ........................................................................................... 399 8.3.2 Sons usados nos toasts ....................................................................................... 401 8.3.3 Parâmetros de ativação ..................................................................................... 403 8.3.4 Notificações calendarizadas ............................................................................. 404 8.3.5 Notificações push ................................................................................................ 405 8.4 Lock Screen........................................................................................................................ 405 8.4.1 Declaração da intenção de usar o lock screen .................................................. 407 8.4.2 Background tasks .................................................................................................. 407 8.4.3 Personalização da aplicação no lock screen ..................................................... 408 9. CONTRATOS ................................................................................................ 411
9.1 Introdução aos contratos ............................................................................................... 411 9.2 Background tasks .............................................................................................................. 413 9.2.1 Exemplo prático.................................................................................................. 418 9.3 Contact Picker ................................................................................................................... 424 9.4 Search ................................................................................................................................ 432 9.5 Settings ............................................................................................................................. 443 9.6 Share target ....................................................................................................................... 448 9.6.1 Aplicação-fonte ................................................................................................... 451 9.6.2 Aplicação-alvo .................................................................................................... 456 10. MULTIMÉDIA ............................................................................................. 463
10.1 10.2 10.3 10.4 10.5
Introdução à multimédia .......................................................................................... 463 Introdução ao vídeo e ao áudio ............................................................................... 464 Play to ........................................................................................................................... 470 Efeitos .......................................................................................................................... 472 Média em background ................................................................................................. 473 10.5.1 Competição pelo som ................................................................................. 477 10.6 Media Controls ............................................................................................................. 478 10.7 Reprodução Stereo 3D................................................................................................ 480 10.8 DRM ............................................................................................................................. 481 10.9 Captura de imagem e de som .................................................................................. 482 10.9.1 MediaCapture ............................................................................................... 486 10.9.1.1 Definições de captura ................................................................. 491 10.9.1.2 Rotação ......................................................................................... 495 10.9.1.3 Mirroring ...................................................................................... 496 10.9.1.4 Aplicação de efeitos .................................................................... 497 10.9.1.5 Áudio ............................................................................................ 498 10.10 Transcoding .................................................................................................................. 498 10.10.1 Conversão de formato ................................................................................ 498
© FCA – Editora de Informática
ÍNDICE GERAL
XIII
10.10.2 Trimming ....................................................................................................... 502 10.11 Imagens ........................................................................................................................ 505 10.11.1 Escrita de metadatada ................................................................................ 508 10.11.2 Modificação dos píxeis ............................................................................... 510 10.11.3 Aplicação de efeitos extra .......................................................................... 513 11. PERIFÉRICOS E SENSORES ............................................................................ 517
11.1 Introdução aos dispositivos externos ..................................................................... 517 11.1.1 Enumeração de dispositivos ...................................................................... 518 11.1.1.1 Enumeração de outros dispositivos ......................................... 522 11.1.1.2 Enumeração “ativa” de dispositivos ....................................... 524 11.1.1.3 Enumeração de dispositivos PnP ............................................. 528 11.2 Impressão .................................................................................................................... 530 11.2.1 Impressão básica .......................................................................................... 530 11.2.2 Definições predefinidas no preview de impressão .................................. 533 11.2.3 Definições personalizadas no preview de impressão .............................. 535 11.2.4 Impressão alternativa.................................................................................. 537 11.3 Sensores de orientação e de movimento ................................................................ 538 11.3.1 Acelerómetro ................................................................................................ 538 11.3.2 Inclinómetro ................................................................................................. 541 11.3.3 Girómetro ...................................................................................................... 542 11.3.4 Compasso ...................................................................................................... 543 11.3.5 Sensor de orientação.................................................................................... 544 11.4 Sensores de luz ........................................................................................................... 545 11.5 Geolocalização ............................................................................................................ 545 11.5.1 Deteção da atualização da localização...................................................... 549 11.6 SMS .............................................................................................................................. 550 11.6.1 Mensagens recebidas ................................................................................... 554 11.6.2 Notificação de mensagem recebida em background ................................ 556 12. ANIMAÇÕES .............................................................................................. 559
12.1 Introdução às animações .......................................................................................... 559 12.2 Biblioteca de animação.............................................................................................. 561 12.2.1 Navegação entre páginas ............................................................................ 561 12.2.2 Conteúdos ..................................................................................................... 564 12.2.3 Elementos suplementares da UI ................................................................ 568 12.2.4 Coleções ......................................................................................................... 573 12.2.5 Cenários de seleção...................................................................................... 576 12.3 Observações finais ..................................................................................................... 579 13. APLICAÇÕES .............................................................................................. 581
© FCA – Editora de Informática
XIV
DESENVOLVIMENTO EM WINDOWS 8
13.1 Ciclo de vida de uma aplicação ............................................................................... 581 13.1.1 Ativação de aplicações ................................................................................ 585 13.1.1.1 Splash Screen ................................................................................. 591 13.1.2 Suspensão de aplicações ............................................................................. 595 13.1.3 Resumo de aplicações ................................................................................. 596 13.2 Globalização e localização de aplicações ............................................................... 596 13.2.1 Recursos em markup .................................................................................... 597 13.2.2 Recursos em JavaScript ................................................................................ 600 13.2.3 Recursos provenientes de outros ficheiros .............................................. 601 13.2.4 Localização de imagens .............................................................................. 602 13.2.5 Recursos no manifesto ................................................................................ 605 13.2.6 Refrescamento da cultura usada ............................................................... 606 13.2.7 Operações de data binding ........................................................................... 607 13.2.8 Escolha programática da linguagem ........................................................ 607 13.2.9 Indicação explícita da língua usada num recurso .................................. 609 13.2.10 Recursos no contexto Web........................................................................... 609 13.2.11 Observações finais sobre globalização ..................................................... 612 13.3 Debugging de aplicações ............................................................................................ 615 13.4 Packaging ...................................................................................................................... 619 13.5 Windows Store.............................................................................................................. 623 13.5.1 Verificações pré-publicação ....................................................................... 625 BIBLIOGRAFIA ................................................................................................. 627 ÍNDICE REMISSIVO ........................................................................................... 629
© FCA – Editora de Informática
INTRODUÇÃO
1
O Windows 8 é a última evolução do sistema operativo cliente Windows desenvolvido pela Microsoft. Uma das suas principais novidades é a introdução de uma nova shell gráfica, inicialmente designada por Metro. Esta nova interface reutiliza a linguagem visual característica do Windows Phone e é suportada por uma nova plataforma, designada por WinRT, que estará disponível numa panóplia de dispositivos, desde o tradicional PC (Personal Computer) até ao tablet. Na prática, isto significa que as aplicações construídas sobre a plataforma WinRT podem correr em todos os dispositivos onde o Windows 8 estiver instalado. Estamos, portanto, perante aquele que será o marco mais importante da Microsoft desde o lançamento do Windows 95.
0.1
O QUE POSSO ENCONTRAR NESTE LIVRO
Neste livro, optámos por recorrer ao HTML5 e ao JavaScript para apresentar muitas das funcionalidades disponibilizadas pela plataforma WinRT que podem ser usadas na construção de aplicações Windows Store. Muitas destas funcionalidades são ilustradas através de vários exemplos práticos, que se concentram em apresentar estratégias e boas práticas associadas ao seu uso. Todos estes exemplos podem ser obtidos gratuitamente, a partir do site da editora FCA (http://www.fca.pt).
0.2
REQUISITOS
A utilização do código que acompanha este livro pressupõe o uso do sistema operativo Windows 8. Para além disso, o livro parte do princípio de que o leitor possui alguns conhecimentos sobre o desenvolvimento de aplicações Web. Por outras palavras, presume-se que o leitor possui alguns conhecimentos básicos sobre elementos HTML, aplicação de estilos CSS e uso de JavaScript. Apesar de todo o código ter sido escrito com o Visual Studio 2012, na verdade, as ferramentas Express (que podem ser obtidas gratuitamente a partir de http://bit.ly/JLvqFA) são mais do que suficientes para criar e compilar as várias aplicações apresentadas ao longo do livro. © FCA – Editora de Informática
2
DESENVOLVIMENTO EM WINDOWS 8
Praticamente todas as aplicações criadas ao longo do livro podem ser executadas num PC ou no simulador Windows 8. Existem, contudo, alguns (poucos) exemplos que pressupõem o acesso a determinados dispositivos que podem não existir num PC tradicional. Por exemplo, a API (Application Programming Interface) de SMS é um desses casos e só pode ser testada num PC que possua um adaptador de rede móvel.
0.3
A QUEM SE DIRIGE ESTE LIVRO?
Este livro é dirigido a todos os leitores interessados em criar aplicações Windows Store para Windows 8 através de HTML e JavaScript. É especialmente adequado aos leitores que se estão a iniciar, mas também é suficientemente abrangente para poder ser usado como referência por aqueles que já possuem alguns conhecimentos básicos sobre a plataforma e que procuram aprofundá-los. Neste livro, optámos por construir as aplicações através de HTML5 e JavaScript por duas razões essenciais. Em primeiro lugar, porque o uso destas linguagens é uma das grandes novidades associadas ao desenvolvimento de aplicações Windows Store. Para além disso, a utilização destas tecnologias permite ao programador com experiência no desenvolvimento de aplicações Web reutilizar muitos dos conhecimentos obtidos nessa área. Com a explosão que a Web teve nos últimos anos, parece-nos que o uso de HTML5 e JavaScript é a opção que permite satisfazer o maior número de pessoas interessadas no desenvolvimento de aplicações deste tipo. Convém ainda referir que muitos dos conceitos apresentados neste livro são transversais às várias linguagens que podem ser usadas na construção de aplicações Windows Store. Na prática, isso significa que a transposição do código JavaScript, apresentado em vários dos exemplos, para outra linguagem não deve oferecer muitas dificuldades ao leitor interessado em usar outra linguagem no desenvolvimento deste tipo de aplicações.
0.4
CÓDIGO E SAMPLES
Todas as aplicações que acompanham este livro foram construídas com o Visual Studio 2012. Apesar de o uso deste IDE (Integrated Development Environment) ser recomendado, na verdade, o leitor deverá ser capaz de utilizar o Visual Studio Express para criar ou compilar todas as aplicações apresentadas no livro. O leitor interessado pode obter todo o código que acompanha este livro a partir do site da editora FCA (http://www.fca.pt).
© FCA – Editora de Informática
INTRODUÇÃO
0.5
3
CONVENÇÕES
Ao longo do livro, optou-se por seguir um conjunto de convenções que devem facilitar a interpretação do texto e do código. Assim, todos os excertos de código são apresentados com a formatação que se segue: <TextBlock Text=”Olá, mundo!” />
var c = 10;
O caráter é usado para indicar que a linha atual não deve ser dividida em duas linhas (essa divisão ocorreu apenas porque a página física do livro não possui o espaço suficiente para apresentar numa única linha). Todas as notas e observações importantes poderão ser encontradas no interior de uma secção semelhante à seguinte: Nota importante sobre um tópico.
0.6
ORGANIZAÇÃO DO LIVRO
O livro está dividido em vários capítulos e pode ser lido sequencialmente, levando o leitor numa “viagem“, que começa com uma breve apresentação sobre algumas das características marcantes da nova shell gráfica para, em seguida, se debruçar sobre várias das funcionalidades mais importantes introduzidas pela plataforma WinRT. Por outro lado, este livro também pode ser usado como referência, permitindo, assim, a leitura “desordenada” dos capítulos que mais interessam ao leitor num determinado momento.
0.6.1
CAPÍTULO 1: INTRODUÇÃO ÀS WINDOWS STORE APPS
Este capítulo começa por efetuar uma visita guiada ao novo ecrã inicial disponibilizado pelo sistema operativo Windows 8. Introduzimos ainda a plataforma WinRT e os seus principais componentes e encerramos o capítulo com o estudo da anatomia de um projeto WinRT criado com HTML5 e JavaScript.
0.6.2
CAPÍTULO 2: CONTROLOS
Os controlos desempenham um papel fundamental nas aplicações Windows Store. Neste capítulo, começamos por analisar o uso de alguns controlos HTML intrínsecos para, em seguida, apresentarmos detalhadamente os controlos Windows Store disponibilizados pela biblioteca WinJS.
© FCA – Editora de Informática
4
0.6.3
DESENVOLVIMENTO EM WINDOWS 8
CAPÍTULO 3: LAYOUTS, VISTAS E NAVEGAÇÃO
Neste capítulo, analisamos várias estratégias associadas à disposição de controlos numa página de uma aplicação Windows Store. O capítulo apresenta ainda várias funcionalidades disponibilizadas pela plataforma, que permitem ajustar a vista atual, e termina com uma abordagem aprofundada ao módulo de navegação, que pode ser usado numa aplicação WinRT construída com HTML5 e JavaScript.
0.6.4
CAPÍTULO 4: INPUT
A introdução de dados desempenha um papel importante na construção de aplicações Windows Store. Para além do suporte melhorado aos dispositivos tradicionais (rato e teclado), toda a plataforma foi desenhada a pensar no uso do toque. É por isso que este capítulo se concentra em mostrar o papel fundamental do uso do toque no desenho da plataforma e quais as principais consequências que advieram dessa escolha.
0.6.5
CAPÍTULO 5: FICHEIROS
O acesso a ficheiros e pastas constitui uma das principais funcionalidades disponibilizadas por um sistema operativo. Este capítulo dedica-se à apresentação da API disponibilizada pela plataforma que nos permite interagir com o sistema de ficheiros. Para além das operações básicas, o capítulo apresenta os princípios associados ao uso e à implementação de pickers e mostra como podemos adicionar AutoPlay ou associar ficheiros a uma aplicação.
0.6.6
CAPÍTULO 6: DATA BINDING
Nos dias que correm, a apresentação de dados é um aspeto fundamental que é transversal a todas as aplicações. Neste capítulo, apresentamos várias funcionalidades disponibilizadas pela plataforma que simplificam o código necessário à apresentação de dados e à manutenção de sincronismo entre os objetos que fornecem esses dados e os controlos que os apresentam.
0.6.7
CAPÍTULO 7: NETWORKING
Hoje em dia, o acesso a dados provenientes de diversas origens é um dos requisitos comuns a muitas aplicações. Neste capítulo, analisamos os vários objetos disponibilizados pela plataforma que definem a chamada stack de rede. Para além de analisarmos as classes de baixo nível que simplificam o código necessário à obtenção de © FCA – Editora de Informática
INTRODUÇÃO
5
uma feed ou à invocação de um Web service remoto, discutimos o uso de Sockets e as vantagens inerentes ao novo conceito de perfil de rede.
0.6.8
CAPÍTULO 8: TILES, BADGES E TOASTS
Nunca como agora foi tão fácil fornecer informação ao utilizador sobre uma determinada tarefa que está a ser desempenhada por uma aplicação quando esta está em background. Neste capítulo, começamos por analisar o papel desempenhado pelos tiles para, em seguida, abordarmos o uso de badges e de toasts. O capítulo não termina sem apresentar algumas considerações importantes sobre como podemos usar o lock screen para fornecer feedback ao utilizador final.
0.6.9
CAPÍTULO 9: CONTRATOS
Os contratos e as extensões permitem estandardizar várias funcionalidades consideradas importantes e comuns a muitas aplicações. Neste capítulo, abordamos este tópico e apresentamos vários exemplos da implementação dos contratos disponibilizados pela plataforma WinRT.
0.6.10 CAPÍTULO 10: MULTIMÉDIA A adição de vídeo, áudio e imagem desempenha cada vez um papel mais importante no desenvolvimento de aplicações. Ao longo deste capítulo, apresentamos várias das funcionalidades existentes que permitem a adição de multimédia a uma aplicação.
0.6.11 CAPÍTULO 11: PERIFÉRICOS E SENSORES Neste capítulo, analisamos o código necessário à interação com alguns dos periféricos mais comuns que podem ser ligados a um dispositivo que corre o Windows 8. Depois de apresentarmos o código necessário à impressão, abordamos ainda o uso de vários sensores numa aplicação. O capítulo termina com uma apresentação sobre o uso de geolocalização e com outra sobre as principais características disponibilizadas pela API de SMS.
© FCA – Editora de Informática
6
DESENVOLVIMENTO EM WINDOWS 8
0.6.12 CAPÍTULO 12: ANIMAÇÕES A construção de aplicações fluidas e atrativas é um dos principais pressupostos associados às aplicações Windows Store. Neste capítulo, vemos como podemos recorrer às várias animações disponibilizadas pela plataforma para tornar as nossas aplicações ainda mais fluidas, contribuindo, assim, para uma melhoria da sua usabilidade.
0.6.13 CAPÍTULO 13: APLICAÇÕES O livro termina com a apresentação de várias funcionalidades que serão transversais a muitas aplicações. Assim, o capítulo começa por apresentar as principais fases que constituem o ciclo de vida de uma aplicação Windows Store para, em seguida, se concentrar na globalização de aplicações. O capítulo apresenta ainda algumas considerações sobre o uso de debugging e sobre os passos necessários à distribuição de aplicações (packaging), encerrando com uma breve introdução à Windows Store.
0.7
SUPORTE
Este livro foi escrito sobre a versão RTM (Release To Manufacturing) do Windows 8. Se, por acaso, o leitor encontrar informação que lhe pareça incorreta ou se tiver sugestões em relação ao conteúdo, não hesite e envie um e-mail com as suas questões para labreu@gmail.com. Eventuais atualizações e erratas serão publicadas no site da editora FCA, em http://www.fca.pt.
© FCA – Editora de Informática