Android Development Sucks! Gnarly Gradle errors, sustained setup times, complicated compilation steps. What if there was a better way? We got to thinking we could abstract away all of the "dirty work" of android development and leave you to work on functionality, not boilerplate setup.
What it does
Our product allows beginners to easily pick up Android development and execute it remotely with almost zero setup on your part. The user just has to install Nuclide and our small Atom package, and is immediately able to edit, build, and deploy android apps. Instead of having to configure apps over complex tools like ADB, Android Studio, SDK's, and various CLI's, beginners can use our app to directly install their APK onto their phone. In short, we provide a seamless, cloud-based system to:
- Auto-setup a development environment in the cloud with all of the relevant build-tools preconfigured.
- Online hosting of the entire codebase of your app.
- Building the app in the cloud.
- Seamlessly push the built app to any android device with our companion app.
How we built it
The workflow happens in a series of stages: First the user opens our Atom package (built on top of Nuclide) that remotely logs into our server and lets the user liver edit the code from a cutting edge IDE. When the user wants to build, they hit the button in our toolbar which runs a CoffeeScript to compile the code on the server and start a Cron job to pull the debug logs back to the IDE.
Meanwhile on the server, a a bash script executes to compile the Gradle project and then exposes a REST endpoint to download the apk. As soon as the user goes to our app and hits the "Reinstall" button, the app downloads the APK and installs it. As soon as the installed app starts logging, we push the logs to a Mongo database on our server. Then the Cron job pulls those logs back to the IDE for the user to review.
Accomplishments that we're proud of
The smooth workflow we created around building and deploying apps. The process used to require a lot of setup, but our cloud-based platform abstracts all of that away.
Our Vision for Odin
The simplicity of web development has brought computer science to the reach of millions of students. Anyone with a browser and notepad can make simple and educational web apps. At Odin, we aim to bring this to freedom to Android. With just a simple application, and students can start building their own games and diving into the world of computer science. We plan to market Odin to school systems nationwide as a way to boost CS education in the country.
Furthermore, we also realize the potential enterprise applications of having a cloud-based build system and development tool. By harnessing the computational power of the cloud, we can greatly accelerate Gradle build times. This is because our cloud servers can be optimized solely for building APK's. In addition, removing the hassle of local development environment setups is a valuable service for companies small and large. Furthermore, we offer the service of being able to push a complete app or update to any android device with our companion app installed. This greatly simplifies testing and shortens the SDLC.