Você está na página 1de 9

https://becode.com.

br/trajetoria-de-um-desenvolvedor-mobile/

A trajetória de um Desenvolvedor Mobile: tudo que você precisa


saber!
"Quero ser um desenvolvedor mobile! Mas por onde começo?" Confira o nosso post e descubra toda a
trajetória percorrida por este profissional!

Uma das coisas que mais ouvimos de iniciantes seduzidos pelo mundo do desenvolvimento mobile:

“Decidi o que quero fazer da vida! Vou criar um app que vai viralizar e, com isso, ficarei rico!”

Logo que isso acontece, preparo um e-mail de 5 páginas tentando explicar toda a trajetória que um
profissional precisa percorrer para chegar ao nível de um desenvolvedor mobile, tanto para plataformas
Android, iOS ou qualquer outra.

Provavelmente até perdemos o cliente após o e-mail. Existem três possibilidades:

 A pessoa nem leu o e-mail e simplesmente decidiu trocar de escola de cursos de TI;
 O indivíduo leu até o fim, chorou, quis me matar e, por fim, desistiu da ideia;
 O profissional leu, entendeu e falou: “challenge accepted!”

Pensando nisso, para evitar mais e-mails de 5 páginas (que ninguém gosta de ler), resolvi colocar tudo que sei
sobre a trajetória de um desenvolvedor mobile em um só post. Esperamos que você goste e, mais que isso,
que você diga: “Challenge Accepted!”

Conhecendo a Lógica de Programação

Pense da seguinte forma: qualquer software (mobile ou não) se propõe a solucionar um problema ou atender
a uma necessidade. Agora pense no seu cotidiano e em problemas simples, como ‘cozinhar’. Para cozinhar,
você precisa executar uma série de passos lógicos e sequenciais (ou em paralelo) para chegar a um
determinado resultado (‘comida’).
Esta solução, basicamente, é um conjunto estruturado de ações que, a partir da resolução de problemas
menores, realizam a solução de problemas maiores e, por fim, atingem o objetivo final.

Problemas computacionais não são diferentes, para serem solucionados precisam executar sequências lógicas
e bem estruturadas de passos (algoritmos). A maneira como esta sequência de passos deve ser estruturada é
apresentada quando você aprende sobre Lógica de Programação. Esse conhecimento é o primeiro passo na
jornada de qualquer desenvolvedor de softwares, independente da área de especialização.

Resumindo, pensou em aprender a programar, pensou em Lógica de Programação!

E, portanto, antes de pensar em ter o seu próprio app, é extremamente necessário que você compreenda e
saiba escrever algoritmos, bem como, dominar os demais conceitos de Lógica de Programação, entre eles:
variáveis, comentários, tipos de identificadores e suas atribuições, operações aritméticas, estruturas de
tomada de decisão e repetição, além de entender para que servem e o que são vetores.

Experiência com Linguagens de Programação

As linguagens de programação são as responsáveis por identificar e processar as sequências de passos lógicos
(algoritmo), descritos para a resolução de um problema ou necessidade. Em outras palavras, todas as
linguagens adotam os padrões de Lógica de Programação citados no tópico anterior, o que salienta ainda
mais a importância desse conhecimento para qualquer programador.

Linguagens Orientadas a Objetos

Afunilando para o mundo do desenvolvimento mobile, grande parte das aplicações móveis são desenvolvidas
com linguagens de programação que utilizam o paradigma de Orientação a Objetos. Este paradigma
possibilita ao desenvolvedor criar seu aplicativo encapsulando lógicas de negócio e escrevendo códigos
menores e mais organizados.

IMPORTANTE: o paradigma de Orientação a Objetos é muito mais que isso! Por si só já é um conteúdo
fascinante e, por isso, desenvolvemos um post específico sobre o assunto. Neste post explicamos o que é o
programação orientada a objetos (POO) e porque é tão importante para desenvolvedores. Se você ainda não
sabe exatamente o que é POO, recomendamos a leitura! Até porque você precisará dominar esse conteúdo
para ser um desenvolvedor mobile de ponta!
Qual linguagem escolher?

Para desenvolver nativamente na plataforma escolhida, você precisa aprender a programar com a linguagem
utilizada nessa plataforma: Android, iOS ou Windows Phone.

Obs: mais adiante no post, iremos explicar o que é ‘nativamente’.

 Se você é iniciante na área, recomendamos que você inicie com o Android, pois é a plataforma que
