Bytesize Adventures
Crafting bite-sized digital worlds

App Development – progress report #1


As you may know, if you read this blog regularly, I’m currently working on my first non-game App. My aim is to produce my App following a careful plan, blog the process, and share the results.

You can catch up on the previous posts here

I’m currently working on the code and had originally planned to share some how-to posts on this blog. Unfortunately I’ve been flat out just finding the time I need to work on the App. Thats where you need to make a decision. Its all very well writing about creating Apps but the important step is actually creating them. So, whilst my blog has suffered, the coding is going well.

I recently spent some time going back over my plan and re-reading my design document. It struck me that my steps 5, 6, and 7 are very tightly dependent upon one another. As a result I’m going to roll them up somewhat for the purposes of this blog. I’ll be working iteratively on final art and code leading up to and throughout the testing process.

My current plan is to switch tact slightly and blog a series of progress reports – these will be a series of brain dumps rather than fully thought out articles. To complement them, I am planning two fairly meaty posts on both the final artwork and the testing process I will use. Then we’ll go back to the plan for steps 8 and 9.

So this is my first progress report and lots has happened. Last time you read this I had just created a basic cupboard screen for the App and was about to dive into the code.

My first challenge was Xcode 4. I pretty much switched to Xcode 4 as soon as it was released but this is the first App I’ve built with it. I don’t believe in holding off on new technologies when you’re independent. One of the advantages to independence is the speed at which you can switch technologies and adapt to what is current. If you are part of a larger team then this is a different matter altogether.

Pain points initially were related to the change in build settings. The scheme drop down has been simplified, complimented by a confusing iTunes-esque play menu. The Interface builder had also changed considerably and baffled me for some time. Anyway, its fair to say that I’m now happy with Xcode 4. I feel its superior to Xcode 3 in every way.

The built-in GIT support is particularly good. On the subject of GIT I’m currently using it for my version control as I was before Xcode 4. Since I’m a sole developer, I’m not pushing to a remote repository and am instead just committing locally and backing up my system to an external drive. This means I lose offsite backup but I still reap the main rewards of version controls (avoiding screw ups and easy branching). If you’re not using it, you should.

Core data has also been interesting. The entity relationship modeller in Xcode 4 was very overwhelming at fist but now seems pretty well thought out. I’m far from comfortable with my knowledge of Core Data but my App is simple enough that I’m not running into too many issues. I can certainly see the benefits of abstracting the data management (I’m using SQLite as my persistent data store).

In terms of the App feature, its going well. Here’s a refined list of what’s done…

Displaying Coffees in your cupboard (this is your hub for the coffees you are currently tasting)
Adding a Coffee
Viewing a Coffee
Editing a Coffee
Rating a Coffee
Editing preparation notes for a Coffee
Editing the tasting notes for a Coffee

That leaves me with 15 tasks in my task list in order to get to reach Beta. Having said that, I’m at that stage of development where you check off one task but add 5 more in the process. I intend the Beta to contain all final functionality apart from the Coffee Search and periphery screens (such as help and about). The functionality will work but won’t be fully tested, the workflow won’t be refined, and the graphics will still be WIP. The point of running a Beta without refined workflow is of course to get early feedback so that I can tweak the workflow based on real data (rather than purely personal opinion).

On the subject of Art – its going well. I want to use colours that evoke thoughts of Coffee whilst providing complimentary textures. I’ve started to create the beginnings to a style that I think is fairly subtle, avoiding too many cliches such as overly glossy surfaces. I posted a work in progress teaser on twitter so here it is for you to enjoy. You’ll note it lacks detail, has too much repetition, and has some inconsistencies – all of which will be resolved in the final artwork.

I’m a little apprehensive about putting a date on the Beta but I am expecting to be ready by the end of the month. I’ll be looking for some Beta testers soon so keep and eye out either on twitter or at this blog. I’m not just looking for coffee lovers (although that will help), any feedback is welcome.

In other related news, I upgraded my mid-2009 Macbook Pro from 2GB RAM to 8GB RAM. Xcode 4 is now much nicer to work with. I can comfortably run Xcode 4 alongside the simulator and the profiling tools without waiting for endless spinning beach balls.

Thats it for this update. Check back soon (or subscribe to my RSS feed)

Part 1 – Doing it properly
Part 2 – The Design Document
Part 3 – The Wireframes
Part 4 – The Artwork
Part 5a -The Code (Xcode, GIT, and Core Data) (You are here)
Part 5b – The Code (Coffee sharing and Camera functionality)
Part 5c – The Code (A change in workflow)
Part 6 – The testing
Part 7 – The Final Artwork
Part 8 – The Marketing
Part 9 – The Launch
Part 10 – The Numbers
Part 11 – The Postmortem
(Bonus) Part 12 – A review of the process