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 have 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).
- Make sure your
DefaultIcon.pngin the root of the directory is your app logo. It needs to be 1024x1024px.
- Enable Storyboard in tiapp.xml by changing this key inside the
<ios>section to true, or by removing the property entirely.
3. Customize your color by adding this key inside the
<ios> section, and then replace the
#hex color by your color of choice.
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.