The mobile development challenge

A bit over a week ago, I set myself a challenge: develop a mobile app entirely using mobile devices. I must never touch the app with a laptop or desktop computer, for even the most-trivial reason.  I don’t have a lot of free time in my life, so I’ve been able to tinker for only an hour here or there, but so far, I’ve had good success. 

Tools

Here are the ingredients:

  • the Android OS (Jellybean) running on a Nexus 7 tablet, with a small Bluetooth keyboard
  • the Android Integrated Development (AIDE) app, which uses the Eclipse project format and includes a git client
  • GitHub, for storing my source code

Progress and gotchas

I decided to create a kind of app that made sense as a mobile app (rather than a web site): a SQL query tool for databases on the device.  I’m calling it “Sloop-SQL”, and while my early prototype isn’t in the Play Store yet, you can grab the Public Domain source from GitHub: https://github.com/davidmegginson/sloop-sql and build your own copy with AIDE on your phone/tablet or Eclipse on your laptop/desktop.

The process has worked surprisingly well so far. When I want to test on my phone (rather than my tablet), it takes only a few seconds to do a git pull on the phone, and build and run using AIDE.  I also enjoy the simpler AIDE UI over the cluttered Eclipse one. 

I’ve run into only two significant annoyances:

  1. GitHub doesn’t have a mobile-friendly site, and their mobile app is severely limited, so it was a bit frustrating creating the repository.
  2. As of Jellybean, Android doesn’t let apps request permission to see other apps’ logs, so AIDE can’t show me the app’s logcat (which includes crash reports from uncaught, top-level exceptions).

I could work around the second problem by rooting my N7, but that’s also cheating.

I hope that the Android team will consider adding the read-logs permission back in — perhaps backed by a special developer setting — so that Android can grow into a full software development environment, rather than being nothing more than a development target (like iOS).

This entry was posted in Coding, Mobile and tagged , , . Bookmark the permalink.