Buscar

Introdução ao desenvolvimento nativo - Apostila

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Texto da disciplina: ............................................................................... 3 
Desenvolvimento Nativo ....................................................................... 3 
Introdução ................................................................................................... 3 
Dispositivos Móveis ....................................................................................... 5 
Características Cásicas .................................................................................. 5 
Outras Características ................................................................................... 5 
Categorias ................................................................................................... 6 
Computador Móvel ....................................................................................... 6 
Pda ............................................................................................................. 6 
Telefones Celulares ...................................................................................... 7 
Evolução Dos Telefones Celulares .................................................................. 7 
Smartphone ................................................................................................. 7 
Tablet ou Tablet Pc ...................................................................................... 8 
Dispositivos De Vestir ................................................................................... 8 
Componentes Básicos De Um Dispositivos De Vestir ....................................... 9 
Introdução Ao Desenvolvimento Nativo ......................................................... 9 
Mercado Móvel ........................................................................................... 10 
O Desenvolvimento Móvel ........................................................................... 10 
Estratégias Do Desenvolvimento Móvel ........................................................ 11 
Estratégia De Desenvolvimento Móvel Nativo ............................................... 12 
Comparando As Plataformas Mobile Nativas ................................................. 13 
Assinatura De Desenvolvedor Por Loja Virtual .............................................. 14 
Desenvolvimento Móvel: Web Mobile ........................................................... 15 
Web Site x Mobile Site x Responsive Design Site .......................................... 15 
Desenvolvimento Móvel: Híbrido ................................................................. 16 
Diferenças Entre As Abordagens Do Desenvolvimento Móvel ......................... 16 
Desenvolvimento Nativo Com Android ......................................................... 16 
Sistema Operacional Android ....................................................................... 17 
Tabela Histórico De Versões ........................................................................ 18 
Distrubuições Da Versão Do Android ............................................................ 19 
Arquitetura Do s.o. Android ......................................................................... 19 
Android Studio – Sistema De Build (gradle) .................................................. 21 
Android Studio – Configurações De Build Do Gradle ...................................... 21 
Estrutura De Um Projeto Android ................................................................ 22 
Aspectos De Design Na Plataforma Android.................................................. 22 
Android Design ........................................................................................... 23 
Princípios De Projeto De Design Para Android .............................................. 23 
Material Design .......................................................................................... 24 
Desenvolvimento Nativo Com Apple Ios ....................................................... 24 
Arquitetura ................................................................................................ 26 
Linguagem De Programação Objective-c ...................................................... 28 
Linguagem De Programação Swift ............................................................... 28 
Aspectos De Design Na Plataforma Ios ........................................................ 29 
Desenvolvimento Nativo Com Microsoft Windows Phone ............................... 29 
Aspectos De Design Na Plataforma Windows Mobile ..................................... 30 
Bibliografia ................................................................................................. 31 
 
 
 
 
Texto da disciplina: 
Desenvolvimento Nativo 
Introdução 
Os dispositivos móveis estão presentes em nosso cotidiano como um 
equipamento de uso pessoal. Constitui um ambiente computacional móvel 
composto por um sistema operacional e diversos aplicativos. Sua característica 
principal é a mobilidade, ou seja, permitir que seu usuário o utilize enquanto se 
desloca de um lugar para outro, podendo executar aplicações isoladas (off-line) 
bem como conectadas a internet (online) através de conectividade a uma rede 
sem fio. A Mobilidade ou aplicações móveis são aplicações que podem 
facilmente ser movidos fisicamente ou cujas capacidades podem ser executadas 
enquanto elas estão sendo movidos, em outras palavras “permite o acesso a 
informação disponível em qualquer lugar e a qualquer momento”. 
A venda de dispositivos móveis como smartphone e tablet já superam o volume 
de vendas dos pc’s. O acesso a internet através de um dispositivo móvel 
superou, desde o 2º semestre de 2013, o acesso realizado através dos pc’s. 
Esse mercado vem crescendo desde a década de 1990, quebrando paradigmas, 
ampliando as possibilidades de atuação do profissional no mercado permitindo 
que atue em empresas privadas ou públicas, como também como 
desenvolvedor independente através do empreendimento de aplicações móveis 
e sua disponibilização e venda em lojas virtuais especializadas. 
A demanda de desenvolvimento de aplicações móveis (apps) cresce. Dentre as 
principais plataformas do mercado destacam-se o Android da Google, o IOS da 
Apple e o Windows da Microsoft. Diversas são as soluções para o 
desenvolvimento de aplicações para essas plataformas, dentre elas pode-se 
destacar o desenvolvimento nativo, ou seja, o desenvolvimento de aplicações 
utilizando ferramentas específicas disponibilizadas por cada fornecedor 
(plataforma). 
 
 
 
