After a weekend full of coding, I’ve submitted 1.3.1 to Apple for review. This fixes compatibility with iOS 5 (thanks to Robert for reporting the bug) and also has some improvements for the shopping list. I also refactored all the list views to use the same code. This has become necessary as over the years more and more criteria for sortering had been added and now Monika from the Czech Republic reported a weird problem:
When she renamed an ingredient, suddenly all ingredients disappeared! I couldn’t really believe it until after much effort from her, I was able to reproduce the problem. It in fact only happened when the system language was Czech. The problem was that I used an NSFetchedResultsController to query for the Core Data database objects and had implement my own fast-scrolling-index code. In some cases, using localizedInsensitiveCompare produced a different orderning than using the upperCase version of the first letter of each name. I still don’t completely get it, but here is the solution: Throw away NSFetchedResultsController.
Instead, use UILocalizedIndexedCollation to create the index, use an NSFetchRequest to do the fetch yourself and then sort it into sections/rows using sortedArrayFromArray. Performance probably won’t be as good as using the highly optimized NSFetchedResultsController but there doesn’t seem to be a way to use UILocalizedIndexedCollation with it.
Anyway, don’t know if it’s the new name of the app or the integrated Facebook support, but sales of Recipes has slow picked up again. It’s not much (I’ve talked to a lot of people, nine out of ten never even came barely close to breaking even for all the time they spent developing), so this app still is run as a hobby project. But it’s nice to have a growing fan base nonetheless. So if you’ve got feedback, drop me a mail, it’s always nice to get to know the people that use the app…