<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Weird rocketry &#187; comparison</title>
	<atom:link href="http://webapp.org.ua/tag/comparison/feed" rel="self" type="application/rss+xml" />
	<link>https://webapp.org.ua</link>
	<description>Flights to outer code</description>
	<lastBuildDate>Sat, 16 Jul 2016 11:12:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Phonegap vs. Titanium</title>
		<link>https://webapp.org.ua/dev/phonegap-vs-titanium/</link>
		<comments>https://webapp.org.ua/dev/phonegap-vs-titanium/#comments</comments>
		<pubDate>Mon, 02 Jul 2012 13:59:46 +0000</pubDate>
		<dc:creator>bananos</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[cross-platform]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://webapp.org.ua/?p=214</guid>
		<description><![CDATA[For a while we&#8217;ve been spiking on different solutions to implement mobile app for our platform, and here are some of my initial thoughts on the problem.  Given that I&#8217;m too lazy and not so enthusiastic about Objective-C for iOS or Java for Android I was searching for some solution which could deliver value from both worlds [...]]]></description>
			<content:encoded><![CDATA[<p>For a while we&#8217;ve been spiking on different solutions to implement mobile app for our platform, and here are some of my initial thoughts on the problem.  Given that I&#8217;m too lazy and not so enthusiastic about Objective-C for iOS or Java for Android I was searching for some solution which could deliver value from both worlds with minimum initial effort.</p>
<h2>Phonegap (hybrid approach)</h2>
<p><a href="http://phonegap.com/"><img class="aligncenter size-full wp-image-267" title="Phonegap logo" src="http://webapp.org.ua/wp-content/uploads/2012/05/Logo.png" alt="" width="512" height="512" /></a></p>
<p>&nbsp;</p>
<h3>Pros</h3>
<ul>
<li> Ability to develop apps in HTML5 ( means more web devices are captured)</li>
<li>Overall speed of iterative development is high (it&#8217;s almost like refreshing the page)</li>
<li>Easy to debug (remote WebKit console in Emulator)</li>
<li>It&#8217;s JavaScript!</li>
<li>Huge amount of JS-frameworks for touch devices (Sencha, iUI, jQuery mobile, iWebkit, etc) ready for use</li>
<li>Ability to make bindings to native hardware by writing Objective-C plugins</li>
<li>Good  documentation &amp; large community</li>
</ul>
<p><span id="more-214"></span></p>
<h3>Cons</h3>
<ul>
<li>Overall performance of demos is poor</li>
<li>Contact list demos with huge amount of data just crash Safari (tested on hardware)</li>
<li>Building custom GUI is limited by HTML/CSS, there is a huge risk of ending up with unresponsive UI</li>
<li>A particular weakness of Phonegap is that it&#8217;s being migrated into Apache incubator &amp; development/docs seem a bit messy</li>
<li>Adobe recently bought Phonegap &amp; most probably their focus will shift towards Adobe&#8217;s AIR platform</li>
</ul>
<h2>Titanium (native approach)</h2>
<p><a href="http://www.appcelerator.com/"><br />
<img class="aligncenter size-full wp-image-270" title="titanium_logo" src="http://webapp.org.ua/wp-content/uploads/2012/07/titanium_logo.png" alt="" width="512" height="512" /></a></p>
<h3>Pros</h3>
<ul>
<li>Javascript, no need for Objective-C</li>
<li>Resulting app is Native!</li>
<li>Possibility to fully customize GUI</li>
<li>Produce HTML5 version of your application (works in browser!)</li>
<li>Ability to write cross-platform code for Android as well (also native!)</li>
<li>Titanium IDE (a free integrated development environment based on Eclipse, <a href="http://techcrunch.com/2011/01/18/appcelerator-acquires-web-app-development-suite-aptana/">ex-Aptana</a>)</li>
<li>Ability to make bindings to native hardware by writing Objective-C plugins</li>
<li>A shift towards iPhone development first (Android comes second) — which is adequate for current market shares of both</li>
<li>Community &amp; company behind Titanium seems to be pretty responsive</li>
<li><a href="http://venturebeat.com/2011/11/01/appcelerator-raises-15m/">Appcelerator recently raised 15 million series C funding</a>, which means they are serious about the platformm &amp; will<br />
continue to improve it</li>
<li>Appcelerator is known to be largest third-party app publisher on both iOS and Android and is used by companies like NBC, Zipcar, eBay</li>
</ul>
<h3>Cons</h3>
<ul>
<li>Even though it&#8217;s Javascript, you&#8217;ll have to learn Titanium mobile API</li>
<li>Some developers had <a href="http://usingimho.wordpress.com/2011/06/14/why-you-should-stay-away-from-appcelerators-titanium/">hard time debugging their apps</a> &amp; catching memory leaks</li>
<li>Documentation is somewhat messy &amp; not as perfect if compared to Phonegap, however there is a positive improvement trend since the beginning of this year</li>
<li>A sort of platform lock-in, which means that in the long run it will be way too hard to switch to other mobile technology</li>
</ul>
<blockquote><p>Just to make it clear, Titanium does not produce fully native code from your javascript. It does not compile your code to ARM  opcodes, what it does, in fact,<br />
is binary javascript interpreter (Webkit&#8217;s JavascriptCore on iPhone, V8 on Android)</p></blockquote>
<h2>A note on hybrid approach</h2>
<p>By hybrid approach I mean usage of HTML5/javascript with hooks into native iOS/Android API calls.</p>
<p>Of course, both Titanium and Phonegap fall into the category of &#8220;hybrid&#8221; but the key difference is implementation:<br />
while Phonegap application runs inside browser, Titanium&#8217;s app runs inside javascript interpreter</p>
<p>Hybrid approach seemed like a real option, but in fact for custom/responsive GUI app you&#8217;ll inevitably need a lot of<br />
code to support native UI.  Hybrid works for small features like accessing accelerometer, camera, phone&#8217;s contacts, etc.</p>
<p>It seems that creating complex &amp; responsive UI in HTML5 is not really possible, thus UX will be pretty<br />
limited. Hybrid approach for the UI part is not a good fit from the development point of view:</p>
<ul>
<li>Large amount of platform specific UI code (Obj-C) + javascript leads to technology fragmentation which is generally bad</li>
<li>a lot of quirks to connect native platform &amp; javascript app leads to poor app design which will hurt you in long run</li>
</ul>
<h2>Conclusion</h2>
<p>As you might guess, in the end it all comes to what type of application you&#8217;re going to build. If it&#8217;s mostly data-access, satellite mobile<br />
application to your mainline app, than Titanium might be an option to consider. If you&#8217;re building something more similar to Path,<br />
you&#8217;d better start right from hiring Objective-C folks.</p>
<p>And yet another warning, if you&#8217;re looking for cross-platform mobile application development, Titanium might not be a good choice.<br />
Bad news, there&#8217;s no silver bullet here. Though, it does provide some mechanisms to do it well, but the dream of writing one single codebase<br />
and ability to produce native apps for multiple platforms is very hard to achieve.</p>
<ul>
<li>Native app for iPhone &amp; Android (rich UX, more happy users)</li>
<li>Huge company behind Titanium,  paid support which means you&#8217;ll not be left with your problems alone</li>
<li>Hundreds of successful apps already made with Titanium which fit Nimble API model (i.e. they are not standalone)</li>
</ul>
<table>
<tbody>
<tr>
<th></th>
<th>Phonegap</th>
<th>Titanium</th>
</tr>
<tr>
<th>Language</th>
<td>Javascript</td>
<td>Javascript</td>
</tr>
<tr>
<th>Dev toolkit</th>
<td>poor</td>
<td>IDE, almost full integration</td>
</tr>
<tr>
<th>Custom GUI</th>
<td>Bound by browser&#8217;s CSS engine</td>
<td>Native capabilities</td>
</tr>
<tr>
<th>3-rd party native plugins</th>
<td>Yes</td>
<td>Yes, there is even marketplace</td>
</tr>
<tr>
<th>Community</th>
<td>Large</td>
<td>Large</td>
</tr>
<tr>
<th>Documentation</th>
<td>Good</td>
<td>Good</td>
</tr>
<tr>
<th>JS skills required</th>
<td>Web-dev is enough</td>
<td>Need to learn custom APIs</td>
</tr>
<tr>
<th>App performance</th>
<td>Mediocre</td>
<td>Good</td>
</tr>
<tr>
<th>Debugging</th>
<td>Easy</td>
<td>Hard</td>
</tr>
<tr>
<th>iPhone support</th>
<td>Yes</td>
<td>Yes, first-class</td>
</tr>
<tr>
<th>Android support</th>
<td>Yes</td>
<td>Yes, second-class</td>
</tr>
</tbody>
</table>
<h2>References</h2>
<ul>
<li><a href="http://www.quora.com/Path-company-product/Is-Path-built-with-PhoneGap">Phonegap giveaways on CSS animations and location services</a></li>
<li><a href="http://www.mobileapptesting.com/native-app-or-html5-pandora-says-yes/2011/10/">Native app or html5?</a></li>
<li><a href="http://stackoverflow.com/questions/4217551/what-happens-to-javascript-code-after-app-is-compiled-using-titanium-mobile/4798547">How Titanium really works? </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://webapp.org.ua/dev/phonegap-vs-titanium/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
