teaching machines

Persist :: Travis Boettcher

November 17, 2012 by . Filed under cs491 mobile, fall 2012, postmortems.

This was the worst assignment ever.  I’m tempted to leave my post mortem at that, but I really would like the credit for this.  I don’t know if I went about everything in exactly the wrong way or if I was just too ambitious, but this project took at least as long as the last two combined (and that’s probably being generous).

My app is a comic book inventory tracker.  It allows the user to add, modify, search, and delete comics with various attributes (title, publisher, image, grade, purchase price, and a few others).  I am an amateur comic book collector and never have a good grasp of which comics I have and in what conditions, so I thought this would be useful.  The user interface is pretty bad, but I did make two layouts – one for phones and one for tablets.  When entering the comic, I force the phone layout into portrait (the only way it looked good).  The tablet I forced into landscape when adding the comic to take advantage of the screen real estate.

Tablet Layout for Adding Comics

To edit or delete comics, I added options to the options menu when displaying the comic you want to modify.  To delete, just select the delete option and confirm.  To edit the comic, I made an AlertDialog listing the various things you can edit.  Selecting on of those brings up another dialog where you can either edit the attribute or cancel.

Single Comic Display with the Options menu open.

The options menu for editing the comic attributes.

I learned quite a bit with this project.  I don’t know if the way I accomplished it is considered a hack, but forcing certain orientations based on the screen size was an interesting problem.  I also had never used the options menu, but know that I know it’s not too difficult, I may use it more often to simplify my layouts and make my apps seem more professional.  I also learned that I will never, ever be using SQLite for anything more than a couple of tables.

The code is located at https://bitbucket.org/tboettcher/cs491.persist.