Crostini is the umbrella term for making Linux application support easy to use and integrating well with Chrome OS. It largely focuses on getting you a Terminal with a container with easy access to install whatever developer-focused tools you might want.
IntelliJ IDEA community edition for Kotlin development
Update: I would not recommend doing Android programming on a Chromebook for now. You can install Android Studio yes. But to actually program on it, you will be asked to wipe your chromebook and install the insecure developer mode. Don't do it. Wait.
What's not so great
Slow builds?
It matter less when you are learning programming, you are not typically compiling huge projects.
But still Chromebook are not exactly powerful.
Buy the best Chromebook you can find if you intend to use them for development.
Speaking of which: the best Chromebooks seem to be US only. I had troubles finding them in Europe.
Or maybe we can delegate the build process to an external server with much more power?
Tool for remote builds. Sync project to remote machine, execute command, sync back.
Mainframer
A tool that executes a command on a remote machine while syncing files back and forth
The process is known as remote execution (in general) and remote build (in particular cases).
Mainframer helps to move heavy operations (like compiling the source code)
from a personal computer to a dedicated machine. This way you, as a developer
can use your machine for changing the source code or browsing the documentation
without constant freezes and hearing jet engine-like sounds caused by the build process.
The execution itself is not limited and can be applied to actions
like encoding audio and video, batch processing and more.
It works via pushing files to the remote machine, executing the command there
and pulling results to the local machine.
$ mainframer ./gradlew buildSync local → remote machine...:buildBUILD SUCCESSFULSync remote → local machine...
$ java -jar build/libs/sample.jarThis program was built on
Gradle plugin to move build process to remote machine.
Mirakle
A Gradle plugin that allows you to move build process from a local machine to a remote one.
Compatible with Gradle 7.0+. Works seamlessly with IntelliJ IDEA and Android Studio.
Why
Remote machine supposed to be much performant than your working machine
Also having a sufficient network bandwidth or small amount of data that your build produce, you gain build speed boost.
Mirakle is designed specially for Gradle build system. It works as seamless as possible. Once plugin installed, you workflow will not be different at all.
(It's a good thing to prank your colleague. Imagine his surprise when one day he gets several times faster build time.)
But most importantly, documentation sucks right now, if it's available at all. You have a weird variant of Debian installed, you don't really know what works, what doesn't. Not a lot of people are using a Chromebook for development either, so you feel a bit on your own.~
Update: I have found the kind of documentation and community I wish I had when I started.
If you are part of G Suite. (for Education if associated with a school) there is a way to push programs to Chromebooks. From Google's support site on this:
As a Chrome Enterprise admin, you canuse your Admin console to set policies for a specific Chrome app, extension, or supported Android app. For example, you might force-install an app and pin it to users' Chrome taskbar.
See support.google.com/chrome/a/answer...
If you are part of G Suite. (for Education if associated with a school) there is a way to push programs to Chromebooks. From Google's support site on this:
As a Chrome Enterprise admin, you canuse your Admin console to set policies for a specific Chrome app, extension, or supported Android app. For example, you might force-install an app and pin it to users' Chrome taskbar.
See support.google.com/chrome/a/answer...