Baixe o app para aproveitar ainda mais
Prévia do material em texto
APLICAÇÕES MÓVEIS W BA 05 96 _v 1. 1 © 2018 POR EDITORA E DISTRIBUIDORA EDUCACIONAL S.A. Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação, sem prévia autorização, por escrito, da Editora e Distribuidora Educacional S.A. Presidente Rodrigo Galindo Vice-Presidente de Pós-Graduação e Educação Continuada Paulo de Tarso Pires de Moraes Conselho Acadêmico Carlos Roberto Pagani Junior Camila Braga de Oliveira Higa Carolina Yaly Giani Vendramel de Oliveira Juliana Caramigo Gennarini Nirse Ruscheinsky Breternitz Priscila Pereira Silva Tayra Carolina Nascimento Aleixo Coordenador Tayra Carolina Nascimento Aleixo Revisor Márcio dos Santos Editorial Alessandra Cristina Fahl Beatriz Meloni Montefusco Daniella Fernandes Haruze Manta Hâmila Samai Franco dos Santos Mariana de Campos Barroso Paola Andressa Machado Leal Dados Internacionais de Catalogação na Publicação (CIP) Alves, Thiago Salhab A474a Aplicações móveis / Thiago Salhab Alves. – Londrina: Editora e Distribuidora Educacional S.A., 2019. 91 p. ISBN 978-85-522-1351-2 1. Desenvolvimento ágil de software. 2. Aplicativos móveis. I. Alves, Thiago Salhab. III. Título. CDD 000 Responsável pela ficha catalográfica: Thamiris Mantovani CRB-8/9491 2018 Editora e Distribuidora Educacional S.A. Avenida Paris, 675 – Parque Residencial João Piza CEP: 86041-100 — Londrina — PR e-mail: editora.educacional@kroton.com.br Homepage: http://www.kroton.com.br/ mailto:editora.educacional%40kroton.com.br?subject= http://www.kroton.com.br/ Aplicações Móveis 3 SUMÁRIO Apresentação da disciplina 04 Tema 01 – Introdução à mobilidade digital 06 Tema 02 – Processos de desenvolvimento de software 20 Tema 03 – Linguagens de Programação 36 Tema 04 – Desenvolvimento de aplicações para dispositivos móveis 49 Tema 05 – Cloud para Dispositivos Móveis 62 Tema 06 – Teste de Aplicativos Móveis 76 Tema 07 – Gestão de Projetos 90 APLICAÇÕES MÓVEIS 4 Aplicações Móveis Apresentação da disciplina A disciplina de Aplicações Móveis tem por objetivo apresentar o processo de desenvolvimento de sistemas com foco em aplicativos móveis. Para tanto, visita a metodologia ágil de apoio ao processo de desenvolvimento de software aplicado ao universo mobile. Apresenta, inicialmente, na aula 1, uma introdução à mobilidade digital, propiciada pela evolução das tecnologias móveis, tais como, smartpho- nes, tablets, smartwatches e da rede de telefonia móvel. Na aula 2, há a abordagem sobre processos de desenvolvimento de sof- tware, com foco nas metodologias clássicas e ágeis, pensamento lean, princípios da UX design e técnicas de design thinking. A aula 3 é voltada a programação orientada a objetos e linguagens de IDE’s para desenvolvimento de aplicativos móveis, com ênfase na lingua- gem Java para o desenvolvimento de apps para Android e linguagens Swift e Objective-C para desenvolvimento de apps para iOS. O tema 4 aborda desenvolvimento de aplicativos nativos e híbridos, com as vantagens e desvantagens de cada tipo de abordagem de desenvol- vimento. A discussão é articulada com intuito de ampliar a capacidade crítica e autônoma de decidir os caminhos a serem percorridos no desen- volvimento de software. No capítulo 5, vemos sobre cloud computing, com foco nos tipos de cloud e cloud services, fazendo valer a reflexão sobre as aplicações, benefícios e atuais limitações acerca do uso de recursos de cloud computing. O tema 6 trata a respeito do teste de software, no processo de desenvolvi- mento de sistemas e ferramentas automatizadas para teste de software. Aplicações Móveis 5 Já o tema 7, traz a gerência de projetos sob a perspectiva ágil, com ênfase para o Scrum. Tenha ótimos momentos de estudo e uma jornada cognitivamente cons- trutiva, que deverá agregar muito ao seu processo de desenvolvimento profissional, seja qual for a modalidade de atuação, atual ou futura. Aplicações Móveis 6 TEMA 01 INTRODUÇÃO À MOBILIDADE DIGITAL Objetivos • Apresentar aos alunos uma introdução à mobilidade digital, destacando a revolução da mobilidade na vida humana. • Aprender sobre a transformação mobile e as bases de dispositivos móveis. • Conhecer os principais dispositivos móveis, tais como, smartphones, tablets, smartwatches e outras tecnolo- gias, bem como sua evolução. Aplicações Móveis 7 1. Introdução à mobilidade digital Prezado aluno, você já parou para imaginar como seria a sua vida sem o uso da internet, principalmente a sem fio (wireless) e móvel (3G ou 4G)? Como seria seu dia a dia sem o uso de dispositivos móveis, tais como, smartphones, notebooks, tablets e até smartwatches? Não é nenhuma no- vidade que o mundo sofreu grandes transformações com o avanço das tecnologias digitais e a mobilidade digital, nos proporcionando inúmeras facilidades diárias. Esta primeira leitura, irá apresentar uma introdução à mobilidade digital, destacando a revolução da mobilidade na vida humana. Você aprende- rá sobre a transformação mobile e as bases de dispositivos móveis bem como conhecerá os principais dispositivos móveis, tais como, smartpho- nes, tablets, smartwatches e outras tecnologias, além da sua evolução. Uma boa aula e bons estudos. 1.1. Evolução da tecnologia móvel Segundo Alves (2016), os primeiros sistemas móveis são encontrados a partir da era da eletrônica e, como qualquer tipo de sistema, podem se conectar a uma rede, não sendo essa conectividade à rede, entretanto, um pré-requisito para ser um sistema móvel. De acordo com Alves (2016), a comunicação wireless (tecnologia sem fio que permite a conexão entre dispositivos sem a necessidade de utilização de cabos de conexão entre eles) teve seu início em 1960 pelos militares e em 1970, buscando uma qualidade na transmissão/recepção e remo- ção de obstáculos entre as comunicações, surgem as comunicações via satélite e a comercialização dessa tecnologia, com aumento na qualidade e confiança dos serviços, porém com custo muito elevado. Na década de 1990, o uso da tecnologia celular torna-se comercialmente viável e traz grandes benefícios para a transmissão de dados. 8 Aplicações Móveis De acordo com Mateus e Loureiro (1998), destacam-se alguns pontos da evolução da computação e tecnologia móvel: • 1983: o sistema AMPS (Advanced Mobile Phone System) evoluiu para padrões atuais com a primeira rede celular americana lançada em 1983, em Chicago e Batimore (EUA, ambos). Em uso nos Estados Unidos, Brasil e grande parte do mundo, sendo considerado um sis- tema de primeira geração. • 1991: validação inicial dos padrões TDMA (Time Division Multiple Access) e CDMA (Code Division Multiple Access) nos Estados Unidos. Introdução da tecnologia microcelular. • 1992: introdução da tecnologia Pan Europeu GSM (Group Speciale Mobile). • 1994: introdução ao sistema CDPD (Cellular Digital Packet Data). Início dos serviços PCS (Personal Communications Services), CDMA e TDMA. • 1995: início dos projetos de cobertura terrestre de satélites de baixa órbita, como o projeto Iridium. • 1997: aprovação do padrão IEEE 802.11 – Wireless. • 1999: padrões IEEE 802.11b e 802.11a, com frequências de 2.4 e 5 GHz. Criada a Wireless Ethernet Compatibility Alliance (WECA). • 2000: surgiram os primeiros hotspots (local onde é possível ter aces- so à internet). A WECA lançou o selo Wireless Fidelity (Wi-Fi). • 2003: surgimento da tecnologia 3G. • 2010: surgimento da tecnologia 4G. • 2018: tecnologia 5G, com velocidade na conexão de internet mui- to superior a 4G, já começa a ser implementada na Europa, Ásia e Estados Unidos, com previsão de clientes no Brasil para 2020. Aplicações Móveis 9 ASSIMILE A rede 1G nada mais é que o sinal de telefonia analógico.Se popularizou na década de 1980 e foi pouco usado para o tráfego de dados. O sistema usado na época era o AMPS (Advanced Mobile Phone System). A rede 2G começou a ser implantada na década de 1990 com o sinal digital. Utiliza o GSM (Global System for Mobile). A rede 3G usa principalmente as tecnologias WCDMA e CDMA e oferece velocidades míni- mas de 200 kpbs. A rede 4G revolucionou a velocidade de tráfego de dados no país e utiliza a tecnologia LTE (Long Term Evolution) com tráfego de dados de até 100 Mbps. Figura 1 – Conceito da tecnologia 5G Fonte: MF3d/iStock.com. A Figura 1 ilustra a gama de dispositivos, equipamentos e serviços que serão beneficiados pela rede 5G, permitindo que os mesmos possam se comunicar e trocar informações. 1.2 Dispositivos móveis Um dos primeiros dispositivos móveis a se popularizar, de acordo com Moll (2006), foram o PDA’s (Personal Digital Assistant), computadores de 10 Aplicações Móveis dimensões reduzidas, dotados de significativa capacidade computacional, o qual cumpriam desde funções básicas até funções avançadas, com pos- sibilidade de interconexão com um computador pessoal e uma rede sem fios, para prover acesso a correio eletrônico e Internet. Os PDA’s permitiam uma grande quantidade de funcionalidades, utilizan- do uma quantidade suficiente de memória, com diversos softwares dis- poníveis, mas com uma limitação de processamento inferior a um compu- tador desktop (computador de mesa) ou notebook. Segundo Alves (2016), alguns dos antecessores dos PDA’s foram o Psion Organiser e o Sharp Wizard. Foram dispositivos lançados em meados dos anos 1980 e a ideia inicial era que seriam computadores portáteis, con- tando com teclado para entrada, tela pequena e recursos básicos (relógio com alarme, calendário, agenda telefônica e calculadora) e também sof- twares como jogos e planilhas eletrônicas. A Apple também lançou, em 1993, um dos antecessores do PDA, o Newton MessagePad, oferecendo bloco de notas eletrônico, agenda de compromis- sos, calendário, agenda telefônica e aplicativos de arquivo de endereços. Muitos de seus recursos, tais como, tela sensível com caneta, capacidades de reconhecimento de escrita, porta de infravermelho e capacidade de expansão, foram adotados nos PDA’s (ALVES, 2016). A empresa Palm Computing lança, em março de 1996, o PalmPilot (tam- bém conhecido como o legítimo PDA). Segundo Alves (2016), executava seu próprio sistema operacional Palm OS, e sincronizava com os compu- tadores, funcionando com baterias, de fácil uso e com capacidade de ar- mazenar milhares de contatos, compromissos e anotações, utilizando a linguagem Graffiti para introdução dos dados. Parte de seu tamanho re- duzido se devia à ausência de um teclado. Aplicações Móveis 11 Figura 2 – PalmPilot da empresa Palm Computing Fonte: vasiliki/iStock.com. A Figura 2 ilustra o dispositivo móvel PalmPilot, da empresa Palm Computing, com tela sensível com caneta, sendo o PDA mais vendido do mundo. Além das empresas Apple e Palm Computing, a Microsoft desenvolveu o dispositivo portátil PenWindows e criou, em 1996, o Windows CE, seu pri- meiro Sistema Operacional para dispositivos móveis, sendo adotado por vários fabricantes, tais como Hewlett Packard, Compaq, Toshiba e Casio, em dispositivos denominados Handheld PC, sendo os “rivais” do PalmPilot (ALVES, 2016). Segundo Morimoto (2009), os smartphones são os sucessores dos PDA’s, sendo a combinação de dois dispositivos: celulares e PDA’s, podendo se conectar à web através de conexões 3G ou Wi-Fi, permitindo que possuam uma enorme variedade de recursos, tais como, câmeras digitais, suporte a MP3, navegadores GPS, etc. Os celulares, por sua vez, eram aparelhos mais simples, servindo apenas como um sistema de telefonia móvel, ba- seado na transmissão por rádio. O IBM Simon foi o primeiro smartphone criado, no início da década de 1990, mas o Ericsson R380 foi o primeiro celular inteligente da história. O Blackberry 6210 foi o smartphone mais utilizados pelos executivos em 12 Aplicações Móveis 2001, possuindo teclado padrão QWERTY (o mesmo encontrado nos te- clados de computadores e notebooks) e entrada USB (Universal Serial Bus) (ALVES, 2016). O iPhone foi o primeiro smartphone da Apple, sendo lançado em 2007 por Steve Jobs, com sistema operacional iOS, se tornando rapidamen- te um grande sucesso de vendas. O HTC Dream, lançado em 2007, foi o smartphone com o primeiro sistema operacional Android, então baseado no Linux e o Galaxy Nexus foi o primeiro celular da Samsung no mercado de smartphones, utilizando sistema Android. Os smartphones rapidamente caíram no gosto popular, e é difícil encon- trar alguém que não possua um aparelho dessa categoria. A maioria de- les possui os principais recursos: câmeras digitais, gravadores de vídeo, gravadores de voz, calendário, acesso à rede 3G e 4G, Wi-Fi, calculadora, agenda, acesso a páginas web e instalação de aplicativos (apps), gratuitos e pagos, através de downloads, tais como, aplicativos para redes sociais, troca de mensagens instantâneas, players de música, jogos, etc. De acordo com Paulino e Oliveira (2013), o iPad da Apple, lançado em 2010 e responsável por introduzir os tablets no mercado, revolucionou to- talmente a forma de ver conteúdos na internet. A interatividade, inclusive, é uma característica fundamental do dispositivo, pois conta com interface sensível ao toque e sendo um aparelho digital portátil, pessoal, em for- mato de prancheta, dotado de capacidades básicas de um computador. A portabilidade, acesso à internet e suporte multimídia são alguns dos atributos que tornam esta máquina um genuíno representante da tecno- logia móvel do século XXI, bem como um dos modelos de negócio mais apostados pelas multinacionais. Após o lançamento do iPad, diversos fabricantes, tais como Sony, Motorola e Samsung, começaram a “corrida” pelos tablets. O iPad faz uso do sistema operacional iOS, criado pela Apple e de uso exclusivo desse equipamen- to. Os demais tablets citados, fazem uso do sistema operacional Android e têm como pontos fortes uma oferta maior de aplicativos, não estando limitados apenas àqueles permitidos pelo próprio desenvolvedor, como no caso da Apple (ALVES, 2016). Aplicações Móveis 13 Figura 3 – Uso de smartphone e tablet no ambiente de trabalho Fonte: ipopba/iStock.com. A Figura 3 ilustra o uso do tablet, smartphone e notebook em um ambien- te de trabalho. Um gerente executivo pode trocar mensagens com clien- tes e fornecedores pelo smartphone, acompanhar relatórios e gráficos pelo tablet e desenvolver uma estragégia de ação pelo notebook. PARA SABER MAIS Muitas empresas do setor alimentício, como lanchonetes, haburguerias, docerias e padarias, estão substituindo o tra- dicional cardápio por tablets instalados nas mesas. O cliente pode conhecer com mais detalhes o produto que deseja con- sumir, adicionar ou remover itens e realizar o seu pedido de maneira prática e ágil. Os wearables, por sua vez, são tecnologias vestíveis, tais como, os smar- twatches (relógios inteligentes) e roupas inteligentes. O primeiro wearab- le foi criado em 2008, sendo uma pulseira que monitorava as atividades 14 Aplicações Móveis físicas. Os wearables podem facilitar o desempenho de diversas tarefas. No caso dos smartwatches, tais como o Apple Watch e o Samsung Gear, possuem ferramentas no auxílio do monitoramento da saúde e sincronia com os smartphones iPhones (Apple Watch) e Samsung (Gear), respectiva- mente. Além disso, tais dispositivos permitem atender a ligações, enviar e receber mensagens de texto, visualizar fotos, calendário, controlar músi- cas, pagar contas e também ver as horas (MUNARO, 2019). Segundo Munaro (2019), uma pesquisa da Consultoria IDC, faz uma pre- visão que até 2022 serão vendidos mais de 200 milhoes de wearables no mundo, sendo 43 milhões de smartwatches. Figura 4 – Uso de Smartwatch para pagamento de contas Fonte: martin-dm/iStock.com.A Figura 4 ilustra uma das aplicações do smartwatch que é o pagamento de contas através de aplicativo bancário instalado no relógio. Através da aproximação da máquina de cartão, o processo de débito ou crédito é efetivado. Aplicações Móveis 15 1.3. Mobilidade digital De acordo com Docusign (2017), mobilidade digital é um termo usado para representar a tendência de se utilizar dispositivos móveis conectados à in- ternet para poder otimizar e tornar dinâmica qualquer tipo de tarefa. Antes, a única forma de se utilizar a internet para realizar pesquisas, ativi- dades escolares, atividades de trabalho, checar e-mails e demais tarefas, era através de um microcomputador (desktop ou notebook), utilizando, geralmente, internet discada cabeada. As famílias possuíam um micro- computador em casa e até um local físico específico para poder “navegar”, como um escritório ou um quarto de estudos. O acesso às informações e à internet mudou totalmente. Com o uso da internet wireless e aparelhos Wi-Fi, as residências, escolas, shoppings e de- mais lugares públicos, tornaram-se verdadeiras redes de dados. Através de um smartphone, tablet, notebook e smartwatch e as redes móveis 3G e 4G, o usuário pode acessar a internet de qualquer lugar e a qualquer hora. Através do uso prático da mobilidade digital, é possível a utilização de ferramentas em smartphones para utilizar um transporte, como ubers ou taxis, através da localização geográfica (geolocalização) do usuário. As vi- sitas de antes aos bancos, para transferências e pagamentos de contas, foram otimizadas por aplicativos bancários que instalados ao smartpho- ne, permitem realizar pagamentos, transferências, aplicações e todo tipo de transação bancária. A comunicação tornou-se muito mais fácil com os dispositivos móveis. O uso de redes sociais, ferramentas de mensagens instantâneas, video- conferências e e-mails, antes disponível apenas nos microcomputadores, está acessível nos smartphones, tablets e smartwatches. Não obstante, a Internet das Coisas (IoT) é uma revolução tecnológica que busca conectar itens, usados no dia a dia, à internet. A intenção é que o mundo físico e digital se aproxime cada vez mais, com dispositivos que se comuniquem uns com os outros. Sua geladeira poderá enviar um pedido 16 Aplicações Móveis ao supermercado avisando que faltam itens essenciais. O smartwatch, ao identificar qualquer anormalidade com seus batimentos cardíacos, emiti- rá uma mensagem ao smartphone de seu médico cardiologista ou siste- ma de atendimento médico de urgência, para os devidos procedimentos. Os carros irão se comunicar, avisando de acidentes ou engarrafamentos. São inúmeras as possibilidades da mobilidade digital. Figura 5 – Rede de comunicação sem fio – Internet das Coisas (IoT) Fonte: metamorworks/iStock.com. A Figura 5 ilustra o conceito de mobilidade digital e o uso dos dispositivos móveis e da rede de comunicação sem fio, conectando pessoas, sistemas e aparelhos. Em linhas gerais, foi realizada uma introdução à mobilidade digital, des- tacando a revolução que esta causou na vida humana, conhecendo sobre a transformação mobile e as bases de dispositivos móveis, bem como os principais dispositivos móveis, tais como, smartphones, tablets, smartwat- ches e outras tecnologias e sua respectiva evolução. Aplicações Móveis 17 TEORIA EM PRÁTICA Uma padaria do seu bairro gostaria de automatizar seu pro- cesso de pedidos de lanchonete, substituindo os atuais car- dápios por algo digital e totalmente interativo, facilitando e agilizando o pedido dos clientes. Atualmente o cliente pre- cisa verificar o cardápio e aguardar a disponibilidade de um atendente para realizar seu pedido. Mas, muitas vezes a quantidade de clientes é significativamente grande e os pedidos acabam demorando muito. Como você po- deria auxiliar o proprietário da padaria a automizar esses car- dápios? Que tipos de dispositivos móveis poderiam ser utiliza- dos nessa situação? Que tipo de aplicativo poderia ser utilizado? VERIFICAÇÃO DE LEITURA TEMA 01 1. A tecnologia móvel avançou muito nos últimos anos, evo- luindo da rede de telefonia móvel de primeira geração 1G até a rede de telefonia móvel de quinta geração 5G. Desse modo, assinale a alternativa que apresente a rede de comunicação que faz uso do sistema WCDMA (Wide Band Code Division Multiple Access) e CDMA (Code Division Multiple Access). a) Rede de primeira geração - 1G. b) Rede de primeira geração - 2G. c) Rede de primeira geração - 3G. d) Rede de primeira geração - 4G. e) Rede de primeira geração - 5G. 18 Aplicações Móveis 2. O iPhone foi o primeiro smartphone da Apple, sendo lan- çado em 2007, por Steve Jobs, sendo um grande sucesso de vendas. Assinale a alternativa que apresenta o sistema operacional utilizado pelo iPhone: a) Windows Phone. b) iOS. c) MacOs. d) Android. e) Linux. 3. Mobilidade digital diz respeito ao uso de dispositivos mó- veis, conectados à internet, para poder otimizar e tornar dinâmica qualquer tipo de tarefa. Relacionado a mobilida- de digital, temos a internet das coisas (IoT). Assinale a alternativa que apresente a melhor definição de internet das coisas (IoT): a) Revolução tecnológica que busca conectar itens usados no dia a dia à internet. b) Revolução tecnológica que busca desconectar itens usados no dia a dia à internet. c) Revolução tecnológica que busca conectar itens usados no dia a dia ao smartphone. d) Revolução tecnológica que busca conectar itens usados no dia a dia ao computador. e) Revolução tecnológica que busca conectar itens usados no dia a dia ao smartwatch. Referências Bibliográficas ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. Aplicações Móveis 19 DOCUSIGN. Mobilidade Digital: por que sua empresa precisa de uma estratégia? 26 de set. 2017. Disponível em: <https://www.docusign.com.br/blog/mobilidade-digital/>. Acesso em: 14 jan. 2019. MATEUS, G. R.; LOUREIRO, A. F. Introdução a Computação Móvel. 2. ed. 11. Escola de Computação, COPPE/Sistemas, NCE/UFRJ, 1998. MOLL, Cameron. Mobile WEB Design. United Kingdom: Mobile Web Book, 2006. MORIMOTO, Carlos E. Smartphones: guia prático. GDH Press, 2009. MUCHOW, John W. Core J2ME: tecnologia e MIDP. São Paulo: Pearson Makron Books, 2004. MUNARO, Juliana. O futuro dos wearables. G1, 16 de set. 2018. Disponível em: <https://g1.globo.com/economia/pme/pequenas-empresas-grandes-negocios/noti- cia/2018/09/16/o-futuro-dos-wearables.ghtml>. Acesso em: 14 jan. 2019. OLIVEIRA, V.; PAULINO, R. C. R. Construção e estrutura da notícia nas interfaces dos tablets. E-COM (Belo Horizonte), v. 6, p. 1-20, 2013. Gabarito – Tema 01 Questão 1 – Resposta: C A rede 3G usa principalmente as tecnologias WCDMA e CDMA e ofe- rece velocidades mínimas de 200 kpbs. Questão 2 – Resposta: B O iPhone, da Apple, utiliza um sistema operacional exclusivo chama- do iOS. Questão 3 – Resposta: A A Internet das Coisas (IoT) é uma revolução tecnológica que busca conectar itens usados no dia a dia à internet. https://www.docusign.com.br/blog/mobilidade-digital/ https://g1.globo.com/economia/pme/pequenas-empresas-grandes-negocios/noticia/2018/09/16/o-futuro-dos https://g1.globo.com/economia/pme/pequenas-empresas-grandes-negocios/noticia/2018/09/16/o-futuro-dos Aplicações Móveis 20 TEMA 02 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Objetivos • Aprender sobre processos de desenvolvimento de software. • Conhecer o Manifesto Ágil. • Aprender os princípios da UX Design. • Aprender Técnicas de Design Thinking. Aplicações Móveis 21 1. Processos de desenvolvimento de software Você já parou para pensar como seria a nossa vida sem o uso de sistemas de software? Há algumas décadas, toda gestão de um comércio ou indús- tria, por exemplo, era realizada de forma manual, utilizando livros-caixa, planilhas, cadernos e máquina de escrever. Imagine como era o trabalho desses gestores nessa época?O avanço da tecnologia da informação e o do processo de desenvolvimento de software, facilitou e popularizou o uso de computadores e sistemas de software. Nesta Leitura, será apresentado o processo de desenvolvimento de sof- tware, conhecido como processo de desenvolvimento clássico. Você aprenderá sobre o Manifesto Ágil e o processo de desenvolvimento ágil, bem como os princípios da UX Design e Design Thinking. Uma boa aula e bons estudos. 1.1. Processo de desenvolvimento de software clássico De acordo com Sommerville (2007), todos os paísem utilizam e dependem de sistemas complexos de computadores. Todo o processo de manufatu- ra e distribuição industrial está automatizado. Nesse sentido, produzir e manter software com custos adequados é essencial para o funcionamen- to da economia nacional e internacional. Engenharia de Software é a área da Engenharia com foco no desenvolvi- mento de sistemas de alta qualidade, dentro de custos adequados. Como o software é abstrato e intangível, não sendo limitado por materiais ou controlado pelas leis da física, faz com que o processo possa ser tornar extremamente complexo e difícil de ser compreendido. Segundo Pressman (2006), o termo Engenharia de Software foi proposto em 1968, em uma conferência na Alemanha, organizada para discutir a chamado Crise de Software. Não obstante, a crise de software foi resul- tante do avanço do hardware de computador baseado em circuitos inte- grados. Isso fez o poder computacional crescer, tornando viável o desen- volvimento de determinados softwares até então inviáveis, ampliando a ordem de grandeza e complexidade envolvidas em softwares anteriores. 22 Aplicações Móveis A construção desses sistemas só mostrou que o desenvolvimento infor- mal de software não era suficiente, ou seja, o processo estava em crise e que novas técnicas e métodos eram necessários para controlar a comple- xidade dos grandes sistemas de software. Ainda, segundo Pressman (2006), o termo crise de software expressava as dificuldades de desenvolvimento frente ao rápido crescimento da deman- da, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas refinadas que funcionassem adequadamente ou pudessem ser validadas, ainda na fase de desenvolvimento. De outro modo, de acordo com Dijkstra (1972), programar tornou-se um problema à medida que a complexidade e o tamanho das máquinas au- mentaram. Em outras palavras, a potencia das máquinas é diretamente proporcional à complexidade da programação. A situação ainda era agravada por outro motivo: os primeiros programado- res não possuíam as ferramentas que dispomos hoje. Não havia técnicas consagradas de trabalho, escolas ou a profissão de programador e as pes- soas aprendiam e exerciam essa atividade aprendendo por tentativa e erro. Em congresso de 1968, os problemas apontados para a construção de software foram: • Cronogramas não observados. • Projetos com tantas dificuldades que foram abandonados. • Módulos que não operavam corretamente quando combinados. • Programas que não faziam exatamente o que era esperado. • Programas tão difíceis de usar que eram descartados. • Programas que simplesmente paravam de funcionar. Os problemas encontrados em 1968 foram totalmente resolvidos ou ain- da se encontram empresas vivendo em crise? Sim, ainda há empresas vi- venciando a crise inciada há algum tempo, e isso mostra que muitas delas são imaturas para o processo de desenvolvimento de software. Uma organização imatura apresenta os seguintes aspectos: Aplicações Móveis 23 • Os processos de software são geralmente improvisados pelos prati- cantes ou gerentes durante o andamento do projeto. • O processo de software especificado não é seguido rigorosamente. • Os gerentes estão focados em resolver crises. • Essas organizações excedem prazos, orçamentos, pois não estão baseadas em estimativas reais. Figura 1 – Falha em software Fonte: flzkes/iStock.com. A Figura 1 ilustra um dos problemas apontados na conferência de 1968, na Alemanha, relacionado à Crise de Software, que é a falha de software. Ainda sobre a superação parcial da crise de software, Sommerville (2007) descreve que essas novas técnicas, propostas para solucionar os problemas relacionados à crise, tornaram-se parte da engenharia de software, criando um novo processo de desenvolvimento de software propriamente dito. À saber, um processo de desenvolvimento de software é um conjunto de atividades que produz um produto de software. Aqui, vale apontar as qua- tro atividades fundamentais desse processo, comuns a todos os softwares: 24 Aplicações Móveis • Especificação de software: clientes e engenheiros definem o softwa- re a ser produzido e as retrições para a sua operação. • Desenvolvimento de software: o software é projetado e programado. • Validação de software: na qual o software é verificado para garantir que é o que o cliente deseja (verificações junto ao cliente). • Evolução de software: o software é modificado para se adaptar às mudanças dos requisitos do cliente e do mercado. A seguir, uma discussão acerca dos modelos criados e aprimorados em apoio ao processo de desenvolvimento de software. Modelo Cascata De acordo com Sommerville (2007), esse foi o primeiro modelo de proces- so de desenvolvimento de software. Publicado em 1970, o modelo possui esse nome porque o processo é visto como um “fluir constante para fren- te” (como uma cascata), e é aplicado para sistemas de grande porte. Figura 2 – Modelo Cascata Fonte: cacaroot/iStock.com. Aplicações Móveis 25 A Figura 2 ilustra as fases do processo de desenvolvimento de software, cascata, proposto por Royce em 1970. Pressman (2006) apresenta as fases do modelo com suas atividades: • Requisitos: os serviços, restrições e objetivos do sistema são defi- nidos por meio de consulta aos usuários do sistema. Eles são, portanto, definidos detalhadamente e servem como uma especifi- cação do sistema. • Projeto: divide os requisitos em sistemas de hardware ou de softwa- re. Envolve a identificação e a descrição das abstrações fundamentais do sistema de software e suas relações. • Implementação: o projeto de software é realizado como um conjun- to de programas ou unidades de programa. O teste unitário envolve a verificação de que cada unidade atende as suas especificações. • Integração e verificação de sistema: as unidades individuais de pro- grama ou os programas são integrados e testados como um sistema completo para garantir que os requisitos de software foram atendi- dos. Após os testes, o sistema de software é liberado ao cliente. • Operação e manutenção: geralmente esta é a fase mais longa do ciclo de vida. O sistema é instalado e colocado em operação. A manu- tenção envolve a correção de erros não detectados nos estágios anteriores do ciclo de vida, no aprimoramento da implementação das unidades de sistema e na ampliação dos serviços de sistema à medida que novos requisitos são identificados. Desenvolvimento evolucionário Sommerville (2007), apresenta um desenvolvimento baseado em uma descrição inicial, expondo o resultado aos comentários do usuário e re- finando por meio de várias versões até que seja desenvolvido um siste- ma adequado. Dois tipos de desenvolvimento evolucionário podem ser considerados: 26 Aplicações Móveis • Exploratório: o objetivo do processo é trabalhar com o cliente para explorar os requisitos e entregar um sistema final. O desenvolvi- mento começa com as partes do sistema compreendidas e evolui por meio da adição de novas características propostas pelo cliente. • Prototipação throwaway: o objetivo do processo de desenvolvimen- to evolucionário é compreender os requisitos do cliente e, a partir disso, desenvolver melhor a definição de requisitos para o sistema. O protótipo se concentra na experimentação dos requisitos mal compreendidos do cliente. PARA SABER MAIS Do ponto de vista da engenharia e do gerenciamento, a abor- dagem evolucionária tem dois problemas:• O processo não é viável. Os gerentes precisam de pro- dutos regulares para medir o progresso. Se os sistemas são desenvolvidos rapidamente, não é economicamen- te viável produzir documentos que reflitam cada versão do sistema. • Os sistemas são frequentemente mal estruturados. A mudança contínua tende a corromper a estrutura do software. A incorporação de mudanças de software torna-se cada vez mais difícil e onerosa. Engenharia de software baseada em componentes Sommerville (2007) apresenta a engenharia de software baseada em com- ponentes como um processo que utiliza uma grande base de componen- tes de softwares reusáveis e um framework de integração dos componen- tes. São sistemas independentes que fornecem funcionalidade específica. Aplicações Móveis 27 Entrega incremental Pressman (2006) apresenta a entrega incremental como uma abordagem intermediária que utiliza as vantagens do modelo cascata. No processo de desenvolvimento incremental, o cliente identifica os serviços mais e me- nos importantes. Define-se o número de incrementos de entrega com as funcionalidades do sistema. Quando um incremento é concluído, o clien- te já pode colocá-lo em operação. Desenvolvimento em espiral O modelo em espiral foi proposto por Boehm, em que apresenta o pro- cesso de software como uma sequência de atividades com um retorno entre uma atividade e outra, representando o processo como um espi- ral. Cada loop na espiral representa uma fase do processo de software e está dividido em quatro setores: definição de objetivos, avaliação e re- dução de riscos, desenvolvimento e validação e, por fim, planejamento (SOMMERVILLE, 2007). A principal diferença entre o modelo espiral e os outros modelos do pro- cesso de software é o reconhecimento explícito do risco no modelo em espiral. Risco significa simplesmente algo que pode dar errado. Por exem- plo, se a intenção for usar uma nova linguagem de programação, um risco é que os compiladores disponíveis não sejam confiáveis ou não produzam código-objeto suficientemente eficaz. 1.2 Processo de desenvolvimento de software Ágil De acordo com Sommerville (2007), as metodologias tradicionais são tam- bém chamadas de pesadas ou orientadas à documentação. Essas meto- dologias surgiram em um contexto de desenvolvimento de software mui- to diferente do atual, baseado em mainframes e terminais. Como não haviam ferramentas de apoio ao desenvolvimento de softwa- re, como depuradores e analisadores de código, o custo de alterações e correções era muito alto. Assim, o software era todo planejado e docu- mentado antes de ser implementado. 28 Aplicações Móveis De maneira geral, o modelo clássico deve ser usado somente quando os requisitos forem estáveis. O custo das alterações do software eleva-se rapidamente à medida que o desenvolvimento progride. Estima-se que as alterações efetuadas, quando o produto já está pronto, podem custar cem vezes mais que as alterações realizadas na fase de levantamento de requisitos. Durante o teste de um módulo, como exemplo, verifica-se a necessidade de incluir um atributo novo em uma tabela já existente no banco de da- dos. Para ganhar tempo, decide-se que este atributo seja incluído apenas no código-fonte do software, não alterando os modelos feitos. O resulta- do final é que o software não está de acordo com a documentação asso- ciada, dificultando futuras alterações. Pressman (2006) diz que as metodologias ágeis são adequadas para si- tuações em que a mudança de requisitos é frequente. O termo meto- dologias ágeis tornou-se popular em 2001, quando 17 especialistas em processos de desenvolvimento de software estabeleceram princípios co- muns compartilhados pelos métodos eXtreme Programming (XP), Scrum, entre outros. O resultado foi a criação da Aliança Agile e o estabelecimen- to do Manifesto Ágil. Não obstante, os conceitos-chave do Manifesto Ágil enfatizam: • Indivíduos e iterações ao invés de processo e ferramentas. • Software executável ao invés de documentação. • Colaboração do cliente ao invés de negociação de contratos. • Respostas rápidas a mudanças ao invés de seguir planos. ASSIMILE O Manifesto Ágil não rejeita processos e ferramentas, nem do- cumentação, negociação de contratos ou planejamento, mas simplesmente mostra que esses têm importância secundária quando comparados a indivíduos, ao software executável, a colaboração dos clientes e a resposta rápida às mudanças. Aplicações Móveis 29 eXtreme Programming O eXtreme Programming é uma Metodologia Ágil para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que são modificados rapidamente (SOMMERVILLE, 2007). Como principais di- ferenças da XP em relação às demais metodologias estão: • Feedback constante. • Abordagem incremental. • Comunicação encorajada entre pessoas. A informação sobre o código é obtida por testes constantes, que indicam os erros tanto individuais quanto do software integrado. Em relação ao cliente, o feedback constante significa que ele terá, frequentemente, uma parte do software totalmente funcional para avaliar. Assim, o cliente constantemente sugerirá novas características e informa- ções aos desenvolvedores. Erros, e não conformidades, serão rapidamen- te identificados e corrigidos nas versões seguintes, tendo ao final um pro- duto de acordo com as expectativas do cliente. O eXtreme Programming baseia-se em doze práticas, não sendo necessária a implementação dessas práticas de maneira simultânea, mas sim, reco- menda-se que sejam aplicadas gradativamente. Algumas das práticas supracitadas não são novas, pois são usadas há muitos anos na indústria. As práticas são: • Planejamento: consiste em decidir o que é necessário fazer e o que pode ser adiado no projeto. A XP baseia-se em requisitos atuais reais para desenvolvimento de software, não em possíveis requisitos futuros. • Entregas frequentes: visam a construção de um software simples, atualizado à medida que novos requisitos surjam. Cada versão deve ter o menor tamanho possível, contendo os requisitos de maior valor ao negócio. • Metáfora: são as descrições de um software sem a utilização de ter- mos técnicos com o intuito de guiar o desenvolvimento do software. 30 Aplicações Móveis • Projeto simples: o programa deve ser o mais simples possível e deve satisfazer os requisitos atuais, sem a preocupação com requisitos futuros. Eventuais requisitos futuros devem ser adicionados assim que, de fato, existirem. • Testes: a XP focaliza a validação do projeto durante todo o processo de desenvolvimento. Os programadores desenvolvem o software criando, primeiramente, os casos de testes. Vale pesquisar sobre TDD (Test-driven Development). • Programação em pares: a implementação do código é feita em duplas, ou seja, dois desenvolvedores trabalham em um único computador. Um desenvolvedor implementa o código enquanto o outro observa continuamente o trabalho que está sendo feito, procurando por erros sintáticos e semânticos e pensando em como melhorar o código. • Refatoração: aperfeiçoar o projeto do software em todo o desen- volvimento. A refatoração deve ser feita sempre que for possível simplificar uma parte do software, sem que seja perdida nenhuma funcionalidade. • Propriedade coletiva: o código do projeto pertence a todos os mem- bros da equipe. Qualquer pessoa pode adicionar valor a um código, mesmo que não o tenha desenvolvido. • Integração contínua: uma vez testado e validado, o código produ- zido por uma equipe deve ser integrado ao sistema e este, por sua vez, também deve ser testado. • Trabalho semanal de 40 horas: a XP assume que não se deve fazer horas extras constantemente. Caso seja necessário trabalhar mais que 40 horas pela segunda semana consecutiva, há um problema no projeto que deve ser resolvido, não com o aumento de horas tra- balhadas, mas com melhor planejamento, por exemplo. • Cliente presente: é fundamental a participação do cliente durante todo o desenvolvimento doprojeto. O cliente deve estar sempre disponível para sanar todas as dúvidas sobre requisitos. Aplicações Móveis 31 • Código-padrão: recomenda-se a adoção de regras de escrita. A padronização favorece o trabalho em equipe e a propriedade cole- tiva do código. A partir disso, o cliente, constantemente, sugerirá novas características e informações aos desenvolvedores. Erros, e não conformidades, serão ra- pidamente identificados e corrigidos nas versões seguintes, tendo ao final um produto de acordo com as expectativas do cliente. Scrum Outra Metodologia Ágil com uma comunidade grande de usuários é a Scrum. Seu objetivo é fornecer um processo conveniente para projeto e desenvolvimento orientado a objeto (SOMMERVILLE, 2007). O Scrum apresenta uma abordagem empírica que aplica algumas ideias da teoria de controle de processo industriais para o desenvolvimen- to de software, reintroduzindo a ideia de flexibilidade, adaptabilidade e produtividade. A seguir, apresentamos os seguintes elementos: • Product Backlog: é uma lista de atividades definida pelo Product Owner. São funcionalidades a serem entregues ao cliente. O documento pode ser alterado a qualquer momento. Quando se tem o Product Backlog pronto pode-se partir para a próxima etapa: o Sprint Backlog. • Sprint Backlog: é uma lista de tarefas que o Scrum team se compro- mete a fazer em um Sprint, ou seja, “janelas de desenvolvimento” com duração máxima de um mês. Os itens do Sprint Backlog são extraídos do Product Backlog pela equipe, com base nas prioridades definidas pelo Product Owner e a percepção da equipe sobre o tem- po que será necessário para completar as várias funcionalidades. • Product Owner: é a pessoa que define os itens que compõem o Product Backlog e os prioriza nas Sprint Planning Meetings. O Scrum Team olha para o Product Backlog priorizado, seleciona os itens mais prioritá- rios e se compromete a entregá-los ao final de um Sprint (iteração). Estes itens transformam-se no Sprint Backlog. 32 Aplicações Móveis • Scrum Master: procura assegurar que a equipe respeite e siga os valo- res e as práticas do Scrum. Atua como facilitador do Daily Scrum e torna-se responsável por remover quaisquer obstáculos que sejam levantados pela equipe durante essas reuniões. • Daily Scrum: reunião feita diariamente para disseminar o que foi fei- to no dia anterior. Identifica impedimentos e prioriza o trabalho a ser feito no dia a frente. Realizada pelo Scrum Master, com participa- ção geral, feito no mesmo lugar e hora todos os dias. • Sprint Review Meeting: feito ao final de cada Sprint onde é lançado o que foi alcançado durante o Sprint propriamente dito. Os participantes do Sprint Review tipicamente incluem o Product Owner, o Scrum Team, o Scrum Master, gerência, clientes e engenheiros de outros projetos. • Sprint Retrospective: esta reunião tem o objetivo de rever os erros e acertos no Sprint realizado. É uma das partes mais importantes do processo, já que nela é possível aprender com os erros e tentar aprimorar o produto. Figura 3 – Scrum Sprint Fonte: jazz42/iStock.com. A Figura 3 ilustra um Sprint em andamento. É possível visualizar o que foi planejado, o que está em progresso, realizado e em espera. Aplicações Móveis 33 1.3. Princípios da UX Desing e Design Thinking UX (User Experience) se refere a todos os aspectos relacionados ao uso de uma tecnologia por uma pessoa, desde um aplicativo de celular até um caixa eletrônico. Está relacionado também a como uma pessoa se sente ao usar um produto ou serviço. A experiência do usuário engloba todos os aspectos da interação do usuário final com a empresa, seus serviços, produtos, estudando as melhores maneiras de atender às necessidades dos usuários e deixá-los satisfeitos. O UX Designer irá estudar e avaliar como os usuários se sentem sobre um sistema, levando em consideração aspectos como a facilidade de uso, a percepção de valor do sistema e a eficiência na execução de tarefas. Design Thinking auxilia no entendimento de parâmetros e padrões essenciais para criar projetos de melhor qualidade. É um processo de pensamento crí- tico e criativo que permite organizar informações e ideias, tomar decisões, aprimorar situações e adquirir conhecimento. Processo: imersão (entendi- mento), ideação (criação), prototipação (teste) e desenvolvimento (aplicação). Dessa forma, foi realizado um estudo sobre processo de desenvolvimento de software clássico e ágil, princípios da UX Desing e Design Thinking, destacan- do os processos de desenvolvimento de software clássicos cascata, entrega incremental, baseado em componentes, evolucionário e espiral, e os proces- sos de desenvolvimento de software ágil eXtreme Programming e Scrum. TEORIA EM PRÁTICA Uma padaria do seu bairro gostaria de automatizar seu pro- cesso de pedidos de lanchonete, substituindo os atuais car- dápios por algo digital e totalmente interativo, facilitando e agilizando o pedido dos clientes. Atualmente, o cliente pre- cisa verificar o cardápio e aguardar a disponibilidade de um atendente para realizar seu pedido. Muitas vezes a quantida- de de clientes é muito grande, e os pedidos acabam demo- rando muito. Quais processos de desenvolvimento de sof- tware podem ser aplicados a esta situação? 34 Aplicações Móveis VERIFICAÇÃO DE LEITURA TEMA 02 1. O termo Engenharia de Software foi proposto em 1968, em uma conferência na Alemanha, que foi organizada para dis- cutir um problema relacionado ao desenvolvimento de sof- tware que estava com problemas relacionado ao processo de desenvolvimento de sistema. Assinale a alternativa que apre- senta, corretamente, o problema encontrado nesse período: a) Crise de hardware. b) Crise de software. c) Crise da computação. d) Crise de hardware e software. e) Crise da computação e hardware. 2. As metodologias ágeis são adequadas para situações em que a mudança de requisitos é frequente. O termo meto- dologias ágeis tornou-se popular em 2001, quando 17 es- pecialistas em processos de desenvolvimento de software estabeleceram princípios comuns. Assinale a alternativa que apresente, corretamente, metodologias ágeis de de- senvolvimento de sistemas. a) Cascata e entrega incremental. b) Espiral e cascata. c) eXtreme Programming e Scrum. d) Scrum e espiral. e) eXtreme Programming e espiral. 3. A UX (User Experience) refere-se a todos os aspectos rela- cionados ao uso de uma tecnologia por uma pessoa, desde um aplicativo de celular até um caixa eletrônico. Assinale a alternativa que apresente, corretamente, o propósito da UX Desing: Aplicações Móveis 35 a) Estudar e avaliar como os usuários se sentem sobre um sistema. b) Estudar e avaliar como os usuários se sentem sobre o hardware. c) Estudar e avaliar como os usuários se sentem sobre uma tecnologia. d) Estudar e avaliar como os usuários se sentem sobre um computador. e) Estudar e avaliar como os usuários se sentem sobre a internet. Referências Bibliográficas PRESSMAN, R. Engenharia de Software. 6. ed. São Paulo: Makron Books, 2006. SOMMERVILLE, I. Engenharia de Software. 8. ed. São Paulo: Pearson Education do Brasil, 2007. Gabarito – Tema 02 Questão 1 – Resposta: B A crise de software foi discutida em 1968, em uma conferência na Alemanha, tratando dos problemas relacionados ao desenvolvimen- to de software. Questão 2 – Resposta: C As metodologias de desenvolvimento de sistemas ágeis são eXtreme Programming e Scrum. Questão 3 – Resposta: A A UX Desing tem por objetivo estudar e avaliar como os usuários se sentem sobre um sistema. Aplicações Móveis 36 TEMA 03 PROGRAMAÇÃO ORIENTADA A OBJETOS Objetivos Aprender sobre: • Linguagens de Programação Orientada a Objetos. • Programação para Android (Java); • Programação para iOS (Swift e Objective-C); • Programação para Windows Phone (C#). Aplicações Móveis 37 1. Linguagens de Programação Você já parou para pensar como os programas para computadores, ta- blets, smartphones e smartwatches são criados? Háalgumas décadas, o foco do desenvolvimento de sistemas eram os mainframes e microcom- putadores (sistemas para área de trabalho). Com o avanço da tecnologia da informação, hardware, internet e redes de telefonia móvel, o desenvol- vimento passou a ser para dispositivos móveis. Nessa leitura, será apresentado o paradigma de programação orientada a objetos e os principais sistemas operacionais e linguagens de programa- ção utilizadas para a programação de aplicativos. Você aprenderá sobre a programação para Android, iOS e Windows Phone, bem como as ferramen- tas utilizadas para o desenvolvimento. Boa aula e bons estudos! 1.1. Programação Orientada a Objetos Um paradigma é um modelo a ser utilizado, fazendo uso de métodos e técnicas que usam os mesmos princípios. Na orientação a objetos, utiliza- se o conceito de que o mundo real é composto por objetos, combinando dados e funções, enquanto os problemas são mapeados para objetos que estão relacionados e interagem entre si. (ALVES, 2018)11. A orientação a objetos apresenta vários benefícios, tais como: melhor comunicação entre analista de sistema e especialista (pessoa detentora dos requisitos), melhoria do processo de análise de sistemas, represen- tação padronizada para análise de sistemas (Linguagem de Modelagem Unificada - UML), projeto e apoio à reutilização de código. Por meio da orientação a objetos, é possível diminuir o gap semântico (distância entre o problema no mundo real, e o modelo abstrato constru- ído e programado). 1 ALVES, Thiago Salhab. Projeto de Sistemas. Londrina: Editora e Distribuidora Educacional S.A., 2018. 38 Aplicações Móveis Classes e objetos Classes representam o agrupamento e descrevem um conjunto de obje- tos. Objetos são instâncias de classes, isto é, pertencem a uma determi- nada classe que, por sua vez, descrevem as características e propriedades do objeto. Objetos pertencem a apenas uma classe. As classes são usadas como classificadoras de objetos do mundo real e descrevem objetos de qualquer tipo de sistema (SCHACH, 2010)2. Para identificar as classes de um sistema, é necessário determinar o do- mínio do problema a que se destina o modelo de software. Assim, as clas- ses são derivadas desse domínio e nomeadas de acordo com o que repre- sentam no sistema. Segundo Schach (2010), uma classe é constituída de dois grupos de ele- mentos: atributos e métodos. Um atributo (atribute) de uma classe é uma característica pertencente a esta classe e é utilizada para armazenar algu- ma informação que está associada a classe, como, por exemplo, uma clas- se produto possuir como um de seus atributos código_produto e nome_ produto. Enquanto os atributos armazenam dados de objetos, os méto- dos (methods) são utilizados para realizar operações sobre os atributos de uma classe, como, por exemplo, cadastrarProduto e consultarProduto. Figura 1 - Linguagens de Programação Fonte: gguy44/iStock.com. 2 SCHACH, S.R. Engenharia de Software: os paradigmas clássico e orientado a objetos. 7. ed. Porto Alegre: AMGH, 2010. Aplicações Móveis 39 A figura 1 ilustra as linguagens de programação mais populares e utiliza- das para programação. Destaque para as linguagens orientadas a objetos Java (Android) e Objective-C (iOS). PARA SABER MAIS A programação orientada a objetos conta com quatro con- ceitos, também conhecidos como pilares: • Abstração: como representado na programação orien- tada a objetos, objetos do mundo real, é necessário levar em conta, na abstração, a identidade (nome) dos objetos, suas propriedades (características) e métodos (ações ou eventos). • Encapsulamento: evita o acesso direto a propriedade do objeto, como se fosse uma caixa preta, adicionando segurança para as classes, mantendo as propriedades como privadas (private), sendo acessadas por métodos chamados getters e setters. • Herança: é uma das grandes vantagens da programa- ção orientada a objetos. Permite que uma classe filha herde os comportamentos (atributos e métodos) de uma classe pai. • Polimorfismo: é a capacidade de um método assumir várias formas. Segundo Alves (2018)3, objetos são entidades independentes e dois obje- tos, mesmo que possuam os mesmos atributos, não correspondem aos mesmos objetos propriamente ditos. Considere, por exemplo, dois obje- tos da classe aluno, aluno_01 e aluno_02, cada um desses objetos é inde- pendente e terão seus próprios atributos e métodos. 3 ALVES, Thiago Salhab. Projeto de Sistemas. Londrina: Editora e Distribuidora Educacional S.A., 2018. 40 Aplicações Móveis 1.2. Programação para Android De acordo com Lecheta (2013)4, o Android é um sistema operacional para dispositivos móveis baseado no Linux, contando com aplicações já insta- ladas. Desenvolvido pela Google, que está presente em vários aparelhos dos mais conhecidos e importantes fabricantes, como Sony, Motorola, Samsung e LG, sendo considerada uma das mais populares plataformas do mundo. O Android tem seu núcleo baseado no Linux, além de possuir um código aberto e a possibilidade dos fabricantes personalizarem suas versões. Segundo Alves (2016)5, a data de lançamento do Android foi 2008 e, desde então, tem sido aperfeiçoado pela Google com muitas novidades, apre- sentando atualizações que ocorrem periodicamente, cujos nomes ficaram famosos por receber nomenclaturas de doces (exemplos: KitKat, Lollipop). Cada fabricante do Android tem uma versão personalizada e, por esse motivo, ele é diferente em cada celular. O fabricante cria então um Android personalizado, podendo alterar a interface e aplicativos variados, chama- dos ROMs. Todos têm em comum o uso de aplicativos da Google, como Gmail, Google Now e Google Maps. Devido à customização que cada fabricante faz no Android, antes do lan- çamento do novo modelo, é feita uma espécie de homologação que ve- rificará se as modificações feitas na ROM do sistema não interferiram na suíte padrão de aplicativos Google. Não obstante, em 2007, foi criada a Open Handset Alliance (OHA), uma aliança de várias empresas com o objetivo de criar padrão aberto para telefonia móvel. Fazem parte da OHA, empresas como a Google, a HTC, a Dell, a Samsung, a LG, a Motorola, entre outras (ALVES, 2016)6. 4 LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 3. ed. São Paulo: Novatec, 2013. 5 ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. 6 ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. Aplicações Móveis 41 Figura 2 - Sede da Google com Android Fonte: SpVVK/iStock.com. A figura 2 ilustra o mascote, símbolo do Android, em frente a sede da Google em Mountain View, Califórnia. À título de ilustração, acerca do aprimoramento de processos na área, o Android SDK deixou de ser o software que possibilita o desenvolvimento de aplicações no Android. Antes, possuía um emulador para simular o ce- lular, utilitários e API para a linguagem Java, com as classes utilizadas para desenvolver as aplicações. Inclusive, havia um plug-in para a IDE Eclipse, com objetivo de integrar o ambiente de desenvolvimento Java com o Emulador (LECHETA, 2013)7. Hoje em dia, o Android já conta com a IDE própria, baseada numa IDE da JetBranis (o Android Studio). Muitos recursos de desenvolvimento foram aprimorados e o plug-in para o Eclipse (Eclipse ADT) foi descontinuado. Isso significa dizer que, se tentar acessar o Eclipse ADT, você será redirecionado diretamente ao download do Android Studio. 7 LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 3. ed. São Paulo: Novatec, 2013. 42 Aplicações Móveis Figura 3 - Código fonte em Java Fonte: SpVVK/iStock.com. A figura 3 ilustra um código fonte, em linguagem Java, destacando um mé- todo chamado getEventTypeString e seu conteúdo. ASSIMILE A linguagem utilizada para aconstrução dos códigos para Android é a linguagem Java, porém, a máquina virtual do Android não é a Java Virtual Machine (JVM), sendo usada a Dalvik, que é baseada em registradores e projetada pela Google, requerendo pouca memória e projetada para que múltiplas instâncias da máquina virtual rodassem ao mesmo tempo, transformando .class de uma classe compilada para o formato .dex. Aplicações Móveis 43 1.3. Programação para iOS O iOS, que antes era chamado de iPhone OS, é um sistema móvel da Apple Inc. desenvolvido originalmente para iPhone, mas também usado em iPod Touch e iPad. A Apple não permite que o iOS seja executado em hardware de terceiros. O iOS consiste em quatro camadas de abstração: Core OS, Core Services, mídia e Cocoa Touch (ALVES, 2016)8. Segundo Alves (2016), para o desenvolvimento de aplicativos para iOS, são necessários alguns equipamentos e procedimentos: • Computador da Apple: é necessário ter um computador da Apple para fazer uso das ferramentas para desenvolvimento. Quaisquer equipamentos com o sistema operacional Mac OS podem ser uti- lizados, tais como, MacBoook, MacBook Pro, MacBook Air, Mac Mini ou iMac. • Cadastro de desenvolvimento: para acessar a ferramenta de desenvolvimento, documentação, exemplos de código e fórum de discussão, é necessário o cadastro na Apple Developer Program, que, inicialmente, por ser feito gratuitamente, porém, para criar aplica- tivos para distribuição na App Store para iPhone, iPad, Mac e Apple Watch, é necessário fazer parte do programa ao custo de 99 dólares anuais. • Softwares para desenvolvimento: Xcode 10.1, que é o ambiente de desenvolvimento, incluindo a linguagem Swift 4 e SDKs (Software Developer Kits) para iOS 12 (iPhone e iPad), watchOS 5 (Apple Watch), tvOS 12 (tv digital da Apple) e macOS Mojave (sistema operacional para MacBooks e iMacs). 8 ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. 44 Aplicações Móveis Figura 3 – Desenvolvimento para iOS Fonte: pressureUA/iStock.com. A figura 3 ilustra as possibilidades de desenvolvimento para dispositivos com iOS, que são o iPad e o iPhone. A linguagem Objective-C foi criada por Brad Cox, no início da década de 80, e licenciada em 1988, pela empresa NeXT, tornando-se a linguagem de desenvolvimento do NeXTstep. Em 1994, as empresas NeXT e Sun Microsystem criaram uma especificação do NeXTstep conhecida como OpenStep. Objective-C foi utilizada como principal linguagem de programa- ção do MacOS X, baseado no NeXTstep. Objective-C é um conjunto de adi- ções à linguagem C, dando suporte a construções orientadas a objetos. Figura 4 - Objective-C Fonte: DenisKot/ iStock.com. Aplicações Móveis 45 A figura 4 ilustra a linguagem Objective-C e suas possibilidades, como lin- guagem orientada a objetos. A linguagem Swift é uma linguagem de programação consistente e intui- tiva, desenvolvida pela Apple, para a criação de aplicativos para iOS, Mac, Apple TV e Apple Watch. Possui código aberto, a fim de que qualquer pessoa possa utilizar. Uma vantagem é que a linguagem Swift pode agregar um código Objective-C já existente, permitindo escrever códigos mais seguros e confiáveis. Os aplicativos criados com Swift são rápidos e dinâmicos. Um algoritmo de busca escrito em Swift, por exemplo, é 2,6 vezes mais rápido que um programa escrito em Objective-C; e até 8,4 vezes mais rápido que um programa escrito em Python 2.7. 1.4. Programação para Windows Phone De acordo com Alves (2016)9, o Windows Phone é um sistema operacional (SO) para smartphones, desenvolvido pela Microsoft e lançado, inicial- mente, na Europa, Austrália e Singapura, em 21 de outubro de 2010; EUA e Canadá, no dia 8 de novembro; México, dia 24 de novembro; e Ásia, início de 2011. Vale ressaltar que, apesar de ser citado nesse material, o Windows Phone parou de receber suporte depois da versão 8, em 2017. Em breve, por- tanto, será um SO obsoleto. Além disso, uma diferença entre o Windows Phone e o Android, ou iOS, é possuir o código fechado. Para o desenvolvimento de aplicativos para Windows Phone, é necessário seguir os seguintes procedimentos: • Realizar o download do kit de desenvolvimento de software do Windows Phone (SDK), que é gratuito e inclui as seguintes ferramen- tas: Visual Studio, para desenvolver a sua App; Expression Blend, para desenhar a aparência da sua aplicação; e o Emulador do Windows Phone, para testar sua aplicação sem o aparelho celular, mas direta- mente no PC. 9 ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. 46 Aplicações Móveis Figura 5 - Windows Phone Fonte: iStock – Tommi/iStock.com. A figura 5 ilustra a interface gráfica do sistema operacional da Microsoft, Windows Phone. A linguagem utilizada para a programação do Windows Phone é a lingua- gem C# (leia c-sharp), criada juntamente com a arquitetura da plataforma .NET da Microsoft. Muitos desenvolvedores participaram do desenvolvi- mento da linguagem C#, mas o principal foi Anders Hejlsberg, também criador do Turbo Pascal e Delphi. Tal linguagem foi influenciada por várias linguagens, tais como, Java e C++, sendo uma junção de suas principais vantagens, permitindo melhorar suas implementações e adicionando novos recursos. TEORIA EM PRÁTICA Uma padaria do seu bairro gostaria de automatizar seu pro- cesso de pedidos de lanches, substituindo os atuais cardápios por algo digital e totalmente interativo, facilitando e agilizando o pedido dos clientes. Atualmente, o cliente precisa verificar o cardápio e aguardar a disponibilidade de um atendente para realizar seu pedido. Muitas vezes, a quantidade de clientes é muito grande e os pedidos acabam demorando muito. Qual linguagem de programação e IDEs de desenvolvimento po- dem ser utilizados para a implementação do sistema da padaria? Aplicações Móveis 47 VERIFICAÇÃO DE LEITURA TEMA 03 1. Na Orientação a Objetos, utiliza-se o conceito de que o mundo real é composto por objetos, combinando dados e funções, e os problemas, por sua vez, são mapeados para objetos que estão relacionados e interagem entre si. Assinale a alternativa que apresenta, corretamente, os principais conceitos da orientação a objetos: a) Classes e objetos. b) Classes e atributos. c) Objetos e funções. d) Objetos e atributos. e) Classes e funções. 2. O Android é um sistema operacional para dispositivos mó- veis, baseado no Linux, contando com aplicações já insta- ladas. Assinale a alternativa que apresenta, corretamente, a linguagem de programação nativa do Android: a) C#. b) Swift. c) Objective-C. d) Java. e) Phyton. 3. É uma linguagem de programação consistente e intuitiva, desenvolvida pela Apple para a criação de aplicativos para iOS, Mac, Apple TV e Apple Watch. Possui código aberto para que qualquer pessoa possa utilizar. Assinale a alternativa que apresente, corretamente, a lin- guagem a que o texto se refere: 48 Aplicações Móveis a) Java. b) Objective-C. c) Swift. d) C#. e) Phyton. Referências Bibliográficas ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. ALVES, Thiago Salhab. Projeto de Sistemas. Londrina: Editora e Distribuidora Educacional S.A., 2018. LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 3. ed. São Paulo: Novatec, 2013. SCHACH, S.R. Engenharia de Software: os paradigmas clássico e orientado a obje- tos. 7. ed. Porto Alegre: AMGH, 2010. Gabarito – Tema 03 Questão 1 – Resposta: A Os principais conceitos da orientação a objetos são classes e objetos. Questão 2 – Resposta: D A linguagem de programação utilizada para a programação do Android, no Android Studio, é a linguagem Java. Questão 3 – Resposta: C A linguagem ao qual o texto se refere é a linguagem Swift. Aplicações Móveis49 TEMA 04 DESENVOLVIMENTO DE APLICAÇÕES PARA DISPOSITIVOS MÓVEIS Objetivos • Aprender sobre o desenvolvimento de aplicações para dispositivos móveis. • Aprender sobre desenvolvimento de Mobile Native App. • Aprender sobre desenvolvimento Mobile híbrido. • Aprender sobre ferramentas de desenvolvimento mobile híbrido. 50 Aplicações Móveis 1. Desenvolvimento de aplicações para dispositivos móveis Você já parou para analisar como o desenvolvimento de aplicações para dispositivos móveis avançou nos últimos anos? No início dos anos 2000, os consumidores brasileiros nem sonhavam em ter um dispositivo inte- ligente (smartphone), na palma de suas mãos. O máximo que conseguía- mos fazer com os celulares era tirar fotos, geralmente, em padrão VGA, e enviar mensagens de texto (SMS). Atualmente, praticamente todas as pes- soas têm um ou mais smartphones, tablets e smartwatches, mudando total- mente o foco de desenvolvimento de sistemas para esses equipamentos. Não obstante, nessa leitura, será apresentado o desenvolvimento de apli- cações para dispositivos móveis, mobile native app e desenvolvimento de plataformas híbridas e ferramentas de desenvolvimento híbrido. Boa aula e bons estudos! 1.1. Aplicações para dispositivos móveis À titulo de introdução, são os aplicativos (apps) que fazem com que o uso de smartphones, tablets e smartwatches, tenha aumentado tanto. O computa- dor tem deixado de ser utilizado como principal meio de acesso à Internet e ferramentas para as mais variadas necessidades. Visualizar e responder a e-mails, acessar redes sociais, realizar pagamentos e transações bancárias, acessar páginas da web, ouvir músicas, assistir a filmes e séries, fotografar, filmar e editar fotos e vídeos e até realizar monitoramento de atividades físicas, são realizados por dispositivos móveis (ALVES, 2016)1. Segundo Abranches (2019)2, o usuário passa cada vez mais tempo conec- tado ao seu dispositivo. Nesse sentido, o uso de apps é uma ferramenta para tornar a rotina das pessoas mais prática e eficiente. 1 ALVES, Thiago Salhab. Tecnologias para web e para dispositivos móveis. Londrina: Editora e Distribuidora Educacional S.A., 2016. 2 ABRANCHES, Júnior. Aplicativos e desenvolvimento mobile híbrido x nativo. Disponível em: <https://imasters.com.br/ desenvolvimento/aplicativos-e-desenvolvimento-mobile-hibrido-x-nativo>. Acesso em: 26 jan. 2019. https://imasters.com.br/desenvolvimento/aplicativos-e-desenvolvimento-mobile-hibrido-x-nativo https://imasters.com.br/desenvolvimento/aplicativos-e-desenvolvimento-mobile-hibrido-x-nativo Aplicações Móveis 51 Com o avanço dos sistemas operacionais para dispositivos móveis, como o Android e iOS, considerando também o aumento da segurança e con- trole de dados, as pessoas estão mais seguras para comprar e utilizar um aplicativo novo. Antes, por exemplo, pagar contas e realizar transferên- cias bancárias, exigia o deslocamento até uma agência bancária para uso de um caixa convencional ou eletrônico, despendendo tempo e recursos. Hoje, por meio de um smartphone, essas mesmas ações podem ser reali- zadas de qualquer lugar e a qualquer momento. Aplicativos móveis são softwares escritos para dispositivos móveis, que desempenham objetivos específicos. De acordo com Abranches (2019), no primeiro trimestre de 2016 foi realizado um levantamento sobre os pa- íses com maior número de downloads de aplicativos e o Brasil foi o tercei- ro na lista, perdendo apenas para Estados Unidos e China. Há, segundo o mesmo autor, duas maneiras de desenvolver aplicativos para dispositivos móveis: desenvolvimento nativo (native app) e híbrido. Figura 1 – Conceito de apps móveis Fonte: lucadp/ iStock.com. A figura 1 ilustra o conceito de apps móveis, apresentando uma grande variedade de aplicativos, tais como: calendário; previsão do tempo; player de música, vídeos, chat, e-mail e relatório mensal. 52 Aplicações Móveis Mobile Native App De acordo com Abranches (2019), um Mobile Native App é um aplicativo de- senvolvido especificamente para uma determinada plataforma, seguindo adequadamente o padrão de interface do usuário. PARA SABER MAIS A aparência de um sistema é um dos principais elementos para atrair a atenção dos usuários. Nesse sentido, a interfa- ce do usuário permite ampliar os processos de melhoria e divulgação dos softwares, uma vez que afeta a decisão dos mesmos em seguir com a sua utilização (SEGURADO, 2015)3. De outro modo, se o sistema de software for extremamen- te funcional, mas, sem uma interface amigável, a tendência é de que os usuários abandonem sua utilização. Esse é um dos grandes desafios para o desenvolvimento de aplicações móveis: construir interfaces bonitas e ao mesmo tempo fun- cionais (SEGURADO, 2015)4. Para desenvolver um aplicativo nativo, o programador precisa conhecer algumas linguagens de programação e ferramentas para seu desenvolvi- mento. No caso da programação para Android, é necessário o conhecimen- to de Java e das IDEs (Integrated Development Enviroment) Android Studio ou Microsoft Visual Studio para seu desenvolvimento. No caso do iOS, o co- nhecimento de Objective-C ou Swift (nova linguagem da Apple baseada em Objective-C) e das IDEs XCode ou Microsoft Visual Studios, se faz necessária. O custo para o desenvolvimento de um aplicativo nativo é mais elevado, pois é necessário contratar um desenvolvedor específico para cada plata- forma, o que pode demandar um tempo maior para o desenvolvimento de determinadas aplicações, porém permite o acesso completo a todos os recursos do dispositivo. 3 SEGURADO, Valquiria Santos. Projeto de interface com o usuário. 1. Ed. São Paulo: Pearson Education do Brasil, 2015. 4 SEGURADO, Valquiria Santos. Projeto de interface com o usuário. 1. Ed. São Paulo: Pearson Education do Brasil, 2015. Aplicações Móveis 53 Dentre os aplicativos nativos, pode-se listar: • Facebook Messenger: foi desenvolvido para atender recursos dos sistemas operacionais Android e iOS, aproveitando melhor as opor- tunidades e experiência de um app nativo. • Whatsapp: app de mensagens instantâneas. • Skype: aplicativo que usa vídeo, áudio e chat em tempo real. Se o aplicativo a ser desenvolvido for complexo, com acesso a muitos re- cursos de hardware, o desenvolvimento nativo proporcionará melhor ex- periência ao usuário. Além disso, se o aplicativo necessita de um layout de interface gráfica e uma boa performance para o usuário, o sistema nativo continua sendo a melhor opção (ABRANCHES, 2019). A grande vantagem do desenvolvimento de aplicativos nativos é a qua- lidade, desempenho e interface de usuário muito superiores, o que faz com que os desenvolvedores optem por desenvolver tal modalidade. Por outro lado, o custo de desenvolvimento é mais alto para desenvolvedores iOS e Android, o que exige conhecimentos específicos. Figura 2 – Mobile Native App Fonte: bigtunaonline/ iStock.com. A figura 2 ilustra alguns dos principais mobile native apps utilizados para mídia social, tais como, Facebook, Instagram, WhatsApp e Twitter. Mobile híbrido Se um cliente solicitasse a um desenvolvedor, um aplicativo de relatório de vendas para as plataformas Android e iOS, em um prazo de trinta dias 54 Aplicações Móveis e que, ao término desse período, estivesse publicado nas lojas App Store e Play Store, será que este desenvolvimento seria possível? Muitos programadores responderiam que não seria possível esse desen- volvimento, pois demanda muito tempo a programação de aplicativos personalizados para iOS e Android. Entretanto, o problema dessa demanda pode ser resolvido por meio de um desenvolvimento mobile híbrido. A programação mobile híbrida é aque- la em que o desenvolvedor, conhecendo as linguagens HTML (Hipertext markup language), CSS (Cascade Style Sheet) e JS (Java Script), consegue, em um único código fonte, desenvolver o aplicativo para ambas as platafor- mas (Android e iOS) (ABRANCHES, 2019). Aplicativos do tipo mobile híbrido conseguem acessar recursosnativos do dispositivo, por meio de aplicativos como o Cordova ou PhoneGap, que permitem que os programadores para dispositivos móveis consigam pro- gramar sem a necessidade de tecnologias ou SDKs ou compiladores usa- dos nas plataformas Android e iOS. O custo para o desenvolvimento híbrido é reduzido e a entrega é muito mais rápida, pois um único código pode gerar aplicativos para ambas as plataformas (Android e iOS). O desenvolvimento híbrido não necessita de uma IDE específica, poden- do, por exemplo, usar um bloco de notas para desenvolver, porém há vá- rios editores ou plug-ins que facilitam a vida do programador. Alguns dos editores que podem ser utilizados são o Visual Studio Code e Sublime Text. Dentre os aplicativos desenvolvidos de forma híbrida, pode-se citar: • Untappd: rede social para cervejeiros, onde os usuários conseguem encontrar cervejarias e bares pelo mundo. • MarketWatch: aplicativo que oferece aos usuários notícias comer- ciais e informações do mercado financeiro. • Pacifica: aplicativo para controle de estresse, ansiedade e preocupa- ção, constituído por atividades rápidas e interativas que os usuários podem realizar, baseado na terapia cognitiva-comportamental. Aplicações Móveis 55 ASSIMILE Se o aplicativo for um protótipo ou uma demonstração de um sistema, a melhor opção é o desenvolvimento híbrido, pois é possível, a curto prazo, realizar a prototipação de telas e utilizá-las em multiplataformas. Se o público-alvo do sistema for mediano, e que exigirá mui- ta demanda, pode-se adotar o desenvolvimento híbrido. Se o tempo para a entrega do aplicativo é curto, o desenvolvi- mento híbrido é a melhor opção, pois o código é aproveitado para multiplataforma. Figura 3 – Smartphone com Mobile Híbrido Fonte: jbk_photography/iStock.com. A figura 3 ilustra o aplicativo MarketWatch, que é um dos aplicativos para notícias comerciais e informações do mercado financeiro, sendo um apli- cativo do tipo mobile híbrido, podendo ser utilizado em Android e iOS. 1.2. Ferramentas de desenvolvimento nativo Segundo o Google Developers Training Team (2019), um projeto para Android começa com uma proposta ou ideia de um aplicativo e a definição dos re- quisitos para o projeto. Para a codificação para Android, utilize o Android 56 Aplicações Móveis Studio seguindo os seguintes passos: • Criar um projeto no Android Studio e escolher o template apropriado. • Definir o layout para cada elemento da interface do usuário. • Codificar, usando a linguagem Java (ou Kotlin), criando o código fon- te para todos os componentes do app. • Construir e rodar o app em um aplicativo real ou virtual. • Publicar o app com a final APK e distribuir por meio dos canais como o Google Play. Uma vez instalado o Android Studio IDE, um novo projeto deve ser criado com a escolha da API da versão do Android que será usado (uma versão de funcionamento mínimo, como por exemplo, API 15: Android 4.0.3), que mostrará a compatibilidade com outros dispositivos. O próximo passo é escolher o template de atividade, que é o layout do aplicativo, podendo ser customizado. Cada atividade pode ter diferentes templates. De acordo com a Apple Inc. (2019), a linguagem Swift permite escrever sof- twares para smartphones, desktops, servidores, sendo rápida, segura e que combina o melhor da engenharia da Apple e da comunidade de sof- tware aberto. O código Swift é compilado e otimizado para aproveitar o melhor do hardware. A sintaxe e a biblioteca padrão foram projetadas dentro do princípio de que a melhor maneira de escrever seu código permite uma melhor exe- cução. Para programar em Swift, a IDE a ser utilizada é a Xcode, que é um centro de desenvolvimento da Apple que permite desenvolver produtos para Mac, iPhone, iPad, Apple Watch e Apple TV. O Xcode IDE possui um source editor, para a escrita dos códigos; um assistant editor, que cria um segundo painel para ajudar na codificação; simulador; compilador para C, C++, Objective-C e Swift; dentre outros recursos. Para a construção de uma completa interface de usuário, o Xcode possui a interface Builder Built-In, que torna fácil a construção de uma interface completa, sem a necessidade de escrever qualquer código. Com um sim- ples arrastar e soltar de janelas, botões, campos de textos e outros objetos Aplicações Móveis 57 na tela de desenho, a fim de criar uma interface de usuário funcional. Um aplicativo completo para iOS é composto de múltiplas views nas quais o usuário navega. As relações entre essas views são definidas por storybo- ards, que mostram uma visão completa do fluxo do aplicativo. O Xcode inclui controladores de storyboard para: • Table View. • Collection View. • Navegação. • Tab Bar. • Page View. • GLKit View. Figura 4 – Programação de Aplicativo Móvel Fonte: gorodenkoff/iStock.com. A figura 4 ilustra uma equipe de desenvolvimento de aplicativo móvel tra- balhando nos layouts do app em construção. 1.3. Ferramentas de desenvolvimento híbrido De acordo com DevMedia (2019a), o Apache Cordova é uma plataforma de 58 Aplicações Móveis desenvolvimento de aplicativos móveis que utiliza HTML, CSS e JavaScript. Por meio de um código central, usando as tecnologias para web, é possível de- senvolver uma aplicação para várias plataformas mobile, como iOS e Android. As aplicações desenvolvidas em Cordova funcionam sobre uma web view (visão web), mas o usuário tem a impressão de que está utilizando uma aplicação nativa. O desempenho não é tão inferior, se comparado a um aplicativo nativo, e vem sendo utilizado em muitos projetos. Para o de- senvolvimento em Cordova existem algumas ferramentas, como o Visual Studio, que permite ganho de produtividade. O Ionic, segundo o DevMedia (2019a), é uma solução baseada no Apache Cordova, cujo conjunto de componentes front-end permite escrever códi- go HTML, CSS e JavaScript, se aproximando a uma aplicação nativa. Ainda de acordo com DevMedia (2019b), o PhoneGap é um framework para desenvolvimento móvel que permite aos desenvolvedores criar apli- cativos usando o HTML, CSS e JavaScript, sendo um framework multiplata- forma, desenvolvido pela Adobe Systems, em 2011, e ainda possui código fonte aberto. Para que o PhoneGap funcione é necessário ter o JDK Java na versão 5, ou superior, instalada no computador. Figura 5 – Equipe de desenvolvimento de aplicativos móveis Fonte: scyther5/iStock.com. A figura 5 ilustra uma equipe de desenvolvimento trabalhando em um projeto de mobile híbrido. Aplicações Móveis 59 TEORIA EM PRÁTICA Uma padaria de seu bairro gostaria de automatizar seu pro- cesso de pedidos de lanches, substituindo os atuais cardá- pios por algo digital e totalmente interativo, facilitando e agi- lizando o pedido dos clientes. Atualmente, o cliente precisa verificar o cardápio e aguardar a disponibilidade de um atendente para realizar seu pedido. Muitas vezes, a quantidade de clientes é tão grande que os pedidos acabam demorando muito. O proprietário solicitou que, além do desenvolvimento do apli- cativo para tablets (fixos no estabelecimento), o cliente pudes- se ter, em seu celular, uma versão do app para realizar de pe- didos e também visualizar o cardápio on-line. Os usuários, em sua maioria, possuem iPhone ou aparelhos com Android. Com base nesse cenário, que tipo de aplicativo você desenvol- veria (Aplicativo Nativo ou Aplicativo Híbrido)? Qual linguagem de programação e IDE de desenvolvimento você adotaria? VERIFICAÇÃO DE LEITURA TEMA 04 1. Aplicativos móveis são softwares escritos para dispositivos móveis, que desempenham objetivos específicos. Assinale a alternativa que apresente, corretamente, as duas formas de desenvolver aplicativos para dispositivos móveis: a) Aplicativo Proprietário e Aplicativo Livre. b) Aplicativo Nativo e Aplicativo Híbrido. 60 Aplicações Móveis c) Aplicativo Nativo e Aplicação Open-source. d) Aplicativo Híbrido e Aplicativo Livre. e) Aplicativo Híbrido e Aplicativo Open-source. 2. Para desenvolver
Compartilhar