Thought I'd post an update to talk about the progress I've made on LocalTalk.
This app has been in an ongoing project, worked on in my minimal spare time, since WWDC 2013. In essence it's nothing earth-shattering in terms of functionality, it's real purpose it to be as well designed and built both inside and outside. I'm working hard to ensure it's built to patterns, uses best practice, follows a rigorous coding standard and ships without bugs (at least known bugs). Externally I want it to be a poster child for the iOS7 look and feel and that it adheres to the simple guide we were given that morning in Moscone West: Clarity, Deference and Depth.
The trigger:
The project had been static for a little while, just through being so busy with other things. However I was idly sketching icon designs when I had an idea for how to revamp the one for LocalTalk which led to new icons, splash screen and in-app assets. This gave me a huge amount of momentum to get going again and I've found some time, however small, every evening to work on it.
The new:
I replaced the standard, canned MCBrowserViewController with a custom browser. There's an activity indicator styled to match the icon design and status is reflected by similar matching cell styles.
All the modal windows, browser included, share a common style and use the same consistent transition (using the new view controller transitions).
Lastly there's a lot of refactoring to reduce the size of view controllers; helper classes for colours and dates, delegates and datasources for tableviews are separate objects and as little in app delegate as I can. There's extensive use of #pragma marks to both add readability to code with marks and also messages to make sure that things I'd previously tag as TODO: comments appear as warning and so stand a fighting chance of me noticing them. Kudos to @codermay for sharing the knowledge on them at NSLondon AltTechTalks.
There's more to do:
More refactoring of the main chat view controller, a bunch of error handling to finish and some edge cases to handle around advertised peers. But it's closer, much closer :)
I've added a couple of screenshots.