Como se tornar um desenvolvedor full-stack: parte 3

Publicados: 2017-12-02

Este post é o terceiro e último da série sobre como se tornar um desenvolvedor full-stack. Este artigo fala especificamente sobre o desenvolvimento de aplicativos móveis. Leia aqui para saber mais sobre desenvolvimento de front-end e back-end.
Quando Steve Jobs lançou o iPhone em 2007, deu início à maior revolução que o mundo testemunhou desde a imprensa. Os smartphones conseguiram penetrar em quase todos os países do globo. Até os mais pobres parecem possuir um tanto que a vida sem eles parece inconcebível.

Motivação

Existem certos aplicativos que fazem sentido apenas quando executados em um telefone. Veja o Uber, por exemplo. O Uber precisa saber sua localização exata por meio de GPS. Um aplicativo Uber para desktop não faria muito sentido.
Outro problema é que a maioria do seu público abrirá seu aplicativo por meio de um telefone, mesmo que seja um que tenha sido desenvolvido para navegadores. Nesses casos, é imperativo que você garanta que a experiência seja perfeita e que muitos dados não sejam consumidos. Finalmente, existem diferenças sutis entre interagir usando cliques do mouse e toque. Seu aplicativo deve garantir que ele se comporte bem em ambos os cenários.
Mantendo todas essas considerações em mente, faz sentido se aventurar fora do navegador e criar aplicativos móveis. Isso garante que você aproveite ao máximo as funcionalidades que um smartphone típico tem a oferecer e, ao mesmo tempo, torna a experiência do usuário uma delícia. Abaixo estão as etapas para acelerar o desenvolvimento de aplicativos para dispositivos móveis. Para a primeira parte se tornar um desenvolvedor full stack no desenvolvimento de front-end e back-end.

Como se tornar um desenvolvedor de software web Full-Stack Blog UpGrad Desenvolvimento móvel

Entrevista com Ankit Tomar, Co-Fundador e CTO, Bizongo

Índice

Etapa 12: escolha uma plataforma

O primeiro passo seria escolher uma plataforma onde você gostaria de construir seu aplicativo. A menos que você faça parte de uma equipe razoavelmente grande, é extremamente improvável que você crie aplicativos do zero em todas as principais plataformas. O cenário mais provável é que você estará codificando em sua plataforma favorita e, em seguida, simplesmente a portará para as outras.
As principais plataformas de smartphones hoje são iOS, Android e Windows. Eles usam linguagens e IDEs drasticamente diferentes. Por exemplo, o iOS usa Swift e XCode, o Android usa Java e o Android Studio e a Microsoft operam com C# e Visual Studio.
O mercado hoje é dominado por Android e iOS, então a escolha realmente se resume a esses dois. Algumas coisas que você pode precisar considerar antes de fazer uma escolha é o compartilhamento de público do seu aplicativo. Acredito que faz sentido para os negócios criar aplicativos iOS se você estiver em um país de primeiro mundo, pois os dispositivos da Apple são extremamente populares lá. Por outro lado, em um país como a Índia, o Android seria uma escolha mais óbvia, já que a participação de mercado dos iPhones é extremamente pequena devido ao seu preço exorbitante.
Se você planeja ganhar dinheiro com seu aplicativo, lembre-se de que os usuários do iOS são mais propensos a abrir suas carteiras para compras no aplicativo do que os usuários do Android. Isso pode ser porque os usuários do iOS geralmente tendem a ter mais renda disponível em comparação com os mercados do terceiro mundo, onde o Android domina.
O desenvolvimento do iOS requer que você tenha uma máquina de desenvolvimento do Mac. Além disso, as licenças da Apple App Store são vendidas a US$ 99/ano em comparação com a taxa única de US$ 25 do Google Play. Em outras palavras, o desenvolvimento iOS é consideravelmente mais caro.
Neste post, abordarei como o desenvolvimento de aplicativos móveis é feito hoje: aplicativos Android nativos, aplicativos iOS nativos e aplicativos móveis híbridos.

Etapa 13: Java e XML

Java é a linguagem mais popular para desenvolvimento Android (o Google também introduziu recentemente suporte para a linguagem de programação Kotlin).
Os fundadores do Android pensaram que o Java era uma escolha apropriada e eles se apegaram a ele desde o início. E se a trajetória deles é algo a se seguir, foi nada menos que uma decisão incrível.
Como se tornar um desenvolvedor de software web Full-Stack Blog UpGrad Desenvolvimento móvel
O melhor recurso para aprender Java seria o Head First Java. A leitura deste livro lhe dará uma introdução completa à linguagem, bem como aos Princípios de Programação Orientada a Objetos.
No que diz respeito ao XML, não acho que você precise de um tutorial concentrado sobre o assunto. Você já trabalhou extensivamente com um subconjunto de XML (HTML) e será capaz de descobrir isso rapidamente, mesmo se for direto para o desenvolvimento Android. Eu não posso dizer o mesmo para Java. Certifique-se de ter uma boa compreensão do idioma antes de se aventurar no Android.

