Is Titanium appcelerator worth it for developing camera based application on ipad, iphone and android? [closed]
Asked Answered
E

8

6

I want to build a mobile/tablet application whose core feature will be taking pictures with the camera , viewing pictures and receiving notifications. Also I want to target iphone, ipad and android platforms.

Titanium appcelerator piqued my interest because of its cross platform appeal. However I am concerned because I've read mixed reviews on SO and other sites. The things that worry me are:

  • Subpar android support
  • Camera support not fully capable (e.g ios 4.1 HDR capability)
  • Camera support buggy

The nightmare scenario for me would be to invest time in titanium only to discover later on that its a major PITA and drop it and go "native"

Please share your thoughts and experiences.

Entrammel answered 1/11, 2010 at 19:10 Comment(0)
W
14

I chose Titanium for a serious application, although one that does not use the camera. I think there are a variety of things that could play into your decision...

If your app intends to do "fancy" stuff with the camera, or some real heavy image processing and so on, you're likely better off going native. If on the other hand, you just want to have it take pictures, and then those will be used as-is, or sent to a server, or what not, then Titanium should work just fine. Titanium does have some processing and image manipulation things, but as others have said, if you really want to take advantage of the device's hardware, you probably want to go full native.

It should also be noted, and Appcelerator says this as well, that with a Titanium app, you won't just write a single app that works as-is on all devices. You will need to taylor the UI to each device (or class of device, i.e. iPhone, Android), because they have different UI's, and different standard UI flows and so on.

But, one of the potential advantages to Titanium is if you don't know Objective-C and/or Java, and you do know JavaScript (and in my case, I'm actually using Coffeescript :). Or, if you would enjoy your work much more writing JS than ObjC/Java. This was one of the main reasons for me. I have done some ObjC dev in the past, and don't even mind it, but this project I'm doing is on a very very aggressive schedule, and it was just going to be far more effective for me to use Titanium. I was able to get set up and build an app extremely quickly, and I am not spending any time having to become more deeply familiar with the programming language I'm using, memory management bits (you can't fully ignore this with Titanium, but essentially they're doing it for you). Based on the folks I've talked to, and how much time they spend with memory management, Interface Builder issues (this is mostly the ease of forgetting to setup connections or hook various things up, IB is actually a pretty great tool), and so on, I'm quite glad I'm using Titanium.

While I expect to do an Android version at some point, it's not a priority. But, I'm glad to know that a large chunk of my app code will be re-usable, tested, etc. and that I'll wind up mostly just building/revamping the UI for Android, not rewriting networking code, data management, and so on. Android support will be much better (supposedly) in Titanium 1.5, but you may want to wait for that release to evaluate Android if that's a priority.

Finally, Titanium does have a "module" system, that allows you to wrap native code, exposing it as a JavaScript interface in Titanium. We are about to leverage this to integrate a third party library, and at least for what we need, it looks very easy to use, and has given me a little more confidence that if some particular native feature we need access to comes up, that we'd have a decent chance of integrating that while still using Titanium, but I think it would depend on what the particular native functionality was.

Good luck and enjoy building a mobile app, it's pretty fun!

Wigeon answered 2/11, 2010 at 0:27 Comment(1)
You make good points about Titanium as a great resource for those with web development skills. This is how it was presented at C4, and I could see the advantages for designers or developers with strong backgrounds in web technologies. I've just been burned by cross-platform toolkits in the past.Berkie
D
8

We have been using Titanium in one of our projects for around 2 months, and frankly speaking our experience with Titanium is too bad.

As per my opinion, below are some major drawbacks of Titanium:

1) First thing is you will not get debugging support at all (We can understand how debugging require in any of the project and in any of the technologies).

2) Titanium is NOT fully supporting all the features of Android/iPhone; beyond some level it will not give you support.

3) Comparing with Android/iPhone SDK, developers will get very less amount of help from the internet and API library (Titanium provides the API library help file).

