Making of an iPhone app design (Sharypic)
sachagreif.com
sachagreif.com
So in the sharypic app, it's a custom implementation where the sidebar view is added directly to the main UIWindow, but below the rootViewController. Tapping the menu button triggers an animation to move the whole rootViewController's view left/right.
It's not ideal because the sidebar view controller doesn't get the orientation change info anymore and making all the views stay in place requires an important amount of hacks (for instance presenting a modal view controller while the rootViewController is shifted on the right causes the rootViewController to be placed back to its original position). The code actually can't be exposed as a reusable framework because of all the hacks implemented here and there.
Since then, I stumbled upon https://github.com/edgecase/ECSlidingViewController, which can be a good candidate for a sidebar implementation, and I might switch to it for the future of the sharypic app.
Romain, developer of the sharypic app
I'm curious how you created some of those menus, buttons. For example having the 'X' at the top right corner and nice looking buttons with images at the bottom.
Is there a resource for these things or a general process? My experience has me in the belief that using anything other than the native widgets is a real pain. At least in the past, has that changed?
For instance the 'like' and 'share/invite' buttons are composed of several labels and images, and their position is computed depending on screen orientation, size of the button icon, internationalisation of the strings and length of the badge item (the 'like' badge indicates a count). There's a transparent UIButton which sits on top of all these widgets to get the tap event. And we're changing the background image when the user taps in/out/up/down the button.
Remember, when you copy Facebook, you inherit their constraints. A full-featured app for an eight-year-old social network of 800 million has to do a lot. A do-one-thing-well photo app? Not so much.
Also, the menu presents the advantage of leaving room for growth without having to redesign the home screen.
One thing I'm wondering about is the Follow sharypic on Twitter and Like sharpic on Facebook buttons in the About screen. Is it just using their respective APIs or just a plain link?
I learned a bit of objc and cocoa awhile ago, but I never understood how you can customize the app like this.