Coding on Chromebooks

How to setup your Chrome device as a development environment

Overview

Google has added options to set up a virtualized linux development environment based on Debian. It takes less than 5 minutes to get it up and running with VS Code. Here is a quick walk through:

Turning on the Development Environment


  1. Enable in Settings

  1. Follow the Wizard

Installing VS Code or other IDE


You can download a Debian package from code.visualstudio.com

Adding other Packages


After this you have a “penguin” container setup with VS Code, Git, and Python3. If you want to do web development you can quickly update your apt-get and install npm or other package managers:


sudo apt-get update && sudo apt-get dist-upgrade


sudo apt-get install npm


Summary


That’s it you’re now off to the races and are likely able to work on any number of code projects.


As ChromeOS and the hardware on Chrome devices has matured they are starting to look more attractive as a lightweight linux based dev environment. You can get many high quality Chromebooks today with good screen resolutions, responsive keyboards and track-pads, and powerful processor/memory specifications. At a fraction of the cost of a typical Windows or Mac based dev environment, you’re probably wondering “What’s the catch?”


Here are the current limitations:


  • Cameras aren't yet supported.

  • Android devices are supported over USB, but other devices aren't yet supported.

  • Android Emulators aren't yet supported.

  • Hardware acceleration isn't yet supported, including GPU and video decode.

  • ChromeVox is supported for the default Terminal app, but not yet for other Linux apps.


What about security? Since these run in an isolated environment your main OS is still protected by secure boot. The backup/restore of the container is the user’s responsibility. Similar to other development environments, where developers have elevated privileges if they run arbitrary code anything in that environment could be accessed i.e. hardcoded usernames/passwords.


I recommend taking a look at this as an option for some developers on your team. Especially if their work is mainly focused on cloud / web development. If they need access to GPUs or are building mobile apps then a traditional setup is what they’ll need.