I’ve recently taken up scuba diving and I’ve been bombarded by a whole bunch of crappily designed websites and lack of decent iPhone applications even for the simplest of tasks. If you’re a scuba diver like me and find paper a horribly inefficient way of doing almost anything, you probably hate the log books that we need to keep for your dives. So I’ve decided to challenge myself and make a simple iPhone app for logging all my dives.
Watch this space for updates.
UPDATE #1 : 08:00PM – 11/07/2011
Here’s some sketches of my app so far. Not a great sketcher, forgive the hastily done mocks.
Mock #1: This is the overall design of the application. There are a couple of tabs, one to display a list of all your dives, the other to plot all your dives on a map. The dives are tagged with a name and a date along with a whole bunch of relevant data. Clicking on any of these dives will “drill down” and show the details of that particular dive. What details? Read on!
Mock #2: “Details”.
Tapping on any one of the dives or clicking on the plus icon in the home screen will pull this screen up. This is the core of the application and all the fields in this are organized the best I could manage. All these fields are from the NAUI (A scuba certification agency) dive log book.
One additional note I have about this is that while “Current Location” is used as the default location for the dive, you need to have an option to drop a pin anywhere on the map and set its location.
Now that’s done, let’s code up a prototype and then work on getting it presentable.
UPDATE #2 – 11/07/2011 8:00 PM
Adding to that update, let me talk a little bit about the general architecture of the application.
The navigation is done using a UITabBarController.
Tab #1 contains a UINavigationController with a UIViewController “pushed” into it.
Tab #2 – I’m not quite sure yet, I’m hoping to find some mapping libraries that make my life easier. (Required features: take an array of location coordinates and then drop pins there. What would be cooler is to have a functionality similar to the Photos app on iOS. Another feature would be to let the user drop a pin.)
I’m planning to use CoreData for storage.
UPDATE #3 – 11/08/2011 1:00 PM
This is what I had as of 1:00 AM yesterday night after playing around with CoreData for sometime.
Update #4 10:50 PM 11/08/2011:
Time for Update 4! I’m excited (not.) to report that I finally have UITableView playing well with the keyboard and have the “Add Dive” screen almost up. Once that’s done, displaying a list of dives on the Home screen is a fairly easy task . Need to move on to actually writing code to save all the dives. (Yeah, I’ve put CoreData on hold for now). Then comes the plotting code. Then the prettifying. Not looking good. I could only put in about 6 hours of work on the app over the past day. Have 3 more hours before it’s 2AM / bedtime and end of day one. This probably would’ve been better as a weekend hackathon kinda thing. 😦
Anyway, here’s the screenshot of the update:
Update #5: 2:50PM 11/09/2011 –
The mapping code was easy!
Almost there. I might actually get a functional app by today evening!
Update #6 – 3:14PM 11/09/2011 –
You can now press & hold to pick a location for your dive off the map! On to the save code!
Update #7: 9:50 PM 11/09/ 2011 –
I have the whole app functional, but I’ve been scuba diving for the first time and my right ear is fucked up, so wasn’t able to work on the app at all this evening. The saving and the app design has to wait another day.
Update #8 3:54 PM 11/10/2011 –
Ear still hurts, but managed to get some UI work done. Here goes a couple of mocks of the home screen. The white background feels cleaner, but not sure if that’s actually a good thing. Might not go with the patterned blue-green background, but I think having some sort of background is better than leaving it white.
Update #9: 11:51PM 11/10/2011:
She’s alive cap’n! The icon’s done, The profile page looks good, almost ready to release to the store! Meanwhile –
Update #10: 6:15AM 11/11/11:
Well, this’s going to be the UI. Fairly pleased with it. I’m not sure if it makes sense for an app that covers scuba diving, but as a simple logbook app, black and white couldn’t go wrong. Still haven’t worked on the save code, but everything else is pretty much done.
Final edit: 02/06/2012
I realized I haven’t updated this in a while, so here’s how the app looks finally: