dois:pontos

O que aprendi nesta quarentena?

- 4 min

Já escrevi aqui no blog sobre a minha opinião favorável sobre designers aprenderem a programar. Nesta semana, no meio desta quarentena monótona em que todos estão, resolvi usar o tempo para aprender um pouquinho mais. Em relação à quarentena, não comentarei nada aqui, pois já temos notícias demais sobre o vírus. De qualquer forma, lave bem suas mãos e seja higiênico.

Estava eu navegando na internet quando me deparo com um vídeo do Filipe Deschamps --- um YouTuber focado na área de programação, cujo canal eu fortemente recomendo –-- falando de uma tal de Semana Omnistack: um curso online gratuito com a duração de uma semana, conduzida pela Rocketseat e feita algumas vezes por ano.

O que é?

É um curso de uma semana no qual você aprende a criar um projeto do zero, utilizado NodeJS, ReactJS e React Native. Cada uma destas tecnologias ajudam a imprementar as partes do produto. A saber:

  • NodeJS: Basicamente é o motor de JavaScript por detrás dos navegadores baseados no Chrome, conhecido como V8, porém sem o navegador. O que sobra é uma plataforma onde é possível desenvolver aplicações usando apenas JS.
  • ReactJS: É uma biblioteca em JavaScript para construir interfaces de usuário. Com ela é possível ver as informações trocando em tempo real, sem a necessidade de recarregar a página no navegador.
  • React Native: É um framework voltado para a criação de aplicações para dispositivos móveis. A principal vantagem dele é que não é necessário criar duas versões em linguagens diferentes para atender o iOS e o Android. Apenas com JavaScript é possível criar aplicativos para as duas plataformas.

Como é?

O curso é bem direto: o objetivo era criar um serviço fictício chamado "Be The Hero", que consistia em ajudar ONGs a conseguirem resolver pequenos problemas envolvendo quantias modestas de dinheiro.

Este produto deveria consistir em um Backend (criação de um banco de dados e comunicação com este banco), um Frontend (interface de usuário) e uma aplicação para celular. Tudo isso para ser entregue no prazo de uma semana!

Cada dia uma nova aula, abordando a tecnologia usada e a implementação do código. Cerca de uma hora e meia cada uma.

Minha experiência

Quando fiquei sabendo da Semana Omnistack, já era uma quarta-feira e já havia perdido três aulas! Isto acabou por me atrasar na entrega das partes, mas deu tudo certo no final.

Backend

A parte mais desconhecida para mim era a parte da criação do Backend, pois jamais havia feito isso: sempre usei estes serviços prontos. Pensei que seria extremamente complicado, mas não foi.

Frontend

Frontend

A parte da criação da interface foi tranquila. Tive de me adaptar às peculiaridades do ReactJS. Nele, o HTML é incorporado ao JavaScript, o chamado JSX. Já havia usado o AngularJS e VueJS antes, e a forma com que estes dois funcionam é bem distinta, mas existem pontos em comum que me auxiliaram na jornada, como a criação e componentes, por exemplo.

Aplicação para celular

Mobile

O React Native não é muito complicado. O que mais muda em relação ao ReactJS é o fato de não haver suporte para CSS nos componentes. No RN, tudo é JavaScript, inclusive os estilos: Eles são todos tratados como objetos, e propriedades como padding-top acabam virando paddingTop, pois no JavaScript não se usa hífen.

Fora isso, os elementos HTML dão lugar a uma marcação própria sem semântica. É como se voltássemos à época em que <div> e <span> eram tudo o que havia de semântica no HTML.

Minhas dificuldades

Para quem nunca havia trabalhado com React, não fui mal! Minha maior dificuldade foi, estranhamente, com a coisa que mais facilitaria o processo do desenvolvimento para celular, o Expo.

O Expo, para quem não conhece, é uma forma de visualizar a aplicação criada com React Native em tempo real no seu celular, sem precisar instalar todas as dependências no computador. Basta instalar o Expo no projeto e baixar o aplicativo de mesmo nome na Google Play ou App Store. Depois, é só ler um QR Code que será gerado nas ferramentas de desenvolvimento do seu PC, usando o aplicativo.

Por algum motivo, que ainda não compreendi até a publicação deste artigo, tive problemas na instalação dele, o que me tomou muito mais tempo do que eu desejava, porém, depois que eu consegui estabilizar tudo, foi muito bom. Em comparação com o NativeScript, o qual já fiz uso, foi um paraíso.

Quanto às demais dificuldades, foi a adaptação para o modo React de fazer as coisas. É estranho fazer o layout no JavaScript de início, mas o resultado compensa.

Conclusão

Gostei da experiência e me sinto mais confiante em usar estas tecnologias aqui citadas em futuros projetos. É muito bom ver que dá para fazer tanta coisa sem ter de dominar três ou mais linguagens de programação. A única coisa chata disso tudo é a incerteza no ar por causa desta quarentena e do isolamento social. Que bom que pude aproveitar esta fase e aprender algo novo. Se eu descobrir algo novo, posto aqui no blog.

Lembro de ter falado em outro artigo aqui sobre os limões que a vida dá. Cabe a nós torná-los em limonada. E eu adoro limonadas. Para quem tiver interesse em conferir o resultado, deixei abaixo o link para o repositório do projeto no Github.

Links

Comentários