With the recent release of Xcode 8.3.1 and iOS 10.3.1, I discovered several updated apps on my devices claiming new features that required iOS 10.3. I couldn’t help but notice something on the release notes (yes, I do read the release notes even though my apps update automatically) in the latest update of the MLB “At Bat” App. Specifically the line “Customize your iPhone and iPad home screens with MLB Club-branded app icons (Requires iOS 10.3 update).” I was shocked. Apple now allows customizing app icons! Where was the fanfare?
For years, iOS developers (myself included) have wanted the ability to customize app icons. But only one app in the entire iOS ecosystem (and later, Clock) could pull it off: Calendar—the Native Apple application that updates its icon with the current date.
This seemingly small but deceptively complex feature—requiring 4 APIs—opens up so many possibilities! Here’s but a few:
Let’s look at the MLB At Bat app as an example to illustrate the process of customizing the app icon. Open the app, tap settings, then “Set Home Screen Icon.” Tap your favorite team and you’re done. It’s that easy.
From a security standpoint I’m certain Apple was reluctant to enable this feature, concerned it could be used to mislead users or create confusion or problems for non-tech savvy people. The way Apple finally addressed the issue is pretty simple, however. Regardless of whether the change is driven by manual user-selection or by automatic configuration, a pop up (as shown above) appears to request user validation.
The only caveat for developers to take into account if you want to leverage this feature is that you must include the assets and an entry in your Info.plist file for it to work. Meaning you will not be able to change the icon on the fly; icons must be prepackaged in your IPA before submitting to the AppStore.
How do I implement the Alternate Icon API in an app?
No matter what technology or language you are using, here are the steps to follow to implement the Alternate Icon API into your iOS App.
1. In your Info.plist file, you need to add the following:
Where the propelicsDarkTheme and propelicsLightTheme entries are the names of the alternative icons I want to make available to users and the darkIcon60 and lightIcon60 entries are the PNG files in my project.
2. Make sure you also add the actual files to your project. For my demo apps I just added the @2x and @3x png of an original 60 pixels image for each, which seems to work pretty well. AppIcon is just your default icon entry.
This API comes with 3 different methods from the UIApplication class of the UIKIt framework:
Read the official Apple documentation to learn more.
We use the following tools to help speed the development of our mobile apps: Swift iOS, Xamarin and Appcelerator Titanium. For this code implementation we’ve provided samples for 3 development platforms: you can find the Xamarin and Swift iOS sample projects here and the Appcelerator module with its Hyperloop equivalent here. Give it a try!
Why should I care?
Customizing app icons is one example of the small (though powerful), unexpected features some OS releases include. After all, it’s not the big sort of change we’d expect to see in iOS 11, but just a ‘minor’ system update. Nevertheless for some companies and app shops it provides opportunities that until now were not possible. And this last release includes even more features, besides, like the out-of-the-box review dialog to rate your application in the AppStore (Check the SKStoreReviewController documentation).
Your Mobile App Portfolio and Mobile Center of Excellence should always strive to find the right balance between adding new APIs, new device capabilities and novel user experiences while accomplishing its business goals.
For instance, if you build apps for Android and iOS and your mobile development team is small you need to be careful about which new features to add to your backlog or your R&D. If you have to pick between the AppStore review API and the alternate icon API in iOS, but you only deploy enterprise apps through your own private App Store, then the AppStore review API is irrelevant to your situation and you should focus your efforts on the alternate icon API.
No matter how big or small your team, you can easily get caught up in new capabilities that won’t do anything for your business or become mired in business requirements while your apps suffer from an outdated UI/UX. Regardless of the specifics, Propelics is here to help you with this necessary balancing act to keep your mobile initiatives moving in the right direction.
If you are ready to start leveraging the latest and greatest features of your mobile platform but don’t know how or where to start, give us a call. We’re more than happy to help light the way ahead on your path to Enterprise Mobile success!
Chief Technical Architect at Propelics
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie | Duration | Description |
---|---|---|
cookielawinfo-checbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.