Developing for ChromeOS/Android using a Chromebook

… is not something that is supported by Google, go figure. Heck, neither is using git, which is a bummer indeed!

That said, there are ways one can use their Chromebook hardware to set up a development environment and work flow, by way of installing a Linux distribution or by using “cloud based” development environments. However, neither of those solutions are ideal, nor are they particularly desirable due to their poor work flow compared to simply using a full Windows, Mac, or Linux desktop or laptop for developing Android or ChromeOS programs.

Chrome Dev Editor (By Google)
Google is famous for abandoning projects and unfortunately, much like the web-based App Inventor for Android that came before it, the native ChromeOS IDE (integrated development environment) for Chrome apps is one of those abandoned projects. While it does still work, there are major issues with its user interface that have not been fixed that can prevent it from functioning. Furthermore, it is still a “beta version” (last updated in March 2016) as well as being a hidden item on the Chrome App Store. Finally, this IDE is only capable of creating non-compiled Javascript and Dart based Chrome apps and extensions – Google doesn’t have any Chromebook based support for creating Android apps at all.

With Chromebooks having such a heavy focus on education, Google has dropped the ball by failing to provide a comprehensive, fully functional, and well documented development environment for ChromeOS and Android on Chromebooks. Yes, the hardware comes with a “Developer Mode”, but there are so many problems with using it, such as it being completely locked out on all Chromebooks that are managed by schools, that its existence should not even be a consideration. Even a guy like me who has been using Linux since 1998 and who is quite capable of using Linux on his Chromebook, doesn’t want to use the hack that is “Developer Mode”.

“Developer Mode”: That thing for Chromebooks that your kid can completely erase by opening your Chromebook and pressing the SPACEBAR when he’s prompted to…

Third Party Solutions
The following is a list of native ChromeOS apps, Android apps, and web based products that can be used to create programs (such as tools, games, and editors) for ChromeOS and Android. As a person who has been developing games and game mods using a Linux and Windows desktop for several years, I am going to go ahead and say that all of the following software and workflows are less efficient and more troublesome than simply using the Android Studio and your supporting asset creation software (Blender, GIMP, Audacity, etc.) in Linux or Windows.

If ChromeOS had a native version of Android Studio, the workflow on a Chromebook would be tolerable (when using a USB mouse – develop not with a trackpad, for thou dost not deserve such torture!).

ChromeOS Programming Apps
Caret – Programming oriented text editor
Drive Notepad – Programming oriented text editor
Secure Shell – Use the command line of another computer on your network

Android Programming Apps
Note: Android apps are not supported on all Chromebooks, even when using the beta OS releases (mine included).
There aren’t any, but you can read about how Android apps are developed on desktop and laptop PCs here, here, and here.

Cloud Based Programming
These are subscription based services
Cloud 9 – C++/Python/Ruby/JavaScript
CodeAnywhere – C++/Python/Ruby/JavaScript

Asset Creation
List of Image Creation Tools (Reddit)
Sound: AudioSauna, Audiotool, Beatlab, SoundCloud, SoundTrap, Twisted Wave
3D Modeling: Openshape is the only tool, which happens to be a cloud based web app. Read this if you want to know how well it performs on the standard educational Chromebook.

While one can develop programs for Chromebooks on a Chromebook, in my personal experience with RocketTux, doing so is a lesson in frustration and disappointment for anyone who has access to even a crappy dual core laptop from 2006 that can run a full Linux distribution. The problem is not the specs of the machines, rather it’s the lack of proper software and the abysmal user experience and work flow of the available software that sullies the concept. The good part here is that this is something Google could fix 100% by simply throwing some talented employees at it, but the bad part is… Google probably won’t fix it, because I just don’t think they see it as a problem.

Ideally, Google should have an “Android Studio for Chromebooks” that would be a native ChromeOS app that did everything locally on the hardware (a boon to work flow), with the option to seamlessly compile C/C++ binaries using one of Google’s super computer servers. This tool should be well documented and completely open, such that students can easily use it to learn relevant programming languages, develop good programming habits, and create amazing new software, even on the Chromebooks that belong to their school.

“Android Studio for Chromebooks” would complete the “bigger picture” of Chromebooks, by allowing Chromebook users to create any piece of software they may want to use right there on the Chromebook itself! It’s a crying shame that one still needs a Mac, Windows, or Linux PC to get the job done.