domina o mercado e, portanto, possui mais empregabilidade e potencial de mercado. Se essa for a sua
escolha, aprenda Java.
 Caso você opte pelo iOS, você terá que aprender Objective-C ou Swift. Ainda é possível desenvolver
utilizando o Objective-C, contudo, o Swift é a linguagem mais recente/moderna, a sucessora do
Objective-C. Portanto, ao que tudo indica, é o futuro da programação mobile para iOS. Na Becode,
temos um curso que ensina o básico da linguagem Swift, confira!
 Não recomendamos que você aprenda sobre desenvolvimento para Windows Phone, pois é uma
plataforma que acabou não se consolidando, principalmente no Brasil. Contudo, se ainda assim essa é
a sua vontade, opte por aprender C# ou Visual Basic.

Na Becode, você tem a opção de aprender Orientação a Objetos e Java em um só curso, dê uma olhada!

Antes de escolher, é importante…

Muita gente esquece de detalhes que são extremamente importantes na escolha por Android ou iOS. O
device! Sim, o próprio Smartphone! Claro, existem emuladores, nos quais você poderá rodar e testar a sua
aplicação no seu notebook ou PC. Contudo, estes emuladores – apesar de extremamente úteis e importantes
– são limitados e, portanto, não reproduzem a real experiência mobile.

Sendo assim, se você optar por iOS, é fundamental que você possua um iPhone ou um iPad. O mesmo vale
para o caso de você optar pelo Android. Entretanto, convenhamos, existe uma diferença grande de
valores entre um iPhone e um celular Android, certo? Sim, ser um desenvolvedor para iOS é mais caro. Isso
fica ainda mais claro no tópico que fala sobre publicação de apps nos marketplaces (Google Play e Apple
Store).

Outro ponto que limita ainda mais a escolha pelo desenvolvimento iOS é o seguinte: o desenvolvedor precisa
ter um MacBook ou um iMac rodando o sistema operacional da Apple, o MAC OS, pois, para instalar o Xcode
(ambiente de desenvolvimento do iOS), você precisa desse sistema operacional.

Até é possível emular o MAC OS no Windows, contudo, você precisa ter certeza de que o seu PC é capaz de
rodar o sistema operacional sem maiores problemas. Em outras palavras, é necessário ter um computador
poderoso para isso.

Apps Nativos x Apps Híbridos

Anteriormente, comentamos que para desenvolver nativamente para Android e iOS, você precisa saber,
respectivamente, Java e Swift (ou Objective-C). OK, isto está correto. Contudo, se você detesta Java e
qualquer linguagem de programação da Apple, nem tudo está perdido. Você pode desenvolver o seu app de
forma híbrida.
WTF!? Qual é a diferença?

Aplicativos nativos são desenvolvidos com as linguagens de programação nativas do sistema operacional,
oferecidas pelo seu Kit de desenvolvimento de software (Em inglês, SDK – Software Development Kit). Os
aplicativos nativos possuem a grande vantagem de poder acessar as funcionalidades do sistema operacional
de forma facilitada, uma vez que a linguagem de desenvolvimento é nativa ao próprio sistema.

Já os aplicativos híbridos são desenvolvidos com linguagens de programação não nativas ao sistema
operacional. Para isso, utiliza-se ferramentas (cross-platform ou multiplataforma) criadas especificamente
para esse propósito. Em outras palavras, com essas ferramentas, o leque de caminhos possíveis para o
desenvolvimento de uma aplicação mobile é ampliada. Entretanto, você ainda precisará saber sobre Lógica de
Programação e Orientação a Objetos. Isso é essencial independente do tipo de aplicação: nativa ou híbrida.

Entre as ferramentas mais conhecidos dessa categoria, destaca-se:

 Apache Cordova
 Phonegap
 Appcelerator
 Ionic
 Mobile Angular UI
 E outros

Para o desenvolvimento de aplicativos híbridos, podem ser utilizadas linguagens de programação para
desenvolvimento Web, tais como HTML, CSS e Javascript. Portanto, se para você, o desenvolvimento
utilizando estas tecnologias é mais proveitoso para os seus objetivos profissionais, vá em frente!

Contudo, recomendo que você estude as diferenças existentes entre desenvolvimento mobile nativo ou
multiplataforma e, a partir disso, tome sua decisão com base nas vantagens e desvantagens de cada um,
somado ao seu contexto atual (ideia de app ou projeto no qual você está envolvido).