A miniaturização dos dispositivos e a conectividade sem fio deu surgimento a 
computação móvel. A computação móvel busca explorar a conexão de 
dispositivos que se movimentam em um mundo físico cotidiano. A medida que 
os dispositivos se tornam menores, fica mais fácil incorporá-los em muitas 
partes do mundo físico. 
Dispositivos móveis são equipamentos com capacidade computacional de 
processamento e armazenamento que permite o acesso a internet via rede sem 
fio. Dentre suas principais características pode-se destacar a mobilidade, ou 
seja, a capacidade de se utilizar o equipamento acessando aplicativos e 
acessando a web enquanto você se movimenta. 
Uma forma de classificar os dispositivos móveis é por seu dimensionamento 
(características). Nessa categoria pode-se destacar os computadores móveis, 
computadores de mão e os dispositivos de vestir. Cada categoria possui um 
conjunto de características específicas e aplicações. 
Os computadores móveis se referem aos equipamentos com perfil similar ao PC 
(Personal Computer) porém com características de mobilidade. Nessa categoria 
encontramos os notebooks, ultrabooks e netbooks. 
Os computadores de mão corresponde a categoria de equipamentos com 
capacidade computacional e mobilidade porém comdimensões menores em 
relação aos computadores móveis. Aqui tem-se os celulares, smartphones e 
tablets. 
Os dispositivos de vestir são equipamentos com características semelhantes ao 
anterior porém são utilizados junto ao corpo, tais como óculos de realidade 
aumentada, relógios inteligentes (smart watch) e pulseiras inteligentes. 
 
 
 
Dispositivos móveis 
São equipamentos de tecnologia computacional que permite o acesso a 
informações pessoais e corporativas, independente do momento ou local no 
qual se encontra. É um conjunto de dispositivos que permitem ao usuário ter 
acesso a serviços independentes de sua localização. 
Características básicas 
 Mobilidade 
 Portátil 
 Fonte de alimentação de energia própria 
 Conectividade sem fio 
 Capacidade computacional 
 Processamento 
 Armazenamento 
Outras características 
 Diversidade de tamanho e resolução de tela; 
 Capacidade de memória e processamento limitada; 
 Baixo consumo de energia; 
 Conectividade limitada; 
 Curto tempo de inicialização; 
 Armazenamento de dados local e/ou remoto. 
 
 
 
 
Categorias 
 Classificação quando ao dimensionamento 
• Computadores móveis 
• Computadores de mão 
• Dispositivos de vestir 
Computador móvel 
São dispositivos portáteis com capacidade semelhante aos computadores 
pessoais (desktops). Laptops (notebooks, netbooks, ultrabooks) 
Computadores de mão 
 PDA – Personal Digital Assistant; 
 Telefones móveis (Smartphones, tablets, etc); 
 Outros equipamentos de operação especializada 
PDA 
Personal Digital Assistant (Assistentes Digitais Pessoais). Computadores de 
propósito geral capazes de executar diversos tipos de aplicações. Podem ser 
compostos por acessórios como: 
• Câmeras; 
• Leitor de código de barras; 
• Outros tipos de acessórios específicos; 
 
 
 
Telefones Celulares 
Termo utilizado para os primeiros telefones que faziam uso da topologia de 
uma rede de telefonia móvel. Cada célula é o raio de ação de cada uma das 
estações base (antenas de emissão/recepção) do sistema. 
Evolução dos Telefones Celulares 
Os primeiros celulares eram rudimentares que permitiam apenas realizar 
ligações. Apresentavam antena externa e display simples para exibir apenas o 
número do telefone discado. Pode-se observar a evolução dos celulares com 
atenção especial ao display (tamanho, cores e resolução) e a antena. A medida 
que a tecnologia dos celulares evoluía juntamente com a miniaturização de 
componentes como mp3 players e câmeras. 
 
Smartphone 
É chamado de Telefone “inteligente”, ou seja, é um telefone celular com 
funcionalidades avançadas que podem ser estendidas por meio de programas 
executados por seu sistema operacional. Um smartphone pode ser considerado 
um telefone celular com as funcionalidades de um PDA. 
 
 
 
Tablet ou Tablet PC 
Dispositivo pessoal em formato de prancheta que pode ser usado para acesso à 
Internet, organização pessoal, visualização de fotos, vídeos, leitura de livros, 
jornais e revistas e para entretenimento com jogos. Esse tipo de dispositivo 
apresenta uma tela touchscreen (tela sensível ao toque) que é o dispositivo de 
entrada principal. 
É um Smartphone ? Não! É um tablet ? Não, é um phablet!!! 
 