These are the general issues that end developers face while dealing with Titanium and I suppose sometimes it will be tedious and frustrating work for them.

If the functionality of your application is somewhat like displaying data from the web (like many news, media type apps) then Titanium is the suitable option; otherwise not.

Dongdonga answered 7/12, 2010 at 13:25 Comment(0)
C
3

The Android support is not near as good as it is for the iPhone. If you were to just say iPhone I would say you would have luck using Titanium. However, I think trying to build one code base in Appcelerator and also use in your Android environment may not be the best experience.

That said, IMO doing Android / Java code is much easier than doing Objective C / iPhone work.

So worst case I would consider using Titanium for your iPhone version & do Android in Java.

You can give it a shot doing them both in Titanium, but worst case code the Java version.

I just hate objective C and the 'native' Apple development environment so much.

Cladding answered 1/11, 2010 at 19:56 Comment(4)
i have heavy java background so i would agree with you. My goal is to reduce overall development time so if i go with titanium will i achieve this goal?Entrammel
To each their own, because I don't much care for Java, Eclipse, and some of the design decisions made in the Android SDK. I'm far more productive in Cocoa / Cocoa Touch, with Apple's development tools, than any other environment I've worked in. However, I agree with your sentiment that native development on Android is the way to go, in the same way I argue it's what to do for iPhone.Berkie
@numes I think if you are not familiar with Cocoa & Objective C and you aren't trying to make anything ridiculously crazy than Titanium should do it. Their framework for iPhone/iPad is pretty damn good and you are productive pretty much immediately.Cladding
More than an answer, it looked more like a hatred for Apple's SDK.Fye
B
3

I would recommend against using a cross-platform toolkit when interacting with device hardware is one of the key requirements of your application. I haven't worked with Titanium before, but I find it hard to believe that they will give you the same level of hardware access that you get with native frameworks.

In particular, iOS 4.0 added a mess of new capabilities regarding the camera, including live video frame processing through AVFoundation, and I find it hard to believe that a third-party framework will keep up as these platforms advance. To be honest, it's pretty easy to write an application that interacts with the camera on the iPhone nowadays (count the number of them on the App Store as an indicator of this). I wrote a live camera frame processing application in about six hours the other day.

I can't speak for Android, but I imagine dealing with cameras is fairly trivial using the native APIs there as well.

You're also going to find performance testing and debugging your application to be far easier using the native tools than those supplied through a third party. In particular, Apple's Instruments is an extremely powerful, yet easy to work with, application for tracking down CPU and memory issues within your application.

There's also the community aspect. You'll find far, far more people working on Android and Cocoa Touch than on Titanium (just look at the numbers of questions in the various tags on Stack Overflow to see that). This means many more tutorials and a whole lot more sample code that you can use.

The time you'll spend getting your iPhone and Android build environments set up, and submitting to both stores, will be the same no matter if you go with a native environment or with Titanium.

In the end, even with learning both platforms, I think you'll come out ahead by avoiding a cross-platform solution. Trust me, I've tried to do cross-platform development before for other projects and ended up with lowest-common-denominator products that took much longer to write.

