Aprendendo JS no Android
Tags: javascript, braziliandevs
Published: 2022-05-09 23:27:19

Vi um Tweet esses dias sobre como é dificil aprender a programar quando não se tem um computador. Acredite ou não, esta é a realidade para muitas pessoas ao redor do mundo. Seja por preço ou facilidade de uso, celulares são muito mais comuns que PCs e Laptops. No Brasil, por exemplo, um [celular pode ser encontrado em 99.5% das casas com acesso à internet, enquanto um computador só pode ser encontrado em 45.1%](https://www.gov.br/mcom/pt-br/noticias/2021/abril/pesquisa-mostra-que-82-7-dos-domicilios-brasileiros-tem-acesso-a-internet).

Quando se trata de programação, a esmagadora maioria das ferramentas só estão disponíveis para computadores. Isso se torna um obstáculo para os que querem aprender, mas não possuem uma máquina. Neste texto, busco sugerir algumas ferramentas para facilitar o aprendizado de JavaScript, e algumas outras ferramentas comuns em TI, utilizando um celular Android.

## Acode
[Acode](https://acode.foxdebug.com/) É um editor de código para Android. Ele possui [_auto-completar_ (_Autocomplete_)](https://pt.wikipedia.org/wiki/Autocompletar) e [_realce de sintaxe_ (_Syntax Highlighting_)](https://pt.wikipedia.org/wiki/Realce_de_sintaxe) que funcionam muito bem. Além disso, é possível executar arquivos HTML com um toque, facilitando a visualização das alterações.

![Foto do Acode editor em um Tablet e um smartphone](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/me53pz8cw4a57tnd5p5c.png)

## Codepen
Ao iniciar o aprendizado de JS, ter um [IDE](https://pt.wikipedia.org/wiki/Ambiente_de_desenvolvimento_integrado) que funcione de cara é ótimo. Para novatos, configurar um editor de código pode ser uma tarefa difícil. É aí que [Codepen](https://codepen.io) entra em jogo: Ele não só permite brincar com JavaScript no console, mas também possui editores de HTML e CSS, além de uma aba 'Result' **_live reload_** (As alterações aparecem automaticamente sem ter que recarregar toda a página).

{% codepen https://codepen.io/hnrq_/pen/QWawYQE %}
 
## Termux
Após dar início na jornada de programador, é interessante aprender como utilizar um terminal. [Termux](https://termux.com/) é um terminal de comandos Unix que permite a instalação e uso de vários softwares de linha de comando. 

Estar familiarizado com um terminal é uma habilidade util para toda especialização de TI, mas é especialmente necessária àqueles que trabalham com [DevOps](https://pt.wikipedia.org/wiki/DevOps) ou Infraestrutura. No último caso, o Termux será útil mesmo se tiver um computador (Digo isso como alguém que hosteia um servidor de [Veloren](https://veloren.net) e precisa usar SSH constantemente para fazer atualizações e checar se tudo está funcionando corretamente).
<figure>
  <img alt="Foto do aplicativo Termux" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h80mpstg6srtw25tcdwm.png" />
  <figcaption>Caso vocês ainda não se conheçam: Terminal, usuário. Usuário, Terminal.</figcaption>
</figure>

### Git
Quando o assunto é [Sistemas de Controle de Versionamento](https://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%B5es), Git é a ferramenta mais popular. Ela permite que os desenvolvedores organizem seu trabalho e consigam colaborar em um mesmo projeto em paralelo. Em um PC, os editores de código normalmente automatizam os comandos, mas no Android será necessário ter um terminal, como o Termux, e aprender como utilizar comandos do git como `commit`, `push`, `pull` e `checkout`.

## GitHub
Se o Git é o número 1 em Sistemas de Controle de Versionamento, GitHub é o serviço em nuvem número 1 para Git. Ele permite reportar erros no código, revisões e, mais importante, ele mantém o repositório na nuvem caso seu telefone [exploda do nada](https://twitter.com/SrBixcoito2/status/1521986189200347136). A Microsoft tem feito um ótimo trabalho no [aplicativo do GitHub](https://github.com/mobile): Ele possui a maioria das funcionalidades disponíveis no aplicativo Desktop. É possível Editar arquivos, submeter, aprovar e comentar [_pull requests_](https://en.wikipedia.org/wiki/Distributed_version_control#Pull_requests), tudo direto do _smartphone_.

<figure>
<img alt="Fotos do aplicativo do GitHub" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vaf5q2qouic511qfso6k.jpeg" />
<figcaption>Não vou mentir, o modo claro queima meus olhos.</figcaption>
</figure>

## Keyboards
Fazer as coisas usando _touchscreen_ é bem mais difícil para mim do que digitar e navegar em um computador. No entanto, percebi que meu irmão mais novo se dá muito bem jogando no celular, enquanto eu não consigo nem acertar um alvo parado no _Free Fire_.

Por viver no Brasil, compro muitas coisas no AliExpress. Lá é possível encontrar diversos teclados Bluetooth baratos (Uns 50 reais). Ainda assim, pode ser caro para quem recebe um salário mínimo. Não é necessário, mas é um acessório que vale a pena investir, porque acelera as coisas.

<figure>
<img alt="Um teclado sem fio, padrão INTL acima. Abaixo, um mouse sem fio" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zezd6eftz4kjzix6yzon.jpg" />
</figure>

## Conclusão
Hoje em dia, a mentalidade [mobile-first](https://blog.apiki.com/mobile-first-o-conceito-e-sua-aplicabilidade/) trouxe muitas ferramentas de desenvolvimento para telefones Android. As ferramentas e aplicativos disponíveis hoje, como as mostradas acima, devem ser suficiente para alguém que quer aprender JS. No entanto, ao começar a se aprofundar mais em programação e tópicos mais complexos (Digamos que você começa a gostar de DevOps, por exemplo), você provavelmente se sairá muito melhor com um _Desktop_/_Laptop_.