Copyright 2015 da Novatec Editora Ltda.

Documentos relacionados
Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Jonathan Weber e a equipe da LunaMetrics

Introdução ao GitHub Peter Bell e Brent Beer

Ryan Mitchell. Novatec

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Ademir C. Gabardo. Novatec

Web Interativa com Ajax e PHP

Aditya Y. Bhargava. Novatec

Indira Knight. Novatec

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach

Hélio Engholm Jr. Novatec

Matheus Marabesi Michael Douglas

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

William Pereira Alves

Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec

Desenvolvendo Websites com PHP

Novatec Editora Ltda

André Gugliotti. Novatec

Shyam Seshadri & Brad Green

Miguel Grinberg. Novatec

Karl Matthias Sean P. Kane

Criando Relatórios com PHP Pablo Dall Oglio

Jody Culkin e Eric Hagan

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec

Ben Vinegar Anton Kovalyov

Luiz Eduardo Borges. Novatec

Primeiros Passos com o Arduino

Primeiros Passos com o Netduino

Novatec Editora Ltda

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

Ademir Cristiano Gabardo. Novatec

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec

Ricardo R. Lecheta. Novatec

Arduino Básico Michael McRoberts

Aravind Shenoy Anirudh Prabhu

Simon Holmes. Novatec

Adriano Pataro. Novatec

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Benjamin Bengfort Jenny Kim

Raspberry Pi Manual do Usuário

Osvaldo Santana Thiago Galesi

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec

Sérgio de Oliveira. Novatec

WordPress 3 Básico Stephanie Leary

Blender 3D jogos e animações interativas Allan Brito

Copyright 2015 da Novatec Editora Ltda.

Kenneth Reitz Tanya Schlusser

Maurício Samy Silva. Novatec

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

3ª Edição Nilo Ney Coutinho Menezes

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

Aprenda a Programar com Minecraft

Brandon Rhodes John Goerzen

Allen B. Downey. Novatec

Ademir Ribeiro dos Passos

Rodrigo de Barros Paes

Guia Mangá Circuitos Eletrônicos

Adrian Mouat. Novatec

AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec

Shelley Powers. Novatec

Allan Liska e Timothy Gallo. Novatec

2ª edição Nelson Glauber de Vasconcelos Leal

Chris Binnie. Novatec

Jessey Bullock Jeff T. Parker

Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A.

Semmy Purewal. Novatec

Guia Mangá FISIOLOGIA. Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec

Análise de Regressão

Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec

Novatec Editora Ltda

Nelson Glauber de Vasconcelos Leal

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

Wolfram Donat. Novatec

David Hows Peter Membrey Eelco Plugge

Chris Goward. Novatec

Christopher Duffy. Novatec

4ª Edição Revisada e Ampliada Aurelio Marinho Jargas

Guia Mangá Motores elétricos

Crie Seu Próprio Site

4ª Edição Revisada e Ampliada Allan Brito

Adrian Pruteanu. Novatec

Guia Prático Richard E. Silverman

Robson Santos da Silva

Novatec Editora Ltda. 2014, 2016.

Edécio Fernando Iepsen

Jarrod Overson e Jason Strimpel

2ª Edição Cláudio Torres

Jonathan Stark Brian Jepson

Roberto Cohen. Novatec

Harrison Kinsley Will McGugan

Daniel Marcos Cunha Pereira

4ª Edição Pablo Dall Oglio

Guia Mangá Circuitos Eletrônicos

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

Uma introdução visual à programação com jogos, arte, ciência e matemática

Aaron Newcomb. Novatec

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

Transcrição:

Dan Hermes Novatec

Original English language edition published by Apress, Copyright 2015 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2015 by Novatec Editora. All rights reserved. Edição original em inglês publicada pela Apress, Copyright 2015 by Apress, Inc. Edição em português para o Brasil copyright 2015 pela Novatec Editora. Todos os direitos reservados. Copyright 2015 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates MP20151117 Tradução: Aldir José Coelho Corrêa da Silva Assistente editorial: Priscila A. Yoshimatsu Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-466-3 Histórico de impressões: Novembro/2015 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 E-mail: novatec@novatec.com.br Site: novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Sumário Prefácio... 15 Segundo prefácio... 17 Sobre o autor... 19 Sobre o revisor técnico... 20 Agradecimentos... 21 Introdução... 23 Para quem é este livro...24 Como baixar os exemplos de código (sites em inglês)...24 XAML...24 Comece a investigar o Xamarin.Forms imediatamente!...25 Conteúdo dos capítulos...25 Como ler o livro...27 Código completo...28 Sobre que plataforma eu estou lendo agora?...28 Pré-requisitos...28 O que você não encontrará neste livro...30 Windows Phone...30 Requisitos do sistema...30 Mac... 31 Windows... 31 Xamarin.Forms... 31 Errata...32 Suporte ao cliente...32 Contato com o autor...32 Resumo...32 Capítulo 1 Desenvolvimento móvel com o uso do Xamarin... 33 O que é Xamarin?...34 APIs nativas encapsuladas...34 Ambientes de desenvolvimento...35 Designers de UI...35 7

8 Desenvolvimento de aplicativos móveis com Xamarin O que é antigo: técnicas C# e.net conhecidas...36 O que é novo: técnicas de desenvolvimento móvel... 37 UI móvel...38 O Xamarin.Forms e a UI específica de plataforma...38 Design de UI móvel...39 Renderizadores personalizados do Xamarin.Forms...40 Camada de acesso a dados... 41 Acesso de dados local com o uso do SQLite...42 Vinculação de dados...42 Desenvolvimento multiplataforma...43 Resumo...44 Capítulo 2 Construindo interfaces de usuário móveis... 45 Entendendo o Xamarin.Forms...45 Arquitetura de solução do Xamarin.Forms... 47 Entendendo a abordagem de UI específica de plataforma...48 Arquitetura de solução de UI específica de plataforma...49 Xamarin.Android...50 Xamarin.iOS... 51 Windows Phone SDK... 52 Selecionando o Xamarin.Forms ou uma UI específica de plataforma... 52 Use as duas abordagens com renderizadores personalizados...54 Examinando os elementos das UIs móveis...55 Usando a UI do Xamarin.Forms...56 Page...56 Layout...57 View...58 Criando uma solução Xamarin.Forms...59 Código compartilhado do Xamarin.Forms... 61 Xamarin.Android...63 Xamarin.iOS...64 Aplicativo Windows Phone...65 Biblioteca Básica...66 Definindo a página principal do aplicativo...66 Adicionando views do Xamarin.Forms...67 Visão de rótulo...67 Inserindo views usando StackLayout...68 Cor de plano de fundo e cor de fonte...69 Usando fontes...70 Usando fontes específicas de plataforma...70 Visão de botão... 71

Sumário 9 Configurando o alinhamento e o tamanho da visão: HorizontalOptions e VerticalOptions...73 Visão para entrada de texto... 74 BoxView...75 Visão de imagem...76 Finalizando StackLayout...80 ScrollView... 81 Atribuindo a propriedade ContentPage.Content... 81 Preenchimento ao redor da página inteira...82 Código completo: Adicionando views do Xamarin.Forms...83 Resumo...85 Capítulo 3 Design da UI com o uso de layouts... 87 Entendendo os controles de personalização...89 Usando layouts do Xamarin.Forms...90 StackLayout...90 RelativeLayout... 100 AbsoluteLayout...110 Grid...117 ContentView... 129 Frame...131 Usando layouts do Android... 133 LinearLayout... 134 RelativeLayout... 138 TableLayout... 140 GridLayout... 142 FrameLayout... 148 Fragmentos... 149 Usando layouts do ios... 150 Usando AutoLayout...151 Usando quadros... 154 Resumo... 155 Capítulo 4 Interação do usuário com o uso de controles...157 Views do Xamarin.Forms... 158 Picker... 159 DatePicker...161 TimePicker... 163 Stepper... 165 Slider... 166 Switch... 167

10 Desenvolvimento de aplicativos móveis com Xamarin Dimensionamento, rotação, opacidade, visibilidade e foco... 168 Código completo: Controles do Xamarin.Forms... 168 Controles do Android... 172 Spinner... 173 DatePicker... 176 TimePicker...181 SeekBar... 182 CheckBox... 183 Switch... 185 RadioButton... 186 Código completo: Controles do Android... 188 Controles do ios... 190 UIPickerView... 190 UIDatePicker... 196 UIStepper...201 UISlider... 202 CheckBox: use UISwitch ou MonoTouch.Dialog...203 UISwitch...204 Código completo: Controles do ios...205 Resumo... 207 Capítulo 5 Criando uma lista rolável...208 Adaptadores de dados...209 ListView no Xamarin.Forms...209 Vinculação a uma lista de strings...209 Selecionando um item... 211 Vinculação a um modelo de dados...213 Adicionando uma imagem... 216 Personalizando as linhas da lista...218 Adicionando botões... 224 Cabeçalhos de grupo...228 Personalizando o cabeçalho do grupo... 232 Criando uma jump list... 235 Os ListViews rolam automaticamente... 236 Otimizando o desempenho... 237 ListView do Android... 238 Usando ListActivity... 238 Vinculação a um array de strings... 239 Selecionando um item... 240 Vinculação a um modelo de dados...241 Otimizando o desempenho... 244 Usando as views de linha internas... 245

Sumário 11 Personalizando linhas da lista... 247 Cabeçalhos de grupo... 252 Controle UITableView do ios... 255 Vinculação a um array de strings... 255 Selecionando um item... 257 Vinculação a um modelo de dados... 259 Usando views de linha internas... 262 Separadores de célula...263 Personalizando linhas da lista...264 Cabeçalhos de grupo... 267 Realçando grupos usando estilos de tabela... 272 Adicionando acessórios às linhas da lista... 273 Otimizando o desempenho... 274 Abordagem alternativa às listas: UITableViewController... 276 Resumo... 276 Capítulo 6 Navegação...278 Padrões de navegação... 278 Hierárquico... 279 Modal... 279 Gerenciamento de estado... 281 Navegação no Xamarin.Forms...282 Navegação hierárquica com o uso de NavigationPage...282 Modal...289 Gerenciando o estado...291 Listas com detalhamento em drill-down...294 Gaveta de navegação com o uso de MasterDetailPage... 302 Abas de TabbedPage...306 Springboard...309 Criando um carrossel com o uso de CarouselPage...312 Navegação do Android...313 Iniciando novas atividades com o uso de intents...314 Navegação hierárquica com a barra de ferramentas...315 Usando a barra de navegação... 326 Fragmentos... 327 Navegação modal... 330 Gerenciando o estado usando bundles... 338 Lista com detalhamento em drill-down...341 Gaveta de navegação... 343 Abas com o uso de ActionBar...344 Navegação do ios... 349 Usando storyboards, cenas e segues... 350

12 Desenvolvimento de aplicativos móveis com Xamarin Usando nibs... 352 Navegação hierárquica... 352 Navegação modal... 357 Gerenciando o estado...360 Lista drill-down com o uso de UINavigationController...363 Gaveta de navegação com o uso de componentes... 367 Uso de abas com UITabBarController... 367 Resumo...369 Capítulo 7 Acesso a dados com o SQLite e vinculação de dados...371 O que é o SQLite?...371 O que é o SQLite.NET?... 372 Vinculação a dados... 373 Vinculação a dados do Xamarin.Forms...374 Vinculação a um modelo de dados... 376 Usando INotifyPropertyChanged... 379 Código completo: Usando INotifyPropertyChanged...382 Entendendo os ViewModels e o MVVM...384 Vinculação a ViewModels e a modelos de dados...384 Vinculando um ListView somente de leitura...389 Vinculando um ListView editável... 390 Vinculando uma visão a outra visão...400 Usando o SQLite.NET...400 Instalando o SQLite no Windows Phone...402 Criando um banco de dados...402 Construindo o caminho do banco de dados...403 Criando uma tabela... 407 Criando a camada de acesso a dados... 411 Código completo: Criando uma DAL usando o SQLite.NET...421 Usando o ADO.NET... 424 Criando um banco de dados... 425 Criando uma tabela...426 Executando instruções SQL...426 Código completo: Usando o ADO.NET...428 Opções de criação do banco de dados... 430 Serviços web...431 Soluções empresariais de dados em nuvem... 432 Microsoft Azure... 432 IBM MobileFirst Platform Foundation... 433 Amazon Web Services (AWS)... 433 Resumo... 434

Sumário 13 Capítulo 8 Renderizadores personalizados...435 Quando usar um renderizador personalizado...436 Criando e usando um renderizador personalizado...436 Preparando o elemento personalizado... 437 Criando o renderizador personalizado... 439 Renderizador personalizado do Android...440 Código completo: Renderizador personalizado do Android...442 Renderizador personalizado do ios...444 Código completo: Renderizador personalizado do ios...446 Renderizador personalizado do Windows Phone...446 Código completo: Renderizador personalizado do Windows Phone...449 Qual renderizador e que visão serão personalizados?... 450 Resumo...451 Capítulo 9 Arquitetura multiplataforma...453 Código compartilhado e código específico de plataforma... 453 Manipulando a divergência... 454 Arquitetura de soluções Xamarin.Forms... 455 Arquitetura de soluções específicas de plataforma... 457 Biblioteca básica... 459 Portable Class Libraries (PCLs)... 461 Injeção de dependência...462 Usando DependencyService...463 Contêineres de DI de terceiros e open source...469 Projetos compartilhados... 470 Compilação condicional...471 Vinculação de arquivo... 472 Classes e métodos parciais... 473 Manipulando divergências de versões... 473 Resumo...474 Epílogo A arte do desenvolvimento de aplicativos no Xamarin...476