Os dispositivos móveis foram evoluindo, agregando novas funcionalidades e 
aplicativos, e aumentando seu tamanho e resolução do display. O mercado 
então lançou dispositivos com medidas acima de 5 polegadas e inferiores a 7 
polegadas. Para esses tipos de dispositivos o mercado denominou-os de 
“Phablets”, a união das palavras “Phone”+ “Tablet”. Essa tendência é tão forte 
que a Apple teve que se adequar a demanda do mercado e lançou os modelos 
do iPhone 6 e iPhone 6 plus. 
Dispositivos de vestir 
A tecnologia de vestir corresponde a dispositivos que são incorporado ao 
espaço pessoal de maneira que está sempre com o usuário sem, no entanto, 
limitar os seus movimentos ou impedir a sua mobilidade. 
 
 
 
Está sempre ligado e acessível, e com uma performance computacional que 
permite auxiliar o usuário em atividades motoras e/ou cognitivas. 
Componentes básicos de um Dispositivos de vestir 
Um dispositivo de input – entrada de dados, para controle das funções do 
sistema o que implica em alguma espécie de teclado, um processador 
responsável por este input, cujo tamanho dependerá das necessidades e 
características de processamento, Um dispositivo de output – saída de dados, 
preferivelmente um display visível constante em um dos olhos do wearer, uma 
fonte – baterias, para o processador e possivelmente também para os 
dispositivos de input e output. 
Dentre os dispositivos de vestir podemos destacar o óculos de Realidade 
Aumentada da Google Glass, o óculos de Realidade Mista da Microsoft 
Hololens, os Smartwatch e as pulseiras inteligentes. A tecnologia móvel e os 
dispositivos móveis fazem parte de nosso cotidiano. Possibilitam acesso a dados 
a qualquer hora e lugar. Comodidade e disponibilidade e a evolução tende a 
torná-los uma parte de nosso corpo. 
Introdução ao desenvolvimento nativo 
Aplicações móveis são aplicações que podem facilmente ser movidos 
fisicamente ou cujas capacidades podem ser executadas enquanto elas estão 
sendo movidos. Em outras palavras: informação disponível em qualquer lugar e 
a qualquer momento (Mobilidade). 
A grande demanda por dispositivos móveis traz proporcionalmente a demanda 
por aplicações para atender aos seus usuários. O processo de desenvolvimento 
de aplicações para dispositivos móveis evolui rapidamente com as tecnologias 
destes. Atualmente destacam-se 3 grandes sistemas operacionais para estes 
dispositivos: IOS (Apple), Android(Google) e Windows Phone (Microsoft). 
 
 
 
Cada uma oferece uma plataforma de software para o desenvolvimento de 
aplicações para dispositivos móveis. O desenvolvimento de aplicações para 
dispositivos móveis podem ser categorizados em 4 tipos: Nativos, web mobile, 
híbrido e multiplataforma. A estratégia de desenvolvimento depende de 
requisitos, em especial: complexidade da aplicação, desempenho e segurança. 
Essas plataformas possuem lojas virtuais onde aplicações podem ser 
disponibilizadas para comercialização: Apple Store (Apple), Google Play 
(Google) e Windows Phone Store (Microsoft). 
Mercado móvel 
O momento indica que estamos nos tornando uma sociedade pós-PC. Máquinas 
e serviços interagem de forma mais natural com os usuários; 
O desenvolvimento móvel 
Novo paradigma com oportunidades e desafios específicos, onde as melhores 
práticas do mundo desktop simplesmente não se aplicam. A criação de um novo 
ecossistema em constante mudança, um mercado em constante 
experimentação, não há padrões estabelecidos e os usuários de dispositivos 
móveis têm padrões de uso e métodos de navegação próprios. 
Caracteristicas: 
 Crescente variedade de plataformas mobile, 
 Diferentes modelos de hardware, 
 Android é a plataforma mais fragmentada. 
 Dispositivos de diversos Tamanho e resolução da tela, 
 Dispositivos com limitação de memória e processamento, 
 Conexão de rede imprevisível, cobertura limitada e baixa velocidade, 
 Diversidade de Conectividade: 
 
 
 
 Que formas a app irá se comunicar com meio externo para a troca de 
informações ? 
 App devem consumir menos bateria possível; 
Estratégias do desenvolvimento móvel 
Classificação 
 Nativo; 
 Web Mobile; 
 Híbrido. 
 
 