Se nada impossibilitar o desenvolvimento do app utilizando ferramentas multiplataformas (apps híbridos),


não hesite! Aprenda HTML, CSS e JavaScript!

Armazenando Dados e Informações

As aplicações móveis são as principais responsáveis pela geração e pelo consumo dos dados existentes no
mundo. Diferentes aplicações geram quantidades ilimitadas de dados a cada segundo, ao mesmo passo que
consomem dados de aplicações externas. Todo esse fluxo de dados gerados precisa ser armazenado em algum
lugar.

Obviamente, as aplicações móveis possuem recursos que permitem o armazenamento destes dados. Este
que pode ser realizado de diferentes maneiras:

 Armazenamento interno: dados privados e armazenados na memória interna do dispositivo;


 Armazenamento externo: dados públicos e armazenamento em ambiente externo e compartilhado;
 Banco de dados: dados estruturados (ou não), armazenados em uma base de dados privada.

Sim, o armazenamento em Banco de Dados é a forma mais utilizada e, portanto, mais profissional. Sendo
assim, é nesse momento que eu preciso dizer:

“Sim, você precisará estudar sobre Banco de Dados!”

Grosseiramente, Banco de Dados são coleções organizadas de dados que podem ser facilmente acessados,
manipulados, gerenciados e atualizados. Para o gerenciamento de um banco de dados utiliza-se um SGBD –
Sistema Gerenciador de Banco de Dados, e pode ser um SGBD relacional ou NoSQL. Como o assunto é
complexo e de extrema importância, criamos um post que foca exclusivamente em SGBDs: o que são, para
que servem, funcionalidades e quais são os mais utilizados no mundo.

Resumo da história, o desenvolvedor mobile de sucesso precisa compreender sobre a criação e o


gerenciamento de um Banco de Dados.

Ambientes de Desenvolvimento – IDEs

Durante o desenvolvimento de uma aplicação mobile é fundamental otimizar todo tipo de processo, desde a
escrita do código até sua execução. Quando o processo de desenvolvimento é otimizado, o desenvolvedor
atinge maior produtividade e despende energia com o que é realmente necessário: a lógica da aplicação que
está sendo criada (Lógica de Programação), bem como, sua aplicabilidade com os problemas e necessidades
da vida real (Orientação a Objetos).

Sim, a vida de um desenvolvedor seria extremamente sofrida, caso não existissem os Ambientes Integrados
de Desenvolvimento – IDE. As IDEs são responsáveis por proporcionar a capacidade de gerar escrita, teste,
compilação e execução de código de forma rápida e correta.

Estes ambientes possuem diversos recursos integrados, sendo os principais:

 Editor de texto para a escrita do código;


 Compilador para, obviamente, compilar o código-fonte e gerar linguagem de máquina;
 Depurador que auxilia no processo de encontrar e corrigir os defeitos de código-fonte;
 Mecanismos de distribuição responsáveis por auxiliar no processo de criação do instalador do
aplicativo;
 Mecanismos de refatoração que permitem melhorar o código-fonte do aplicativo, tornando-o mais
limpo, otimizado e facilitando a compreensão por parte do desenvolvedor mobile (ou equipe de
desenvolvimento).

Em outras palavras, um desenvolvedor mobile precisa ter domínio completo sobre a IDE a ser utilizada. Isso
com certeza irá influenciar na qualidade final da aplicação, tanto em termos de código, quanto em termos de
experiência do usuário final. Entre as IDEs mais conhecidas, destacam-se:

 Android Studio – desenvolvimento de aplicativos para Android;


 Xcode – desenvolvimento de aplicativos para iOS.

Para mais informações e download, você pode visitar o site oficial das ferramentas: Android Studio e Xcode.
Modelando o aplicativo: conhecendo a UML

Se você já tem todos os conhecimentos apresentados acima, parabéns! Você já está preparado para participar
de projetos com clientes externos, internos, e porque não criar o seu próprio app e empreender?

Contudo, antes de iniciar qualquer novo app, é fundamental que você extraia corretamente os requisitos e as
funcionalidades que o aplicativo deverá possuir. Este levantamento de requisitos é de extrema importância,
assim você consegue identificar riscos, possíveis problemas no desenvolvimento, definir os atores envolvidos
no desenvolvimento, testes e utilização final; definir a estrutura e a arquitetura do aplicativo e fazer a
modelagem do aplicativo. Para isso utiliza-se UML!

