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?"
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.
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".
Your Answer
Think you can help? Login to answer this question!