Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação para Dispositivos Móveis Unidade II - Fundamentos do Desenvolvimento de Aplicações Móveis Prof. Jorge Bergson / Prof. Milton Escóssia � Apresentar os principais aspectos envolvidos no desenvolvimento de aplicações móveis; � Apresentar algumas tendências de mercado e curiosidades sobre o desenvolvimento de aplicações móveis; � Mostrar uma visão geral as principais plataformas de desenvolvimento para dispositivos móveis. � 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: informação disponível em qualquer lugar e a qualquer momento. � Vendas de smartphones em 2011superaram a venda de PCs; � Aumento de 45% em relação a 2010; � Em 2013 os smartphones irão superar os PCs em acesso à internet; � Projeção da venda de smartphones até 2016; � O número de smartphones no mundo supera 3 bilhões; � Isso é 4 vezes o número de PCs; � 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; � Mercado de aplicações e dispositivos móveis estão em crescimento acelerado; � Novos usuários em potencial; � Para muitas pessoas o smartphone é o principal dispositivo; � Maior visibilidade e novas oportunidades para as organizações; � Segundo GigaOm Pro Survey, em 2011 38% dos negócios foram feitos com smartphones, em comparação a 26% do ano anterior; � A Internet levou informação para dentro de nossas casas e escritórios, agora é possível acessá-la em qualquer lugar; � Hoje é possível desenvolver praticamente qualquer tipo de aplicação: � E-commerce; � ERP; � Aplicações dedicadas; � Novo paradigma com oportunidades e desafios específicos, onde as melhores práticas do mundo desktop simplesmente não se aplicam; � Criação de um novo ecossistema em constante mudança; � Mercado em constante experimentação; � Não há padrões estabelecidos; � Usuários de dispositivos móveis têm padrões de uso e métodos de navegação próprios; � Múltiplas versões da aplicação: � Crescente variedade de plataformas (BlackBerry, iPhone,Windows Phone, Android, etc); � Diferentes modelos de hardware: � Android é a plataforma mais fragmentada; � Tamanho e resolução da tela: � A aplicação deve estar preparada para adaptar-se automaticamente ou devem ser feitas versões diferentes para cada tamanho específico de tela; � Memória e processamento � A aplicação deve preocupar-se com a capacidade de memória e processamento do dispositivo que irá ser executada � Conexão de rede imprevisível, cobertura limitada e baixa velocidade; � Conectividade: � Ao desenvolver uma aplicação, deve-se saber de que formas ela vai se comunicar com meio externo para a troca de informações; � A aplicação deve procurar ter o menor consumo de bateria possível; � Layout: � Disponibilizar apenas as funcionalidades mais importantes para o usuário. � Utilizar navegação vertical e transição entre páginas, ao invés de usar navegação esquerda/direita; � Prover atalhos para a home, seção anterior e posterior no fim de cada página, para que o usuário não precise rolar a página até o início; � Definir público alvo; � Conteúdo: � Garantir que a informação seja fácil de ler e navegar; � Evitar animações complexas para não consumir bateria desnecessariamente; � Imagem: � Usar imagens somente quando necessário; � Usar os formatos jpeg, png e gif Não permitir zooming; � Permitir desabilitar imagens; Zooming � Tamanho da página: � É essencial manter as páginas simples e pequenas; � Evitar que o tamanho das páginas ultrapasse 25 Kb; � Exemplo: � Achar que não há necessidade de criar uma versão móvel da aplicação só porque a aplicação web abre no browser do smartphone; � Exportar todas as funcionalidades da versão desktop para a mobile; � Utilização frequente do pinch to zoom; � Páginas web convencionais não foram projetadas para serem acessadas por dispositivos móveis � Tamanho pré-fixado; � Animações javascript complexas e efeitos mouse-over; � Uso de tags específicas; � Baixa usabilidade e performance; Fonte: Hugo Raniere, Jampa Mobility Forum 2009 � Desenvolvimento voltado para um tipo de dispositivo ao invés do tamanho da tela e resolução; � Utilizar os mesmos serviços "API" da versão desktop para a versão móvel: � Tráfego desnecessário de dados; � Utilizar a mesma abordagem para plataformas diferentes; � Classificação do DM: � Nativo; � Web Mobile; � Híbrido; � Multiplataforma; Fonte: http://wiki.developerforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options � Desenvolvimento nativo vs web mobile: Fonte: http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/ � Refere-se a aplicações desenvolvidas usando linguagem de programação específica de uma plataforma como iOS, Android,Windows Phone, BlackBerry, etc; � Atualmente é a solução preferida pelos programadores; � São rápidas, confiáveis e podem acessar recursos de hardware (câmera, acelerômetro, bússola, etc); � Restrita a plataforma escolhida; � Arquitetura � Vantagens: � Performance; � Usabilidade; � Interfaces rica "Rich GUI"; � Armazenamento local; � Trabalha de forma Offline; � Acesso completo aos hardwares e APIs do dispositivo (câmera, accelerometer, compass, 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; � Comparativo entre as plataformas: � 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; � Vantagens: � Portável; � Uso de tecnologias (HTML/CSS/Javascript) conhecidas; � Problemas de performance são cada vez menos importantes devido evolução dos browsers móveis; � Vantagens: � Não há processo de aprovação para disponibilização da aplicação; � Atualização transparente para o usuário; � Desvantagens: � Performance inferior às aplicações nativas; � Sem acesso a componentes de hardware do dispositivo (câmera, acelerômetro, bússola, etc); � Baixa usabilidade; � Especificação HTML5 não finalizada; � Dificuldade em adaptar para diferentes dispositivos, � resolução de telas e diversidade de browsers; � Responsive Web Design (RWD) é um conceito onde o objetivo é apresentar informação de forma acessível e confortável para diversos meios de acesso; � Layout agnostic; � Exemplos (RWD) � Exemplos (RWD) � Um design responsivo incluí: � Adaptar o layout da página de acordo com a resolução em que está sendo visualizada; � Redimensionar as imagens automaticamente para que caibam na tela e para que não sobrecarreguem a transferência de dados; � Um design responsivo incluí (cont.): � Ocultar elementos desnecessários nos dispositivos; � Adaptar tamanho de botões e links para interfaces touch onde o ponteiro do mouse é substituído pelo dedo do usuário; � Utilizar de forma inteligente recursos mobile como geolocalização e mudança na orientação � Exemplos (RWD) � Atualmente há um crescente interesse no uso da tríade (HTML5, JS eCSS3) para o desenvolvimento de aplicações web mobile; � HTML5 permite criar aplicações que ofereçam experiência próxima a das aplicações nativas: � Suporte a multitouch, GPS; � Armazenamento local; � Frameworks específicos "JQuery Mobile” e Sencha (baseados no HTML5) para o desenvolvimento móvel; � Empresas como Microsoft, Facebook e Financial Times estão investindo em HTML5; � Microsoft anunciou que será possível desenvolver aplicação para o Windows 8 usando apenas HTML5 e JavaScript; � Tendências para 2012 segundo relatório do Appcelerator/IDC: � Crescente interesse por HTML5; � 79% dos desenvolvedores dizem que planejam usar ou integrar HTML5 em suas aplicações mobile; � O principal problema do HTML5 é que o padrão ainda não foi finalizado; � Apesar das aplicações web mobile ainda não conseguirem obter a mesma eficácia e eficiência das aplicações nativas, é apenas questão de tempo para aplicações web mobile superarem as aplicações nativas; � A história está se repetindo: � Alguém se lembra dos anos 90´s? � Nativo vs Web Mobile � Aplicação nativa que encapsula tecnologias web; � Transparente para o usuário; � Regra de negócio fica no servidor; � Interface do usuário nativa da plataforma: � Assegura acesso a componentes de hardware; � Arquitetura � Exemplo � Bank of America; � A aplicação móvel do Facebook até bem pouco tempo era híbrida, hoje é nativa; � Vídeo interessante: � http://www.youtube.com/watch?v=HDn NEKtBkBE � Comparativo entre as abordagens: Vídeo interessante: http://www.youtube.com/watch?v=We0byPckthQ � Trade-off � Frameworks projetados para criar aplicações multiplataforma sem a necessidade de reescrever a aplicação para cada plataforma; � Foco no negócio da aplicação; � Frameworks populares: � Titanium; � PhoneGAP; � Vantagens � Interface gráfica nativa da plataforma; � Acesso aos recursos de hardware do dispositivo; � Código fonte único; � Menor time to market; � Desvantagens � Pode ser necessário aprender uma linguagem de programação ou tecnologia proprietária; � Dependência do framework; � Custo alto; � Não adequado para desenvolvimento de aplicações complexas; � Titanium: � Tecnologias Web(HTML, JS, CSS e Python); � Cria aplicação web e/ou nativa; � Acesso completo aos hardwares e APIs do dispositivo; � Suporte para iPhone,iPad e Android; � PhoneGap: � Tecnologias Web(HTML e JS); � Acesso completo aos hardwares e APIs do dispositivo; � Suporte para iPhone, iPad e Android, Blackberry e Symbian; � De acordo com o comSocore Mobilens, a distribuição das plataformas móvel em utilização é a seguinte: � Linguagem: Objective-C; � Curva de aprendizado maior na ling. Objective-C por ser pouca difundida; � Muitas funcionalidades na API, mas aplicações ficam presas numa "sandbox"; � Exclusivo para os produtos Apple: iPhone, iPod e iPad; � IDE: Xcode (Apenas Mac OS); � Mensalidade anual de $99,00; � Interface do usuário e hardware padronizados para todos os dispositivos; � Aprovação de uma aplicação na App Store dura aproximadamente 15 dias; � Arquitetura � Plataforma mais popular; � Faz parte da Open Handset Alliance: � Samsung; � Motorola; � LG; � Código aberto; � Linguagem: Java; � IDE: Eclipse; � Aplicação é executada dentro da máquina virtual "Dalvik"; � Fragmentada: � Diversos tipos de aparelhos com hardwares, memórias e versões do Android diferentes; � Taxa de licenciamento única de $25,00; � Muitas funcionalidades na API; � Pequena curva de aprendizado para quem conhece Java; � Processo de aprovação simples e rápido; � Arquitetura � Fabricante: Microsoft; � Lançado em 21 de outubro de 2010 para concorrer diretamente com os sistemas operacionais móveis que dominam o mundo, Android e IOS; � Para iniciar o desenvolvimento para Windows Phone é necessário ter alguma base de conhecimento em C# ou VB, que são as duas possíveis linguagens de desenvolvimento; � Principal fabricante de hardware: NOKIA. � Para desenvolver é necessário: � Microsoft Visual Studio 2010 ou 2012 (Express ou outra versão que possibilite o desenvolvimento) para Windows Phone; � SDK Windows Phone; � O SDK integra ao Visual Studio os templates de Windows Phone, as ferramentas no ToolBox e o Emulador usado para testar, simular e depurar suas aplicações, já que alguns podem se interessar em desenvolver sem ainda possuir um dispositivo real. � Arquitetura � 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; � Cada fabricante de hardware e/ou sistema operacional mantém uma loja onde é possível comprar ou baixar gratuitamente apps. � Em algumas lojas também possível comprar outros produtos do fabricante ou de parceiros deste; � Lojas mais famosas: � Apple Store � Google Play � Windows Phone Store
Compartilhar