UML – Unified Modeling Language (em português, Linguagem de Modelagem Unificada) é uma linguagem de
modelagem que permite ao desenvolvedor representar a aplicação, visando facilitar a compreensão e a pré-
implementação. Com UML, o desenvolvedor pode modelar:

 elementos (estruturais, comportamentais, grupos de elementos e entre outros)


 relacionamentos (dependências, associações, generalizações e implementações)
 mecanismos de extensibilidade (estereótipos e regras)
 diagramas (diagramas de caso de uso, diagramas de classes, diagramas de atividades, dentre outros)

Sendo assim, à medida que você vai crescendo na profissão, os conhecimentos em UML vão ficando cada vez
mais essenciais para se obter êxito no projeto e na aceitação do cliente final, seja ele externo, interno ou você
mesmo.

User Experience (UX) e User Interface (UI)

O sucesso de um aplicativo mobile está completamente conectado com uma ótima experiência
proporcionada ao seu usuário final (UX) e uma excelente interface gráfica para navegação e utilização do
app (UI). Portanto, estudar esses dois tópicos é primordial para o desenvolvedor mobile.

 Quando falamos de UI, nos referimos à visualização da tela do aplicativo em um determinado


momento. Em outras palavras, os componentes que integram a tela mobile, como exemplo, botões,
campos de texto, checkbox, tabs e entre outros elementos, além da forma como estes elementos são
posicionados na tela.
 Já UX está relacionado à dinâmica do app e a experiência proporcionada ao usuário. Tempo de
carregamento, facilidade de utilização, interação com o usuário e outros fatores que podem
influenciar diretamente na usabilidade do app.
UX e UI estão completamente conectados. Não vou dizer que é impossível, mas é raro você ter uma aplicação
com uma excelente UX, mas com uma UI desorganizada e pouco intuitiva.

Moral da história, praticamente toda aplicação mobile depende de UX e UI para ter sucesso. Assegurar que
um aplicativo possua esses requisitos não é uma obrigação unicamente do desenvolvedor. Muito pelo
contrário, irá competir ainda mais às áreas de Marketing, Design e Negócios. Contudo, se você está criando
um app por conta ou você ainda não possui uma equipe completa, é muito provável que você será o
responsável único pelo sucesso do seu app. Portanto, UX e UI serão conhecimentos cruciais para você.

Mesmo que você possua uma equipe completa, esses conhecimentos valorizam muito o profissional da área.
Sendo assim, são conhecimentos sempre bem-vindos ao desenvolvedor mobile, pois em algum momento,
durante a construção do app, você terá que se comunicar com as outras áreas para chegar a melhor solução
para o seu usuário final.

Testes para aplicativos móveis?

A fim de garantir que as funcionalidades do aplicativo estejam sendo executadas conforme o esperado, é
essencial que o profissional saiba escrever e executar testes para seus apps. Afinal de contas, o desenvolvedor
é o principal responsável pela qualidade do seu código.

Existem diferentes tipos de testes. Estes podem ser realizados para verificar:

 A interação e comunicação com o sistema operacional – testes de compatibilidade;


 Se o aplicativo demonstra lentidão – testes de desempenho;
 A capacidade de comunicação com outros aplicativos – testes de mobilidade;
 Se o aplicativo executa as tarefas que devem ser executadas – testes de funcionalidade.

Entendido isso, o profissional precisará de ferramentas para atestar a qualidade do seu código. Entre elas,
destaco o: AndroidJUnitRunner, Expresso e UI Automator (para aplicações Android); e XCTest para
desenvolvimento de aplicativos iOS.

Publicação em Marketplaces
Este tópico é mais importante para empreendedores ou desenvolvedores autônomos, àqueles que
pretendem ganhar dinheiro com o seu próprio app (monetizar). Entretanto, são conhecimentos que podem
ser extremamente úteis a qualquer profissional da área, inclusive àqueles que fazem parte de grandes equipes
de desenvolvimento. Afinal de contas, nunca se sabe o futuro. Vai que um dia você resolve publicar o seu
próprio app mobile?

Você já tem todos os conhecimentos e ferramentas para isso, sendo assim, a pergunta que fica é: por
quê não? Se você resolver disponibilizar o seu app de forma gratuita (ou paga) nos marketplaces, você
precisará passar por uma das seguintes plataformas: Google Play (apps Android) e a Apple Store (apps iOS).

