O desenvolvimento mobile passou a se tornar uma tarefa importante a partir do momento em que a sociedade se viu tecnológica e portátil. Com a penetração dos dispositivos móveis nos cotidianos, os mobile apps tiveram um vasto terreno fértil para germinar.
Com isso, ganhamos dois diferentes cenários sobre o desenvolvimento mobile, mas que convergem: empresas que vêem os mobiles como solução para seus clientes e também os profissionais que atenderão essas demandas de desenvolvimento.
Por isso, neste artigo irei te contar sobre o cenário do desenvolvimento mobile, perpassando por ambas as perspectivas. Leia como quiser, escolhendo por onde gostaria de começar:
Vamos a leitura?
Breve histórico dos aplicativos
Os aplicativos móveis, por definição, são softwares desenvolvidos exclusivamente para dispositivos móveis como smartphones, tablets e wearables. Este é o cenário que vemos hoje, sendo os aplicativos plataformas com diversas funcionalidades que nos auxiliam no dia a dia, para além dos jogos mobile.
O consenso geral da internet diz que o primeiro aplicativo foi o jogo da cobrinha, o Snake, aquele presente nos saudosos celulares dos anos 2000.
Contudo, o formato dos aplicativos como conhecemos hoje começou com a Apple ao lançar a App Store e 500 aplicativos. Este acontecimento se deu no ano seguinte ao lançamento do primeiro iPhone, no histórico discurso de Steve Jobs que mudou o cenário dos dispositivos mobile.
Embora a Apple tenha sido a precursora desse cenário dos aplicativos, foi o Android que trouxe a democratização ao acesso à internet no Brasil, como relata a Bain & Company em pesquisa.
Uma vez que os smartphones se tornaram um dos principais meios de conexão à internet, movimento corroborado com o Mobile First Indexing do Google, e o preço dos dispositivos com o sistema Android serem mais acessíveis, a população brasileira expandiu a conexão.
Com isso, o mercado foi e é bastante otimista, despontando em volume de soluções de software e hardware (dispositivos inteligentes como TV, celulares, relógios etc).
Segundo a International Data Corporation (IDC), “a receita mundial para aplicativos corporativos chegará a US$ 483,1 bilhões em 2027, com uma taxa de crescimento anual composta (CAGR) de cinco anos de 9,6%”.
Ou seja, há muito a se movimentar no segmento de desenvolvimento mobile.
Os tipos de aplicativos e desenvolvimento
Possuímos, grosso modo, três principais tipos de aplicativos:
Nativos
Os aplicativos nativos são aqueles desenvolvidos exclusivamente para plataformas específicas. Uma vez que o iOS, Android, macOS, TizenOS e outros são sistemas específicos, cada um possui sua particularidade. Assim, o desenvolvimento para eles deve ser adaptado e exclusivo. Isso significa que o código feito para Android não funcionará em hardwares da Apple e vice-versa.
Híbrido e cross-platform
Apesar dos nativos, há também a alternativa de um desenvolvimento híbrido, isto é, um código capaz de ser compilado para outras plafatormas.
Os híbridos costumam ser associados aos aplicativos desenvolvidos em Javascript e adicionado camadas nativas para funcionar em diferentes OS.
Por outro lado, os aplicativos cross-platforms são gerados a partir de frameworks que compilam para o formato nativo e para múltiplas plataformas, o que justifica o nome para o tipo de desenvolvimento mobile.
Tecnologias para desenvolvimento mobile
A breve discussão do tópico acima não contempla todas as possibilidades que o desenvolvimento mobile trás. É a partir dessas tecnologias, por exemplo, que são definidas as carreiras de programação, pois não é apenas ser “dev mobile” e sim “desenvolvedor iOS nativo”, “desenvolvedor Ionic”, etc.
Vamos conhecer as tecnologias:
Swift
Essa é a linguagem lançada em 2014 pela Apple para substituir o Objective-C, tecnologia utilizada nos primórdios dos aplicativos para os OS da empresa.
A premissa do Swift é entregar softwares mobile nativos com maior performance e mais amigável aos desenvolvedores.
Kotlin
Da mesma forma que o Swift, o Kotlin surgiu em 2011 como substituto do Java para o desenvolvimento Android nativo.
Flutter
Chegamos ao caso de desenvolvimento mobile cross-platform. Este framework do Google foi criado para a linguagem Dart e ele é capaz de gerar softwares para plataformas cruzadas, o que justifica o nome. Assim, com um mesmo código é possível gerar versões para Android, iOS, desktop, web, dentre outras possibilidades.
Java
O Java é uma das linguagens de programação mais populares, pois sua criação foi na década de 90. A linguagem tem a vantagem de ser multiplataforma, servindo para desenvolvimento desktop, mobile, engenharia de dados, entre outros.
Essa foi a linguagem escolhida para o desenvolvimento nativo Android antes do surgimento do Kotlin.
React Native
O React é o framework desenvolvido pela equipe do grupo Meta, quando a empresa ainda tinha Facebook como nome-chefe. Este framework surgiu para o desenvolvimento web, que teve adesão até mesmo do falecido Twitter, hoje X.
Com as necessidades de desenvolvimento mobile e tecnologias visando a responsividade para dispositivos móveis, o Facebook também lançou o React Native, este específico para o desenvolvimento mobile.
O framework Javascript é capaz de renderizar os componentes em Java e Objective-C.
Ionic
Também para desenvolvimento híbrido, o Ionic é o framework open source para o desenvolvimento mobile. O framework cria diversas camadas que tornam possíveis a comunicação com os hardwares dos dispositivos.
Contudo, o Ionic é pouco popular na comunidade de desenvolvedores, uma vez que oferece uma baixa performance e seus aplicativos são considerados legados. Inclusive, é comum perceber a movimentação de empresas refazendo seus aplicativos em tecnologias mais modernas como o próprio Flutter.
Xamarin
O framework mobile da Microsoft é uma vantagem para os desenvolvedores acostumados com a linguagem C# e biblioteca .NET. Em função da empresa que o detém, o Xamarin é integrado à IDE Visual Studio e as soluções em nuvem Azure.
Desenvolvimento de aplicativos em software houses
Há muitas coisas possíveis de serem respondidas sobre o funcionamento do desenvolvimento mobile em software houses. As metodologias de desenvolvimento, os tipos de contrato bem como as competências técnicas são questões que variam de empresa para empresa, assim como os segmentos de aplicativos que possuem o know how.
Ao invés de falar de forma geral, irei contar mais sobre o cenário da Usemobile, proprietária deste blog. Vamos lá?
Demandas de desenvolvimento mobile
Assim como toda fábrica de aplicativos, a Usemobile se dedica à prestação de serviço de desenvolvimento mobile. No nosso caso, nativo e também cross-platform.
Os clientes que já atendemos, e dos que continuam conosco, vieram com diferentes demandas:
- Criar aplicativos do zero (Eva Benefícios);
- Redesign (Bosch);
- Funcionalidades incrementais (Laboratório Sabin);
- Manutenção por horas de desenvolvimento (Unimed SJRP);
- White label (Mobdrive)
- Desenvolvimento para smartwatch (12Min).
A primeira etapa é sempre o contato comercial, a qual os clientes expõem quais são suas dores, as tecnologias que precisam para seus projetos, os desafios esperados para a parceria e, por fim, o tipo de contrato de terceirização que gostariam de estabelecer.
A partir disso, nosso time técnico faz uma avaliação dos requisitos para definir se temos as tecnologias necessárias, qual o grau de complexidade do projeto, estimativa preliminar do projeto, dentre outros itens importantes na hora de orçar um projeto de desenvolvimento.
Essa é uma fase mais burocrática antes que sejam colocadas as mãos no Figma e no código.
Tipos de contratos de desenvolvimento mobile
Para cada tipo de contrato de terceirização, uma necessidade diferente é atendida:
Escopo fechado
Quando o projeto já possui os requisitos definidos, bem como funcionalidades, tecnologias, regras de negócios e prazos, podemos considerá-lo um escopo fechado. Isto é, um caso de desenvolvimento que já há uma previsibilidade de começo, meio e fim;
Alocação de squads
Um dos motivos que fomenta a terceirização do desenvolvimento mobile é justamente a falta de equipe qualificada. Isso não acontece necessariamente porque faltam pessoas competentes, e sim porque as pessoas-chave da equipe precisam lidar com questões mais prioritárias, o que torna a terceirização uma vantagem.
Assim, com a alocação de squads é possível alugar uma equipe multidisciplinar para atender demandas levantadas pelo time de tecnologia e produto dos clientes.
Horas de desenvolvimento
A lógica é bastante parecida com a alocação de squads, com o diferencial que o referencial para a terceirização está no tempo de dedicação. É chegar para nós e falar: “temos as necessidades de desenvolvimento Android nativo, mas possuo budget para apenas 100 horas mensais das suas equipes”.
Com base nisso, nossa equipe de gestão ficará responsável por controlar o tempo de dedicação, além de toda a organização dos processos de desenvolvimento.
Processos de desenvolvimento mobile Usemobile
Sem dúvidas, toda software house se apoia em metodologias ágeis de desenvolvimento. Uma vez que o Manifesto Ágil foi findado, o pensamento orientado às boas práticas de desenvolvimento ficou aguçado. Não é diferente por aqui.
O Scrum foi escolhido como nosso método ágil. Dessa forma, nossas equipes contam com Product Owners e também Scrum Masters para atender as necessidades de stakeholders e dar subsídios para as atividades operacionais.
UI/UX Design
Uma vez finalizada a burocracia com a assinatura do contrato, começa a mão no Figma e no código.
A primeira etapa é quanto ao design, a qual os UI/UX designers entenderão os desafios do projeto para propor a melhor solução de experiência para os usuários através da interface. É através das telas que todo o comportamento será planejado, o que requer uma visão analítica assertiva, assim como um bom conhecimento a respeito dos usuários.
Análise de requisitos
A segunda etapa é a análise aprofundada dos requisitos para que toda a documentação necessária seja escrita. Essa é uma etapa fundamental para evitar erros de desenvolvimento como bugs, confusões com regras de negócios, bem como evitar que o projeto se torne legado eventualmente, pois facilitará a manutenção do aplicativo.
Kick-off do projeto e estimativas
Nos finalíssimos momentos antes de cair em desenvolvimento temos o kick-off. Durante esse momento serão apresentados todos os pormenores do projeto com o objetivo de refinar detalhes e amenizar ao máximo as dúvidas antes da fase de coding.
Por fim, é feita as estimativas necessárias para cada tarefa do projeto. Afinal, o projeto é repartido em diversas tarefas para que seja realizado em partes, facilitando o acompanhamento e tendo maior controle do progresso do desenvolvimento. Cada tarefa é o que chamamos de “cards”, que são administrados em painéis como o Github.
Desenvolvimento
Com todos os ritos do Scrum em dia, o desenvolvimento é iniciado. Cotidianamente são realizadas as dailys com todos os envolvidos para acompanhar os avanços e os impedimentos do projeto para que o Scrum Master possa saná-los e o PO responder pelo cliente.
Dúvidas sanadas?
Resumir em pouco mais de 1800 palavras é pouco para descrever sobre o expansivo universo de desenvolvimento mobile. De toda forma, este foi o nosso guia inicial que serve para iniciantes na programação, assim como pessoas interessadas em entender do funcionamento do desenvolvimento a partir da visão de uma software house.
Se ainda houver alguma dúvida, deixe nos comentários que farei questão de respondê-la! Você pode também se interessar pela leitura de como contratar desenvolvedores de aplicativos.
Se a jornada da Usemobile fez sentido para seu projeto, solicite um orçamento para traçarmos uma história de sucesso juntos!
Leve a potência mobile para seu negócio
Os squads de desenvolvimento ágil da Usemobile são a solução para alavancar os resultados da sua empresa. O trabalho é todo nosso para que sua empresa usufrua dos resultados.