Etapa 14: Android

Agora você tem o conhecimento técnico para criar aplicativos Android. É hora de mergulhar fundo neste sistema operacional revolucionário. Tenha cuidado, porém, que certas práticas do Android diferem do que você costuma ver na web. Os recursos que sugeri abaixo garantirão que seu aprendizado não seja prejudicado por essas diferenças.
Programação Android - The Big Nerd Ranch Guide 2nd Edition é um bom lugar para começar se você já conhece Java. Certifique-se de escolher a segunda edição, pois é a que usa o Android Studio, que é o padrão do setor agora. A prática de construir aplicativos no Eclipse está bastante desatualizada.
Entrevista com Farooq Adam, cofundador, Fynd

Etapa 15: iOS

Se você é mais um aficionado da Apple e/ou decidiu que os aplicativos iOS fazem mais sentido para suas aspirações de negócios/carreira. O primeiro passo seria adquirir um Mac. O XCode funciona apenas no Mac e, para publicar na loja de aplicativos, você precisa de um Mac. Desculpe, VMWare.
O recurso que vou sugerir para iOS é exatamente o mesmo que para Android. O Nerd Ranch tem sua própria publicação – iOS Programming: The Big Nerd Ranch Guide que lida com Swift e XCode, então esse é um bom lugar para começar.

Como se tornar um desenvolvedor de software web Full-Stack Blog UpGrad Desenvolvimento móvel

Etapa 16: aplicativos móveis híbridos

Se você é um desenvolvedor solo ou está trabalhando em uma equipe pequena, provavelmente não tem tempo ou recursos para criar e manter aplicativos Android e iOS separadamente. Para aliviar a dor do desenvolvedor de construir para múltiplas plataformas, o conceito de Hybrid Mobile Apps foi introduzido.
O conceito é extremamente simples e revolucionário. Se você conhece Javascript, já sabe como criar aplicativos da web. Portanto, se você tiver um aplicativo em JS, deve existir uma estrutura que porta automaticamente seu aplicativo para Android, iOS e Windows. Incrível, mas verdadeiro.
A maioria das estruturas híbridas consegue isso usando Cordova ou React Native. Você pode pensar no Cordova como a ponte entre os navegadores e o hardware nativo do smartphone. Ele estabelece uma conexão entre os dois usando apenas JS e ajuda na criação dos scripts de construção nas linguagens nativas de cada plataforma.
As estruturas baseadas em Cordova, no entanto, estão sendo rapidamente ofuscadas pela potência do Facebook, React Native. O poder do React Native está no fato de que enquanto o Cordova constrói WebViews, o React Native permite que você crie aplicativos nativos que você construiria usando Java (para Android) ou Swift (para iOS). Em outras palavras, o Cordova é um site disfarçado de aplicativo móvel, mas o React Native permite que você construa a coisa real .
Na minha opinião, você pode perder Cordova e aprender React Native. É um investimento de carreira extremamente grande para fazer. O programa de desenvolvimento de software do UpGrad & IIIT-B é um ótimo lugar para começar sua jornada com esta biblioteca revolucionária que já foi usada por empresas como Facebook, Netflix e AirBnB para projetar seus aplicativos.
Entrevista com Farooq Adam, cofundador, Fynd

Conclusão

Com a conclusão dos aplicativos híbridos, chegamos ao fim desta série. Em resumo, estas são as coisas que cobrimos:

  1. Fundamentos de Ciência da Computação.
  2. Estruturas de dados e algoritmos
  3. IU/UX
  4. HTML, CSS, JS
  5. Estruturas de front-end
  6. Scripts e bancos de dados do lado do servidor
  7. Estruturas de pilha completa
  8. Android e iOS
  9. Aplicativos móveis híbridos

Espero que você tenha gostado de ler esta série tanto quanto eu gostei de escrevê-la e, mais importante, tenha achado pelo menos algumas partes úteis. Como sempre, seus comentários e sugestões são bem-vindos!

Torne-se um Desenvolvedor Full Stack

Diploma PG UpGrad e IIIT-Bangalore em Desenvolvimento de Software
Saber mais