Last week, we had looked at how we should address GUI changes when we are looking to transition from iOS6 to iOS7 for iphone apps. We saw how the underlying theme has changed with the upgrade to iOS7, and what are the changes you should be watching for when you look at transitioning your iphone app from iOS6 to iOS7. This week we will look at the changes in the UI elements and how to transition all elements as per the UIKit to ensure consistency.
Step 2: UI Elements
Then after you have noted all the changes pay particular attention to how graphical elements play off one another and if anything needs to be corrected. Also note areas where elements from something other than UIKit are causing the applications to transition inconsistently or fail to transition when you believe it should. After that you’ll want to note areas where you should bring in consistency. For example modal views are much more consistent under iOS 7 than they had been under iOS 6 and so end users will be surprised and likely annoyed if they see something like a nonstandard data picker. An example would be not having the “all day” slider for a user entered time range, this slider typically wasn’t present in iOS 6 but iOS 7 end users will expect it to be present.
All existing UIKit elements need to be checked and all new elements need to be checked to ensure they do not break.
- Update the icons including the new 152×152 icons
- Add dynamic type.
- Eliminate gestures that conflict
- Check that application content is viewable when needed under translucent overlays like keyboard
- Replace hand coded UI values with dynamic values calculated from quering the system.
- Make sure you Auto layout degrades gracefully with satisfied constraints.
- Resolve view misplacement, which are places where the constraints are conflicting with the placement via. Interface Builder.
- Try and find and resolve all ambiguities, these are places where a constraints yield multiple possible solutions. For example a button that has a horizontal but not a vertical constraint. The most frequent cause of this is an undefined size.
- Indicate to the system the order to break constraints if the constraints in combination yield 0 possible solutions.
- For hybrid applications (those that use libraries in addition to UIKit, but also some UIKit elements) you should be using NSFoundationVersionNumber to check status and application did finish launching with options to manually determine the loading procedure.
Most of the details beyond this are toolkit specific and we’d be happy to discuss these with you if you and develop a transition plan specific to your application.