Day 7 of the iPad Challenge: bodyCal2 – a basal metabolic rate (BMR) and body mass index calculator (BMI), and recorder, for the iPad
On Saturday 20 March, 2010 I started a 7 day, 1 iPad App challenge (see the start). This wasn’t planned, and wasn’t going to happen until the summer, but an email from Apple to developers changed my mind…
Day 1 – Saturday 20 March, 2010
bodyCal for the iPad was based on our bodyCal for the iPhone (Home Page – Download. The idea was to take the functionality of bodyCal for the iPhone, and move it over to the iPad and add data tracking and recording in the space available on the larger screen.
At the end of day 1 the App was shaping up nicely. The calculators worked, and some progress had been made on the graphing and data recording section (big question mark in the image below).
The state of bodyCal for the iPad at the end of day 1 of development
Day 2 – Sunday 21 March, 2010
Day 2 was when the real coding started…. The work on day 1 was mainly setting up the user interface and porting over the code from the existing iPhone App (bodyCal for the iPhone – Download). Now the code for ‘graphics’ and data-storage was added.
At the end of day 2 things were shaping up nicely. The interface was pretty much complete, the body mass index (BMI) calculator and basal metabolic rate (BMR) calculators were working, help pages were finished, and data storage was shaping up.
The state of bodyCal for the iPad at the end of day 2 of development
Day 3 – Monday 22 March, 2010
The day was disrupted with meetings, but some progress was made.
Basically, the day (when not in meetings) was spent working on data capture and data display. By the end of the day this was pretty much complete, however, there was still a problem with dates in the App database.
Day 4 – Tuesday 23 March, 2010
At the start of day 4 I had a ‘clear idea’ of how to fix the problem with dates in the database, and also how to make sure only one entry for BMI and BMR could be recorded per day (the value could be changed, but only one entry per day could be recorded).
By the end of day 4 the code base was almost complete, and one final change to the interface had been made, which was the inclusion of a small yellow sticky note for showing messages.
The state of bodyCal for the iPad at the end of day 4 of development
Day 5 – Wednesday 24 March, 2010
Day 5 was spent coding, testing, and designing an icon.
I am not great at icon design, and in the end I came up with two possibles:
Two possible icons for bodyCal – A and B
By the end of the day I felt I was pretty much finished. I had even managed to include a feature, data deleting, which earlier in the week had been bumped to version 1.1 when I was having ‘database issues’ (see days 3 and 4 above).
bodyCal also has a function that allows data to be deleted
All that was left now was to complete testing and submit the App….
Day 6 – Thursday 25 March, 2010
Day 6 was a day of testing, bug hunting, and submitting the App to Apple.
First, it was decided to go with icon A (see above) for the App.
As the App was being written sections of the code were tested as they were completed, with a ‘full’ test of ‘work to date’ at the end of each day. Day 6 was the first time all the functions could be tested together. A number of bug/problems were found and ‘squashed‘.
By early-afternoon ‘bug hunting’ and testing were complete and the App was ready to submit to Apple. There were a number of problems along the way… the first of which was discovering that the App could not be called bodyCal as the name bodyCal was already used for our iPhone App – the App is now called bodyCal2 – generally the whole process of submitting the iPad App to Apple was relatively painless.
Submission of the App to Apple happened one Thursday March 25, 2010 at 1:41:29 PM.
Developing for the iPad was easier than I expected. If you can use Xcode (Apple’s developer environment) and write Apps for the iPhone, then you should have no problem in writing Apps for the iPad.
There is, however, one crucial difference… to write an App for the iPad requires a change of ‘mind-set’.
I have been writing programs for the Mac since the mid-90s, and MMISoftware has been around since 2001. When I started writing for the iPhone I initially found it difficult to switch from the Mac ‘big-screen menu-driven’ programming approach, to writing the more ‘stacked’ Apps you find on the iPhone. (The reason iPhone Apps are ‘stacked’ is because of the smaller screen space, the lack of menus, and the touch screen nature of the device.) It is a very different way of thinking about development.
The iPad is a different beast again. It seems to fall between a Mac and an iPhone. It is not Mac ‘big-screen menu-driven’, or iPhone ‘stacked’, it is in between. There are no menus on the iPad as you would find on a Mac, but there is more screen space than on an iPhone. For the iPad you seem to need to ‘flatten’ the ‘stack’ of pages you have for the iPhone. As I said, a different mind set….