Fonte: 
http://wiki.developerforce.com/page/Native,_HTML5,_or_Hybrid:_Understandin
g_Your_Mobile_Application_Development_Options 
 
 
 
A figura acima exibe a relaçãoentre as diversas abordagens de 
desenvolvimento e aspectos importantes como desempenho, acesso aos 
recursos do dispositivo, e a abrangência de plataformas mobile. A abordagem 
nativa permite desenvolver aplicação com excelente desempenho e acesso a 
todos os recursos do equipamento. No outro extremo temos a abordagem web 
mobile que requer acesso a internet, seu desempenho é inferior ao nativo e 
possui restrições quanto ao acesso a recursos do equipamento. 
Estratégia de desenvolvimento móvel nativo 
Refere-se a aplicações desenvolvidas usando linguagem de programação 
específica de uma plataforma. 
Desenvolvimento móvel: NATIVO 
Nessa abordagem utiliza-se o SDK disponibilizado pelo fabricante da plataforma 
alvo. Esse tipo de abordagem requer uma equipe especializada, e o produto 
final é uma app plataforma específica. Elementos como desempenho, 
usabilidade, experiência do usuário, segurança e acesso a todos os recursos do 
equipamento a distingue das demais abordagens. 
Características: 
• São rápidas, 
• Confiáveis, 
• Acesso a todos os recursos de hardware (câmera, acelerômetro, bússola, 
etc), 
• Restrita para a plataforma escolhida. 
Vantagens: 
• Desempenho; 
• Segurança; 
 
 
 
• Usabilidade; 
• Interfaces rica; 
• Armazenamento local ou remoto; 
• Execução de aplicações tanto offline como online; 
• Acesso completo aos recursos do dispositivo (câmera, -acelerômetro, 
bússula, etc); 
• Monetização; 
Desvantagens: 
 alto custo de desenvolvimento e manutenção; 
 Atualização não é transparente ao usuário; 
 Processo de aprovação; 
Complexidade: 
 Cada plataforma tem características específicas; 
 Escassez de profissionais capacitados; 
Comparando as plataformas mobile nativas 
 
 
 
 
 
Cada plataforma possui itens específicos como linguagem de programação 
base, IDE oficial utilizada no desenvolvimento das aplicações, sua SDK, a 
extensão do produto final e a loja virtual para comercialização. 
Assinatura de desenvolvedor por loja virtual 
As aplicações desenvolvidas podem ser comercializadas nas lojas oficiais de 
cada plataforma, porém para isso deve-se pagar uma assinatura como 
desenvolvedor, conforme a tabela abaixo: 
 
 
 
 
 
Desenvolvimento móvel: web mobile 
Aplicações que utilizam padrões abertos e teoricamente podem ser executadas 
em qualquer dispositivo que possua browser. Possibilita uso de conhecimentos 
prévios das tecnologias web (html, xhtml, js e css) com novas técnicas para 
fazer a aplicação funcionar em dispositivos móveis; Mesmo código para todos 
os dispositivos; 
Web site x mobile site x responsive design site 
Responsive Web Design (RWD) é um conceito onde o objetivo é apresentar 
informação de forma acessível e confortável para diversos meios de acesso; 
 
 
A figura acima exibe as diferentes soluções utilizadas na abordagem web 
mobile. Pode-se apenas acessar um site web, o que não é indicado para 
solução mobile devido ao tamanho reduzido do display gerando dificuldade na 
leitura e navegação da página. Site mobile é uma solução de site web específica 
para exibição em dispositivos móveis. E por fim os sites responsivos são a 
melhor opção como solução web mobile pois temos uma única solução de se 
adequa ao tamanho do display do dispositivo, seja o display de um PC como de 
um smartphone. 
 
 
 