Berkie answered 1/11, 2010 at 22:54 Comment(4)
I don't think looking at Stack Overflow for Titanium related questions is going to accurately reflect things. I would agree that the sheer number of Titanium developers is smaller, but Appcelerator hosts their own Q&A/forum, and I believe that is where most of us are posting questions (vs. Stack Overflow) when it comes to Titanium.Wigeon
@Wigeon - Stack Overflow may be an unfair place to compare, because it has become a prime resource for iPhone and Android developers. However, I still hold that the vast majority of iPhone developers out there are using Cocoa Touch. Of all of the developers I've met at WWDC and other conferences, none are using Titanium, a few are using MonoTouch, and all of the rest are using pure Cocoa Touch. I rely on these people as my support network, as well as Apple engineers, none of whom provide Titanium support.Berkie
Oh, I agree that Titanium is still very small in relation to the total apps space dev tool choices. I'm sure CocoaTouch is 99%+. MonoTouch, boy, I'd be interested to see how many use it. Titanium claims 6000+ apps, but that includes Android. They have some big ones in the App Store like Get Glue. But yes, it's still a small-ish player. That doesn't mean it's not something to consider. There are a couple consulting companies doing all their mobile apps in it (that I'm aware of): Intridea and Rigel Group for example.Wigeon
My point is that you are less likely to see Titanium devs at WWDC, or asking for help on SO, because those aren't the best resources for help with Ti. Folks use Ti for diff reasons, but one of those reasons is to avoid dealing with the native SDK. Attending WWDC isn't likely of value for them. Ti's own Q&A/forums is a dedicated resource for Ti devs vs. the hope that there are other Ti devs at Stack Overflow for that. Point is, it's not where one goes for Ti help, and because of that, I don't think you'll find many Ti folks here; thus it's not a fair way to assess how many poeple are using it.Wigeon
U
2

I've developed an Appcelerator-based camera application and was very pleased with it. I think some of the negative reviews come from the fact that it's a bit hard to get set up (more due to Apple's crazy developer registration process).

Once I got started, it was easy to do things like overlays on top of the camera screen. I was really expecting difficulty with that part, but it worked well.

I have spoken with the Appcelerator team in the past, and they are a great group to work with. I've seen them be responsive to other user issues, and I'd trust that if I ran across a real bug, they would address it quickly.

Underfur answered 1/11, 2010 at 20:6 Comment(2)
tim, did you target android as well? if yes, what was your experience (esp with camera)?Entrammel
That part is in progress, but for a really great understanding of what you're going to deal with, look at the Kitchen Sink app they provide. It covers every feature that they support (for both platforms), and you can look through the code to see exactly how it works. After a quick runthrough of documentation and a simple Hello World app, the Kitchen Sink will cover everything you need, and you'll understand why I'm not concerned about the risk :) github.com/appcelerator/KitchenSink and pages.appcelerator.com/ZTAKitchenSink.htmlUnderfur
N
2

A little late, but my two cents...

I honestly believe you can very quickly prototype an application with Titanium Appcelerator and focus on the critical feature sets to determine if it is the appropriate tool for you.

All developers have there opinions and experience(s) which influence there comments; developers have different ways of learning and different levels of productivity... In the end, it comes down to how are you most productive with the tools available to you.

Since you are stating from the start that you want to deliver a solution an multiple platforms, I think it would be a poor decision on your part to not even spend a week or two investigating cross-platform frameworks and then making the decision based on your personal experience.

There is Titanium Appcelerator and there is also PhoneGap, where PhoneGap might help you is that there is the ability to extend/enhance the underlying framework through writing plugins (I wrote one for iphone ) and there is an android one on my blog also... this can fill missing gaps for you when you move across platforms.

Also since the UI in a phone gap solution is HTML5 Webkit based, it can give you a consistent look and feel across you devices if you like. Frameworks like jQTouch and JQuery Mobile are being used for UX with PhoneGap Application

Necessary answered 2/11, 2010 at 2:30 Comment(1)
This post is old, but since so many people have viewed it I figured I would update my response, first off the answer is YES and we have done just that, look at the application we built here itunes.apple.com/us/app/snapdash/id599657092?mt=8Necessary
N
2

I reviewed negative feedback for Titanium Appcelerator but I tottaly agree with Aaron Saunders that if you use PhongeGap Development is support HTML5 which can getting easy to make apps for iPhone, iPad and Android mobile.

Nitrate answered 6/9, 2012 at 8:22 Comment(0)
C
1

Has anyone highlighted the cost off titanium.

I was contacted by them today and if you are more than a one man band you have to sign up for a partnership program else you are held liable for breech of contract if you release the app.

The partnership program is £5000 which is far to much for us as a start up company when it's our first application, we are currently looking for a different option now.

Chronometer answered 23/5, 2012 at 23:19 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.