Criando software para dispositivos móveis
A definição de desenvolvimento de aplicativos móveis pode ser ampla, abrangendo todos os processos envolvidos na criação e lançamento de um aplicativo móvel ou específica, referindo-se à codificação e à implantação do aplicativo. Este artigo abordará as duas definições de desenvolvimento de aplicativos móveis e se concentrará especialmente na definição do desenvolvimento de aplicativos móveis para pessoas que tomam decisões ou são responsáveis pela forma como o próprio software é criado.
Para definir o desenvolvimento de aplicativos móveis, devemos começar definindo dispositivos móveis, que, nesse caso, refere-se a dispositivos eletrônicos portáteis, como smartphones, tablets, laptops, relógios inteligentes, leitores eletrônicos e consoles de jogos portáteis. Por aplicativo, queremos dizer não apenas o software nativo desses dispositivos, mas também os sistemas operacionais, plataformas e linguagens comuns aos quais esses dispositivos dão suporte. Como você aprenderá, há muitas maneiras diferentes de abordar o desenvolvimento de aplicativos móveis e muitas decisões a serem tomadas.
O processo de desenvolvimento de aplicativos móveis
O processo para criar e lançar aplicativos móveis geralmente acontece em uma série de etapas ou fases. Essas fases do processo de desenvolvimento de aplicativos móveis envolvem muitas pessoas e disciplinas diferentes em uma organização, incluindo negócios, marketing, design e engenharia. As fases do processo de desenvolvimento de aplicativos móveis são:
- Estratégia
- Planejamento
- Design
- Desenvolvimento
- Teste
- Lançamento
Quanto tempo leva para criar um aplicativo móvel?
As organizações levam de três a nove meses, ou mais, quando necessário, desenvolvendo aplicativos móveis. O escopo e os recursos de um aplicativo influenciam a linha do tempo do processo de desenvolvimento de aplicativos móveis.
Estratégia
O processo de desenvolvimento de aplicativos móveis começa com a compreensão de por que um aplicativo móvel pode ser uma boa solução para um problema ou abordagem a uma oportunidade e, em seguida, decidir o que e como criar. Na fase de estratégia, as organizações estabelecerão os objetivos e medidas de sucesso do aplicativo, analisarão o mercado e a concorrência, pesquisarão as necessidades dos clientes e determinarão quais usuários e casos de uso o aplicativo atenderá. Na fase de estratégia, as organizações também poderão começar a explorar quais plataformas de desenvolvimento de aplicativos móveis funcionariam melhor com suas metas e requisitos. É nessa fase que as organizações também começam a considerar o marketing em torno do lançamento do aplicativo.
Planejamento
Na fase de planejamento, as organizações concordam com quatro detalhes importantes do processo de desenvolvimento de aplicativos móveis: as equipes, as ferramentas, as tecnologias e as linhas do tempo. Agora, eles têm uma ideia do tipo de aplicativo móvel que precisam criar, quem criará o aplicativo e quais plataformas ou plataformas usarão. Durante essa fase, as organizações traçarão um roteiro de produto – decidirão quais recursos serão criados, em que ordem e quando – definirão marcos e elaborarão um plano de projeto que lhes permitirá cumprir a data de lançamento pretendida. Saber quais recursos e conhecimentos estão disponíveis juntamente com a compreensão de como implementar a tecnologia escolhida para o processo é essencial para determinar essa data e atingir as metas de lançamento.
Design
A aparência, os recursos e a função de aplicativos móveis começam a tomar forma durante a fase de design. Nessa fase do processo de desenvolvimento de aplicativos móveis, as equipes criarão gráficos da experiência do usuário e criarão as interfaces do usuário e os estados do aplicativo com diversos graus de fidelidade. Podem começar com simulações de baixa fidelidade para fornecer prova de conceito ou coletar comentários do cliente em um estágio inicial. Os desenvolvedores e engenheiros podem ajudar a criar protótipos ou consultoria sobre decisões de interface do usuário e experiência do usuário nessa fase, mantendo as equipes cientes dos requisitos e das especificações técnicas das plataformas que a organização optou por usar. Dessa forma, as organizações, ao migrarem para telas de fidelidade total, projetam um aplicativo que pode realmente ser criado.
Desenvolvimento
Às vezes, a palavra desenvolvimento neste contexto se refere ao ciclo de vida de desenvolvimento de software completo envolvido na criação e lançamento de um aplicativo móvel. No entanto, mais comumente, desenvolvimento significa essa fase de desenvolvimento de software do desenvolvimento de aplicativos móveis. Definiremos essa fase mais adiante neste artigo. Por enquanto, essa fase é melhor descrita como a etapa na qual as equipes estabelecem a arquitetura técnica e a pilha tecnológica, incluindo front-end, back-end e APIs, definem marcos de desenvolvimento, determinam o ciclo de vida de desenvolvimento do aplicativo e o codificam.
Teste
O teste é uma fase crucial no processo de desenvolvimento de aplicativos móveis. Sem testes, as organizações não podem ter certeza de que seu aplicativo será seguro, funcionará da maneira que os usuários precisam e esperam e funcionará onde for implantado. Durante essa fase, as equipes fornecem garantia de qualidade, criando casos de teste para avaliar a usabilidade, o desempenho, a estabilidade e a segurança do aplicativo em todos os dispositivos nos quais o aplicativo se destina a ser executado. As organizações geralmente testarão o aplicativo para garantir que a arquitetura do aplicativo possa ser dimensionada para atender aumentos repentinos na demanda.
Lançamento
A fase final no processo de desenvolvimento de aplicativos móveis é o lançamento. Depois que o aplicativo é implantado, a organização fornece suporte aos clientes que o utilizam e monitoramento e manutenção contínuos para garantir que o aplicativo esteja disponível e funcionando como deveria. As campanhas de marketing e os movimentos para incentivar a adoção do aplicativo geralmente coincidem com essa fase. Se a organização decidir fazer melhorias ou alterações no aplicativo que vão além do escopo de mudanças que seu ciclo de vida de desenvolvimento está preparado para suportar, ela poderá decidir iniciar novamente o processo de desenvolvimento de aplicativos móveis.
Desenvolvimento de software no processo de desenvolvimento de aplicativos móveis
Essa primeira tarefa da fase de desenvolvimento é estabelecer a arquitetura técnica do aplicativo móvel. Geralmente confundido com a pilha técnica, que inclui o front-end, o back-end e as APIs, a arquitetura técnica são as regras e padrões que regem o desenvolvimento de aplicativos móveis.
Arquitetura técnica
A arquitetura técnica geralmente é criada em três camadas:
Camada de apresentação
Essa é a camada do aplicativo com a qual o cliente vê e interage. A camada de apresentação inclui a interface do usuário e todos os elementos do aplicativo que compõem a experiência do usuário.
Camada de negócios
A lógica que controla fluxos de trabalho, troca de dados e operações reside na camada de negócios. Os aspectos principais dos aplicativos móveis, como segurança, cache, registro em log e tratamento de exceções, são tratados nessa camada.
Camada de dados
A camada de dados atende aos requisitos do próprio aplicativo, fornecendo utilitários de dados, componentes de acesso a dados e auxiliares ou agentes de serviço. Também é a camada que valida e mantém dados e permite a transações de dados.
Pilha de tecnologia
Da mesma forma, a pilha de tecnologia ou a pilha tecnológica também consiste em três partes, conforme mencionado. No entanto, essas partes representam opções específicas usadas para criar e dar suporte ao aplicativo em vez de diretrizes para sua criação.
Front-end
Correspondendo de perto à camada de apresentação, as ferramentas e linguagens usadas para codificar o front-end da aplicativo móvel dependem muito dos dispositivos nos quais o aplicativo será implantado. Há muitas opções e a maioria dos dispositivos móveis tem linguagem específicas que são nativas deles.
Back-end
O back-end é a parte do aplicativo que inclui o banco de dados e outros objetos semelhantes que residem em um servidor e dão suporte às funções do aplicativo móvel. As equipes ficam menos dependentes dos dispositivos quando se trata de escolher tecnologias de back-end móveis e muitas vezes podem encontrar soluções de back-end predefinidas.
API
O aplicativo se comunica entre o back-end e o front-end por meio da API, o que também permite que o aplicativo se integre e interaja com outros aplicativos e serviços.
No entanto, antes que as equipes possam escolher sua pilha de tecnologia ou até mesmo estabelecer sua arquitetura técnica, primeiro elas precisam decidir que tipo de aplicativo móvel estão criando.
Tipos de aplicativos móveis
Quando se trata de desenvolvimento de aplicativos para dispositivos móveis, as organizações têm vários tipos diferentes de aplicativos móveis para escolher. Nesse caso, o tipo de aplicativo móvel se refere não ao que o aplicativo permitirá que seus usuários façam, mas como o aplicativo será criado.
Aplicativos nativos
Os aplicativos específicos para um determinado dispositivo ou plataforma, como Android ou iOS, são chamados de aplicativos nativos. Esses aplicativos são executados diretamente no sistema operacional do dispositivo, usam as linguagens e estruturas que a plataforma fornece e são implantados por meio da loja ou do marketplace específicos para o sistema operacional. Os aplicativos nativos normalmente têm acesso completo a todos os recursos e hardware dos dispositivos nos quais eles são executados.
Aplicativos multiplataforma
As equipes podem codificar no aplicativo nas linguagens e estruturas de sua escolha e, em seguida, compilar o código para cada sistema operacional em que o aplicativo deve ser executado usando plataformas como o Xamarin. Os aplicativos multiplataforma, como são chamados, permitem que as equipes executem em muitos dispositivos diferentes e reutilizem uma grande parte do código, embora a ponte do código exija mais trabalho do que desenvolver para apenas uma plataforma.
Aplicativos Web progressivos
Assim como os aplicativos Web, os aplicativos Web progressivos são executados em navegadores móveis e normalmente são criados usando JavaScript, CSS e HTML5. O que torna os aplicativos Web progressivos é a capacidade de fornecer notificações por push, melhores gestos de toque e interação de hardware usando recursos avançados do navegador. Não há SDKs para ajudar a criar aplicativos Web progressivos, mas eles podem ser implantados sem passar por um marketplace.
Aplicativos híbridos
Uma combinação entre aplicativos nativos e aplicativos Web progressivos, os aplicativos híbridos são essencialmente contêineres codificados nativamente que executam aplicativos Web. Essa combinação permite que o aplicativo tenha mais acesso aos recursos e hardware dos dispositivos e seja executado em mais tipos de dispositivos, mantendo uma única base de código. Apesar de todas as suas vantagens, os aplicativos híbridos normalmente não alcançam o desempenho que outros tipos de aplicativos móveis conseguem.
Que tipo de aplicativo móvel criar
O tipo de aplicativo móvel que uma organização escolhe criar tem fortes implicações sobre as ferramentas, plataformas, estruturas, linguagens disponíveis para suas equipes, a distribuição do aplicativo, o número de bases de código a serem mantidas, em quais dispositivos o aplicativo será executado e até mesmo o que o aplicativo pode fazer.
Ao decidir qual tipo de aplicativo móvel criar, é útil considerar quem serão os usuários e como o aplicativo pode atender às suas necessidades. Por exemplo, se eles usam principalmente um tipo de dispositivo ou sistema operacional, um aplicativo nativo pode ser melhor. Aplicativos que não dependem de sensores de hardware ou GPS podem ser adequados como aplicativos Web progressivos ou híbridos, mas talvez não se os usuários não tiverem uma boa conectividade. Se os usuários forem membros da sua empresa ou organização, considere uma estratégia diferente para dispositivos móveis. E, claro, tudo se resume ao conhecimento que você tem disponível na sua organização ou por meio de um parceiro.
Este gráfico descreve mais das diferenças e semelhanças entre diferentes tipos de aplicativos móveis para ajudá-lo a considerar qual tipo de aplicativo você deve desenvolver.
Comparando tipos de aplicativos móveis
Aplicativos nativos | Aplicativos multiplataforma | Aplicativos Web progressivos | Aplicativos híbridos | |
---|---|---|---|---|
Número de bases de código | Um por plataforma | Um, mas compilado para cada plataforma | Um total | Um para o aplicativo, outro para o contêiner |
Linguagens e estruturas | Apenas nativo | Escolha da equipe | Somente Web | Web e nativo |
Acesso a SDKs e APIs | Sim | Sim | Não | Limitado |
Desempenho | Maior | Alto | Menor | Baixo |
Acesso ao hardware do dispositivo | Completo | Maioria | Muito pouco | Alguns |
Capacidade de resposta à entrada do usuário | Bom | Bom | Pior | Ruim |
Interatividade | Alto | Alto | Menor | Baixo |
Uso de recursos do dispositivo | Alto | Alto | Baixo | Médio |
Requer conectividade | Não | Não | Sim | Sim |
Custo para criar e manter | Maior | Alto | Menor | Inferior |
Onde o aplicativo é armazenado | Dispositivo | Dispositivo | Servidor | Dispositivo e servidor |
Implantado por meio de | Marketplace | Marketplace | Navegador | Marketplace |
Requer aprovação externa | Sim | Sim | Não | Sim |
Software e plataformas de desenvolvimento de aplicativos móveis
Depois de decidir que tipo de aplicativo móvel criar, ou talvez ao considerar qual tipo, você desejará avaliar as plataformas de desenvolvimento de aplicativos móveis. Essas são as plataformas de desenvolvimento de aplicativos que você usará para desenvolver, criar, testar, depurar, gerenciar e, em alguns casos, até mesmo implantar aplicativos móveis em todo o ciclo de vida. A maioria dos softwares de desenvolvimento de aplicativos inclui ferramentas de front-end para criar a interface, ferramentas de back-end para lidar com os dados, ferramentas de API, ferramentas de teste e ferramentas para colaboração e análise de código.
A maioria das plataformas de aplicativos móveis visa fornecer tudo o que um desenvolvedor precisa para criar um aplicativo móvel. Isso permite que os desenvolvedores evitem problemas de movimentação entre diferentes partes do software de desenvolvimento de dispositivo móvel e lidar com problemas que surgem entre eles, como integridade de código, incompatibilidades e perda de dados. As plataformas de desenvolvimento de aplicativos móveis também reduzem o custo, o tempo, os recursos e a experiência necessários para uma organização criar um aplicativo móvel. Embora algumas organizações optem por criar suas próprias plataformas, muitas outras optam por uma das muitas alternativas de desenvolvimento de aplicativos disponíveis.
As melhores alternativas de desenvolvimento de aplicativos móveis para uma organização variam de acordo com os tipos de aplicativos móveis que pretendem criar, em quais linguagens podem codificar e em quais dispositivos desejam executar. Algumas alternativas de desenvolvimento de aplicativos móveis incluem:
- Ferramentas multiplataforma como o Xamarin , que permitem aos desenvolvedores criar aplicativos Android e iOS usando .NET e C#.
- Ferramentas do Visual Studio para Xamarin, que usa uma única base de código compartilhada para aplicativos móveis Android, iOS e Windows.
- Ferramentas low-code ou no-code, como o Power Apps. O low-code é uma maneira simples de criar aplicativos de nível profissional sem treinamento técnico ou experiência. Saiba mais.
Recursos de desenvolvimento de aplicativos móveis
Explore os documentos do Azure para desenvolvedores móveis
Encontre as informações necessárias para desenvolver aplicativos móveis no Azure. Saiba mais sobre notificações por push, autenticação, análise e SDKs.
Tente criar um aplicativo móvel agora
Configure um pipeline de integração e entrega contínua para aplicativos Android. Conecte-se a qualquer repositório Git e tenha sua equipe em funcionamento em minutos.
Perguntas frequentes sobre o desenvolvimento de aplicativos móveis
-
A definição de desenvolvimento de aplicativos móveis pode ser ampla, abrangendo todos os processos envolvidos na criação e lançamento de um aplicativo móvel ou específica, referindo-se à codificação e à implantação do aplicativo.
Saiba mais -
As fases do processo de desenvolvimento de aplicativos móveis são estratégia, planejamento, design, desenvolvimento, teste e lançamento.
Saiba mais -
Ao decidir qual tipo de aplicativo móvel criar, é útil considerar quem serão os usuários e como o aplicativo pode atender às suas necessidades.
Saiba mais -
As melhores alternativas de desenvolvimento de aplicativos móveis para uma organização variam de acordo com os tipos de aplicativos móveis que pretendem criar, em quais linguagens podem codificar e em quais dispositivos desejam executar.
Saiba mais -
As organizações levam de três a nove meses, ou mais, quando necessário, desenvolvendo aplicativos móveis.
Saiba mais -
Embora possa levar meses para desenvolver totalmente um aplicativo móvel, aqui estão cinco dicas da Microsoft para começar agora mesmo com o desenvolvimento de aplicativos móveis.
Aprenda cinco dicas para criar aplicativos móveis -
O DevOps combina a palavra "desenvolvimento" e a palavra "operações" e é definido como a união de pessoas, processos e tecnologia para fornecer continuamente valor aos clientes. A cultura, as ferramentas e as práticas do DevOps podem ajudar funções em silos, como desenvolvimento, operações de TI, engenharia de qualidade e segurança, a coordenar e colaborar para produzir aplicativos móveis melhores e mais confiáveis. O DevOps ajuda as equipes de desenvolvimento a se tornarem mais responsivas às necessidades dos clientes, a aumentar a confiança nos aplicativos que desenvolvem e a atingir as metas de negócios da equipe mais rapidamente.
Saiba mais sobre o DevOps -
Os desenvolvedores geralmente se concentram nos recursos e processos técnicos de um provedor de nuvem, como: facilidade de implantação, gerenciamento e atualização, se ele usa interfaces e APIs padrão, se possui um sistema formal para gerenciamento de eventos integrado ao seu sistema de gerenciamento/monitoramento, se ele possui processos de gerenciamento de alterações bem documentados e se os recursos híbridos são suportados.
Saiba mais sobre como escolher um provedor de nuvem