Desenvolvimento móvel: híbrido 
É uma aplicação nativa que encapsula tecnologias web. Faz uso de componente 
WebView existente no SDK das plataformas mobile. Isso é transparente para o 
usuário. Permite o desenvolvimento de aplicações stand-alone similar ao 
desenvolvimento nativo, porém faz uso de tecnologia web para construção de 
sua interface e comportamento. A interface do usuário nativa da plataforma e 
permite o acesso a componentes de hardware; 
Diferenças entre as abordagens do desenvolvimento móvel 
Desenvolvimento móvel: Qual abordagem utilizar? Não existe solução única e 
padronizada para todos os tipos de aplicações. Cada solução precisa de uma 
análise detalhada de todos os requisitos que devem ser implementados na 
aplicação. Foco no curto prazo, pois os conceitos estão em constante mudança; 
Geralmente aplicações web mobile são mais baratas para desenvolver e 
distribuir, mas não oferecem a mesma experiência de usuário que as aplicações 
nativas; 
Se acesso a recursos de hardware for requisito mandatório, acredito que a 
abordagem "híbrida", "multiplataforma" ou "nativa" seja mais adequada; 
Desenvolver uma aplicação para um dispositivo móvel requer conhecimento dos 
requisitos do que se deseja para a aplicação. Conhecer as abordagens, suas 
vantagens e desvantagens auxilia na tomada de decisão da abordagem que se 
adequa melhor a solução requerida. A Abordagem nativa é a abordagem 
padrão das principais plataformas móveis. 
Desenvolvimento nativo com android 
No mercado de dispositivos móveis a plataforma Android se destaca por alguns 
motivos: É a plataforma com maior número de usuários como também a que 
possui o maior número de aplicativos disponíveis em sua loja virtual (,2016). 
 
 
 
O S.O. Android possui várias versões, desde seu lançamento oficial em 2008, 
até os dias atuais. Cada versão do S.O. Android pode ser identificada através de 
seu codinome, ou pelo número de sua versão ou pelo número do nível da API. 
A partir da versão de número 1.2, toda versão do Android passou a ter como 
codinome o nome de uma sobremesa doce. As versões estão dispostas em 
ordem alfabética, Cup Cake, Dunot, Eclair, Froyo, etc. Uma versão contém um 
único codinome, porém pode conter diversas versões e níveis de API como por 
exemplo temos a Jelly Bean, com versões 4.1, 4.2, 4.3 e nível de API 16, 17 e 
18 respectivamente. 
Na visão do desenvolvedor, a plataforma Android oferece como ferramentas o 
Android Studio como IDE oficial para o desenvolvimento de aplicações para 
Android, bem como sua SDK (Software Development Kit – kit de 
desenvolvimento de Software). Esse SDK é composto pela API do Android – 
conjunto de classes para apoiar o desenvolvimento de apps, e por ferramentas 
como um emulador para simular um ambiente virtual Android, o SDKManager – 
permite gerenciar as versões do SDK instalados na máquina do desenvolvedor, 
o AVD Manager – permite gerenciar perfis de ambientes virtuais executados 
pelo emulador. Existem outras ferrmentas além dessas que tem o objetivo de 
apoiar o desenvolvimento de apps Android. 
A arquitetura do Sistema Operacional (S.O.) Android é baseada em camadas, 
onde a camada mais externa contém as apps que o usuário poderá acessar. Na 
camada mais interna encontra-se o kernel que é responsável pela comunicação 
com o hardware do dispositivo Android. 
Sistema operacional android 
 Sistema operacional para dispositivos móveis baseado em uma versão 
modificada do S.O. Linux. [ LEE, 2011] 
 Kernel 2.6 do Linux (primeiras versões) 
 Kernel 3.4 do Linux (versão atual) 
 
 
 
 Ger. de memória, processos, threads, segurança de pastas e arquivos, 
redes e drivers. 
 S.O. de código aberto, sob a licença Apache (Apache Software 
Foundation) de código aberto. 
 Permite a personalização pelos fornecedores de dispositivos móveis. 
 Permite que diversos programadores contribuam para melhoria da 
plataforma. 
Tabela histórico de versões 
As versões do Android possuem 3 formas de identificação: codinome, nível da 
api e número da versão. O codinome faz referencia a uma sobremesa doce 
americana, e seguem uma ordem alfabética. 
 
 
 
 
Distrubuições da versão do android 
 
A tabela de distribuição das versões do Android é muito importante para odesenvolvedor, uma vez que ao criar uma aplicação ele deve analisar o 
somatório do percentual de distribuição do grupo de versões e as 
funcionalidades que deseja disponibilizar na app. Quanto mais velha a versão 
mais restrições a funcionalidades. 
Arquitetura do s.o. android 
O Android apresenta uma arquitetura em camadas. 
 
 
 
 
Camada do topo da arquitetura é a camada mais externa onde se encontram os 
aplicativos do usuário. A Camada do fundo da arquitetura é a camada mais 
interna onde se encontram as instruções do Android para se comunicar com o 
aparelho (hardware). 
Camada externa: 
• Aplicativos (Applications) 
Camadas intermediárias 
• Estrutura de Aplicativos (Application Framework) 
• Bibliotecas (Libraries) + Runtime do Android (Android Runtime) 
Camada interna: 
• Kernel Linux 
Ferramentas padrão do android 
• IDE – Ambiente Integrado de Desenvolvimento 
• Android Studio 
 
 
 
