Image for post
Image for post

Prepare your iOS app for the 2020 Apple Requirements

Rene Pot
Rene Pot
Oct 31, 2019 · 3 min read

Apple typically gives developers some time to adapt their apps to the new iOS/Xcode versions. In April 2020 Apple is requiring you to do a couple things for every update or new app. For Titanium Apps this is not any different!

1. Launch Storyboard

Since the beginning iOS has supported Launch Images which were static images with specific resolutions. However, starting April 2020 you will to have Launch Storyboard in your app.

Luckily for you, in Titanium there already is a Storyboard build-in by default. The default Storyboard is a screen with a solid background-color and the app logo in the center. Your app logo is the defaultIcon.png file in the root of your directory. Then the solid background-color should probably be the same as the background-color of your app icon.

So how to configure your app to use the default Storyboard?

By default this is enabled if you haven’t explicitly disabled it in tiapp (as per step 2).

  1. Make sure your DefaultIcon.png in the root of the directory is your app logo. It needs to be 1024x1024px.
  2. Enable Storyboard in tiapp.xml by changing this key inside the <ios> section to true, or by removing the property entirely.
<ios>
<enable-launch-screen-storyboard>true</enable-launch-screen-storyboard>
</ios>

3. Customize your color by adding this key inside the <ios> section, and then replace the #hex color by your color of choice.

<ios>
<default-background-color>#C7172C</default-background-color>
</ios>

4. Remove all splash screens in /assets/iphone. These files will only increase your app size at this point, as they are compiled into your app but no longer used.

And you’re done! You now have a flexible storyboard.

So how to configure a fully custom storyboard?

If the default storyboard is not to your liking you can make your own storyboard. A .storyboard file is a file you can create using Xcode. Put this storyboard file in app/platform/ios/LaunchScreen.storyboard (for Alloy projects) or platform/ios/LaunchScreen.storyboard (for classic projects). For a full guide on how to use custom storyboards follow this guide in the documentation.

Any image in your custom storyboard requires a hash instead of a filename because of the way the asset catalogue is build up. You can check this ticket on JIRA to see how to get that hash and this ticket on Jira to follow updates regarding changes surrounding that.

2. Support any size

Any app uploaded to the AppStore needs to work on all devices you submit it for. If you upload an iPhone app your app will need to work on all devices/resolutions currently in existence (that can download your app based on minimum iOS version), but also any iPhone device coming out in the future. Keep that in mind when designing your app.

Always expect the unexpected. Like when first the iPhone X came out, a notch wasn’t expected. Any UI that was build by non-default UI elements didn’t function properly as UI elements were hidden behind the notch. Changes like this could happen again.

If you upload an iPad app have a look at #3:

3. Support split screen multitasking

Starting April 2020 your iPad app will have to support multitasking. This might be a tough one! Especially considering a lot of apps have a completely different UI on iPad’s that doesn’t fit well in the narrow multitasking screen. Well now you have to take this into consideration. So test this, make sure your UI is flexible and where needed (try to avoid this) build in conditions to change your UI based on the width of the screen. Start testing today!

4. Build your app with Titanium SDK 8.2.0.GA or higher

Starting in April 2020 you will need to compile your app against iOS 13/Xcode 11. This means any update or new app you release starting April 2020 will need to be build using Titanium SDK 8.2.0.GA or higher. If you are still on anything below 8.2 make sure you start upgrading as soon as possible. This also means some other things can/should be upgraded. Your current stack should look like this:

  • Latest Node 10.x
  • Appc CLI 7.1.1 (or higher)
  • Titanium SDK 8.2.0.GA (or higher)

Especially the Node upgrade is important, as starting with Titanium SDK 9.0 node 8.x/9.x will no longer be supported. Using the latest 10.x is important, so make sure you’re always up-to-date.

All Titanium

Everything about App Development using Appcelerator…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store