Para disponibilizar os aplicativos na Google Play, o primeiro passo necessário é ter um cadastro no Google
Play Developer Console. A taxa de abertura da conta tem um custo único de U$25. A partir daí, basta enviar o
seu aplicativo pelo próprio console.

Já, para publicar na Apple Store, primeiro você precisa criar uma conta no iOS Developer Program. O iOS
Developer Program é o serviço obrigatório para quem deseja distribuir apps na loja da Apple. Assinando o iOS
Developer Program você terá acesso às ferramentas de desenvolvimento e testes. O custo individual é de
U$99 anuais. A partir daí, basta distribuir o aplicativo.

Como monetizar o meu app?

Que fique claro! Essa é uma preocupação que você deve ter na etapa de planejamento do seu app. Logo no
início do projeto! Combinado? Então, vamos ao que interessa. Existem diferentes maneiras de se monetizar
um aplicativo, entre elas:

 Versões premium: o download do aplicativo custa um determinado preço que é cobrado pelas lojas de
aplicativos. Neste caso, o marketplace recebe uma comissão pela venda do aplicativo.
 Anúncios: nesta modalidade, anunciantes pagam o proprietário do app para exibir publicidade nas
telas da aplicação. Neste caso você possui o poder de definir onde exibir os anúncios e quais exibir, de
acordo com o perfil dos seus usuários. Ex: 2048
 Apps freemium: combina o modelo gratuito e o modelo premium (pago). Neste caso, embora o
aplicativo seja gratuito, o usuário pode comprar funcionalidades extras. Modelo muito comum em
jogos. Ex: Clash of Clans
 Venda de produtos físicos: outra maneira de monetizar o seu aplicativo é a partir da venda de
produtos físicos. Neste modelo, você realiza um comércio eletrônico dentro do aplicativo,
disponibilizando um portal para que os usuários possam descobrir e comprar produtos. Ex: Netshoes
 Modelo de assinatura: nesta modalidade, o usuário é cobrado mensalmente (ou anualmente) para ter
acesso aos recursos premium de determinado aplicativo. Geralmente existem partes acessíveis
gratuitamente também. Ex: Spotify

Monetização de apps é um assunto e tanto! Acima, apenas tentamos resumir o que há de mais comum e mais
importante sobre o assunto. Para assim, tentar dar aquele incentivo inicial para quem está começando a se
preocupar com o tema. Contudo, a verdade é que não existem muitos limites quando o assunto é
monetização! Com criatividade, você pode combinar diversas formas de receita e, inclusive, criar
novos modelos de negócio.

Desistir ou “Challenge Accepted”?

O desenvolvedor mobile é um dos profissionais mais valorizados dos últimos tempos. Se você não conhecia
muito sobre essa área, bom, agora você entende o porquê de tanta valorização. Não é fácil ser desenvolvedor
mobile e é mais difícil ainda ser um profissional de ponta! Contudo, não desanime, é possível! Para tudo há
seu tempo, comece pelo básico e vá avançando conforme o seu ritmo. Particularmente, espero que este
artigo seja o ponto de partida para sua trajetória de sucesso na área e não o fim.
Se você já é desenvolvedor, procure sempre se aperfeiçoar, buscando características que o torne único como
profissional. Para evoluir na área, pratique, estude e modele soluções de problemas, programe, teste e
desenvolva mudanças!

Tente contribuir para o mundo, proporcionando soluções a problemas e necessidades. Se você tiver essa
mentalidade, com certeza há um espaço imenso para você nessa área! Desde que você possua os
conhecimentos ou equipe necessária para isso!

Boa sorte! Esperamos que o post sirva como um norte para você iniciar ou moldar a sua carreira como um
desenvolvedor mobile. Qualquer dúvida, sugestão, crítica, enfim… fique á vontade para deixar um comentário
que logo iremos responder! Caso você deseje começar a aprender Android ou iOS ainda hoje, confira nossos
cursos na área, você irá gostar! Até a próxima!

 Os 13 conhecimentos essenciais a um programador de sucesso!

 Distribuições Linux: características, diferenças e objetivos!

Erick Scudero

Especialista em Marketing Digital e apaixonado por tudo que envolve o universo de tecnologia e comunicação.
Durante sua jornada na terra dos cangurus (Austrália), atuou em diversos projetos prestando consultoria em
questões de UX, SEO, Marketing Digital e modelos de negócio com foco em startups. É cofundador da Becode,
da M2up e instrutor de cursos presenciais na TargetTrust.

Você também pode gostar