• SDK (Standard Development Kit) Android 
• AVD Manager 
• SDK Manager 
• API do Android 
Android studio – sistema de build (gradle) 
O sistema de build Android consiste em um plugin do Android para Gradle. O 
Gradle é um kit de ferramentas de compilação avançado que gerencia 
dependências e permite que você definir a lógica de compilação personalizada. 
Android Studio utiliza o Gradle wrapper para integrar plenamente o plugin 
Android para Gradle. O plugin Android para Gradle executa independente do 
Android Studio. Pode-se construir aplicativos Android a partir da IDE Android 
Studio ou a partir da linha de comando; 
Pode ser realizado na máquina local ou em máquinas onde Android Studio não 
está instalado (como servidores de integração contínua). A saída da compilação 
é o mesmo se você está construindo um projeto a partir da linha de comando, 
em uma máquina remota, ou usando Android Studio. 
Android studio – configurações de build do gradle 
As configurações de Build de um projeto Android é definido no arquivo 
build.gradle. O arquivo build.gradle é um arquivo texto baseado na sintaxe e 
opções do Gradle. 
 
 
 
 
 
Estrutura de um projeto android 
 
 
Aspectos de design na plataforma android 
O desenvolvimento de aplicações móveis nativas requer a construção de 
interfaces intuitivas, com ênfase na usabilidade e experiência do usuário. A 
construção de uma boa interface gráfica contribui para o sucesso de um projeto 
móvel. O Android oferece um conjunto de componentes e recursos para 
permitir a construção de interfaces ricas. 
 
 
 
O Google disponibiliza em sua página um conjunto de princípios e boa práticas 
para a construção da interface gráfica do usuário para o Android, ou seja, um 
conjunto de recomendações chamadas de “Android Design” que trata de 
princípios básicos de design, materiais para design, dispositivos, estilos, 
padrões, dentre outros. O Android Design é um conjunto de diretrizes para 
auxiliar desenvolvedores a construir a UI (user interface). Os princípios de 
projeto para Android consiste de um detelhamento quanto ao projeto de UI 
para diferentes tipos de tipos de dispositivos Android. 
Android design 
Um conjunto de diretrizes de projeto proposto pela Google para auxiliar os 
desenvolvedores na construção da interface gráfica de aplicações para o 
Android. Princípios básicos de design: 
• Materiais para design, 
• Animações, 
• Estilos, 
• Padrões, 
• etc. 
Não é uma obrigação a ser cumprida pelo desenvolvedor, e sim um conjunto de 
recomendações a serem seguidas. O processo de aprovação de aplicações para 
a loja virtual Google Play não considera a avaliação da interface gráfica da 
aplicação. 
Princípios de projeto de design para android 
• Encante-me 
• Simplifique minha vida 
• Faça com que eu seja incrível 
 
 
 
Material design 
Foi disponibilizado a partir da versão Lollipop do Android. É um guia 
abrangente para design visual, de movimento e de interação para diversas 
plataformas e dispositivos. 
O Google disponibilizou um conjunto de orientações definidas 
nas especificações do Material Design para utilização de novos componentes e 
funcionalidades disponíveis a partir do Android 5.0 (API de nível 21). 
O Android fornece os seguintes elementos para criar aplicativos do Material 
Design: 
• Novo tema 
• Novos widgets para views complexas 
• Novas APIs para sombras e animações personalizadas. 
Android é a plataforma mais fragmentada do mercado, e para lidar com as 
diferenças entre os dispositivos e auxiliar na construção da UI, o Google criou 
um conjunto de diretrizes para apoiar desenvolvedores no projeto da UI. O 
Android disponibiliza um conjunto de componentes do tipo VIEW para 
construção da UI. 
O Material Design é um guia abrangente para design visual, de movimento e de 
interação para diversas plataformas e dispositivos. 
Desenvolvimento nativo com Apple ios 
A empresa Apple ocupa o 2º lugar na participação do mercado de dispositivos 
móveis quanto ao número de usuários. A Apple inovou o seguimento de 
dispositivos móveis ao lançar o 1º smartphone comercial: o iPhone, dispositivo 
com conceitos inovadores, bem como a primeira loja virtual para 
comercialização de aplicações (apps) iOS . 
 
 
 
