Titanium News #14
Tags: titaniumsdk, javascript, mobile, news
Published: 2023-01-22 15:31:54

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

# Intro

State of JS results are in, Titanium 12 was released, new features are coming every day, a ton of new plugins and a very interesting new UI project in the making!

# Titanium 12

In the last Titanium News the release candidate of Titanium 12 was available. After a short testing phase and fixing the last bugs the final version `Titanium 12.0.0.GA` was released. Check my [Mobile app framework Titanium SDK 12 available](https://dev.to/miga/mobile-app-framework-titanium-sdk-12-available-4kik) article for more information, screenshots and features. It is the second major release after Titanium SDK became open source and we are still adding new features, fixing bugs and keeping everything up-to-date! 

# State of JS

This years `State of JS` results are in and I'm happy to see Titanium being mentioned in the "other tools" section of the "Mobile & Dekstop" section:
![stateofjs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r4jxbi7gx6shvwqvd9ep.png)
[source](https://2022.stateofjs.com/en-US/libraries/mobile-desktop/#mobile_desktop_others)

You can check all of the results on the [stateofjs page](https://2022.stateofjs.com/en-US/libraries/mobile-desktop/#mobile_desktop_others). While it's not in the main list it is still a big win to be visible again! Next year we'll produce a higher number :smile:

# Preview

Me and some other people were very busy adding some new pull request to the Titanium SDK repo! 

#### Collapsing toolbar layout
A new layout for Android was added in [PR](https://github.com/tidev/titanium_mobile/pull/13711) that adds a collapsing toolbar with a parallax image effect. 
![demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fsjsgsrsn9kpukc06921.png)
[Click here for a video demo](https://github.com/tidev/titanium_mobile/pull/13711#issuecomment-1376394926)


#### New attributedString attribute
If you ever wanted to add a tag cloud in a ListView you'll had to find some workarounds (or use a TableView). With this new attributedString attribute [roundedBackgroundColor](https://github.com/tidev/titanium_mobile/pull/13709) you can do that now in a ListView:
![as](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ewxjwfzlwbpl0o9njya1.png)
Simply add a text and assign the attributedString to some parts of it to add a rounded backgroundColor element.

#### Label break/hyphenation properties.
Sometimes a long text inside a label can produce strange results when it breaks automatically on Android. I've exposed the native Android [breakStrategy and hyphenationFrequency](https://github.com/tidev/titanium_mobile/pull/13706) constants to Titanium so you can change them as needed.
![break](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lw1qt6dt64m87ckukv63.png)

#### Fixed elements in filtered TableViews/ListViews
When you filter a TableView or ListView and want to show some rows all the time (e.g. some help row or info box) you had to add custom search values with all possibilities. Now you can use [filterAlwaysInclude](https://github.com/tidev/titanium_mobile/pull/13684) to pin those rows. 
![filter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7h65wqk6x52cb26mk3f2.png)

#### VideoPlayer features
Two new features are added to the Android Video player: an [autoHide](https://github.com/tidev/titanium_mobile/pull/13725) property and a [buffer](https://github.com/tidev/titanium_mobile/pull/13727) event. The first one will hide the video until it is loaded so you won't see a black background. The second part will give you feedback how much of the video is buffered. 

#### Android keyboardChanged event
For Android 11+ you can use the new [keyboardChanged event](https://github.com/tidev/titanium_mobile/pull/13726) to see if the keyboard is visible or not.

#### Images in ListItem editActions (iOS)
A new user contribution added the option to add [images as editActions](https://github.com/tidev/titanium_mobile/pull/13719) in iOS ListItems
![listitem](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j5fiqk2frmjfetzecac7.png)


#### Other PRs

There are some other PRs that e.g. add Node 19 support, add a rotation value to Androids Ti.Blob or fixes documentation or smaller bugs. Always have a look at the [PR section](https://github.com/tidev/titanium_mobile/pull) to see all items.

# Modules

Many new modules released in the past weeks :heart:
[hansemannn](https://github.com/hansemannn/) did a bunch of new modules:

* [Giphy in Titanium](https://github.com/hansemannn/titanium-giphy): Use the native Giphy iOS- and Android SDK's to select GIFs and display them in your app.
* [Titanium Mixpanel](https://github.com/hansemannn/titanium-mixpanel): Use the native Mixpanel Analytics SDK for iOS & Android in Titanium!
* [Sentry for Titanium SDK](https://github.com/hansemannn/titanium-sentry): Use the native Sentry SDKs (iOS & Android) in the Titanium SDK.

And also updated [Ti.Worker](https://github.com/tidev/ti.worker/) to a new version.

A new Android version [Ti.Animation](https://github.com/m1ga/ti.animation) - the Lottie animation framework for Titanium - was release with support for [Rive animations](https://rive.app/)

@maccesar updated his [PurgeTss](http://purgetss.com/) library. It adds more than 19.000 Tailwind-like utility classes to your project and many more features. Be sure to check it out.

# UI builder

Speaking of @maccesar: he started an UI builder for Titanium that helps you building UI prototypes right on your mobile device:
![builder](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uzliz74milhh55uf6d8b.png)
It's an early screenshot but it looks fantastic already and I'm very keen to see how far he can build it. Be sure to [check his tweet](https://twitter.com/purgetss/status/1616473529288990725) with a video of the project and give him a follow!


## Tutorials

If you are new to Titanium SDK make sure to checkout the tutorials at <a href="https://fromzerotoapp.com/">From zero to app</a> and get started with Titanium to create mobile apps for iOS and Android.

## 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`.