Titanium Mobile 1.8.1 is available now

Magnificent colorful vertical shot of a slot canyon in Lower Antelope Canyon in Arizona USA.

We’re excited to announce that Titanium Mobile SDK 1.8.1 and Titanium Studio 1.0.8 are now available. We released Titanium Mobile 1.8 in late December with many new features and enhancements including V8 runtime support for Android and the overall response has been very positive.

We’ve decided to release monthly service packs to address high priority issues so that our community has access to well tested releases instead of relying on CI builds. Titanium Mobile SDK 1.8.1 is our first service pack release; it builds on the strengths of Release 1.8.0.1, and addresses over 200 issues.

Enhancements in 1.8.1 include:

  • iOS & Android – Added Blob support for Ti.Map.Annotation.image
  • iOS – Support for repeating backgrounds on a view
  • iOS – Support for getting current latitude and longitude delta from a MapView
  • iOS – Ability to disable animation when setting the contentOffset on a ScrollView
  • Documentation – Added a new Titanium Debugging and Profiling chapter to the guide
  • Documentation – Improved API documentation with new code examples

Read the Release Notes for additional details on all improvements available in this release.

Download and Installation

Updating Titanium Studio

You should be automatically prompted to update your Titanium Studio software. If you do not see the prompt, you can select “Check for Updates” from the “Help” menu from within Titanium Studio.

Updating the Mobile SDK

Similarly, you should be prompted to automatically upgrade your Titanium Mobile SDK from within Titanium Studio. If you do not see the prompt below, you can manually check for updates by selecting “Check for Titanium SDK Updates” from the “Help” menu within Titanium Studio.

For More Information

For more information, you may view the related API Documentation: Titanium Mobile SDK 1.8.1 API docs.

1 COMMENT

  1. Thanks for the update! Any word on the Titan “Tracker” sample app! I am REALLY looking forward to that. Thanks!

  2. When will be the route (on a map) implemented in Android ?
    I don’t understand why this basic feature is not yet implemented in Android SDK….

  3. My android SDK location cannot be found after updating..
    I have both 2.1 and 2.2 google SDK and SDK platform tools.

    what can I do?

  4. I don’t seem to be able to run this update – each time I get a message stating “Udating Software has encountered a problem. An error occured while collectiong items to be installed” along with…

    An error occurred while collecting items to be installed
    session context was:(profile=AppceleratorProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
    No repository found containing: osgi.bundle,com.appcelerator.titanium.branding,1.0.8.1323824798
    No repository found containing: osgi.bundle,com.appcelerator.titanium.core,1.0.7.1327097522 [

    [truncated]

    Am on Lion, trying to update from 1.0.7 and was hoping this might fix a bug where right click (both on mouse and trackpad) only works periodically in the App Explorer column.

    Thanks,

    Tim

  5. I’m having issues with the tab bar showing upon app launch when it is not suppose to. Staying on 1.8.0.1 for now…

  6. *Ti.Platform.model returns ‘simulator’ now instead of x86_64
    *setstring doesnt seem to be working correctly
    *have to clean and rebuild and almost any code change.

  7. With this version I have a lot of this error message :
    “Adding an event listener to a proxy that isn’t already in the context”

  8. This version introduces a new uggly bug :
    Is you use barImage, all child will use it also and it makes a uggly effect because the child has the bar image + it’s title over it 🙁

  9. Background gradients break in this release, some scroll views break in this release (proxy that isn’t already in context) also updating any app on the store requires you to manually create the info.plist in the root of the project.

    :

  10. Thanks for the grate work and update.

    I however have noticed that since SDK 1.8.x no JS code gets compiled into byte code.

    We’ve tested a simple app that we’ve developed, when we build the app in SDK v1.7.5 we notice that the final APK is between 2-3Mb in size and that all the code is compiled into byte code. When we build the same app with SDK v1.8.1 we end up with an APK that’s between 5-6Mb and ALL the JS code is in the resource directory. Sure the JS code is minimized whoever it’s still there.

    These are problematic in that 1) The APK is twice the size now and 2) our code which contains out intellectual property is easily viewable in the APK.
    Before you ask the APK files that we’ve examined are the final distribution (and signed) files.

    Does Appcelerator plain to address these issues?

    We could live with the inflated APK size but having the code easily viewable is a problem as we worry that someone might create a fake or unofficial version of our add as everything they need is in the final APK /resource directory.

  11. Application size is large because we have to package two runtime libraries as not all the devices support one of them. We are looking at ways to provide a build time option to ship only one library if a user wants to exclude certain low end devices. This should take care of the application size.

    We minify the application source code on a single line so that it is not easily readable. We are looking at ways to add another layer of obfuscation to make it more secure. As a general mobile guideline, you should not store any sensitive data (private keys, passwords, etc.) in the mobile application.

  12. Thank you for taking the time to respond.

    Just minimizing the source really achieves nothing in my eyes as all one needs to do is run the JS code through a JS Beautifier app or service and you’ll have a well formatted easily clear and readable JS source code.

    So if I understand you, the size final packaged APK size might come down in a future SDK release, this would be because there might be an option of selecting what runtime is package. That would be awesome.
    However we can forget about out Titanium app JS source code being compiled from SDK 1.8.x onwards?

    One of the main reasons we selected Appcelerator Titanium for our mobile app development is that unlike Phonegap the source was mostly safe.

    We didn’t have to worry about someone taking our paid-for app, unzipping the APK (or iOS binary), modifying it, adding advertising banners, rebranding it and then package it as their free app.
    It feels like if you’re a Titanium developer you’re forced to open source your hard work and all the IP that you’ve invested in your app.

    I completely understand that few apps are original and that people can code clones of them, but I’d rather they not take our work and just reuse it as they see fit. I also understand that people can uncompile native apps, if people have these skills then they probably have the skill to write a clone from scratch. Hoever the skills needed to unzip an APK and then just reuse the code is minimal, any junior web developer can do that.

    Can you suggest any way forward short of:
    1. Go back to Titanium Mobile SDK 1.7.5, or
    2. Putting valuable app logic into a webservice, or
    3. Putting code that you don’t want people to be able to view into a compiled native module, or
    4. Ditching Titanium mobile and investing in developing in Android and iOS native SDK environments?

    Sorry about going on and on about the source code compilation but we’ve previously had an app ‘stolen’ and don’t want a repeat.

    Thanks again for the great SDK and tools.

  13. Richard: we are actively working on an obfuscation mechanism that would take care of your concerns. We should have these changes available in the next release (few weeks).

  14. Can’t run my app on a device (iPhone 4S 5.0.1) with 1.8.1. and SDK 4.2. Crashes after start. Getting the following error: ld: warning: unexpected srelocation type 9 and I can’t find any solutions to this problem