O S.O. iOS possui várias versões, desde seu lançamento oficial em 2007, até os 
dias atuais. Lançada inicialmente para o iPhone e utilizado também para iPod 
Touch, iPad, Apple TV. Cada versão possui um nome e um número da versão. A 
versão inicial foi chamada de iPhone OS 1. A partir da versão 4 passou a ser 
chamada de iOS acompanhada do número da versão, ex: iOS4, iOS5. A versão 
atual é a iOS 9. 
Na visão do desenvolvedor, a plataforma iOS oferece um conjunto de 
ferramentas como o XCode como IDE oficial para o desenvolvimento de 
aplicações para o universo Apple, bem como sua SDK (Software Development 
Kit – kit de desenvolvimento de Software). Esse SDK é composto pela API do 
iOS – conjunto de classes para apoiar o desenvolvimento de apps. 
A arquitetura do Sistema Operacional (S.O.) iOS é baseada em 4 camadas, 
onde a camada mais externa contém as apps que o usuário poderá acessar 
bem com um conjunto de frameworks de apoio. Na camada mais interna 
encontra-se o CoreOS, que representa o kernel. É responsável pela 
comunicação com o hardware do dispositivo iOS. 
Características: 
• Derivado do S.O. Mac OS X 
• Anunciado na Macworld de 2007 (jan/2007) 
• Inicialmente chamado de OS X 
• Em 2008 renomeado para iPhone OS 
• Em 2010 renomeado para iOS 
Desenvolvido para o iPhone, porém utilizado pelo iPod Touch, iPad e Apple TV. 
Sistema Operacional desenvolvido para ser executado somente em dispositivos 
da Apple. 
 
 
 
Arquitetura 
 
 
Camada Cocoa Touch 
• Camada que implementa aplicações gráficas e baseadas em eventos. 
• Permite acesso a features do dispositivo. 
• Provê um conjunto de componentes (API) de alto nível para construção 
da UI das aplicações. 
• EventKitUI, MapKit, UIKit, PhotosUI, etc. 
Camada Media 
• Provê um conjunto de componentes (API) para construção de itens de 
multimidia em aplicações. 
• AvFoundation, AVKit, AudioToolBox, AudioUnit, CoreAudio, CoreAudioKit, 
etc. 
Camada Core Services 
 
 
 
• Provê acesso aos serviços fundamentais do iOS. 
• Permite obter acesso a arquivos, serviços Bonjour, sockets de rede, etc. 
• WebKit, MultiPeerConectivity, MobileCoreService, HomeKit, HealthKit, 
GameplayKit, etc. 
Camada Core OS 
• Gerencia o sistema de memória virtual, threads, o sistema de arquivos, a 
rede e os interprocessos de comunicação entre os componentes da 
camada. 
• Abrange o ambiente do kernel,drivers e a interface basica do iOS. 
• Os drivers provêem a interface entre o sistema e o hardware. 
• Accelerate, CoreBlueTooth, ExternalAccessorey, LocalAuthentication, 
NetworkExtension, Security, System. 
Ferramentas xCode 
• Ambiente de desenvolvimento de aplicações para MacOs e iOs. 
• Integrado com a camada CocoaTouch do iOS. 
SDK 
• Conjunto de ferramentas e classes (API) para o desenvolvimento de 
aplicações (apps) para o iOS. 
 
 
 
Linguagem de Programação Objective-C 
É uma linguagem Orientada a Objetos e Funcional. Foi a programação primária 
utilizada na codificação de aplicações para OS X e iOS. Influenciada pela 
linguagem C e Smaltalk. Possui características similares a linguagem C tais 
como: sintaxe , tipos primitivos e estruturas de controle de fluxo. Possui 
suporte ao gerenciamento de grafos e objetos literais provendo tipos dinâmicos 
e binding. 
Linguagem de Programação Swift 
Essa linguagem de programação foi Anunciada na WWDC 2014. É Open Source, 
permite a programação Orientada a Objetos e Funcional. É integrada a 
ferramenta Playground do xCode. 
Características da linguagem 
• Desempenho superior ao Objective-C. 
• Reduz a necessidade de arquivos em um projeto. 
• Facilidade de aprendizado em relação ao Objective-C. 
• Arquivos fonte escrito em Swift podem co-existir com arquivos escritos 
em Objective-C em um mesmo projeto. 
• Versões: 1.0, 2.0 e 3.0 (mais recente). 
A plataforma iOS possui alta participação no mercado, é conhecida como 
inovadora, possui hardware próprioe loja virtual comercialização de apps 
(Apple Store). Seu hardware e software são proprietários e o alto grau de 
controle de publicação. É um sistema altamente estável, fluido, seguro e 
confiável. 
 
 
 
