Titanium Developer – more headaches

Just how much time does Appcelerator spend in bed with Apple?

I understand that iPhone is a nice target platform for selling apps, but Appcelerator markets Titanium much the same way that Sun Microsystems (R.I.P.) marketed Java: Write Once, Run Everywhere.

However, the developers at Appcelerator (who make Titanium) have lots to learn about portability. (How’s that for irony!) Probably everybody in software development has lots to learn from could learn from The Art of Unix Programming and general Unix Philosophy.

To make it work, even in a new Ubuntu, you have to (after installing) actually (re)move the following files from ~/.titanium/runtime/linux/1.0.0/:

libgio-2.0.la           libglib-2.0.la           libgobject-2.0.la
libgio-2.0.so           libglib-2.0.so           libgobject-2.0.so
libgio-2.0.so.0         libglib-2.0.so.0         libgobject-2.0.so.0
libgio-2.0.so.0.2200.4  libglib-2.0.so.0.2200.4  libgobject-2.0.so.0.2200.4

After that, at least it starts (albeit with LOADS of messages and warnings on the console).

The cryptic error message that “indicates” the error with the conflicting libraries, removed above, was:

symbol lookup error: /usr/lib/libgdk-x11-2.0.so.0: undefined symbol: g_malloc_n

So, if you get the error with titanium and libgdk-x11-2.0.so.0 and g_malloc_n, the solution is to move away the libraries from the runtime directory in your installation folder.

Android SDK not found by Titanium Developer?

When struggling with Titanium Developer on windows, (see tutorial examples in earlier posts) one of my main problems was that it failed to locate the Android SDK, despite the fact that I had installed it. The problem is due to Titanium Developer looking for the “adb.exe” and “android.bat” in the “tools” directory, but in the new versions of the SDK they are located in the “platform-tools” directory instead.

The easy fix to the problem, is to simply copy adb.exe and the corresponding DLL to the tools-directory. Read my full post for easy instructions on how to get started with Titanium.

Easy Android Development with Titanium Developer!

Everybody does it… Do you? If not, read on, to see what is needed to create your first HelloWorld Android app! We will use Titanium, which lets you use web technology to build apps for both Android and IOS.

Step 1: set up a development machine.

I like to separate stuff, and I had LOADS of trouble trying on my 64bit Windows 7 (x64), so I chose to install a 32bit (x86) version in VirtualBox (on my CentOS Linux workstation).

On my first attempt, I gave it only 9 GB of disk, which was way too little, so I started over with a 19.5 GB disk (preallocated). Configured the VM with 600MB RAM and no Audio device. I installed Windows 7 Ultimate N (From MSDN), turned off all desktop effects (optimize for performance), installed Google Chrome as the default web browser, unpinned IE from the task bar, pinned Chrome there instead, chose a desktop wallpaper (unneeded, but I couldn’t resist the image of the happy plastic figures holding their knees!), and applied the windows updates, except SP1, because that led me to an irrepairable “fatal error c0000034 applying update operation” error. (Yes, I tried DISM /image:D:\ /cleanup-image /revertpendingactions, even twice).

Step 2: set up the development environment

The development tool we will use is Appcelerator Titanium, and we will develop for Android, so we need the Java SE JDK and Android SDK first.

Java and Android SDK

Since the development machine is a windows host, we choose the Android SDK windows installer, and install it in the default location. It is friendly enough, checking for Java JDK and providing a link to the download page if it is not found. My machine is a fresh install of Windows 7, so we have no Java yet. I installed it through the Windows x86 JDK link after clicking the word “JDK” under the leftmost Java Icon and then accepting the license agreement on the next page. Install Java in the default location.

If you still have the Android SDK installer “hanging” after it didn’t find Java, click the “<Back” button, and then “Next>”, to begin the installation of the Android SDK. The default values are fine.

Add “C:\Program Files\Java\jdk1.6.0_25\bin” to the end of your PATH variable.

SDK Manager

Let the SDK installer start the SDK Manager, let it search for available packages. Being lazy, I let it download everything, by simply choosing “Accept All” and clicking “Install”. This will take a while. Quite a long while if you are on a slow link. Grab a coffee, Energy Drink, Tea, Beer, Milk, whatever and take a break while it downloads and installs what you’ve chosen.

Install Titanium Developer

Download and run the windows installer of Titanium Developer. Its target audience seems to be IOS developers, as there are (still) some annoying bugs in the version I use. For instance, it’s using a (nowadays) incorrect way of finding and checking the Android SDK.

Workaround

To get around the bug in Titanium, copy “adb.exe” and “AdbWinApi.dll” from the “platform-tools” directory to the “tools” directory, under (my example) C:\Program Files\Android\android-sdk\.

Step 3: Set up Titanium

Register a new account, click the green button “New Project” (+) on the top of the window, Click “Desktop” near “Project type:”, and change it to “Mobile”. Click the button with the red X at the bottom where it’s written “Android SDK found” (unless you have a green checkbox there), and help it find the SDK for Android if necessary. (Path in bold in previous paragraph).

Pick a name for your first app, chose an appropriate App Id, pick an empty directory for this app, if you have an URL, enter it, and click “Create Project”. This will create a directory tree starting with your app name, and under it, the directory “Resources“, the file “tiapp.xml” and a bunch of other files.

The Resources directory is the home of “app.js”, your first Android application, written in JavaScript!

Click the “Test & Package” button on the top right on the work space in Titanium. A view with three tabs: “Run Emulator”, “Run on Device” and “Distribute” should be visible. “Run Emulator” should be selected. Below it should be a tab named “Android”, and beneath that, a black log window. If not: delete your new project, import the KitchenSink demo app, and recreate your project. At the bottom you have selections for SDK version, Screen, and a filter for what kind of output to view, as well as a Launch button and a Stop button.

Press “Launch” and wait.

I’ll be back with a coding example. But I think this has been plenty for now!

By the way, if it in the message box (top right corner) says there’s an update for Titanium Mobile available, click the download link…

My Android Adventure begins

So, today I started downloading and configuring of Eclipse, the Android SDK, Titanium, and even set up an account at Urban Airship, so let the coolness begin!

It should be very very interesting to see “whats new in development” these days. I haven’t used an IDE since Borland C back in… well, ages ago, anyway. I work faster in vi than in notepad, so it will surely be interesting to give Eclipse a go.

Watch out for more posts on my android progress!