Buscar

02 Conteúdo - Frameworks Moveis de Desenvolvimento

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 13 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 13 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 13 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

Desenvolvimento de Softwares Moveis
Um aplicativo móvel (ou “aplicativo móvel”) é um programa de computador ou aplicativo de software executado em um dispositivo móvel, como um telefone, tablet ou smartwatch. Um aplicativo móvel típico usa uma conexão de rede para trabalhar com recursos de computação remotos, e o desenvolvimento de aplicativos móveis é o processo de projetar aplicativos de software que operam em um dispositivo móvel. 
	O processo de desenvolvimento móvel envolve a criação de pacotes de software instaláveis ​​(código, binários, ativos e assim por diante), integrando serviços de back-end como acesso a dados através de uma API e testando o aplicativo em dispositivos de destino.
Codificar aplicativos móveis parece simples, mas a abundância de plataformas disponíveis dificulta. Seu aplicativo pode ser executado em um iPhone, iPad ou telefone Android, entre outros dispositivos. Além disso, essas plataformas estão sujeitas a mudanças rápidas à medida que novos gadgets entram no mercado com frequência.
Aplicativos móveis e plataformas de dispositivos
No mercado atual de dispositivos inteligentes, duas grandes plataformas reinam sobre todas as outras. Estas são a plataforma iOS da Apple e o Android do Google. A plataforma iOS é o sistema operacional que roda nos populares aparelhos iPhone da Apple. Muitas empresas de tecnologia, ao lado do Google, usam o sistema operacional Android para construir seus próprios dispositivos inteligentes.
Embora haja alguma semelhança em termos de desenvolvimento de aplicativos entre às duas plataformas, projetar para iOS em relação ao Android requer o uso de diferentes ‘kits’ de desenvolvimento de software (SDKs) e ferramentas. Além disso, a Apple utiliza o iOS apenas para todos os seus dispositivos, mas o Google torna o Android acessível para a maioria das outras empresas, desde que essas empresas atendam a determinados critérios, como o envio de dispositivos com aplicativos específicos do Google.
Independentemente de suas diferenças, os desenvolvedores criam aplicativos para uso em milhões de dispositivos inteligentes hoje, aproveitando essas duas plataformas.
O objetivo deste capítulo é fornecer uma introdução concisa ao mundo do desenvolvimento de aplicativos móveis, bem como familiarizá-lo com o problema do desenvolvimento multiplataforma e como diferentes desenvolvedores tentaram resolvê-lo ao longo dos anos.
Antes de começarmos, analisaremos algumas terminologias que você encontrará ao da disciplina.
Widgets
Um widget é um elemento de interface gráfica do usuário (GUI) que exibe informações ou permite que um usuário interaja com o sistema operacional ou um aplicativo de uma maneira específica. Ícones, menus suspensos, botões, caixas de seleção, indicadores de progresso, caixas de seleção, barras de rolagem, janelas, bordas de janela (que permitem redimensionar a janela), botões de alternância, formulários e uma variedade de outros dispositivos para exibir informações e convidar , aceitar e responder às ações do usuário são exemplos de widgets.
“Widgets” também se refere aos pequenos programas desenvolvidos para definir como um determinado widget se parece, opera e responde às ações do usuário na programação. A maioria dos sistemas operacionais fornece um conjunto de widgets prontos para uso que um programador pode usar para personalizar o comportamento de um aplicativo, mas também é possível desenvolver novos widgets.
Linguagens 
linguagens de programação são usadas pelos computadores para entender o que as pessoas querem que eles façam. As pessoas se comunicam com computadores em linguagens como C++ ou Java, assim como se comunicam entre si em inglês ou japonês. JavaScript e Python são duas das linguagens de codificação mais populares.
Tipos de desenvolvimento de aplicativos móveis 
Ao criar aplicativos móveis, há quatro metodologias principais de desenvolvimento a serem consideradas.
· Aplicativos Nativos para Aplicativos Móveis
· Móveis Híbridos Aplicativos da Web Progressivos (PWAs)
· Aplicativos Móveis de Plataforma hibrida
Cada uma dessas técnicas para o desenvolvimento de aplicativos móveis tem seu próprio conjunto de vantagens e desvantagens. Como desenvolvedor, antes de decidir o melhor método de desenvolvimento para seus projetos, você deve avaliar a experiência do usuário pretendida, os recursos nativos exigidos pelo aplicativo, sua alocação de orçamento, estimativa de tempo e recursos disponíveis para a manutenção do aplicativo. Dessa forma, você poderá tomar uma decisão mais informada e maximizar a técnica escolhida para executar seu projeto com eficiência:
Aplicativos móveis nativos: Os aplicativos nativos são criados na linguagem de programação e nas estruturas do proprietário da plataforma. Eles são executados diretamente no sistema operacional do dispositivo, como iOS ou Android.
Aplicativos móveis híbridos: Os aplicativos híbridos são agrupados como pacotes de instalação de aplicativos e construídos com tecnologias convencionais da Web, como JavaScript, CSS e HTML5. Os aplicativos híbridos, ao contrário dos aplicativos nativos, são executados em um 'contêiner da Web', que inclui um tempo de execução do navegador, bem como uma ponte para APIs de dispositivos nativos via Apache Cordova.
Aplicativos da Web progressivos . Os aplicativos da Web progressivos (PWAs) são aplicativos da Web que aproveitam um conjunto de recursos do navegador para fornecer uma experiência de usuário como um aplicativo, como trabalhar ‘offline’, executar um processo em segundo plano e fornecer um link para a tela inicial do dispositivo. Ao evitar a entrega e instalação da loja de aplicativos, os PWAs fornecem uma alternativa ao desenvolvimento de aplicativos móveis padrão, aproveitando um conjunto de recursos do navegador.
Desenvolvimento multiplataforma: O processo de desenvolvimento de um aplicativo executado em várias plataformas é chamado desenvolvimento multiplataforma. Aplicativos móveis multiplataforma podem ser desenvolvidos em uma variedade de linguagens de programação e estruturas, mas são compilados em aplicativos nativos executados diretamente no sistema operacional do dispositivo. Os aplicativos resultantes podem ser usados ​​no Android e no iOS. 
Antes da criação de aplicativos móveis multiplataforma, os desenvolvedores precisavam projetar códigos de aplicativos individuais para cada plataforma de modo a desenvolver aplicativos compatíveis com os padrões. Eles são chamados aplicativos nativos. O processo foi bastante trabalhoso, porque cada processo de codificação exigia uma base de código (e um programador diferente) para iOS (iPhone), bem como uma base de código separada (e desenvolvedor) para Android. Objective-C e Swift são as linguagens de programação padrão para iOS nativo, enquanto Java e Kotlin funcionam melhor para desenvolvimento Android nativo.
Como você pode esperar, essa estratégia de desenvolvimento complica as coisas por vários motivos. Manter dois conjuntos de código em sincronia é inconveniente. Simplificando , sempre que um desenvolvedor modificava o código do iPhone por qualquer motivo, ele precisava alterar o código do Android para corresponder.
É muito caro, porque você precisava de desenvolvedores com vários conjuntos de habilidades. O aplicativo para uma plataforma pode parecer muito diferente do aplicativo para outras plataformas.
Ferramentas iniciais de desenvolvimento multiplataforma
Várias equipes de TI começaram a corrida para desenvolver os aplicativos móveis de suas empresas da forma mais rápida e eficiente possível, uma tarefa complicada pela necessidade de oferecer suporte a dispositivos iOS e Android. Como resultado, muitas empresas começaram a trabalhar em ferramentas de desenvolvimento móvel multiplataforma, o que lhes permitiria criar aplicativos para iOS e Android usando a mesma base de código. Eles separaram imediatamente as ferramentas de desenvolvimento em duas categorias: as que usavam bibliotecas nativas e as que não usavam.
Ferramentas de desenvolvimento baseadas em bibliotecas nativasAlém dos SDKs originais da Apple e do Google, essas ferramentas produziram uma API “unificada”. Muitas dessas ferramentas de desenvolvimento ainda estão disponíveis, como Xamarin, Appcelerator e Nativescript. A dificuldade com essas categorias de aplicativos é que a “API Unificada” não cobre tudo, deixando os desenvolvedores com muito trabalho a fazer, como escrever código específico da plataforma. Esses aplicativos também recorrem aos Widgets do SDK. Como resultado, os aplicativos podem diferir na aparência devido ao uso de vários Widgets de várias fontes.
Ferramentas que não dependiam de bibliotecas nativas
Essas ferramentas de desenvolvimento adotaram uma metodologia única. A maioria deles evitou o uso do SDK escrevendo código que rodava no navegador da plataforma. Isso permitiu que o programador aproveitasse muitos dos recursos HTML5 e JavaScript que já estavam disponíveis. O programa seria exibido em um navegador da web. Uma “webview” é um navegador embutido em um aplicativo móvel, resultando em um aplicativo híbrido. Usando uma visualização da Web, os aplicativos móveis podem ser desenvolvidos usando tecnologias da Web (HTML, JavaScript, CSS e assim por diante) enquanto ainda são empacotados como um aplicativo nativo e distribuídos pela loja de aplicativos.
O problema com esses aplicativos é que eles são lentos. Eles não estão executando em código de máquina compilado; em vez disso, eles usam um navegador da Web disfarçado. Muitas dessas ferramentas de desenvolvimento ainda estão em uso, como Cordova e PhoneGap.
Ferramentas de desenvolvimento multiplataforma
Hoje, com base em extensa pesquisa de mercado e exemplos do mundo real de organizações proeminentes, vários players surgiram para facilitar seu trabalho e dar ao seu projeto uma vantagem competitiva.
Estes são alguns dos principais líderes no campo de ferramentas de desenvolvimento de aplicativos móveis:
Ionic: Max Lynch, Ben Sperry e Adam Bradley, daos aplicativos são escritos em linguagens padrão da Web, como HTML, CSS e JavaScript. Como resultado, se você puder criar um aplicativo da Web básico, também poderá criar com o Ionic. Você pode criar um aplicativo nativo para iOS ou Android, um aplicativo de desktop nativo ou um aplicativo da Web usando o Ionic, tudo a partir de uma única base de código.
React Native: é um framework JavaScript que permite ao programador criar aplicativos nativos para iOS e Android. Ele é construído na biblioteca React JavaScript, criada pelo Facebook. Foi lançado em março de 2015 e rapidamente ganhou popularidade entre os desenvolvedores. O React Native permite que você escreva módulos em uma variedade de linguagens, incluindo C++, Java, Swift, Objective-C e Python.
Google Flutter: Flutter é um kit de desenvolvimento de software de interface do usuário de código aberto desenvolvido pelo Google que permite que os desenvolvedores construam aplicativos iOS e Android de aparência nativa usando uma única base de código. O Google introduziu o Flutter em 2017 e, desde então, foi usado para criar mais de 100.000 aplicativos. Ele é usado para criar aplicativos multiplataforma a partir de uma única base de código para Android, iOS, Linux, Mac, Windows, Google Fuchsia e a web.
O Flutter está causando um rebuliço, porque oferece uma nova abordagem para o desenvolvimento de aplicativos móveis multiplataforma. Possui um grande número de componentes e widgets de interface do usuário, além de um poderoso motor de entrega, permitindo que os designers façam alterações no aplicativo com facilidade. Em vez de usar os widgets nativos da interface do usuário iOS ou Android que vêm com seus SDKs retrospectivos, você escreve interfaces de usuário usando os widgets de interface de usuário do Google Flutter.
Flutter é composto por dois componentes principais:
Um SDK (Software Development Kit): Um conjunto de ferramentas que o auxiliarão no desenvolvimento de suas aplicações. Ferramentas para compilar seu código em código de máquina nativo também estão incluídas aqui (para iOS e Android).
Uma estrutura (biblioteca de interface do usuário baseada em widget): um conjunto de elementos de interface de usuário reutilizáveis ​​personalizáveis ​​(botões, entradas de texto, controles deslizantes e assim por diante).
Ele usa os mesmos Widgets da mesma biblioteca e, portanto, um aplicativo Flutter criado com Flutter Widgets terá a mesma aparência no iOS e no Android.
Muitos widgets estão incluídos no Flutter, incluindo aqueles que espelham o design de materiais do Google e aqueles que imitam o design do iOS da Apple.
Esses widgets são desenhados usando o próprio mecanismo de renderização de alto desempenho do Google Flutter e devem funcionar em todas as plataformas móveis. Esses widgets também podem ser personalizados. Você cria o código do aplicativo na linguagem Dart do Google, que é transformada em código de máquina antes do tempo para desempenho semelhante ao nativo, dando a ele uma vantagem sobre o React Native. Aqui, entre a interface do usuário e o código do aplicativo, não há link. A única desvantagem óbvia é que os desenvolvedores terão que aprender Dart em vez de reutilizar suas habilidades JavaScript existentes.
Prós
· Fácil de usar e aprender. Flutter é uma estrutura contemporâneaque facilita o design de aplicativos móveis. Se você já trabalhoucom Java, Swift ou React Native, verá como o Flutter é único. Você pode criar um verdadeiro aplicativo nativo sem escrever nenhum código.
· Você pode fazer alterações em seu código e ver as consequências imediatamente. É conhecido como Hot-Reload. Depois de salvar, bastam alguns instantes para que o aplicativo seja atualizado.
· Como você não precisa projetar e gerenciar dois aplicativos móveis, desenvolver um aplicativo móvel com o Flutter é mais barato.
· Você também pode personalizar rapidamente os widgets oferecidos pelo Flutter para criar uma interface de usuário valiosa para seus usuarios.
· A documentação é excelente. A documentação do Flutter tem muito a oferecer, e tudo é bastante detalhado com exemplos simples para casos de uso fundamentais.
· O Android Studio e o VS Code o suportam. O Android Studio é um programa completo que inclui tudo o que você precisa. O VS Code é uma versatil IDE com opções de personalização graças aos plugins do marketplace.
· O Flutter oferece um utilitário de linha de comando chamado Flutter Doctor que pode ajudar os desenvolvedores a começar. Ele verifica quais ferramentas estão instaladas e quais precisam ser configuradas na máquina local. Você pode continuar construindo um novo aplicativo Flutter depois que o comando Flutter Doctor for satisfeito. Para começar com o Flutter, há uma página separada que explica como configurar os editores. Feito isso, você pode continuar criando um novo aplicativo Flutter na linha de comando.
Assim, quando se trata de reduzir os custos de desenvolvimento de aplicativos, tempo de desenvolvimento e tempo de mercado, novos negócios e até empreendimentos multimilionários estão optando por modelos de estágio cruzado para seu próximo projeto de desenvolvimento de aplicativos.
O Google Flutter parece ser a uma das soluções no momento se você deseja desenvolver aplicativos da Web para dispositivos móveis multiplataforma de alto desempenho.

Continue navegando