Learning JS on Android
Tags: learning, javascript, tutorial, beginners
Published: 2022-05-09 23:27:18

One of these days I saw a tweet about how hard it is to learn programming when you don't have a computer. Believe it or not, that's a reality for a lot of people around the globe. Whether because of price or ease of use, cellphones are much more common than PCs and Laptops. Taking Brazil as an example, a [smartphone can be found in 99.5% of the households that have access to the internet, while a computer can only be found in 45.1%](https://www.gov.br/mcom/pt-br/noticias/2021/abril/pesquisa-mostra-que-82-7-dos-domicilios-brasileiros-tem-acesso-a-internet).

When talking about programming, the overwhelming majority of tools are computer-only. Hence, not having a workstation becomes a hurdle for those who want to dip their toes into IT. In this text, I'll suggest some tools to facilitate JavaScript and some other common IT tools using a cellphone.

## Acode
[Acode](https://acode.foxdebug.com/) is an Android Code Editor. It has [autocomplete](https://en.wikipedia.org/wiki/Autocomplete) and [syntax highlighting](https://en.wikipedia.org/wiki/Syntax_highlighting) for HTML, CSS and JS that works surprisingly well. Also, it allows to run HTML files within a tap and this makes it way easier to preview recent changes.
![Screenshot of Acode editor on a Tablet and a smartphone](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/me53pz8cw4a57tnd5p5c.png)

## Codepen
When starting to learn JS, having an out-of-the-box functional [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) will come in handy. For newbies, setting up a Code Editor can be really hard. That's where [Codepen](https://codepen.io) comes into play: Not only it allows you to play around with JavaScript in the console, but it also has HTML and CSS editors, plus a result tab with **live reload** (Changes on code are instantly seen on the results, you don't have to refresh the whole page).

{% codepen https://codepen.io/hnrq_/pen/QWawYQE %}

## Termux
After kicking-off a programmer journey, one may want to start learning how to use a terminal. [Termux](https://termux.com/) is an Android terminal and Linux environment that allows installing a bunch of command-line softwares.

Being used to a Unix terminal is a useful skill in every IT specialization, but it's especially required for those who want to work with [DevOps](https://en.wikipedia.org/wiki/DevOps) or IT infrastructure. In the latter case, Termux will be useful even when having a workstation (saying that as someone who hosts a [Veloren](https://veloren.net) server and constantly needs to SSH into the machine for updates and health-checks). 
<figure>
  <img alt="Screenshot of the Termux app" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h80mpstg6srtw25tcdwm.png" />
  <figcaption>In case you haven't met yet: Terminal, user. User, terminal.</figcaption>
</figure>

### Git
When it comes to [Version Control System](https://en.wikipedia.org/wiki/Version_control), Git is the most popular tool around. It allows developers to organize their work and also collaborate in a same project in parallel. On PC, Code Editors usually automate Git commands, but on Android having a terminal, like termux, and learning how to use git commands like `commit`, `push`, `pull` and `checkout` will be necessary.

## GitHub
If Git is the #1 Version Control System, GitHub is the #1 cloud service for Git. It allows code issues reporting, code-reviewing and, most importantly, it will keeps the repository on the cloud if your cellphone suddenly [explodes](https://twitter.com/SrBixcoito2/status/1521986189200347136). Microsoft has been doing a great job on the [GitHub app](https://github.com/mobile): It has most of the features available on GitHub desktop. Edit files, submit, approve and comment on [pull requests](https://en.wikipedia.org/wiki/Distributed_version_control#Pull_requests), everything from your smartphone.

<figure>
<img alt="Screenshots of the GitHub App" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vaf5q2qouic511qfso6k.jpeg" />
<figcaption>Not gonna lie, the light mode burns my eyes.</figcaption>
</figure>

## Keyboards
Doing things in a touchscreen is way harder for me than typing and browsing around a computer. However, I've noticed that my younger brother is a proficient phone gamer, while I can't even hit a standing target when playing Free Fire.

Since I live in Brazil, I usually buy things on AliExpress. They sell a bunch of cheap bluetooth keyboards (Around 8 dollars). It could still be pricey for those who get a minimum wage in developing countries. It's not a must, but an accessory worth investing in, since it really speed things up.

<figure>
<img alt="A wireless INTL keyboard with a wireless mouse below it" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zezd6eftz4kjzix6yzon.jpg" />
</figure>

## The Bottom-line
Nowadays, mobile-first mentality brought much more development tools to Android devices. The tools and apps available today, such as the ones shown above, should be enough for someone who wants to learn JS. However, once you start digging deep into programming and some other complex topics (Let's say you get a taste for DevOps, for example), you'll likely be much better with a Desktop/Laptop.