<?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>Appcelerant &#187; Developer Spotlight</title>
	<atom:link href="http://www.appcelerant.com/category/developer-spotlight/feed" rel="self" type="application/rss+xml" />
	<link>http://www.appcelerant.com</link>
	<description>Appcelerator blog focused on helping you build your next killer mobile, desktop and web based applications</description>
	<lastBuildDate>Thu, 24 Jun 2010 17:43:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Telling Your Story</title>
		<link>http://www.appcelerant.com/telling-your-story.html</link>
		<comments>http://www.appcelerant.com/telling-your-story.html#comments</comments>
		<pubDate>Mon, 22 Jun 2009 21:12:43 +0000</pubDate>
		<dc:creator>Scott Schwarzhoff</dc:creator>
				<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[build android apps]]></category>
		<category><![CDATA[create iphone apps]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://www.appcelerant.com/?p=118</guid>
		<description><![CDATA[It’s been quite a couple weeks since our Titanium beta launch.  We received a tremendous number of requests for access to Appcelerator beta and hundreds of mobile and desktop projects have already begun production.  It’s a good time to share some initial thoughts on all the great that apps that you’re looking to [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Telling Your Story", url: "http://www.appcelerant.com/telling-your-story.html" });</script>]]></description>
			<content:encoded><![CDATA[<p></p><p><span style="">It’s been quite a couple weeks since our Titanium beta launch.<span style="mso-spacerun: yes;">  </span>We received a tremendous number of <a title="Request for Titanium Mobile" href="http://www.appcelerator.com/products/request-titanium-mobile/">requests for access to Appcelerator beta </a>and hundreds of mobile and desktop projects have already begun production.<span style="mso-spacerun: yes;">  </span>It’s a good time to share some initial thoughts on all the great that apps that you’re looking to build.</span></p>
<p><a href="http://www.flickr.com/photos/nobihaya/1287221843/"><img src="http://farm2.static.flickr.com/1329/1287221843_cabd428ab2.jpg"></a></p>
<p class="MsoNormal" style=""><span style=""><span style="">One thing is clear from reading the initial responses: you, our users, are building very different apps than the ones typically seen in the various app stores.<span style="mso-spacerun: yes;">  </span>Sure, we’re getting our fair share of games and entertainment apps.<span style="mso-spacerun: yes;">  </span>But whereas those two categories make up 35% of the Apple store, they only make up 11% of what we’ll call our “app pipeline”.<span style="mso-spacerun: yes;">  </span>So, the question is, what <em style="mso-bidi-font-style: normal;">are</em> you looking to build with Titanium? <span style="mso-spacerun: yes;"> </span></span></span></p>
<p class="MsoNormal" style=""><span style="">We’ll get more scientific over the next few weeks, but here are a couple of anecdotal examples of the types of apps that you all are building: “promotional/affinity” apps for upcoming product launches, auto apps that help users navigate around traffic jams, content management front-end apps, onsite billing/quoting apps, medical recording apps for doctors, “augmented reality” apps, university geo-services/mapping apps and eLearning apps, apps that pull together web-based social tools, and lots of mobile ports of existing SaaS-based enterprise apps.<span style="mso-spacerun: yes;">  </span>In a sign of the times, we’re seeing apps that help job seekers, apps for saving money while on-the-go, and apps that help realtors promote their residential and commercial property… and many, many more.</span></p>
<p><a href="http://www.flickr.com/photos/romainguy/2884316310/"><img src="http://farm4.static.flickr.com/3134/2884316310_a450196525_m.jpg"></a></p>
<p class="MsoNormal" style=""><span style="">In short, you are bringing your deep knowledge of web tools and technologies along with your own connectivity to your customers/users to bear on mobile and desktop apps.<span style="mso-spacerun: yes;">  </span>You are building what can best be described as “Always On” apps.<span style="mso-spacerun: yes;">  </span>Whether for consumer or business use, almost every Titanium-created app uses web connectivity, leverages information from your datacenter or user base, and mixes in device-centric contextual functionality like geo-location or mobile filesystem access to create a truly unique app experience.</span></p>
<p class="MsoNormal" style=""><span style="">We would love to showcase your story on this blog and help you promote your Titanium-created app.<span style="mso-spacerun: yes;">  </span>Please drop me a line at sschwarzhoff [at] appcelerator.com if you have a story that you’d like to share.<span style="mso-spacerun: yes;">  </span>In the meantime, our best wishes on telling your app story with Titanium!</span></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fb25d17b-38b5-47ed-9857-f171051e9899&amp;title=Telling+Your+Story&amp;url=http%3A%2F%2Fwww.appcelerant.com%2Ftelling-your-story.html">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appcelerant.com/telling-your-story.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing the Titanium Application Contest Winners!</title>
		<link>http://www.appcelerant.com/announcing-the-titanium-application-contest-winners.html</link>
		<comments>http://www.appcelerant.com/announcing-the-titanium-application-contest-winners.html#comments</comments>
		<pubDate>Tue, 21 Apr 2009 18:23:50 +0000</pubDate>
		<dc:creator>Jeff Haynie</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developer Spotlight]]></category>

		<guid isPermaLink="false">http://www.appcelerant.com/?p=113</guid>
		<description><![CDATA[
For the past two weeks, we’ve been on a quest to search high and low for the developer who could produce the most downloaded Titanium app AND the developer with the highest rated Titanium app, based on community voting. Many of you worked days, nights and weekends pouring your talent into your apps and your [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Announcing the Titanium Application Contest Winners!", url: "http://www.appcelerant.com/announcing-the-titanium-application-contest-winners.html" });</script>]]></description>
			<content:encoded><![CDATA[<p></p><div style="margin-bottom:25px"><img src="http://img.skitch.com/20090421-c6tnrry8pjmbh5aa4u2kdjsdhi.png" /></div>
<p>For the <a href="http://www.appcelerant.com/announcing-the-titanium-application-contest.html">past two weeks</a>, we’ve been on a quest to search high and low for the developer who could produce the most downloaded Titanium app AND the developer with the highest rated Titanium app, based on community voting. Many of you worked days, nights and weekends pouring your talent into your apps and your good humor into the IRC.  We wanted to see what could be done in a short period of time, and we must say, we are pretty excited by the results. We challenged you to give us your best shot in a quick timeframe and you delivered.</p>
<p>So, who won? Drum roll please…</p>
<p>-	Andreas Ritter’s “<a href="http://get.titaniumapp.com/app/N2GM2cX">NuShell</a>” application received the highest rating, 4 stars out of 46 votes.</p>
<p>-	Abishek Tiwari’s “<a href="http://get.titaniumapp.com/app/l2GGMX3">Raviex Videos</a>” application has been downloaded 482 times (over 700 total since the first submission).</p>
<p>Congrats to Andreas and Abishek who are each taking home some extra stimulus money &#8211; $500 (USD)! And, of course, the first ten developers who submitted an app will be receiving some cool limited edition Appcelerator t-shirts.  Check your mailboxes soon. </p>
<p>We appreciate everyone’s involvement and thank you for coding away! Titanium is a great platform because you help make it that way.  Please keep the comments and feedback coming! Keep following <a href="http://twitter.com/appcelerator">@appcelerator</a> on Twitter to get the latest updates and be sure to stay tuned for the next Titanium release… it’s just around the corner – sooner than you think.</p>
<p>And remember, submissions of your Titanium applications don’t end here. Feel free to continue developing and adding new apps in Titanium Developer and promoting them through your networks. We’ll continue to expand the app marketplace and offer more opportunities for you to distribute and promote your application in the near future.  As always, your feedback and ideas are welcome. Please send them over to us!</p>
<p>Code Strong!</p>
<p><a href="http://twitter.com/jhaynie">@jhaynie</a></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fb25d17b-38b5-47ed-9857-f171051e9899&amp;title=Announcing+the+Titanium+Application+Contest+Winners%21&amp;url=http%3A%2F%2Fwww.appcelerant.com%2Fannouncing-the-titanium-application-contest-winners.html">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appcelerant.com/announcing-the-titanium-application-contest-winners.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Appcelerator Remote Routes for Service Integration</title>
		<link>http://www.appcelerant.com/appcelerator-remote-routes-for-service-integration.html</link>
		<comments>http://www.appcelerant.com/appcelerator-remote-routes-for-service-integration.html#comments</comments>
		<pubDate>Mon, 06 Oct 2008 02:41:54 +0000</pubDate>
		<dc:creator>Andrew Zuercher</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[Product Updates]]></category>

		<guid isPermaLink="false">http://www.appcelerant.com/?p=87</guid>
		<description><![CDATA[Problem definition
A few weeks ago i started a thread on the Appcelerator development network about remote routes.  The thread got a bit of attention and ultimately meant different things to different people.
web 1.0 transformations
When I get in front of customers today that have an existing web solution in place, they tend to ask some [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Appcelerator Remote Routes for Service Integration", url: "http://www.appcelerant.com/appcelerator-remote-routes-for-service-integration.html" });</script>]]></description>
			<content:encoded><![CDATA[<p></p><h2>Problem definition</h2>
<p>A few weeks ago i started a thread on the Appcelerator development network about <a href="http://www.appcelerator.org/group?id=9&#038;topic=443#post=3040">remote routes</a>.  The thread got a bit of attention and ultimately meant different things to different people.</p>
<h3>web 1.0 transformations</h3>
<p>When I get in front of customers today that have an existing web solution in place, they tend to ask some simple questions:</p>
<ul>
<li>What do I have to do to implement a service in &lt;backend framework&gt;?</li>
<li>I&#8217;ve already got a bunch of web services, can I use them as is?</li>
<li>My website has a traditional web 1.0 implementation, will i have to throw away and start over?</li>
</ul>
<p>Primary focus: cost to implement seems to be the main chasm for them to hurdle.</p>
<h3>REST zealots</h3>
<p>A bunch of the developers out there are jazzed about building <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTfull</a> services to remotely expose an endpoint for integration.  Re-using these endpoints is a natural fit for them and paramount to their needs.</p>
<p>Primary focus: A clean single place to define their services.</p>
<h3>back end framework architects</h3>
<p>Then there are the framework guys that are out there that have the need to add Appcelerator to extend their portfolio.  Recently I helped out with implementing an Appcelerator service for <a href="http://grails.org/">grails</a>.  To facilitate the framework integration I write a similar service broker in grails much akin to what we have done for the other platforms.  The controller would discover the Appcelerator services written in grails and then invoke them directly.  The downside is that:</p>
<ul>
<li>grails developers like to integrate at the controller level and not the service level</li
<li>grails itself makes responding to and rendering JSON very easy</li>
<li>grails already has routing and discovery built into the framework</li>
</ul>
<p>Primary focus: not duplicating existing framework functionality in a way that is consistent with their architecture</p>
<h2>Previous approaches</h2>
<p>In the past I&#8217;ve prescribed a 4-tiered strategy for those that are out there that are interested in integrating their existing application using Appcelerator;</p>
<ul>
<li>create new Appcelerator-specific remote services that reuse existing code inline if possible</li>
<li>use an ESB to route to your existing services</li>
<li>use the <a href="http://doc.appcelerator.org/reference/widget_reference/app_http.html">app:http</a> written by <a href="http://www.appcelerator.org/profile?id=32">Mr. Hashemi</a> as mash-up in the client
<li>do not use remote services, but allow Appcelerator to add richness to your application locally in the browser</li>
</ul>
<h2>Solution</h2>
<p>Instead of writing remote services that are Appcelerator specific and restrictive, an implicit contract is adhered to.  This means that back end services can be written in any language or platform so long as they are able to consume and render in an approved format (for example &#8216;application/json&#8217;).  </p>
<h3>Traditional</h3>
<p>Here is a simple example for a traditional service.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">class</span> MyService <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">Appcelerator::Service</span>
  Service <span style="color:#996600;">'order.create.request'</span>, <span style="color:#ff3333; font-weight:bold;">:create_order</span>, <span style="color:#996600;">'order.create.response'</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> create_order
    order = Order.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;amount&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
	order.<span style="color:#9900CC;">save</span>
    <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#996600;">'success'</span><span style="color:#006600; font-weight:bold;">=&gt;</span>true, <span style="color:#996600;">'id'</span><span style="color:#006600; font-weight:bold;">=&gt;</span>order.<span style="color:#9900CC;">id</span><span style="color:#006600; font-weight:bold;">&#125;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<h3>Using remote routes</h3>
<p>And now we make use of controllers as well as remote routes.  Here is the controller</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">class</span> OrderController <span style="color:#006600; font-weight:bold;">&lt;</span> ApplicationController
  <span style="color:#9966CC; font-weight:bold;">def</span> create
    order = Order.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;amount&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    order.<span style="color:#9900CC;">save</span>
    respond_to <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>format<span style="color:#006600; font-weight:bold;">|</span>
       <span style="color:#CC0066; font-weight:bold;">format</span>.<span style="color:#9900CC;">json</span> <span style="color:#006600; font-weight:bold;">&#123;</span> render <span style="color:#ff3333; font-weight:bold;">:json</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:success <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>, <span style="color:#ff3333; font-weight:bold;">:id</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> order.<span style="color:#9900CC;">id</span><span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>And now in the client we include the following in our javascript (there are a ton of ways to implement this, but here is an example for now)</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	$MQR<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'r:create.order.request'</span>,<span style="color: #3366CC;">'/order/create'</span>,<span style="color: #3366CC;">'post'</span>,
	<span style="color: #3366CC;">'r:create.order.response'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<h2>trade offs</h2>
<table class="mytable" cellspacing="0" callpadding="0">
<tr style="background-color:gray;">
<th style="padding:5px;border-left: thin solid black;border-top: thin solid black;border-bottom: thin solid black">Item</th>
<th style="padding:5px;border-left: thin solid black;border-top: thin solid black;border-bottom: thin solid black">Remote Routes</th>
<th style="padding:5px;border-left: thin solid black;border-top: thin solid black;border-bottom: thin solid black">Appcelerator Service</th>
<th style="padding:5px;border-left: thin solid black;border-top: thin solid black;border-bottom: thin solid black;border-right: thin solid black">app:http</th>
</tr>
<tr style="">
<td style="padding:5px;">Web controllers</td>
<td style="padding:5px;">Yes</td>
<td style="padding:5px;">No, must be appcelerator services.</td>
<td style="padding:5px;">Yes</td>
</tr>
<tr style="background-color:lightgray">
<td style="padding:5px;">Message Mapping</td>
<td style="padding:5px;">Yes, client side as javascript to define routes.  Concise and not too terribly tedious and can be done in exactly one place.</td>
<td style="padding:5px;">Server side using annotations to map methods to message types.</td>
<td style="padding:5px;">Yes, client side widget declarations per message type.</td>
</tr>
<tr style="">
<td style="padding:5px;">Message Multiplexing</td>
<td style="padding:5px;">One-2-One: a given request message is associated with a single response message and are processed one at a time.</td>
<td style="padding:5px;">Many-2-Many: this is a big upside for the existing service brokers is that groups of messages can be delivered to the back end at a given time and different types of messages can respond to them</td>
<td style="padding:5px;">One-2-One: a given request message is associated with a single response message and are processed one at a time.</td>
</tr>
<tr style="background-color:lightgray">
<td style="padding:5px;">Service Endpoints</td>
<td style="padding:5px;">Multiple can be supported, the target url is an aspect of the message mapping</td>
<td style="padding:5px;">Fixed, all requests go through specifically one exposed endpoint (service broker)</td>
<td style="padding:5px;">Multiple can be supported, the target url is an aspect of the message mapping</td>
</tr>
<tr style="">
<td style="padding:5px;">External Services</td>
<td style="padding:5px;">Yes</td>
<td style="padding:5px;">No</td>
<td style="padding:5px;">Yes</td>
</tr>
<tr style="background-color:lightgray">
<td style="padding:5px;">Serialization</td>
<td style="padding:5px;">Up to back end service to implementor</td>
<td style="padding:5px;">Appcelerator remote service takes care of it for you</td>
<td style="padding:5px;">Up to back end service to implementor</td>
</tr>
</table>
<p><br/></p>
<h2 style="margin-top:10px">Wrap up</h2>
<p>Understanding the trade-offs for the different service routing opportunities should be considered when you architect your solution.  At the core of it, Appcelerator provides you with options and leaves that decision up to you, empowering you to make that choice for yourself.</p>
<p>
this article cross posted at <a href="http://blog.zuerchtech.com/2008/10/05/appcelerator-remote-routes-for-service-integration/">http://blog.zuerchtech.com/2008/10/05/appcelerator-remote-routes-for-service-integration/</a></p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fb25d17b-38b5-47ed-9857-f171051e9899&amp;title=Appcelerator+Remote+Routes+for+Service+Integration&amp;url=http%3A%2F%2Fwww.appcelerant.com%2Fappcelerator-remote-routes-for-service-integration.html">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appcelerant.com/appcelerator-remote-routes-for-service-integration.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appcelerator Community Member Spotlight: Q&amp;A with Kevin Whinnery</title>
		<link>http://www.appcelerant.com/appcelerator-community-member-spotlight-qa-with-kevin-whinnery.html</link>
		<comments>http://www.appcelerant.com/appcelerator-community-member-spotlight-qa-with-kevin-whinnery.html#comments</comments>
		<pubDate>Mon, 16 Jun 2008 20:37:26 +0000</pubDate>
		<dc:creator>Jeremy Porter</dc:creator>
				<category><![CDATA[Developer Spotlight]]></category>
		<category><![CDATA[adobe flex]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[appcelerator developer network]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[kevin whinnery]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://www.appcelerant.com/?p=62</guid>
		<description><![CDATA[As the Appcelerator Developer Network continues to expand, we thought it would be nice to start highlighting the efforts of some of our most active community members to help facilitate further interaction and collaboration. For our first Developer Spotlight, we’ve selected Kevin Whinnery, a Systems Engineer with ERP powerhouse Lawson Software.
What’s a “day in the [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Appcelerator Community Member Spotlight: Q&#038;A with Kevin Whinnery", url: "http://www.appcelerant.com/appcelerator-community-member-spotlight-qa-with-kevin-whinnery.html" });</script>]]></description>
			<content:encoded><![CDATA[<p></p><p>As the <a title="Appcelerator Developer Network" href="http://www.appcelerator.org" target="_blank">Appcelerator Developer Network</a> continues to expand, we thought it would be nice to start highlighting the efforts of some of our most active community members to help facilitate further interaction and collaboration. For our first Developer Spotlight, we’ve selected <a title="Kevin Whinnery Profile" href="http://www.appcelerator.org/profile?id=209" target="_blank">Kevin Whinnery</a>, a Systems Engineer with ERP powerhouse Lawson Software.</p>
<p><strong><em>What’s a “day in the life” of Kevin Whinnery like?</em></strong><br />
At Lawson, I’m currently involved in developing an application to monitor behavior and performance of our SaaS offering for human resources.  I have designed and developed a solution built with an Adobe Flex front-end and backed by a Java-based query engine.</p>
<p>Outside of work, I’m actively involved in other development projects with my business <a title="LightRail Systems, LLC" href="http://www.lightrailsystemsllc.com/" target="_blank">LightRail Systems, LLC</a>, where you can follow my efforts through my blog. One example is a student information system developed with Ruby on Rails. We’ll be looking at ways to possibly leverage Appcelerator in this and other applications we’re developing.</p>
<p><em><strong>How did you hear about Appcelerator?</strong></em><em><strong></strong></em><br />
I originally read about Appcelerator when I was trolling blogs. I made a mental note to check it out, but then got sidetracked with my other projects. A few weeks later, somebody commented on my blog that I should check out Appcelerator, so I set aside some time and took it for a test drive. I downloaded the SDK and took a crack at building something with it. I got hooked immediately and have been using Appcelerator for six months now.</p>
<p><em><strong>What was your first impression of Appcelerator?</strong></em><br />
I’ve been developing with Flex for a couple of years now. Event handing isn’t overly complicated, but it does require a lot of code. What caught my eye with Appcelerator was the Web Expression Language – specifically, how elegant message and event handling are with Appcelerator. Compared to what I was used to with Flex, I was very impressed by Appcelerator’s capabilities right out of the gate. It’s a young framework with a few rough edges, but Appcelerator features some unique innovations that make it destined to command a large share of the growing RIA development space.</p>
<p>The messaging system and hand-in-glove integration with backend services are truly unique among RIA frameworks, and they represent Appcelerator’s greatest differentiators.  The amount of code required to do basic things, like fire an event containing user input, is immense in an RIA framework like GWT or Flex.  With the Web Expression Language and other innovations (like fieldsets – you’re going to love fieldsets), Appcelerator makes these things, which should be simple, exceedingly so.</p>
<p>While Appcelerator’s widget library is useful, I see that more as a future strength of the framework. There needs to be more documentation around integrating third-party widgets, but the fact that you can extend and customize Appcelerator to support any other framework, library or widget is a forward thinking strategy. While you would have to do a lot by hand today, as community support increases, there will be few more efficient ways to build RIAs than with Appcelerator.</p>
<p><em><strong>Are you using Appcelerator for any applications you’re working on right now?</strong></em><br />
I was originally planning to use Appcelerator for the student information system we were building, but I didn’t get up to speed with the product soon enough. Given our need to launch this summer, we opted to stick with straight Ruby on Rails. We are working on a new product which will be using Appcelerator, which I could tell you about – but then I’d have to kill you.  But we’re excited about showcasing some great Appcelerator features.</p>
<p>I’m also using <a title="Google App Engine" href="http://code.google.com/appengine/" target="_blank">Google’s App Engine</a> for a muscular dystrophy web site I’ve created.  I think Appcelerator currently is the best web framework for Python out there, and will see wide adoption as App Engine grows in popularity.</p>
<p><em><strong>What would you like to see improved on the Appcelerator Platform?</strong></em><br />
The widget framework is still young. It’s not as developed as other tools. Flex is more customizable, with a class library that you can customize and extend as needed. While Appcelerator has set the foundation for extensibility here, there is still some work to do.</p>
<p>The SOA integration points are great, but I’d like to see them become a little more general purpose. While all SOA integration points serve the Appcelerator UI, I’d like to see well-known ways to invoke Appcelerator services for other clients.  Eventually, I would like to see Appcelerator services behave like true RESTful web services, so they could easily serve other clients.</p>
<p><em><strong>So you’re a big Flex supporter… what would you tell other Flex users about why they should consider Appcelerator as a complement?</strong></em><br />
First and foremost, Appcelerator’s Web Expression Language and event handling is a breakthrough in RIA technology. The messages are lightweight and easy to publish and subscribe to. The amount of event handling code you write in an Appcelerator app will go down significantly from a Flex app – especially written with Cairngorm. I can tell you this from personal experience.</p>
<p>Second, there’s no need to use a browser plug-in with Appcelerator. When you create an app with Appcelerator, it will be more accessible and will not need as large an initial download.</p>
<p>Finally, Appcelerator provides you with hand-in-glove integration with a variety of server-side technologies, with no glue code that needs to be written.</p>
<p>While I still like Flex, it really only makes sense to use it in situations where you are going to need to have a graphically intensive or data intensive application.  For most applications, you would be swatting a mosquito with a bazooka if you chose Flex.  Appcelerator is a much better choice for rich web applications that don’t need to function like fat clients.</p>
<p><em><strong>So you’re literally writing the book on Appcelerator. What’s that about?</strong></em><br />
I am genuinely impressed with what you guys are doing. Somebody finally got how to do event driven RIA in an elegant way. This is the first breakthrough innovation we’ve seen in the next wave of Web-based application development. I fell in love with Appcelerator and wanted to get more involved with the technology. I decided to submit a proposal to Manning Publications (publishers of the “In Action” series of books, among others), and they were similarly convinced of Appcelerator’s potential.</p>
<p>Early access to the book should begin sometime this week, with development scheduled to continue into the fall, with a release scheduled for early 2009.  I’m hoping lots of folks will join the early access program and offer some feedback during the process.</p>
<p><em><strong>Any final thoughts you’d like to share with others that might be considering Appcelerator?</strong></em><br />
Yes. Get involved with the community. I’ve seen Appcelerator continue to innovate on a weekly basis, and thanks to the responsiveness of the development team, community members can have a say in the direction of that innovation.</p>
<p><strong>About Kevin Whinnery</strong><br />
Kevin is a Systems Engineer at Lawson Software, and is also the President and CEO of LightRail Systems, LLC, publisher of the Recess Student Information System. He lives in the Twin Cities of Minneapolis and Saint Paul in the great state of Minnesota with his wife Kendra and two gifted and adorable children, Emmett (3) and Grace (1).  When not cranking out code, Kevin enjoys some combination of coaching, playing, or watching baseball, football, and wrestling. If you&#8217;d like to get to know Kevin, reach out to him in the community &#8211; you can view his profile <a title="Kevin Whinnery Profile - Appcelerator Developer Network" href="http://www.appcelerator.org/profile?id=209" target="_blank">here</a>.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fb25d17b-38b5-47ed-9857-f171051e9899&amp;title=Appcelerator+Community+Member+Spotlight%3A+Q%26%23038%3BA+with+Kevin+Whinnery&amp;url=http%3A%2F%2Fwww.appcelerant.com%2Fappcelerator-community-member-spotlight-qa-with-kevin-whinnery.html">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appcelerant.com/appcelerator-community-member-spotlight-qa-with-kevin-whinnery.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