Aspectos de design na plataforma ios 
A Apple atribui um grau de importância ao projeto da interface gráfica do 
usuário de tal forma que atua como um dos critérios de aprovação de apps 
para a Apple Store. Para apoiar isso ela elaborou um guia de design e de 
interface humana para dar suporte a desenvolvedores na elaboração da 
interface gráfica e no comportamento da app. 
O iOS Design é um conjunto de diretrizes para auxiliar desenvolvedores a 
construir a UI (user interface). Os princípios de projeto de UI para iOS consiste 
de um conjunto de elementos importantes para o projeto de UI para diferentes 
tipos de dispositivos móveis da Apple, tais como iPhone, iPad e iWatch. 
Desenvolvimento nativo com Microsoft windows phone 
No mercado de dispositivos móveis a empresa Microsoft aparece como uma das 
3 maiores soluções desse segmento, juntamente com a Google e a Apple. Ela 
fornece a plataforma Microsoft Windows Phone para apoiar o desenvolvimento 
de aplicações para sua plataforma. 
A primeira versão que a Microsoft disponibilizou para o desenvolvimento de 
aplicações para o segmento de dispositivos móveis voltados para o seguimento 
de celulares foi o Windows Mobile, que seguiu até sua versão 6.5. Devido ao 
lançamento dos smartphones e tablets a empresa fez uma mudança muito 
grande e lançou um novo produto, o Windows Phone. Suas versões são 
identificadas por um códinome e um número de versão, porém nem todas 
posuem um codinome. 
 
 
 
Na visão do desenvolvedor, a plataforma Microsoft oferece como ferramentas o 
seu ambiente Visual Studio como IDE oficial para o desenvolvimento de 
aplicações para o Windows Phone, bem como sua SDK (Software Development 
Kit – kit de desenvolvimento de Software). A plataforma Windows Phone faz 
uso da plataforma .Net que permite a utilização das linguagens de programação 
C# (C sharp) e VisualBasic (VB) para o desenvolvimento de aplicações móveis. 
Uma funcionalidade nova do IDE Visual Studio é permitir o desenvolvimento de 
apps móveis na linguagem C# e exportá-la para a plataforma Android. 
A arquitetura do Sistema Operacional (S.O.) Windows Phone é baseada em 
camadas, onde a camada mais externa contém as apps que o usuário poderá 
acessar. Na camada mais interna encontra-se o kernel que é responsável pela 
comunicação com o hardware do dispositivo Windows Phone. 
Aspectos de design na plataforma windows mobile 
A Microsoft evoluiu sua versão do sistema operacional para dispositivos móveis 
ao longos dos anos. O Windows Phone foi a versão criara para atuar no 
segmento de smartphones e tablets. Recentemente ela lançou uma filosofia de 
desenvolvimento para UWP - Plataforma Universal do Windows. Isso permite ao 
desenvolvedore projetar e criar aplicativos para os diversos tipos de dispositivos 
suportados pelo Windows 10. 
O desenvolvimento da interface de aplicativos para Window Phone e para UWP 
é apoiada pela Microsoft através de um conjunto de recomendações de design. 
Diferentemente da Apple e similar a Google, a Microsoft não utiliza o design 
como critério de aprovação de aplicativos para vendas na sua loja virtual, 
porém isso não quer dizer que o design da interface do usuário não é 
importante. Ela possui um conjunto de diretrizes e guia de design que norteiam 
o desenvolvedor a criar a interface da aplicação segundo seus critérios de 
qualidade. 
 
 
 
 
Bibliografia 
LEAL, N. G. V., Dominando o Android: do básico ao avançado. 2. ed. São Paulo: 
Novatec, 2015. 
LECHETA, Ricardo R., Desenvolvendo para iPhone e iPad. 4ª edição. São Paulo: 
Novatec, 2016. 
LECHETA, Ricardo R., Desenvolvendo para Windows 8, Editora Novatec, 2013. 
DEITEL, Paul J.; DEITEL, Harvey M., Android 6 Para Programadores, 3a ed. 
Bookman, 2016. 
LECHETA, Ricardo R., Google Android para Tablets, 1ª edição, Editora Novatec, 
2012. 
LECHETA, Ricardo R., Google Android, 5ª edição, Editora Novatec, 2015. 
OLIVEIRA, Claúdio, Desenvolvimento de Aplicativos para Windows Phone, ed. 
Ciencia Moderna, 2014. 
TAURION, CEZAR C., Desenvolvimento de apps – Parte 2: híbrido, nativo ou 
web?, 2013, acessível em: 
https://www.ibm.com/developerworks/community/blogs/ctaurion/ 
entry/desenvolvimento_de_apps-parte_2_hibrido_nativo_ou_web?lang=en

Outros materiais