Over the weekend I did some some last minute polishes and fixes on the current codebase for LocalTalk and took the plunge and submitted.
It's submitted as v0.8. Which I hope indicates where I think it is in terms of what I want to for it to be complete to a 1.0 standard.
So why release at this point?
I wanted to get it in the store ahead of WWDC, the idea being to get the word out to some people on the WWDC2014 Glassboard list, ask them to use it and test it in anger in a place where the WiFi connectivity will be marginal and the cellular networks are at best patchy.
This would give it some real world testing, and also some attention. Fingers crossed. It's built with Crashlytics inside so I'll get to use their excellent reporting and bug management tools to understand any issues.
It'll be free of charge, at least for now. I'm mulling over what to do in the future with it. It's never intended as a money-maker directly, it's more of a working, evolving CV.
The point at which I decided to flip the switch was the completion and testing of rewriting a big section of code which handled the actual display and storage of messages. Whilst the core data storage and multi peer code have, since the beginning been abstracted out to there own controller classes, the tableview controller running the chat window has always been it's own datasource and delegate and as such started to approach Massive (almost Super-Massive) View Controller status.
So I abstracted out all the datasource stuff into a new class and then refactored how it handled stuff, as it became clear in the process of unwinding the wool that it could be much smaller and tighter and the exact management of queues had some nasty edge cases in.
I can say I'm much happier to make that code visible to the world now and, since it's been almost 8 months since that core piece was written, I was happy to be able to apply all the lessons and ideas I've ingested.
Anyway, as of yesterday it's Waiting for Review. I'll update as it changes. Hooray for the iOS7 redesign of iTunes Connect.