How to defend Titanium?

You must Login before you can answer or comment on any questions.

How to defend Titanium from posts like these?

http://martinfowler.com/bliki/CrossPlatformMobile.html

8 Answers

Looks like his third end-note summed up his attitude for developing with something like Titanium:

“3: I see one path that might prove me wrong. In this scenario you use a cross-platform toolkit - but you write a different app, with a different experience design, for each platform you build for. The gain over doing this with native code is that you have a single platform for your developers to use and can get some reuse of common code (particularly non-UI code). This strategy doesn't address the problem of dealing with UI controls, and even if it works, it's only worthwhile if the developer-understanding and code reuse benefits are significant.”

Here's an answer:

"With Appcelerator, I can build a native Android App and iPhone App in just a few hours. Why should I waste my time with each platform individually and slow web apps?"

— answered 2 years ago by John Welch
answer permalink
2 Comments
  • Im currently using Titanium at work but there have been a bit of "resistance" from some guys. I think I remembered using such statement of yours before to help defend myself in using Titanium but I guess it didnt work. Im afraid I might loose foothold and I might be told to drop using Titanium later on. Bummer ;p

    — commented 2 years ago by Rhendy Barcebal

  • I think the people that are against Titanium are the ones that spent 6 months learning how to code a simple RSS app in native iOS. Then they think, that was a waste, now I must defend my position against these other frameworks. The other thing is that if you have been coding native for a while you will already have tons of stock code to work with.

    — commented 2 years ago by John Welch

If you read at the bottom of this article under Follow-ups #3, you will see that Martin Fowler admits that cross-platform works in this case. Which to me is very inline with what Titanium Mobile provides.

Well, he has an opinion, he's not offending anyone. And I think he' not completely wrong.

But, what I personally don't like is that black/white - seeing. Web technologies have their pros and cons, so have the natives ones. A bad is a bad app - there is no difference if it's native or web. Same for Swing and SWT.

BTW: Titanium Studio is based on Eclipse which uses SWT. There is no doubt that Eclipse is one of the most successful IDEs out there. Oh well, Netbeans (Swing!) is a competitor and great as well.

Conclusion: if you want to do a great app, use the technique that will give the user a nice experience, and not the technique that is politically cooler, smarter etc. Many of you remember the platforms wars between PC and Mac 10 years ago. Wasn't that a waste of time as well?

Code strong ;-)

you dont, just find another client...

In the end, even if you convince them, they will blame every problem on the framework

No need to defend Titanium, he actually makes a case for it. Though Ti looks to be proving to be one of the best environments for doing cross-platform development, it didn't originally bill itself as such. From my understanding it was originally intended to give Javascript programmers access to native mobile UI components.

He argues for web apps as a cross-platform solution. With Titanium you can mix web views with native UI giving you the best of both worlds. I easily could see Ti used as just a controller which loads data and views from a web server into WebViews while also hooking into platform functionality and custom modules.

That said, as far as cross-platform development using native components, Titanium definitely offers enough to make that an attractive option:

  • One language means you can share code and libraries across platforms.
  • The MVC model encourages you to separate the view from you data and logic, facilitating abstraction of view differences for different platforms.
  • Platform specific folders allow you provide platform code and assets. By combining this with subclassed components you can keep your code DRY and compact. By not resorting to OS detection and conditional statements this strategy also minimizes the size of build packages.
  • If you have to there is OS detection available.
  • The build system allows you to target different platforms with various screen resolutions and densities.
  • I'm sure there are more...

All these factors add up to one thing, a lot less code to maintain, and that's a good thing for developers and project schedules, and a good argument for cross-platform development.

Don't bother. People loves to troll.

Trying to prove something will only feed their "hunger". There is nothing to defend, the true value of this frameworks( Titanium, Corona, PhoneGap) resides in what they really do and not in what some guy tries to prove.

— answered 2 years ago by Dan Tamas
answer permalink
1 Comment
  • As I mentioned previously - calling Martin Fowler, someone who's done more to advance software development in the last 5 years than you'll probably do in your entire career, is pure ignorance.

    — commented 2 years ago by M A

He makes a valid point about users expecting a native looking app to use real native UI controls and behave as a native app. However, he completely misses the mark when it comes to Titanium, other than his dismissive footnote #3.

That is exactly the virtue of Titanium. All (or at least most) code other than the UI itself can remain exactly the same. Depending on which UI elements you use, the UI may also be largely the same. Or it may require significant tweaks.

But any non-trivial app has way more time in the business logic than in the UI (in my experience anyway). A primary objective of the MVC paradigm is to decouple the UI from the business logic and Titanium does that very well.

If you are doing apps which are almost entirely UI with minimal supporting code, then IMHO the app is trivial enough it doesn't make as much difference if you making a new version for each platform. But even here, Titanium shines because you use a single environment and skill set for both platforms.

In short, while I see where he is coming from, IMHO he completely misses the point of Titanium. That said, as others mention, the best thing to do with these types is ignore them and not "feed the troll".

— answered 2 years ago by Doug Handy
answer permalink
1 Comment
  • Martin Fowler is one of the though-leaders in software development, and has greatly contributed to the forward momentum of the art. If your calling him a troll, then your simply broadcasting your own ignorance.

    — commented 2 years ago by M A

Your Answer

Think you can help? Login to answer this question!