Neste artigo, falaremos sobre o processo de desenvolvimento de aplicativos móveis para mensagens. Você está prestes a descobrir em que etapas consiste esse processo, quais recursos você deve implementar no aplicativo de mensagens, quanto tempo (e dinheiro) será necessário e quais fatores influenciam o custo de desenvolvimento.
Depois de escolher um parceiro técnico para a criação do mensageiro, seu processo de cooperação prosseguirá de acordo com o seguinte algoritmo:
Autorização. O processo de autorização em aplicativos de mensagens ocorre com a ajuda de um número de telefone, e-mail ou conta no Facebook, Apple e Google. O aplicativo geralmente requer confirmação por meio de um link ou SMS. Por exemplo, quando um usuário insere seus dados (número de telefone) no WhatsApp, o aplicativo lhe envia um SMS, que é processado automaticamente no aplicativo. Isto é muito conveniente.
Perfis de usuário. Os usuários podem adicionar contatos de familiares, amigos, colegas e conhecidos. Eles também podem adicionar uma imagem do usuário e uma breve descrição sobre si mesmos e/ou seu trabalho e visualizar o histórico de mensagens. Além disso, a conexão com o suporte ao cliente e recursos ou compras/seguimentos em aplicativos para troca de mensagens geralmente também são implementados nos perfis dos usuários.
Configurações do aplicativo de mensagens. Nesta seção, os usuários podem ativar ou desativar notificações de leitura de mensagens, alterar uma imagem de usuário ou nome de perfil, alterar número de telefone, adicionar novos dispositivos, gerenciar contatos bloqueados, alterar status, excluir suas contas, definir os parâmetros do perfil, por exemplo, notificações de chat, etc. Além disso, você deve fornecer aos usuários do messenger a possibilidade de definir um nível de confidencialidade para suas mensagens e dados.
Importando contatos. Este recurso permite que você transfira sua lista de contatos do aplicativo de mensagens WeChat, WhatsApp, Facebook Messenger, Telegram, Skype, cartões SIM ou outra fonte para o seu aplicativo com apenas alguns cliques. Além disso, o recurso de troca rápida de contatos escolhidos com pessoas próximas por meio de chat, SMS ou comunicação sem fio (Wi-Fi, Bluetooth) está ganhando popularidade. Você pode fazer isso com a ajuda de um código QR ou com uma ação especial: sacudir simultaneamente os telefones próximos.
Você também deve criar um mecanismo de comparação de contatos de fontes externas com os registros do banco de dados do aplicativo. Se for encontrada uma correspondência, o aplicativo não transferirá esse contato para sua base, o que permite evitar a duplicação de contatos na listagem de contatos do aplicativo de mensagens (é um problema comum e irritante).
Mensagens de texto instantâneas. Este é o principal recurso da maioria dos aplicativos de mensagens, mesmo que eles se considerem aplicativos para mensagens de áudio ou vídeo – as pessoas enviam mensagens de texto com mais frequência.
Você pode implementar esse recurso de duas maneiras. A primeira implica que as mensagens dos usuários passem pelo servidor e nele sejam armazenadas. Da mesma forma, a interação entre os usuários e o servidor acontecerá através do protocolo HTTPS com criptografia SSL. A segunda opção implica que as mensagens serão enviadas de usuário para usuário. A única autenticação é feita pelo servidor central.
Chamadas de áudio e vídeo. Apesar de a ideia principal dos aplicativos de mensagens serem as mensagens de texto instantâneas, a maioria dos usuários gostaria de ter a possibilidade de se comunicar de outras formas de vez em quando. Este recurso pode ser implementado nas seguintes variações: apenas chamadas e mensagens de áudio, apenas chamadas e mensagens de vídeo ou chamadas e mensagens de áudio e vídeo em grupo.
Tecnicamente, esta funcionalidade pode ser implementada de diversas maneiras. Por exemplo, o WhatsApp está usando uma biblioteca de comunicação multimídia com PJSIP de código aberto para implementar a transmissão de voz e áudio via IP (VoIP). PJSIP é escrito em C e usa uma API de alto nível que combina o protocolo de sinalização SIP com uma estrutura multimídia e um recurso de bypass NAT. Esta API é adequada para todos os tipos de sistemas, incluindo os móveis.
Adesivos, máscaras, emojis. Eles transmitem emoções às mensagens e podem tornar a comunicação mais viva ou substituir frases inteiras, mas apenas desde que tenham uma boa aparência. Se o design das máscaras ou dos sorrisos não evocar boas emoções, as pessoas, na melhor das hipóteses, não os usarão e, na pior das hipóteses, apagarão a sua aplicação de mensagens (um cenário muito mais provável).
Geolocalização. A geolocalização pode ser integrada ao aplicativo de mensagens por meio da API do Google Maps ou de dispositivos com Android ou Map Kit para dispositivos com iOS da Apple. Isto dá a possibilidade de determinar a região do usuário para definir automaticamente o idioma de interface necessário. Você também pode permitir que os usuários compartilhem sua localização e forneçam um filtro geográfico para máscaras e emojis, assim como no Snapchat.
Criptografia ponta a ponta (E2EE). Se você deseja criar um aplicativo de mensagens, é necessário fornecer segurança aos dados pessoais dos usuários. Na maioria dos aplicativos, isso é obtido por meio de um método chamado criptografia ponta a ponta (E2EE). Isso implica que um servidor não conhece as chaves secretas (o sistema criptografa e descriptografa os dados com a ajuda delas) e não tem envolvimento na criptografia – ela passa “através” do servidor.
No WhatsApp, essa criptografia é baseada no protocolo Signal, em cuja implementação são utilizados os algoritmos ECDH em Curve25519, AES-256, AES-GCM, HMAC-SHA256 e HDKF. A criptografia ponta a ponta no WhatsApp se estende a todos os tipos de mensagens: texto, áudio, vídeo, arquivos multimídia.
Notificação. Em aplicativos de mensagens modernos, o usuário recebe uma notificação de uma mensagem pessoal ou de grupo por meio de notificações de um aplicativo móvel. Dependendo da profundidade do desenvolvimento desse recurso, pode ser uma simples notificação push e o flash de um indicador; uma notificação com o texto completo de uma nova mensagem na tela do smartphone; uma notificação com o texto de uma nova mensagem na tela e a possibilidade de respondê-la sem abrir o aplicativo de mensagens. Este recurso pode ser implementado por meio do Google Cloud Messaging ou Apple Push Notifications.
Monetização. Se você pretende desenvolver um aplicativo móvel para ganhar dinheiro com ele, você precisa determinar previamente um modelo de monetização. A opção mais popular é uma combinação de modelo freemium com publicidade.
Freemium implica que a parte principal da funcionalidade do aplicativo será gratuita; portanto, os usuários poderão enviar e receber mensagens sem pagar nada. Mas terão a possibilidade de ampliar as capacidades do aplicativo comprando adesivos exclusivos, aumentando o número de videochamadas, aumentando o número de membros em chamadas em grupo e assim por diante.
Pilha de tecnologia e API. É um conjunto de diversas ferramentas de desenvolvimento usadas durante a criação de aplicativos de mensagens móveis, sites e outros softwares. A pilha de tecnologia geralmente é dividida em front-end, back-end e API. Um frontend é uma interface de usuário e outros elementos com os quais o usuário final interage. Pode-se dizer que é tudo o que acontece no dispositivo do usuário. Aqui está um exemplo de pilha de tecnologia para desenvolvimento de aplicativos de mensagens móveis:
Backend é uma parte de hardware/software do serviço responsável pela implementação da lógica e funcionalidade do aplicativo de mensagens fora do dispositivo do usuário. Aqui está um exemplo de pilha de tecnologia para um mensageiro de backend:
Localização do desenvolvedor. É importante porque os salários médios de designers de UX/UI, programadores, analistas de negócios, gerentes de projeto, engenheiros de controle de qualidade e outros especialistas podem variar muito em diferentes países. Assim, a tarifa média de um especialista nos EUA é de US$ 95 por hora, na Grã-Bretanha e na Europa Ocidental — US$ 67 por hora, na Europa Oriental — US$ 37 por hora, na Ásia — US$ 25 por hora.
Curiosamente, apesar dessa diferença salarial, a qualidade do trabalho de um especialista dos EUA e da Ucrânia é a mesma. Por esta razão, Apple, Microsoft, Dell, IBM e outras empresas americanas de TI dedicam constantemente uma parte do desenvolvimento dos seus projectos ao outsourcing para países «mais baratos». Aqui está o custo estimado do desenvolvimento de um aplicativo de mensagens móveis, dependendo de sua presumível complexidade e da localização do desenvolvedor:
Desenvolver seu próprio aplicativo de mensagens exige muito esforço, o que tem um impacto significativo no custo. O maior desafio é a velocidade e a escalabilidade do aplicativo. Cada usuário escreve de 10 a 200 mensagens todos os dias, anexando fotos, vídeos e arquivos de áudio. Dado que seu aplicativo será usado por milhares, e possivelmente milhões, de usuários, você precisa ter uma arquitetura que possa lidar com milhões de mensagens todos os dias. Os servidores devem ser dimensionados automaticamente à medida que os dados aumentam.
Vale a pena prestar atenção especial às funções de chamadas de áudio e vídeo. Não é uma tarefa fácil implementar comunicação estável sob carga pesada. Considerando os desafios que precisarão ser superados, o custo de desenvolvimento de um aplicativo de mensagens ficará entre US$ 100.000 e US$ 300.000 e levará aproximadamente 6 meses de desenvolvimento. Se você deseja criar uma opção mais simples, onde haverá um pequeno número de usuários e recursos limitados, o custo dessa solução pode variar de US$ 40.000 a US$ 80.000 e levará de 3 a 4 meses para ser desenvolvido.