API DevelopmentMobile Strategy

Custom vs. Standard Development: The Good, the Bad, and the Unexpected

willowtree-wwdc-developing-to-platform-standards

With the impending release of iOS 13 and SwiftUI, we’re taking a moment to reflect on design and development best practices. A debate that commonly surfaces around the office is whether custom or Apple standard controls provide the best user experience. When possible, you should stick to Apple standard controls and implementations, allow your content to be king, and free up developers to solve the core business problems that matter to the users.

1. Apps that follow Apple’s design philosophy are (typically) more accessible and future proof.

For example, in iOS13, many UI elements and controls have been overhauled to stand out in both light and dark modes. When you create your own custom control, you now need to account for both of these modes, as well as the range of foreground and translucency effects they can take on from the system. If you use UIKit or SwiftUI standards, you get Dark Mode and a guide of how they are presented to the user for free. When you create a custom Toggle, a custom Slider, or custom SegmentedControl, you lose all these benefits and must spend time recreating them for you app to retain a consistent appearance in all cases. Custom Navigation Controllers may look unique, but when you consider that you’ll need to handle theming and animations for content, it’s good to ask yourself if the extra effort is worth the value you receive. When you do need to create custom controls, Apple urges you to use the system palette so that you don’t need to create two different color palettes on your own.

darkvlightmode

Supporting Dark Mode in Your Interface

2. Sticking with Apple standards can make your app faster and less expensive to develop.

Apple has said that they want all apps to be supported on the smallest iPhone to the largest iPad by April 2020. Furthermore, Apple is encouraging all iPad apps to add support for running on the Mac. Apple is leaning in heavily on the notion that apps should run in as many locations as possible. If your app uses Apple standard controls, you achieving this goal will be much simpler… If you’ve spent a lot of time creating custom controls and navigation, expect a bit of extra work to appease these new changes. This includes development time spent making sure that your controls work well on all of Apple’s devices. Standard controls are built to work well everywhere and are more tolerant to future updates of the OS, limiting rework as standards evolve over time with each iOS release.

customvsstadard

Apollo, made by a former Apple engineer and built using their philosophy as a core component. Beautiful app, works great on iPhone and iPad, averages 4.8 stars on the App Store, and has supported Dark Mode for quite a while already.

Apple also released SFSymbols–a massive library of glyphs for use in your app. These symbols have been designed from the ground up to automatically align with Apple’s default font– San Francisco. This means that no matter the font scale or localization, symbols will line up correctly with your text. Considering this, I encourage you to consider using the system font in your apps for most uses. Apple has spent countless hours making a font that will work well on all devices and for all font sizes. Using custom fonts will often require the developer to spend extra effort making it work to avoid content being clipped or misaligned, especially when considering different sizes for accessibility… Before you use a custom font in your app, make sure there is a distinct, worthwhile reason for doing so.

3. Standard controls tend to have fewer bugs and are more suitable for testing.

It’s harder to write bugs when you’re writing less code. If you’re not writing a custom navigation scheme, that’s less code to write tests around or worry about breaking unexpectedly. Using Apple controls also makes sure that your content will scale with accessibility sizing and look correct when localized– eliminating another class of bugs. The best case scenario gives developers more time to test core business logic, which is where the true value of your app lies.

That’s not to say custom controls are bad. In fact, they should absolutely be utilized when they provide more value and an enhanced user experience. If the point of your app is for a user to make purchases, you should certainly do all you can to make the experience as streamlined and enjoyable for the user as possible.

If you are keen on unique development, don’t be discouraged! Adhering to standard controls doesn’t mean that your app needs to look like Apple’s Settings. Remember Apollo? It lets the content come to the forefront and gives the user a beautiful experience to explore. The best part is that with SwiftUI, we’ve gotten access to so many more facets that designers and developers can use to create unique experiences for the user without being boring. SwiftUI allows developers to make views that are composable– piecing smaller views together to make more complex functionality while retaining all of the benefits of using platform standards. The release of iOS13 is quite possibly a larger shift in the way apps will be designed and developed going forward than the introduction of Swift from Objective C. SwiftUI opens up a world of possibilities for both designers and developers. With those possibilities also comes new and increased challenges.

The decision point between following a standard and going your own route should be a conscious choice, weighing the risks and benefits of each path. You can always go back and add complexity later if your app demands it. Take the time to think carefully about where the complexity should lie in your apps, and how you can provide the most value for your users. Doing this will allow you to release with a more polished experience that users can feel for themselves.

Join our team to work with Fortune 500 companies in solving real-world product strategy, design, and technical problems.

Find Your Role