Titanium News #18
Tags: titaniumsdk, mobile, javascript, news
Published: 2024-03-31 10:47:47

<small>Older posts can be found [here](https://dev.to/miga).</small>

After a long time it is finally time for another `Titanium News` post!

# Intro

Titanium 12.3.0, iOS privacy requirements, big gradle update coming soon, community project spotlight and many module updates.

# Titanium 12.3.0.GA

In February the latest version of Titanium SDK 12.3.0 was release. With the help of some community feedback during the testing phase the Titanium team was able fix the latest bugs before the final release. Testing RC versions is very useful so that everyone benefits from a stable release at the end!

### What's new:

The SDK now has official support for **Node.js 18 and 20**. 

iOS got support for **multi-scene applications** like CarPlay or visionsOS. For CarPlay check [Hans repo](https://github.com/hansemannn/titanium-carplay) and for an Android Auto module check [my repo](https://github.com/m1ga/ti.car).
You can use iOS 17 spring animations ([docs](https://titaniumsdk.com/api/titanium/ui/animation.html#properties_bounce)) and a Label can use `html` ([docs](https://titaniumsdk.com/api/titanium/ui/label.html#properties_html)) on iOS too. Thanks to [@Brianggalvez](https://github.com/Brianggalvez) for the PR! 
Another parity feature: you can use `view.rotation` to quickly rotate a view. Android supported that for a while now and finally you can use it on iOS.

On the Android side a Floating Action Button icon will now respect the `tintColor` and will change its color.
The Android Label got some new properties: `lineCount` (returns the lines of the label) and `visibleText` (returns the visible text). This is very useful if you work with an `ellipsize: true` Label. Check [the PR](https://github.com/tidev/titanium-sdk/pull/13583) for some demo code. And as described in a previous new post: `breakStrategy` and  `hyphenationFrequency` ([demo code](https://github.com/tidev/titanium-sdk/pull/13706)). 
The `titleAttributes.color` property is now exposed on Android so it will use the same value as iOS to color the title text

![title color](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a6whdyg2ucmbolmxoobq.png)

Last but not least we have some module updates like hyperloop and ti.map.


# Preview

### Titanium CLI

[@cb1kenobi](https://github.com/cb1kenobi) is still going strong on to bring the next version of Titanium CLI to a final release. You can run `npm i -g titanium@next` to get the latest RC version and help testing it! Give it a go and report issues at [TiSlack](https://slack.tidev.io/).

### iOS Privacy Requirements

If you published an iOS app recently you might got an email by Apple about the new Privacy Requirements. [Hans](https://github.com/hansemannn/) put together some information how to handle that in your Titanium SDK app:
https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_How-tos/Adhere_to_the_iOS17_Privacy_Requirements.html
and made a [PR](https://github.com/tidev/titanium-sdk/pull/14007) for the next Ti version to guard some methods.

### gradle 8 update

Community member @abdullahfaqeir made a [huge PR](https://github.com/tidev/titanium-sdk/pull/14014) to upgrade the Titanium SDK to use gradle 8! This is a big step and it allows Titanium to finally use the latest Material library that blocked some modules of using their latest libraries. It still takes a bit to test all scenarios before this can be merged into the master branch but it already looks very promising. 

# Modules

Here are some new and updated modules: 

* https://github.com/AbdullahFaqeir/AccuRoot: Titanium native module to check if device is rooted/jailbroken (iOS/Android)
* Updated iOS version of ti.admob: https://github.com/tidev/ti.admob/releases/tag/ios-7.0.0 (Thanks to [@Astrovic](https://github.com/Astrovic))
* update to the CoreML iOS Module: https://github.com/hansemannn/titanium-coreml/pull/3 - move to swift, support loading AI models at runtime
* Cutout circle API for ti.map: https://github.com/tidev/ti.map/pull/677
* new module for SuperWall support by [@narbs](https://github.com/narbs/): https://github.com/narbs/ti.superwall (iOS)
* Updated "review dialog" Android version: https://github.com/hansemannn/titanium-review-dialog/releases/tag/android-2.2.0 - updated libraries
* bugfix for the Android pusher module: https://github.com/hansemannn/titanium-pusher/pull/1
* ti.mediacontrol has support for setting metadata (e.g. for car disaplys): https://github.com/m1ga/ti.mediacontrol (Android)
* ti.animation Android Lottie and Rive libraries update: https://github.com/m1ga/ti.animation/releases/tag/android-4.6.0
* ti.paint for Android has a `fill()` method now: https://github.com/tidev/ti.paint/pull/36

I'm sure I've missed some :) So feel free to leave a comment for new modules, updates or if you'll need some module updates.

# Tips & Tricks
A new short tutorial at [fromzerotoapp.com](https://www.fromzerotoapp.com/) how to calculate the folder size with all subfolders in your app: 
https://www.fromzerotoapp.com/calculate-the-folder-size-with-all-sub-folders-and-files/

# Spotlight

### Titanium Copilot
AI support for Titanium SDK users is available! @jasonkneen created a Titanium ChatGPT copilot at https://chat.openai.com/g/g-ZNwI6zmBi-titanium-copilot to help you with all Titanium related coding questions.

### PurgeTSS Copilot
The author of the [PurgeTSS](https://purgetss.com/) toolkit made a ChatGPT copilot version for PurgeTSS: [PurgeTSS Copilot](https://chat.openai.com/g/g-uLUdbBass-purgetss-copilot) to support you with AI.

### Alterante
Alterante lets you self-host your own private file & chat server on your PC/Mac/Linux, then collaborate, chat, and access / share files privately and securely with authorized mobile devices (or browser session). It's build with Titanium and was recently updated to us the latest SDK version. Have a look at 
https://apps.apple.com/us/app/alterante/id785613128 and https://www.alterante.com/


# That's it

If you have feedback or some interesting Titanium SDK apps, modules or widgets you would like to share: get in contact with me or leave a comment and I'll add it to the next `Titanium news`.