I had occasion to list all of the struggles I’ve been having with iOS lately. Maybe this will draw some advice.
RubyMotion development in general. The ruby layer isn’t a big deal, but Cocoa is huge, as is the iOS platform in general. Most reference material is written assuming you’re using all the XCode shortcuts, so it can be a challenge to track down information on doing things the hard way.
Application architecture. There are no complete real-world iOS projects on Github; what examples do exist are toy applications, with limited scope meant to illustrate a specific feature.
Database management. I’ve picked up that I should be using Core Data. It took a while to get straight, but I’ve got something that seems to be working okay for the time being. Are there issues that will come back to bite us later?
Data synchronization. I spent a lot of time thinking about how do this in a sane way. At the moment, new records are sent incrementally to the server, and a full-download is performed to ensure the client has a consistent state. I expect this to change. I have an interface that will hopefully isolate most of the application from changes in the syncing strategy, but there are still major features to be implemented, e.g. some records will be editable, and there aren’t actually multiple clients making concurrent changes yet.
API Versioning. Probably one of the next things that needs to be cleared up. Getting a version number in should be straightforward, but unlike database versioning, I haven’t forced a test case, and even then there aren’t old clients hanging around trying to access an old api that needs to be maintained. (of course I’m not testing DB jumps of more than one version either)
Custom views everywhere. It feels like I need half a dozen custom views for every screen, making every screen a long slog, filling in elements piece by piece. State and events have to move up and down the view hierarchy, and it seems like I’m defining glue methods at all the intermediate levels. Autolayout seems really verbose, but unspecified dimensions are unspecified, and who knows what they’ll do in the future.
Layout updates. There is a current issue where the certain cells don’t update their size when the finishes downloading. Might be something simple, but I know I’ve spent time on it before.
Image sizing. I took in an image a certain resolution, scale 2, and couldn’t get out a modified image at the same resolution and scale 2. I found a combination that drew to the screen in the desired size, so it may not be worth spending any more time on.