One month tablet challenge – first few days

Prologue

I moved to Iasi city a bit over two months ago and ever since I got here I saw how different the life style is from Bucharest. Iasi is situated between mountains and hills, with green lush forests and vegetation all around, lots of open space and alot of people biking all over the place. Since I arrived I wanted to take my laptop and explore the city, writing code one coffee shop at a time, but my first experienced ended with me skipping 3-4 shops that didn’t have a plug I could use.

A few months ago I stumbled uponĀ  Henri Beirgius’s blog and noticed an interesting article about doing development on an Android Tablet which peaked my interest. The thought of being able to work from anywhere without a wall-plug nearby coupled with great portability and hardware cost is hard to ignore. Knowing that my old laptop is ready to give up at any moment I had to take a decision and so I ended up ordering a 9.75” Android Tablet and a bluetooth keyboard. And so begins my one month tablet only challenge / experiment.

As for why I would love for this experiment to work out, well here are my primary reasons:

  • to replace my old dying laptop with a more portable solution with a heftier battery life
  • to eliminate downtime’s during my work process (instant-on, full screen windows, no more 5m+ of building the android version every time I want to test on a device)
  • to establish heavier limits than usual on my design and development process in order to be able to create/design something different then my usual projects
    • as a side point, being confined within the limits of an android tablet (in terms of power, screen space, input, performance) should “train” me to optimize my code and design a more touch friendly experience

First 4 days

One of the first things I did once the keyboard arrived was to take a seat on Mobility Game’s comfy couch and access “the cloud”. I’ve already setup my home FTP and SSH server and all that was left was to create a script that would build my project and move it somewhere that I could download it from. About half an hour later I detached my tmux session, closed the lid on the tablet and left to grab something to eat in a diner not far from the office. I was anxious to get there as fast as I could so I could check on the build progress. Being able to close the tablet and not loose any progress that was happening in the background was something new for me. Sure enough once I took a seat at the table and ssh into my server I noticed a tablet_moai.apk file waiting patiently in the /home/zapa/builds folder. I started Quoda and wrote my first “hello world” on the tablet to see if my app was working properly and gleamed with excitement once it did.

The following two days were spent trying to adapt to vim and learning the key shortcuts. The biggest challenges I faced were due to the way Android handles the ESCape key (it minimizes the app that’s currently on screen) and battling with the SHIFT key position on my keyboard (kept pressing it instead of the A key). I’m also using custom vim settings that came with TerminalIDE, something that rendered most of the tutorials obsolete. I ended up using vim for a little while but decided to return to Quoda as a local IDE, while relying on Nano (with some custom .nanorc edits to enable syntax highlighting) for server-side editing (mostly java).

Yesterday however was the first time I did any real development and work on the tablet, after I left the office (’round 6:45 PM). I stopped at a local pub to grab a few beers and prepare a powerpoint presentation for DesignJam. After scribbling down a few ideas and points in writely I opened up Quoda and patched a few bugs in Mutant Gangland’s editor and then pushed the fixes to my ftp server (git integration isn’t complete on my side). I’m still amazed that I can actually get real work done on this thing with little sacrifice. My biggest problem right now is debugging since I do not have access to a console alongside my app. The way I debug at this point is via VNC to check error messages in the console or via a .txt file dump from within the app. It’s not a streamlined experience and so far it’s been the biggest hinder for my productivity. I’m planning to tackle this problem by either adding in my own “console” overlay in which I catch and print errors or b) by rooting my tablet and finding a way to execute apps via “terminal”, though the second part is still something I have yet to research. It’s a bumpy ride overall but with lots of sweets spots, great views and good “fuel consumption”.

Before I left I did one final push to the FTP and set my machine to build. I detached Tmux, packed my tablet and took a long walk home through Iasi alongside a co-worker who gladly payed for the drinks we had. Once home I launched the new build to see if it works and then I hit the sack, letting the tablet charge. I think we both needed the rest :).

The Setup

rapoo

  • A vonino Spirit QS Android Tablet
    • OS: 4.2.1
    • 2 GB Ram
    • 16gb Storage
    • Quad Core
    • 1024 x 768 resolution
  • A Rapoo Ultraslim E6300 Black Keyboard
    • Bluetooth
    • 10m connection distance
    • 1 month of battery power with only a 2h charge
    • 20 cm x 1.27 cm x 8.128 cm ( 8.1 x 0.5 x 3.2 inches for you lovely people on the other side of the ocean)
  • A 5GB monthly (grandfather) data plan from Orange
  • A HAMA tablet cover and stand 108278

Total cost? 246 euros + 25 monthly


 

The Software

  • Local development (on the tablet)
  • Cloud development (on my home server)
    • TerminalIDE: for ssh access to my home computer
      • ssh
      • tmux
      • vim
    • FTP Cafe: to upload/download new builds from my server

Total cost? 10 euros


 

The Process

From what I saw on Bergie’s post he mostly works in the cloud with little offline work, especially since he’s (from my understanding) mostly doing web development. Going for Game Dev complicates things a bit. I could have gone the C/C++ route with the amazing C4Droid (plus it’s SDL bindings) but compilation times would have nullified the experience I’m trying to achieve. So I went back in my comfort zone and built an android app using my Chaurus Framework. The app itself is nothing but a main file that searches for a folder on the /sdcard and includes “game.lua”. From there on it’s free (game), with not many things changing in my workflow. Building and debugging for Android is an entire different beast to tackle. If I want to make changes to my “main app” I have to ssh over to my server, vim my way through the project’s source, build and then download the app via FTP. Luckily wifi is abundant in my country (and all through-out Europe) and, just in case, I can fall back to my 4G data plan.

Total cost? Building MOAI for Android + 0.01c monthly