Carreira em Desenvolvimento Mobile
Carreira em Desenvolvimento Mobile
Carreira em Desenvolvimento Mobile
Desenvolvimento
Mobile
Joas Antonio
O que é um aplicativo mobile?
• É fácil notar que o uso da tecnologia mobile nos últimos anos deixou as relações
humanas mais dinâmicas. Criou-se um grande espetáculo no cenário digital e os
grandes astros em crescente atuação são os aplicativos (ou Apps). Não é preciso
ir muito longe para notar as pessoas cabisbaixas interagindo com seus
smartphones, phablets e afins por longos períodos. Com certeza você já ouviu
alguém se perguntando: será que já inventaram um aplicativo mobile para isso?
•
Os números falam por si só! Segundo a Teleco, em janeiro de 2017 existiam 243,4
bilhões de dispositivos mobile no Brasil, com uma média de 117,65 cel/100 hab.
Segundo a Mobiletime uso de apps no ano de 2015 aumentou 58% em relação a
2014.
•
A facilidade de obter informações e a possibilidade de encurtar caminhos foram
fatores fundamentais para que as pessoas aderissem em grande número ao
mercado digital.
Linguagens de Programação Mobile
• Existem inúmeras linguagens de programação voltadas para o desenvolvimento em
Android. Mas você já parou para pensar sobre qual delas escolher
profissionalmente? Como resolver esta questão?
• Antes de tudo, vamos definir algumas regrinhas, para manter um pouco de coerência
nas análises:
1.Escolher uma linguagem de programação não é algo trivial: por mais que eu
coloque boas opções por aqui, o seu “match” é o mais importante, pois é você quem
lidará com os vícios e as virtudes de sua escolha.
2.Desenvolvimento “Híbrido” e Desenvolvimento “Nativo”: em nosso escopo eu irei
diferenciar as linguagens que usam um ou outro. Abordaremos brevemente esse
conceito.
3.Referências: como base para seleção das linguagens, irei utilizar o Índice da Tiobe
junto ao ranking do Stackoverflow, já que essas bases tem bons métodos para a
catalogação dos resultados e são de fácil compreensão.
4.Aderência: as linguagens citadas são as mais “aderentes” ao mercado atual. Sem
espaço para linguagens esotéricas que não geram resultados significantes na prática.
Sistema Operacional Android
• O Sistema operacional Android, criado pela Android Inc em
2003 e adquirida pela Google em 2005, usa um típico Kernel
Linux.
• Este Kernel conta com algumas modificações,
principalmente quando se trata de gerenciamento agressivo
de memória, consumo de energia e outras melhorias
específicas para dispositivos móveis.
NDK
• Todas as linguagens de programação para Android contam com,
ao menos, um de dois kits de desenvolvimento. O primeiro é
o NDK (Kit de Desenvolvimento Nativo).
• Este pode ser manipulado utilizando C/C++ ou Java.
• A Google só indica sua utilização para os seguintes casos:
• Conseguir mais desempenho de um dispositivo para atingir baixa
latência ou executar apps de computação intensa, como jogos ou
simulações físicas;
• Reutilizar as próprias bibliotecas C ou C++ ou as de outros
desenvolvedores.
• Como desenvolvedor de aplicativos, dificilmente você vai bater
de frente com ela, mas é bom saber de sua existência.
SDK
• O segundo kit de desenvolvimento é o Android SDK (Kit de
Desenvolvimento de Software ou DevKit).
• Trata-se de uma plataforma de mais alto nível, responsável pelo
ecossistema de desenvolvimento da plataforma.
• O Android SDK inclui projetos de exemplo com código fonte,
ferramentas de desenvolvimento, emulador e outras bibliotecas
que auxilia os desenvolvedores a utilizarem a plataforma.
• Complementando o assunto, chegou a vez de falarmos sobre um
tema delicado e motivo de muita polêmica entre
desenvolvedores: desenvolvimento nativo e desenvolvimento
híbrido.
Desenvolvimento Nativo
• Em desenvolvimento nativo, é necessário um especialista na
linguagem específica daquela plataforma que se deseja
gerar um aplicativo, seja Android ou iOS.
• Também possui acesso à todos os recursos do dispositivo,
com bom desempenho (acelerômetro, giroscópio,
geolocalização, etc), como são desenvolvidos
especificamente para cada plataforma, explora muito bem
toda a UI
Desenvolvimento Hibrido
• Já em desenvolvimento híbrido, não é necessário um especialista
em linguagem nativa, muitas vezes utiliza-se linguagens que não
são específicas daquela plataforma, e com um único código
fonte, pode-se gerar aplicativos para plataformas diferentes
(Android e IOS).
• Respeita-se a UI do sistema operacional do dispositivo, porém,
utiliza um navegador embutido no aplicativo para demonstrar ao
usuário.
• Cada uma dessas modalidades tem seu espaço no mercado,
basicamente esse pode ser considerado mais um indicador,
busque também por vagas em mobile, só que levando em conta
que produto te agradaria mais trabalhar.
Linguagens de Programação - Java
• Java: Basicamente como já mencionado anteriormente, o SDK é
baseado nesta linguagem, principalmente dada a sua grande
base instalada de usuários e maturidade da plataforma.
• Principais bibliotecas para Java
• Retorfit (Rest Apis);
• Rx Java (Fluxo assíncrono de dados);
• Picasso (Down/Up imagens e caching).
• De relevante do Java, pode-se esperar, geralmente, melhor
desempenho quando comparado com soluções híbridas, tipagem
estática e documentação farta na internet.
Linguagens de Programação – C#
• C# (C Sharp) é bastante semelhante ao Java e por isso é indicado para o desenvolvimento de
aplicativos Android.
• Outro motivo para aprender C# se dá pelo fato de que hoje é a uma das mais importantes
linguagens do mercado entreprise.
• É também uma linguagem Orientada a Objetos, mas com uma sintaxe mais simples do que
Java, o que torna a codificação aparentemente mais fácil.
• Vários recursos de C# auxiliam na construção de aplicativos robustos e duráveis:
• A coleta de lixo recupera automaticamente a memória ocupada por objetos não utilizados.
• A manipulação de exceção fornece uma abordagem estruturada e extensível para detecção e
recuperação de erros.
• E o design de tipo seguro torna impossível a leitura de variáveis não inicializadas, para indexar
matrizes além de seus limites ou para executar conversões de tipo desmarcadas.
• A simplicidade do C# é tamanha – em comparação com o Java – que qualquer desenvolvedor
iniciante no aprendizado de códigos pode começar e avançar na linguagem sem muitas
dificuldades.
Linguagens de Programação – LUA
• Estamos falando da linguagem de scripting Lua, poderosa e fácil de
aprender, com Corona SDK.
• Caso não conheça, Corona é um framework que lhe deixa criar jogos e
aplicativos para mobile, desktop, TVs e tudo mais que rode Android.
• Existem alguns benefícios em usar o Corona SDK para desenvolver
aplicativos Android. Os devs por trás da Corona dizem que seu
produto permite que os desenvolvedores trabalhem em
aplicativos móveis com uma velocidade dez vezes maior.
• Ele tem um simulador integrado, o que significa que os
desenvolvedores podem ver como o aplicativo ou jogo está
progredindo conforme as linhas de código são desenvolvidas.
• O Corona SDK também possui recursos para conteúdo gráfico e
interatividade em jogos e aplicativos Android. Também inclui uma
grande variedade de opções de design.
Linguagens de Programação – KOTLIN
• Kotlin é uma linguagem de programação reconhecida pela Google que pode ser usada como
alternativa ao Java para desenvolvimento de aplicativos Android. E geralmente é isso mesmo
que ocorre.
• Ele pode interoperar com Java e é executado na Java Virtual Machine. Digamos que se
você usar o iIntelliJ, a interoperabilidade do IDE é perfeita, o código pode ser:
• Refatorado;
• Pesquisado;
• Navegado
• Preenchido automaticamente.
• Tudo isso como se o código Kotlin fosse Java e vice-versa. Há suporte completo para
depuração, teste de unidade, criação de perfil e assim por diante.
• A grande diferença desta linguagem é que ela remove alguns recursos desnecessários do Java.
Também elimina a necessidade de terminar todas as linhas com um ponto e vírgula.
• Resumindo, entre as linguagens de programação Android, Kotlin pode ser considerada como a
mais agradável para iniciantes e também pode ser usado como um “ponto de entrada” para o
desenvolvimento de aplicativos em Android.
Linguagens de Programação – JAVASCRIPT +
HTML + CSS (PHONEGAPE)
• Os aplicativos Android também podem ser criados com HTML,
CSS e JavaScript usando Adobe PhoneGap no Apache Cordova.
• O framework PhoneGap permite criar aplicativos híbridos que
são mostrados por meio do “WebView”, mas empacotados como
um aplicativo.
• A estrutura do PhoneGap dificilmente requer muita
programação, exceto para JavaScript.
• O PhoneGap, basicamente como o nome sugere, apenas
preenche uma lacuna, dando aos desenvolvedores de aplicativos
Android acesso a recursos do telefone, como a câmera ou o
acelerômetro.
Carreira
O que estudar?
Iniciando Carreira
• Se você está iniciando, principalmente na área de TI, aqui vai
algumas recomendações:
- Obtenha conhecimentos fundamentais sobre informática (O
que é um Software, O que é um Hardware);
- Desenvolva a Lógica da Programação, estude bem, pois vai
ajudar a você entender inúmeras linguagens;
- Comece desenvolvendo aplicativos básicos com uma
linguagem que você se simpatize;
O que preciso dominar?
• De modo geral, seja optando pela graduação ou pelo aprendizado próprio, o
desenvolvedor de aplicativos precisa dominar os seguintes conhecimentos:
•
• - Lógica de Programação
• - Linguagem de programação para Android (Java, Reactive Native, Node Js)
• - Linguagem de Programação para iOS (Objective-C ou Swift)
• - Banco de Dados (MySQL, SQLite, Postgresql)
• - Conhecer os Ambientes Integrados de Desenvolvimento - IDE (Android Studio e Xcode
são os mais conhecidos)
• - UML (Linguagem de Modelagem Unificada)
• - Maketplaces (Google Play e Apple Store são as principais), entre outros.
Exemplo de vagas
Exemplo de vagas
Exemplo de vagas
Exemplo de vagas
Aonde estudar?
Dicas e Sites
Fundamentos computacionais
• Você pode fazer uma série de cursos na Udemy sobre Informática do
Básico ao Avançado
• https://www.udemy.com/course/curso-de-informatica-completo/
• https://www.udemy.com/course/hardware-basico-de-computador/
• https://www.udemy.com/course/hardware-e-formatacao/
Lógica e Linguagens de Programação
• Existem cursos que te dá uma boa base sobre desenvolvimento web e
ensina você a programar e criar sites, banco de dados e entender
como funciona uma aplicação, API e até mesmo uma aplicação
mobile;
• https://www.udemy.com/course/curso-logica-de-programacao-
rapido-e-pratico/
• https://www.udemy.com/course/programacao-web-para-divulgacao-
cientifica/
• https://www.udemy.com/course/php-mysql-x/
Desenvolvimento Mobile
• Alguns cursos de desenvolvimento Mobile para Android;
• https://www.udemy.com/course/introducao-ao-desenvolvimento-de-
apps-android-com-java/
• https://www.udemy.com/course/curso-completo-do-desenvolvedor-
android/
• https://www.udemy.com/course/android-studio-desenvolvimento-
profissional-de-apps-java-completo/
Formação para Desenvolvedor Mobile
https://www.igti.com.br/custom/desenvolvedor-mobile-apps/
Cursos
Gratuitos
• https://www.udemy.com/cou
rse/desenvolvedor-android-
iniciante/
• https://www.alura.com.br/cu
rso-online-android-sua-
primeira-app-mobile
• https://www.treinaweb.com.
br/categoria/desenvolviment
o-mobile
• Acesse os dois últimos sites e
pegue a degustação gratuita
da plataforma
Tempo para se tornar um bom
desenvolvedor?
• Vai variar a dedicação e comprometimento com estudo, pelo menos
reservar 1 hora de estudo e tentar criar um projeto e publicar nas
redes sociais o seu esforço como no LinkedIn. Com certeza em pouco
tempo oportunidades vão surgir.
• Alguns vídeos para ajudar:
• https://www.youtube.com/watch?v=5wNqHwflvSo (Como iniciar
como Dev Mobile)
• https://www.youtube.com/watch?v=6YnSIyoFaAE (Dicas Dev Mobile)
• https://www.youtube.com/watch?v=ZtMzB5CoekE (Como aprender a
programar)
Técnicas para estudar
• Vai variar a dedicação e comprometimento com estudo, pelo menos reservar 1
hora de estudo e tentar criar um projeto e publicar nas redes sociais o seu
esforço como no LinkedIn. Com certeza em pouco tempo oportunidades vão
surgir.
• Alguns vídeos para ajudar:
• https://www.youtube.com/watch?v=5wNqHwflvSo (Como iniciar como Dev
Mobile)
• https://www.youtube.com/watch?v=6YnSIyoFaAE (Dicas Dev Mobile)
• https://www.youtube.com/watch?v=ZtMzB5CoekE (Como aprender a programar)
• https://www.youtube.com/watch?v=z-siDHLMJyU&t=87s (Como estudar)
• https://www.youtube.com/watch?v=ZmWVJ-vQLEs (Estude menos e estude
melhor)