Chromebooks are an ideal mobile platform for a number of users. From average users who only need it to browse social media or watch a movie to professionals who spend the majority of their time researching, designing and writing, the Google device is a great option for everybody.
And, yes, that “everybody” also includes developers. Although ChromeOS isn’t the ideal platform nor the first choice for development, it doesn’t mean you cannot develop on a Chromebook.
In order to make this work, you need the right tools for the job. Let’s take a look at a few of them that can make developing on a Chromebook not only possible but easy.
The first, and possibly only tool you’ll need is Secure Shell (SSH). With SSH you can remote log into other machines and work from within a much richer and robust ecosystem.
This is especially the case if you do a lot of your development with containers. By secure shelling into a remote machine, you can take advantage of all the tools to be found on that platform.
The best way to use Secure Shell on a Chromebook is via the Secure Shell App. With this, you can create profiles for all of the remote servers you connect to, such that connecting to any of them is just a click away. Once you’ve logged into a remote server, you can get to work on your code as though you were working locally.
Caret is a professional-grade, graphical text editor for Chrome and Chrome OS. Unlike other text editors for Chromebooks, Caret runs completely offline, so you don’t have to have a network connection to use the tool.
Caret offers plenty of features that will appeal to a good amount of developers, even those who work with offshore software development, like bairesdev.com. The feature list includes the likes of:
- Tabbed editing
- Syntax highlighting for many languages
- Configurable settings in JSON format
- Remembers and restores open tabs
- Open files directly from the Chrome OS file manager
- Project view
- Full text search
- Project-specific settings
- Sublime-compatible keyboard mappings
With Caret, you can write your code while on the go, enjoying many (if not all) of the features you’re accustomed to working with. The one thing you cannot do with Caret is build your projects. For that, you’ll have to move those files to a machine that includes the tools necessary to build and compile your apps.
This particular tool only applies to Chromebooks that include Google Play Store support. If your Chromebook includes the ability to install Android apps, your best bet is to install Termux. With Termux you can install a Linux shell that includes Git, Python, Go, vim, bash, zsh, nano, SSH, and more.
Termus gives you all the tools you need to develop in C with clang, make, and gdb. Once you have Termux installed, you can then add on other tools using the pkg package manager, so to install git, you would issue the command:
pkg install git
You can also install other repositories to get even more installable applications with commands like:
pkg install root-repo
pkg install x11-repo
One nice thing about using Termux is that you won’t have to install apps like Secure Shell, as you can install the official openssh package directly from Termux. Termux also allows you to install compilers, such as make and build-essentia, which will install autoconf, automake, bc, binutils, bison, cmake, and much more.
Termux should be considered a must-have for developers wanting to work on a Chromebook.
For any web developer, the Web Developer extension should be one of the first you install. What this extension does is add a toolbar button to the Chrome browser that includes a number of handy web developer tools. The tools added include:
- Cookies (disable, add, delete, view)
- Disable (all styles, browser default styles, embedded styles, and more)
- Forms (check/uncheck all checkboxes, clear form fields, convert form GETs to POSTs, convert form POSTs to GETs, Convert elements to text inputs, display form details, display passwords, enable auto-completion, remove form validation, and more)
- Images (disable images, display Alt attributes, display image paths, hide background images, outline all images, replace images with Alt attributes, and more)
- Information (display abbreviations, display access keys, display anchors, display tab index, display table depth, and more)
- Miscellaneous (clear cache, clear history, display color picker, and more)
- Outline (outline absolute positioned elements, outline fixed positioned elements, and more)
- Resize (display Window size, resize window, and more)
- Tools (validate CSS, validate feed, validate HTML, validate links, and more)
For anyone who develops websites, these tools will be invaluable, as they will give you quick access to a good amount of detail about your projects – details that can lead to improved debugging of your sites.
Some newer Chromebooks support the installation of full-blown GUI Linux apps. If you happen to own a Chromebook that includes such support, there are thousands of tools you can install (including full-blown Integrated Developer Environments – IDEs).
Most any software that will run on the likes of Debian and Ubuntu will run on these Chromebooks.If you don’t see Linux (beta) listed in your Settings window, unfortunately your Chromebook doesn’t support the feature. If, on the other hand, you do see Linux listed in Settings, enable the feature and you can then start installing all the Linux apps you need.
To find out if your Chromebook supports Linux, go to Settings > About Chrome OS > Detailed build information and look to see that the platform string ends in kernelnext. If it does, you can enable the Crostini flag (by opening Chrome, typing chrome://flags, searching for Crostini, and switching it to enable).
With Linux supported add, all the developer tools you’ll need are but an installation away.
Your Best Toolkit
What you are developing will determine the tools you need. However, this small collection of tools should go a long way to show you that developing with a Chromebook can be an option. Make sure to look through the Chrome Web Store to find the perfect tools to meet your development needs.