<?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>EclipseSource Blog &#187; android</title>
	<atom:link href="http://eclipsesource.com/blogs/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Fri, 17 May 2013 13:50:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>State of the Android Gradle Build System</title>
		<link>http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/</link>
		<comments>http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/#comments</comments>
		<pubDate>Thu, 02 May 2013 11:48:28 +0000</pubDate>
		<dc:creator>Moritz Post</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[Gradle]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=15607</guid>
		<description><![CDATA[Building an Android project can be challenging at times. The Android SDK ships with a set of helpful ant scripts, but has its shortcomings. It mainly lacks a well-populated dependency infrastructure similar to what maven offers (ivy doesn&#8217;t count). Hence, the natural evolution of build process spawned the maven android plugin. The plugin allows you to infuse <a href="http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Building an Android project can be challenging at times. The <a href="http://developer.android.com/sdk/index.html">Android SDK</a> ships with a set of helpful <a href="http://developer.android.com/tools/building/building-cmdline.html#ReleaseMode">ant scripts</a>, but has its shortcomings. It mainly lacks a well-populated dependency infrastructure similar to what <a href="http://search.maven.org/">maven offers</a> (ivy doesn&#8217;t count). Hence, the natural evolution of build process spawned the <a href="https://code.google.com/p/maven-android-plugin/">maven android plugin</a>. The plugin allows you to infuse maven artifacts and perform the necessary build steps to package your app. Although maven has a great artifact repository, it has a pretty rigid set of configuration settings. The pom files tend to get verbose and interfering with the designated build process lacks flexibility.</p>
<div align="center"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2013/05/gardle-android.png"><img class="size-full wp-image-15613 aligncenter" alt="gardle android State of the Android Gradle Build System" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/05/gardle-android.png" width="575" height="251" title="State of the Android Gradle Build System" /></a></div>
<h2>The &#8220;New Build System&#8221;</h2>
<p>Entering the &#8220;<a href="http://tools.android.com/tech-docs/new-build-system">New Build System</a>&#8221; based on <a href="http://www.gradle.org/">Gradle</a>. The new build system is supposed to become the official mechanism for building Android applications. The gradle-based build combines some of the strengths of ant and maven (flexible architecture with a lot of custom tweaking opportunities), whilst at the same time providing reasonable default configurations to keep the build scripts small. Maven dependencies can be consumed from maven central, while it is also easy to consume &#8220;local file&#8221; dependencies.</p>
<p>Okay, but how does the &#8220;New Build System&#8221; prevail in practice?</p>
<h2>Using the Gradle Android Build</h2>
<p>DISCLAIMER: We are only a few days away from Google IO 2013 so the points raised here might have already changed when you read this.</p>
<p>Basic build scripts can be really really small when you rely on the default folder structure for your project. Your basic gradle build script can look like this:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="groovy" style="font-family:monospace;">buildscript <span style="color: #66cc66;">&#123;</span>
  repositories <span style="color: #66cc66;">&#123;</span>
    mavenCentral<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  dependencies <span style="color: #66cc66;">&#123;</span>
    classpath <span style="color: #ff0000;">'com.android.tools.build:gradle:0.3'</span>
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
apply plugin: <span style="color: #ff0000;">'android'</span></pre></td></tr></table></div>

<p>In fact the buildscript{} element is only required to bootstrap the script itself. The actual content is the lonely <code>apply plugin: 'android'</code>. Running this script produces a fully runnable unsigned apk.</p>
<p>The basics are simple but what about dependencies? As I mentioned, you can easily add dependencies from <a href="http://search.maven.org/">maven central</a> or a local file. In fact, the buildscript downloads its own android tasks from maven central.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="groovy" style="font-family:monospace;">repositories <span style="color: #66cc66;">&#123;</span>
    mavenCentral<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
dependencies <span style="color: #66cc66;">&#123;</span>
    compile <span style="color: #ff0000;">'com.google.guava:guava:11.0.2'</span>
    compile files <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'libs/gcm.jar'</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>The <code>compile</code> directive is similar to mavens <code>compile</code> scope in that the dependency will be bundled into your packaged .apk.</p>
<p>Gradle also supports Android library projects. The &#8220;New Build System&#8221; compiles library projects into .aar packages, which can be consumed by the main project. The main advantage of the .aar format is its ability to handle dynamic Android resource ids. You will be able to ship an *.aar archive and consume it in your main project without having to create all of its ids during compile time of the main project.</p>
<p>Library projects have to be listed in a <code>settings.gradle</code> file and all projects taking part in the build can reference any other project listed in that file.</p>
<p>Where the gradle build has its real strength is in creating multiple versions of the same app. For example, a free and a paid version, or different versions for various cpu architectures. I won&#8217;t go into detail but you should read all about it <a href="http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants">here</a>.</p>
<h2>Shortcomings</h2>
<p>Now that we have discussed some of the strengths of the gradle build system, lets discuss some of the pitfalls:</p>
<p>The gradle build is not yet able to deal with the most common dependency format for library projects: the maven apklib. Currently you can only consume maven artifacts that are packaged as jars. This rules out a lot of high profile dependencies such as the <a href="http://actionbarsherlock.com/">actionbarsherlock</a> or the <a href="http://viewpagerindicator.com/">viewpagerindicator</a>. If you want to depend on these resources you will have to keep a source reference in your project (or package them as an .aar).</p>
<p>The gradle build system offers good support for instrumentation tests you run on your device, but it is currently very hard to run standalone <a href="http://pivotal.github.io/robolectric/">robolectric</a> tests. The main problem is that robolectric does not understand the gradle dependencies so that it cannot gather sub-dependencies, and so on.</p>
<p>Support for the <a href="http://developer.android.com/tools/sdk/eclipse-adt.html">Android Development Tools (ADT)</a> is currently non-existent although this is very likely to change with future releases. The ADT cannot deal with the default folder layout by gradle, nor can it deal with declared dependencies. Therefore, you have to maintain two build infrastructures: one for Eclipse (project.properties etc) and one for the gradle build.</p>
<h2>Wrap Up</h2>
<p>The &#8220;New Build System&#8221; build sounds awesome! As long as it can deliver on all its promises. At the moment, I can not recommend it for larger projects due to the lack of robolectric support and problems with maven dependencies.  I have discussed the issues raised here with <a href="https://plus.google.com/u/0/109385828142935151413/posts">+Xavier Ducrohet</a>, the lead architect of the build system, and he assured me that most of the issues will be addressed. At the <a href="http://de.droidcon.com/">Droidcon Berlin</a> I spoke to <a href="http://www.gradleware.com/team">Hans Dockter</a>, the CEO of <a href="http://www.gradleware.com/">Gradleware</a> and co-architect of the &#8220;New Build System&#8221;, and once gradle becomes the driving engine for the ADT the entire toolchain should be covered. If the Android library ecosystem were to adapt gradle, it would have a very bright future.</p>
<p>&nbsp;</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=State+of+the+Android+Gradle+Build+System&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/&amp;t=State+of+the+Android+Gradle+Build+System" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/><a href="http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/#comments">2 Comments</a>. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/build/' title='build Tag'>build</a>, <a href='http://eclipsesource.com/blogs/tag/gradle/' title='Gradle Tag'>Gradle</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/build/' title='build Tag'>build</a>, <a href='http://eclipsesource.com/blogs/tag/gradle/' title='Gradle Tag'>Gradle</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/05/02/state-of-the-android-gradle-build-system/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tabris 1.0 is here!</title>
		<link>http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/</link>
		<comments>http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 08:55:55 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Editors choice]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[new and noteworthy]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=15384</guid>
		<description><![CDATA[Today we are proud to release Tabris 1.0. If you have not followed us so far you probably don&#8217;t know what Tabris is. Let me put it in one sentence: Tabris is the first Java-Toolkit for the cross-platform development of native mobile Apps. It enables you to write iOS and Android Apps completely in Java with <a href="http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.eclipsesource.com/tabris/"><img class="size-full wp-image-15402 alignright" alt="tabris logo Tabris 1.0 is here!" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/04/tabris-logo.png" width="325" height="236" title="Tabris 1.0 is here!" /></a>Today we are proud to release <a href="http://developer.eclipsesource.com/tabris/">Tabris 1.0</a>. If you have not followed us so far you probably don&#8217;t know what Tabris is. Let me put it in one sentence: Tabris is the first Java-Toolkit for the cross-platform development of native mobile Apps. It enables you to write iOS and Android Apps completely in Java with a single code base. With this post, I want to sum up our journey till now and show you which features have made it into the 1.0 release.</p>
<p>Tabris sits on top of <a href="http://eclipse.org/rap/">Eclipse RAP</a>. RAP provides a UI Toolkit to write Web applications using Java. This UI Toolkit is based on Widgets, so you don&#8217;t have to mess around with HTML. To be able to display those widgets in a browser, RAP uses a protocol which is based on JSON. Within this protocol are messages that instruct the browser e.g. to display a button, or a tree, and so on. What Tabris does is to provide two alternative clients which are an iOS and an Android client. Those clients simply understand the RAP protocol messages and display widgets using the native counterparts.</p>
<p>On <a href="http://eclipsesource.com/blogs/2010/04/28/rap-2-0-protocol/">April 28th, 2010</a> we have previewed a version of the RAP protocol which basically marked the start of Tabris internally. Two months later (<a href="http://eclipsesource.com/blogs/2010/06/11/writing-ipadiphoneipod-applications-with-swt/">June 11th, 2010</a>), we had the first working prototype which has used Apple&#8217;s iAd JavaScript framework for rendering. Since then we have worked on what is today released as Tabris. It includes two native clients and an extension of the server side RAP API. This extension, which is just another jar, is necessary because the RAP API is based on the Standard Widget Toolkit (SWT). SWT is limited when it is used on mobile devices. There are no APIs for Geolocation, Camera and other things a mobile App typically use.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2013/04/tabris-mdevices.png"><img class="alignright size-full wp-image-15407" alt="tabris mdevices Tabris 1.0 is here!" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/04/tabris-mdevices.png" width="302" height="370" title="Tabris 1.0 is here!" /></a>The first time we made our mobile clients public was the start of our &#8220;developer preview&#8221; back in <a href="http://eclipsesource.com/blogs/2012/01/31/rap-mobile-ios-and-android-apps-written-in-java/">January 31st, 2012</a>. At this time we concentrated on implementing a proper support for the SWT widgets. Since then, we have released <a href="https://github.com/eclipsesource/tabris/issues/milestones?state=closed">14 milestones</a>. The last public milestone was tagged with <a href="http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/">0.11.0</a>. We think that this was the most important one for Tabris. It introduced a feature called the <a href="http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/">Tabris UI</a>. Tabris UI is a higher level API for creating a frame for your mobile application. The native clients use native navigation concepts to display a Tabris UI-based application. On Android this is the ActionBar and on iOS these are the ViewControllers. So, since Tabris 0.11.0 it has been possible to write native applications using native Widgets combined with native navigation concepts.</p>
<p>In the last weeks we have concentrated on Bug fixing and API cleanup to ship a release we can be proud of. If you would like to try out Tabris yourself, just <a href="http://developer.eclipsesource.com/tabris/downloads/">download the 30 day trial version</a>. This trial has no functional limitations! To get started with this trial we have created some detailed <a href="http://developer.eclipsesource.com/tabris/docs/">getting started guides</a> you can use. We have also created a <a href="http://developer.eclipsesource.com/tabris/demos/">bunch of screencasts</a> that show some of the features Tabris provides. You can find the new &amp; noteworthy articles so far below:</p>
<ul>
<li><a href="http://eclipsesource.com/blogs/2012/02/27/rap-mobile-for-android-0-5-3-new-and-noteworthy/">Tabris 0.5.3</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/03/14/rap-mobile-0-5-4-new-and-noteworthy/">Tabris 0.5.4</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/03/30/rap-mobile-0-5-5-new-and-noteworthy/">Tabris 0.5.5</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/04/11/rap-mobile-0-5-6-new-and-noteworthy/">Tabris 0.5.6</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/05/02/rap-mobile-0-5-7-new-and-noteworthy/">Tabris 0.5.7</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/05/15/rap-mobile-0-5-8-new-and-noteworthy/">Tabris 0.5.8</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/06/20/tabris-0-6-0-new-and-noteworthy/">Tabris 0.6.0</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/07/13/tabris-0-6-1-new-and-noteworthy/">Tabris 0.6.1</a></li>
<li><a href="https://github.com/eclipsesource/tabris/issues?milestone=1&amp;state=closed">Tabris 0.6.2</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/09/06/tabris-0-7-0-new-and-noteworthy/">Tabris 0.7.0</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/10/19/tabris-0-8-0-new-and-noteworthy/">Tabris 0.8.0</a></li>
<li><a href="http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/">Tabris 0.9.0</a></li>
<li><a href="http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/">Tabris 0.10.0</a></li>
<li><a href="http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/">Tabris 0.11.0</a></li>
</ul>
<p>At this point I want to thank the community which has provided us with great feedback, feature requests and bug reports. I also want to thank the rest of the Tabris team: <a href="http://eclipsesource.com/blogs/author/jordi/">Jordi Böhme López</a>, <a href="http://eclipsesource.com/blogs/author/jeick/">Johannes Eickhold</a>, <a href="http://eclipsesource.com/blogs/author/mpost/">Moritz Post</a> and <a href="http://eclipsesource.com/blogs/author/ivan/">Ivan Furnadjiev</a> for doing a great job over the last year! And last but not least, many thanks to the <a href="http://projects.eclipse.org/projects/rt.rap">Eclipse RAP team</a> for their great support!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Tabris+1.0+is+here%21&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/&amp;t=Tabris+1.0+is+here%21" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/><a href="http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/#comments">8 Comments</a>. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/04/16/tabris-1-0-is-here/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Tabris 1.0 is coming!</title>
		<link>http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/</link>
		<comments>http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 12:06:21 +0000</pubDate>
		<dc:creator>Moritz Post</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=15108</guid>
		<description><![CDATA[Here is a quick reminder for all Tabris enthusiasts. The 1.0 release is on track and will be available real soon. Run your server side application on mobile devices and benefit from the native features of your platform. Use the Tabris UI, swipe widget, native video and much more. See you soon.]]></description>
			<content:encoded><![CDATA[<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/06/unnamed.png"><img class="alignleft  wp-image-8307" alt="unnamed 300x300 Tabris 1.0 is coming!" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/06/unnamed-300x300.png" width="180" height="180" title="Tabris 1.0 is coming!" /></a>Here is a quick reminder for all Tabris enthusiasts. The 1.0 release is on track and will be available real soon.</p>
<p>Run your server side application on mobile devices and benefit from the native features of your platform. Use the <a href="http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/">Tabris UI</a>, <a href="http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/">swipe widget</a>, <a href="http://eclipsesource.com/blogs/2012/09/06/tabris-0-7-0-new-and-noteworthy/">native video</a> and much more.</p>
<p>See you soon. <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Tabris 1.0 is coming!" class='wp-smiley' title="Tabris 1.0 is coming!" /> </p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Tabris+1.0+is+coming%21&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/&amp;t=Tabris+1.0+is+coming%21" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/><a href="http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/#comments">Leave a Comment</a>. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/04/04/tabris-1-0-is-coming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inside the Tabris UI</title>
		<link>http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/</link>
		<comments>http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 09:34:15 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Tabris]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=14413</guid>
		<description><![CDATA[As you may have read in the Tabris 0.11.0 new and noteworthy post, we have created a small UI framework called the &#8220;Tabris UI&#8221;. In this post I will dive into the details of this framework. Grab a coffee and open your mind . Let&#8217;s get started&#8230; Background Almost a year ago we released our <a href="http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>As you may have read in the <a href="http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/">Tabris 0.11.0 new and noteworthy post</a>, we have created a small UI framework called the &#8220;Tabris UI&#8221;. In this post I will dive into the details of this framework. Grab a coffee and open your mind <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Inside the Tabris UI" class='wp-smiley' title="Inside the Tabris UI" /> . Let&#8217;s get started&#8230;</p>
<h2>Background</h2>
<p>Almost a year ago we released our <a href="http://eclipsesource.com/blogs/2012/01/31/rap-mobile-ios-and-android-apps-written-in-java/">first public milestone</a> (back then Tabris was RAP mobile). Since then we have worked hard towards the Tabris 1.0 release. The basic idea behind Tabris was always to use the SWT Java API to create UIs for mobile devices. This idea hasn&#8217;t changed much. Since the first milestone Tabris has had many adopters and we&#8217;ve received a lot of good feedback. One topic that especially got us thinking was stated as follows: &#8220;Tabris is nice and SWT allows me to create a rich UI. But, it doesn&#8217;t allow me to use common navigation concepts&#8221;. Said another way, the problem for developers is that each platform has it&#8217;s own navigation concepts. For Android this is the ActionBar and for iOS it is the View Controllers as highlighted in the screenshot below.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/ui-concepts.png"><img class="aligncenter size-full wp-image-14419" style="display: inline;" alt="ui concepts Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/ui-concepts.png" width="766" height="405" title="Inside the Tabris UI" /></a></div>
<p>With plain SWT it&#8217;s not possible to create a UI using those concepts and as result it was not possible with the early versions of Tabris either. Note here, that the operative word in the last sentence is &#8220;was&#8221; -  because, we have created a small UI framework on top of SWT that enables you to create UIs using native navigation concepts. This framework now forms the core of Tabris.</p>
<h2>Abstraction</h2>
<p>Tabris is a framework for cross-platform mobile apps. The basic concept of Tabris is that you write the UI in Java and it runs on the server. A device calls the server and renders your UI with native components. This means that when you create an SWT Button on iOS, an iOS button will be created and on Android, an Android button will be created. As a result, you can create applications with one code base that serves multiple platforms. This means that we can&#8217;t (and don&#8217;t want to) port the concepts of the different platforms to a server side API. We have to create an abstraction! That is, an encapsulation of the concepts of all platforms into a simple, understandable API.</p>
<p>This API is called &#8220;Tabris UI&#8221;. The key parts are two types, <code>Page</code> and <code>Action</code>. To make it clear what these types are we can take a look at another image.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/areas.png"><img class="aligncenter size-full wp-image-14425" style="display: inline;" alt="areas Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/areas.png" width="800" height="699" title="Inside the Tabris UI" /></a></div>
<p>The red shaded area of these images is the <code>Page</code> which basically contains your controls. In the green shaded boxes you can see two Actions. An <code>Action</code> is an element that a user can press (to activate) and which is located outside of the Page.</p>
<h2>Concepts</h2>
<p>Let&#8217;s look a little deeper into Pages and Actions. Pages can be chained together in any order. This means a user&#8217;s button click can be used to open a new page. When you do this multiple times a chain will be created. Within this chain you will be able to browse backward to the previous page . This concept is called page chaining. Every chain has a root element. This is what we call the &#8220;top level&#8221; page. One application can have multiple top level pages and all can mark the beginning of a chain. Let&#8217;s take a look at a diagram.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/pages.png"><img class="aligncenter size-full wp-image-14432" style="display: inline;" alt="pages Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/pages.png" width="516" height="301" title="Inside the Tabris UI" /></a></div>
<p>This diagram could represent almost any application. The usual flow of an application is that you start on a top level page and browse through several pages, going deeper into the application. As you can see on the image this is what we call chaining. But one top level page is not enough for most application. Think about a bookstore application. The possible top level pages are &#8220;All Books, Favorites, Popular Books&#8221;. Each top level page will contain another set of books you can browse through. So, when you have several top level pages you need to be able to browse from one top level page to another or to browse from a normal page to a top level page. This is shown with the red arrows on the diagram. What&#8217;s not possible is to navigate from one page in a chain to a page in another chain because only one chain can exist at any given time. The pages in a chain are created when they are visited and they will be destroyed when you navigate in reverse and leave them (e.g. when you jump back to the top level page or the previous page).</p>
<p>Actions have a lifecycle similar to Pages. Similar but not exactly the same. Two types of Actions exist. Global Actions and Page Actions. A Global Action is visible regardless of which page the user is on. Page-Actions exist only on a specific page. They are created when the page is created and will be destroyed when the page is destroyed. You can see the difference in the following screenshots. In these images the Global Action is shaded in green. It has application scope. The Page-Action is shaded red. It has page scope.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/actions.png"><img class="aligncenter size-full wp-image-14436" style="display: inline;" alt="actions Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/actions.png" width="700" height="568" title="Inside the Tabris UI" /></a></div>
<p>&nbsp;</p>
<h2>Programming Model</h2>
<p>You will create Page and Action objects to enable the main functions of your applications. And, in most cases you will quickly reach a point where the components need to communicate. Of course, you can access a Page directly from within an Action but this is not good practice. We prefer a loosely coupled communication between components. This communication can be accomplished by using a context. In the Tabris UI it&#8217;s called a UI and you can use it for navigation and influencing the state of actions too. The key feature of the communication is that you can a data store from it. When I talk about a store think about a simple <code>Map</code>, encapsulated in the type <code>PageData</code>. A PageData object has the same lifecycle as a page. Each page has it&#8217;s own data, even top level pages. This is because you will need to pass data in your chain. You can navigate to a new page and pass in a <code>PageData</code> object which then marks the page store of the new page. Let&#8217;s take a look at another diagram.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/store1.png"><img class="aligncenter size-full wp-image-14444" style="display: inline;" alt="store1 Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/store1.png" width="518" height="131" title="Inside the Tabris UI" /></a></div>
<p>As you might notice it shows the same page chain as above. What&#8217;s different is that it shows the new PageData objects that will be passed to a new page. In this data you can save page state information such as a selection.</p>
<h2>Configuration</h2>
<p>What we have not described in the preceding paragraphs is how the different components come together. This is all done via configuration. To be explicit the type that matters is called <code>UIConfiguration</code>. You will need to create an instance and add your Page configurations and Action configurations to it. What are Page and Action configurations? As the name says, they are the configurations of a Page or an Action. A Page doesn&#8217;t know anything about it&#8217;s title, if it&#8217;s a top level page or about it&#8217;s image. And this is the same for Actions. This information needs to be declared within a <code>PageConfiguration</code> or <code>ActionConfiguration</code> object. The diagram below shows how this works.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/configuration.png"><img class="aligncenter size-full wp-image-14465" style="display: inline;" alt="configuration Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/configuration.png" width="425" height="466" title="Inside the Tabris UI" /></a></div>
<p>As you can see, the Tabris UI framework is responsible for creating Page and Action objects from the configuration. This also means that you will need to add Page or Action Class objects to it&#8217;s configuration. After you have created your configuration it can be passed in as a constructor argument into the <code>TabrisUIEntryPointFactory</code> object. As a result this needs to be added to an <code>Application</code> within your <code>ApplicationConfiguration</code> implementation.</p>
<h2>Ready to use</h2>
<p>Using everything described above, you can write powerful applications that will have a platform specific user experience. We have created an example for the Tabris UI. It&#8217;s the bookstore example mentioned earlier. You can see the flow of this app in the picture below.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/result.png"><img class="aligncenter size-full wp-image-14461" style="display: inline;" alt="result Inside the Tabris UI" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/result.png" width="707" height="533" title="Inside the Tabris UI" /></a></div>
<p>You can look into <a href="https://github.com/eclipsesource/tabris-demos/tree/master/com.eclipsesource.tabris.demos/src/com/eclipsesource/tabris/demos/ui">this example on github</a>. It&#8217;s licensed under the <a href="http://www.eclipse.org/legal/epl-v10.html">EPL 1.0</a>, so feel free to use it as a starting point for your application.</p>
<h2>Outlook</h2>
<p>The current implementation is targeted for phones because only one page can be visible at a time. Of course it can be used on tablets too, but having only one page at a time on a tablet is not the way most Apps work. We are working on an enhancement on top of the Tabris UI to be able to define groups of pages that can be visible at the same time for tablet devices.</p>
<p>We hope you will enjoy using the Tabris UI as much as we do. For me, it&#8217;s a breakthrough feature for Tabris and for cross-platform development for mobile apps. As always, feel free to disagree <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Inside the Tabris UI" class='wp-smiley' title="Inside the Tabris UI" /> .</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Inside+the+Tabris+UI&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/&amp;t=Inside+the+Tabris+UI" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/ui/' title='ui Tag'>ui</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/ui/' title='ui Tag'>ui</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tabris 0.11.0 – New &amp; Noteworthy</title>
		<link>http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/</link>
		<comments>http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 08:45:17 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[new and noteworthy]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13695</guid>
		<description><![CDATA[Today I&#8217;d like to present Tabris 0.11.0. This build marks the last public milestone before the 1.0 release. From my point of view this milestone is a breakthrough for cross-platform mobile development in Java. We have managed to abstract common mobile navigation patterns into a Java API. In addition to this we have added support <a href="http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;d like to present <a href="http://developer.eclipsesource.com/tabris/downloads/">Tabris 0.11.0</a>. This build marks the last public milestone before the 1.0 release. From my point of view this milestone is a breakthrough for cross-platform mobile development in Java. We have managed to abstract common mobile navigation patterns into a Java API. In addition to this we have added support for SWT Menus and facilities to gain device specific information and much more. Let&#8217;s dive into some details&#8230;</p>
<h2>SWT Menus</h2>
<p>Menus were an often requested feature in Tabris. With this milestone we have implemented support for menus on phones and tablets. A common use case for menus is a long press on any item within the UI. We even support dynamic menu items, so you can add items while the menu is open and they will be rendered correctly on the client. Just a note that when creating a menu, the style flags will be ignored because menus on mobile devices don&#8217;t currently support styles.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/menus.png"><img class="aligncenter size-full wp-image-14386" alt="menus Tabris 0.11.0 – New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/menus.png" width="720" height="600" title="Tabris 0.11.0 – New & Noteworthy" /></a></p>
<h2>ClientDevice</h2>
<p>The <code>ClientDevice</code> type has existed for a while now to gather information on which platform is accessing the server. For this milestone we have enhanced this type to get even more information about the client. We also transformed it into a <a href="http://eclipsesource.com/blogs/2013/02/06/rap-2-0-countdown-35/">ClientService</a> to make it accessible with <code>RWT.getClient().getService( ClientDevice.class )</code>. You can get the following information from the ClientDevice:</p>
<ul>
<li><strong>Timezone Offset:</strong> An offset in minutes to UTC. This is inherited from the RWT type ClientInfo.</li>
<li><strong>Locales:</strong> The locale used on the accessing device. Also from ClientInfo</li>
<li><strong>Orientation:</strong> The orientation of the accessing device. Can be landscape or portrait.</li>
<li><strong>Capabilities:</strong> Information regarding the capabilities of the accessing device such as phone or location capabilities.</li>
<li><strong>ConnectionType:</strong> The connection type of the accessing device. Can be wifi or cellular.</li>
<li><strong>Platform:</strong> The platform of the accessing device. Can be Android, iOS or web.</li>
</ul>
<p>Accessing this information is really easy. Check out the following snippet:</p>



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">ClientDevice device <span style="color: #339933;">=</span> RWT.<span style="color: #006633;">getClient</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span> ClientDevice.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Orientation orientation <span style="color: #339933;">=</span> device.<span style="color: #006633;">getOrientation</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



<br/>

<p>We have also created a demo showing the full feature set, <a href="https://github.com/eclipsesource/tabris-demos/blob/master/com.eclipsesource.tabris.demos/src/com/eclipsesource/tabris/demos/entrypoints/ClientDeviceDemo.java">hosted on github</a>.</p>
<h2>ClientStore</h2>
<p>One of the biggest advantages of Tabris is that it doesn&#8217;t store any relevant data on the device. But, sometimes it would be good to have small amounts of data stored, such as the ID of a previously logged-in user. This is comparable to cookies for a web-browser. A website will never store big data in a cookie but small ID&#8217;s that associate it with a data set stored on the server-side. With the new <code>ClientStore</code> implementation you can do exactly this. A small amount of data is stored on the device and is transferred back to the server during the next session (but not with every request as with cookies). Using the store can look like this:</p>



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">ClientStore store <span style="color: #339933;">=</span> RWT.<span style="color: #006633;">getClient</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span> ClientStore.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
store.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;foo&quot;</span>, <span style="color: #0000ff;">&quot;bar&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> bar <span style="color: #339933;">=</span> store.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;foo&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>




<h2>Tabris UI</h2>
<p>A huge issue for all cross-platform technologies for mobile devices is that you can&#8217;t build an app that uses the native navigation concepts. I mean you can try to emulate these concepts but you will end up with messy code because you need to differentiate for each of the platforms. From my point of view this is also the biggest drawback of HTML5. In Tabris 0.11.0 we have created an abstraction for these navigation concepts. This enables you to create your application once and our client implementations will render it in a way typical for the platform it runs on. To make this clear we have created a &#8220;Bookstore&#8221; example which can be found on github. The following screenshots show the concepts of the Tabris UI using this example. I will tell you more about the <a href="http://eclipsesource.com/blogs/2013/02/19/inside-the-tabris-ui/">details of the Tabris UI in a separate post</a>.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/ui.png"><img class="aligncenter size-full wp-image-14394" style="display: inline;" alt="ui Tabris 0.11.0 – New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/02/ui.png" width="482" height="1776" title="Tabris 0.11.0 – New & Noteworthy" /></a></div>
<h2>What&#8217;s Next for Tabris</h2>
<p>Over the next month we will concentrate on topics like bug fixing, stability and clean-up to create an awesome 1.0 release. Of course, you can comment on all topics and contribute your ideas &#8211; it&#8217;s all publicly available on <a href="https://github.com/eclipsesource/tabris/issues?state=open">GitHub Issues</a>.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Tabris+0.11.0+%E2%80%93+New+%26%23038%3B+Noteworthy&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/&amp;t=Tabris+0.11.0+%E2%80%93+New+%26%23038%3B+Noteworthy" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 EclipseSource Blog Posts of 2012</title>
		<link>http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/</link>
		<comments>http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 20:21:15 +0000</pubDate>
		<dc:creator>Jordi Böhme López</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[e4]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eclipse juno]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[Tabris]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13904</guid>
		<description><![CDATA[Here at EclipseSource we like top 10 blog posts. So here is our top 10 of 2012 &#8211; the posts most viewed or created the most buzz. 1. Top 10 Eclipse Juno Features Eclipse Juno has been released this year and it was the first simultaneous release built on Eclipse 4. In preparation of the <a href="http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Here at EclipseSource we like <a href="http://developer.eclipsesource.com/search/index.html?q=top+10" title="Eclipse Source Top 10 Blog Posts">top 10</a> blog posts. So here is our top 10 of 2012 &#8211; the posts most viewed or created the most buzz.</p>
<h4>1. Top 10 Eclipse Juno Features</h4>
<p>Eclipse Juno has been <a href="http://eclipse.org/juno/" title="Eclipse Juno">released</a> this year and it was the first simultaneous release built on Eclipse 4. In preparation of the release, <a href="http://eclipsesource.com/blogs/author/irbull/">Ian</a> has been counting down the <a href="http://eclipsesource.com/blogs/2012/06/27/top-10-eclipse-juno-features/">Top 10 Eclipse Juno Features</a>.</p>
<h4>2. Eclipse 4 (e4) Tutorial</h4>
<p><a href="http://eclipsesource.com/blogs/author/jhelming/">Jonas Helming</a> wrote a tutorial series for the new core platform of the Juno release. It introduces the new concepts in the Eclipse 4 Application Platform, aka RCP 2.0. The Eclipse 4 (e4) Tutorial has 4 parts: <a href="http://eclipsesource.com/blogs/2012/05/10/eclipse-4-final-sprint-part-1-the-e4-application-model/">Part 1</a>, <a href="http://eclipsesource.com/blogs/2012/06/12/eclipse-4-e4-tutorial-part-2/">Part 2</a>, <a href="http://eclipsesource.com/blogs/2012/06/26/eclipse-4-e4-tutorial-part-3-extending-the-application-model/">Part 3</a> and <a href="http://eclipsesource.com/blogs/2012/09/18/eclipse-4-e4-tutorial-part-4-dependency-injection-basics/">Part 4</a>.</p>
<h4>3. Ups and Downs with Continuous Integration for iOS Apps (Jenkins, Xcode, Cobertura and Testflight)</h4>
<p><a href="http://eclipsesource.com/blogs/author/hstaudacher/">Holger Staudacher</a> blogged about the <a href="http://eclipsesource.com/blogs/2012/06/01/ups-and-downs-with-continuous-integration-for-ios-apps-jenkins-xcode-cobertura-and-testflight/">Ups and Downs with Continuous Integration for iOS Apps</a>. He built a full CI system for <a href="http://developer.eclipsesource.com/tabris/">Tabris</a> including automated test execution, code coverage and publishing to Testflight. In his post he detailed the steps to create the system. This can be quite helpful for you when you plan to build your own iOS app.</p>
<h4>4. Must-reads for Java Developers: From Beginner to Professional</h4>
<p><a href="http://eclipsesource.com/blogs/author/hstaudacher/">Holger</a> has been recommending the same books again and again to fellow developers &#8211; for different experience levels. Finally he has put together a list of <a href="http://eclipsesource.com/blogs/2012/09/18/must-reads-for-java-developers-from-beginner-to-professional-2/">must-reads for Java Developers</a>.</p>
<h4>5. My Top 10 Tips on how to be more productive with the Eclipse IDE</h4>
<p><a href="http://eclipsesource.com/blogs/author/jordi/">I</a> wrote about my top 10 recommendations that will make your programming life easier and make you more productive with Eclipse in &#8220;<a href="http://eclipsesource.com/blogs/2012/10/26/top-10-tips-how-to-be-more-productive-with-the-best-ide/">my top 10 tips on how to be more productive with Eclipse</a>&#8220;</p>
<h4>6. Tabris – iOS and Android apps written in Java</h4>
<p><a href="http://eclipsesource.com/blogs/author/jkrause/">Jochen</a> announced <a href="http://developer.eclipsesource.com/tabris/">Tabris</a> (called RAP mobile at the time), an interesting approach for writing multi-platform mobile apps: <a href="http://eclipsesource.com/blogs/2012/01/31/rap-mobile-ios-and-android-apps-written-in-java/">Tabris – iOS and Android apps written in Java</a></p>
<h4>7. Serial Communication in Java with Raspberry Pi and RXTX</h4>
<p>Raspberry Pi is the darling of many developers. <a href="http://eclipsesource.com/blogs/author/jeick/">Johannes Eickhold</a> wrote an introduction on dealing with <a href="http://eclipsesource.com/blogs/2012/10/17/serial-communication-in-java-with-raspberry-pi-and-rxtx/">serial communication in Java with Raspberry Pi</a>.</p>
<h4>8. An OSGi JAX-RS connector Part 1: Publishing REST services</h4>
<p>Interested in publishing OSGi services as REST services? Then <a href="http://eclipsesource.com/blogs/author/hstaudacher/">Holgers</a> blog <a href="http://eclipsesource.com/blogs/2012/01/23/an-osgi-jax-rs-connector-part-1-publishing-rest-services/">on the OSGi JAX-RS connector</a> is a must read for you. More interesting reads and updates are available using the <a href="http://eclipsesource.com/blogs/tag/rest/">REST tag</a>.</p>
<h4>9. Loading, caching and displaying images in Android</h4>
<p>Efficiently displaying an image from a remote server in a mobile application can be quite challenging on Android. <a href="http://eclipsesource.com/blogs/author/mpost/">Moritz</a> provides a conceptual walk through of several established <a href="http://eclipsesource.com/blogs/2012/07/31/loading-caching-and-displaying-images-in-android-part-1/">patterns to load, cache and display images</a>.</p>
<h4>10. Mobile Select-O-Matic</h4>
<p><a href="http://eclipsesource.com/blogs/author/jkrause/">Jochen</a> blogged about <a href="http://eclipsesource.com/blogs/2012/10/11/mobile-select-o-matic-find-the-right-mobile-technology/">finding the right mobile development technology for businesses</a> with the <a href="http://developer.eclipsesource.com/mobile-select-o-matic/start.html">Mobile Select-O-Matic</a>.</p>
<p>If you have feedback or a favorite post you would like to have mentioned, feel free to leave a comment below.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Top+10+EclipseSource+Blog+Posts+of+2012&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/&amp;t=Top+10+EclipseSource+Blog+Posts+of+2012" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/e4/' title='e4 Tag'>e4</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/juno/' title='eclipse juno Tag'>eclipse juno</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/rest/' title='rest Tag'>rest</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/e4/' title='e4 Tag'>e4</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/juno/' title='eclipse juno Tag'>eclipse juno</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/rest/' title='rest Tag'>rest</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/01/31/top-10-eclipsesoure-blog-posts-of-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tabris 0.10.0 – New &amp; Noteworthy</title>
		<link>http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/</link>
		<comments>http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 14:00:00 +0000</pubDate>
		<dc:creator>Johannes Eickhold</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[new and noteworthy]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13405</guid>
		<description><![CDATA[Happy New Year from the Tabris Team! We are having an exiting start into the new year with another release of Tabris, Tabris 0.10.0. The focus of the latest release is user experience. We added support for typical mobile interactions like swiping, back button navigation in trees, and improved visual touch feedback. Page Navigation with <a href="http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Happy New Year from the Tabris Team! We are having an exiting start into the new year with another release of Tabris, <a href="http://developer.eclipsesource.com/tabris/">Tabris 0.10.0</a>.<br />
The focus of the latest release is user experience. We added support for typical mobile interactions like swiping, back button navigation in trees, and improved visual touch feedback.</p>
<h2>Page Navigation with Gestures (Swiping)</h2>
<p>One of the most commonly used gesture on mobile devices is swiping. Swiping between different screens (Pages) is the default navigation on the home screens of all major mobile operating systems. Tabris introduces swiping with a simple to implement page-wise navigation feature. You simply have to add Controls to an ItemProvider to enable the navigation. You can dynamically add and remove items, lock the navigation on items and cache items on the client so that no server interaction is needed. The <em>/swipe</em> demo in the <a href="https://play.google.com/store/apps/details?id=com.eclipsesource.tabris.android.demos&amp;feature=search_result">Tabris Demo</a> app illustrates this new feature. If you want to take a look at the code just examine the <a href="https://github.com/eclipsesource/tabris-demos/blob/0.10.0/com.eclipsesource.tabris.demos/src/com/eclipsesource/tabris/demos/entrypoints/SwipeDemo.java">source at GitHub</a> as usual.</p>
<div style="text-align: center; width: 100%;"><a href="http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/tabris-swipe0-1/" rel="attachment wp-att-13648"><img class="aligncenter size-large wp-image-13648" style="display: inline;" alt="tabris swipe0.1 1024x590 Tabris 0.10.0 – New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/tabris-swipe0.1-1024x590.png" width="554" height="316" title="Tabris 0.10.0 – New & Noteworthy" /></a></div>
<h2>Creating custom touch elements</h2>
<p>Many mobile applications have advanced styling requirements. You can get very far with the standard SWT API, but when composing touchable widgets you run into a subtle problem. How do you show immediate touch feedback without having to contact the server? The current release introduces a new concept to assist you here. <b>ShowTouch</b> enables local visual user feedback without a server round-trip. Usually you also want to handle the user event on your composed widget, and <b>Grouped Events</b> add the possibility to react on any interaction happening on a set of widgets that belong together.</p>
<h4>ShowTouch</h4>
<p>Immediate visual feedback improves the user experience. When added to a composite as in the following example, the whole area of the composite, including its child widgets, will be highlighted immediately. ShowTouch works on any single widget, too.<br />



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">Widgets.<span style="color: #006633;">onWidget</span><span style="color: #009900;">&#40;</span> composite <span style="color: #009900;">&#41;</span>.<span style="color: #006633;">showLocalTouch</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/android-show-touch/" rel="attachment wp-att-13453"><img class="size-medium wp-image-13453 aligncenter" style="display: inline;" alt="android show touch 300x52 Tabris 0.10.0 – New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/android-show-touch-300x52.png" width="474" height="82" title="Tabris 0.10.0 – New & Noteworthy" /></a></div>
<h4>Grouped Events</h4>
<p>If you group some controls together in a composite, you can now listen to events on any of them in one central place. This feature is a useful complement to ShowTouch. The following example shows how to add such a listener to a composite.<br />



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">Widgets.<span style="color: #006633;">onComposite</span><span style="color: #009900;">&#40;</span> composite <span style="color: #009900;">&#41;</span>.<span style="color: #006633;">addGroupedListener</span><span style="color: #009900;">&#40;</span> SWT.<span style="color: #006633;">MouseDown</span>, <span style="color: #000000; font-weight: bold;">new</span> Listener<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> handleEvent<span style="color: #009900;">&#40;</span> <span style="color: #003399;">Event</span> event <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        ...
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



</p>
<h2>Navigating hierarchical lists on Android</h2>
<p>Tabris offers a simple mechanism to display a hierarchical list &#8211; by rendering a Tree widget branch-wise. The first implementation offered an &#8220;up&#8221; button at top of the tree for back navigation. Now we replaced the button with the native back-button. Pressing the back button on the device now navigates you &#8220;up&#8221; through the tree hierarchy.</p>
<h2>Bonus: App Events</h2>
<p>When a Tabris application is sent to the background by the user, or activated again, the new <strong>AppEvent</strong> gets raised. Listening to AppEvents enable a couple of use cases like locking the app or saving resources (turn off GPS). You can meet HAL if you take a look at the example <em>/appevents</em> in the <a href="https://play.google.com/store/apps/details?id=com.eclipsesource.tabris.android.demos&amp;feature=search_result">Tabris Demos</a> app.</p>
<div style="text-align: center; width: 100%;"><a style="width: 100%;" href="http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/android-appevents/" rel="attachment wp-att-13445"><img class="aligncenter size-medium wp-image-13445" style="display: inline;" alt="android appevents 168x300 Tabris 0.10.0 – New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/android-appevents-168x300.png" width="114" height="204" title="Tabris 0.10.0 – New & Noteworthy" /></a></div>
<h2>Bugfixes and Minor Changes</h2>
<p>Next to the usual bug fixes the Tabris client now can also be found in Google Play for tablets again.</p>
<h2>Feedback Always Welcome</h2>
<p>We keep an eye on your comments and suggestions at our <a href="https://github.com/eclipsesource/tabris/issues?state=open">GitHub Issues</a>. Your suggestions and comments are welcome and always have a chance to influence our schedule.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Tabris+0.10.0+%E2%80%93+New+%26%23038%3B+Noteworthy&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/&amp;t=Tabris+0.10.0+%E2%80%93+New+%26%23038%3B+Noteworthy" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/01/17/tabris-0-10-0-new-noteworthy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tabris 0.9.0 &#8211; New &amp; Noteworthy</title>
		<link>http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/</link>
		<comments>http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/#comments</comments>
		<pubDate>Tue, 18 Dec 2012 16:24:57 +0000</pubDate>
		<dc:creator>Jordi Böhme López</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[new and noteworthy]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13039</guid>
		<description><![CDATA[Just in time for Christmas, I&#8217;m happy to announce our biggest release yet: Tabris 0.9.0. The new AppLauncher API will enable a tighter integration with iOS and Android and a seamless user experience with other Apps. Alternative Selection for List and Tree is now available. And many changes and additions happened under the hood &#8211; <a href="http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Just in time for Christmas, I&#8217;m happy to announce our biggest release yet: <a href="http://developer.eclipsesource.com/tabris/">Tabris 0.9.0</a>.<br />
The new AppLauncher API will enable a tighter integration with iOS and Android and a seamless user experience with other Apps. Alternative Selection for List and Tree is now available. And many changes and additions happened under the hood &#8211; such as the RAP 2.0 migration as well as stability and performance improvements.</p>
<h2>AppLauncher API</h2>
<p><img class="alignright size-full wp-image-13041" alt="AppLauncher Tabris 0.9.0   New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/AppLauncher.png" width="317" height="64" title="Tabris 0.9.0   New & Noteworthy" />The new AppLauncher API enables tight integration between your Tabris apps and all the common apps on iOS and Android. For each type of app you can interact with, there is an Options object you provide as parameter.<br />
Here is an example how to use the AppLauncher API to show an address within the Maps app using <code>MapsOptions</code>:<br />



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">AppLauncher launcher <span style="color: #339933;">=</span> RWT.<span style="color: #006633;">getClient</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getService</span><span style="color: #009900;">&#40;</span> AppLauncher.<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
launcher.<span style="color: #006633;">open</span><span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> MapsOptions<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Lammstr. 21, 76133 Karlsruhe, Germany&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



</p>
<ul>
<li><b>BrowserOptions - </b>Open a URL in the Browser app.</li>
<li><b>MapsOptions - </b>Open the Map app with latitude+longitude or a address as text query.</li>
<li><b>SMSOptions - </b>Open the Messaging app with a number and the message.</li>
<li><b>MailOptions - </b>Open the Mail app with to, cc, subject and the message body.</li>
<li><b>PhoneOptions - </b>Open the dialer to start a phone call.</li>
<li><b>Twitter- and FacebookOptions- </b>Open Twitter or Facebook to add social integration in your app to post a message with an optional URL.</li>
<li><b>Generic openURL - </b>With this you can open arbitrary URLs with the most appropriate app, which is determined by iOS or Android.</li>
</ul>
<p>Check the <a href="https://github.com/eclipsesource/tabris-demos/blob/master/com.eclipsesource.tabris.demos/src/com/eclipsesource/tabris/demos/entrypoints/AppLauncherDemo.java" target="_blank">sources on GitHub</a> of our &#8220;<a href="http://en.wikipedia.org/wiki/Breaking_Bad" target="_blank">Breaking Bad</a>&#8220;-themed demo app called &#8220;launcher&#8221; to see how the API is used.<br />
<a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/LauncherDemo.png"><img class="aligncenter size-full wp-image-13040" alt="LauncherDemo Tabris 0.9.0   New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/LauncherDemo.png" width="640" height="550" title="Tabris 0.9.0   New & Noteworthy" /></a></p>
<h2>Alternative Selection for List and Tree</h2>
<p>We now support a new UI element on SWT <code>List</code> and <code>Tree</code> (aka Detail Disclosure Button on iOS) on Android and iOS.<br />
<a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/AltSelection.png"><img class="aligncenter size-full wp-image-13075" alt="AltSelection Tabris 0.9.0   New & Noteworthy" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/AltSelection.png" width="640" height="150" title="Tabris 0.9.0   New & Noteworthy" /></a><br />
Here is an example how to activate the alternative selection on an SWT Tree only for the leaf TreeItems:<br />



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">Widgets.<span style="color: #006633;">onTree</span><span style="color: #009900;">&#40;</span> tree <span style="color: #009900;">&#41;</span>.<span style="color: #006633;">enableAlternativeSelection</span><span style="color: #009900;">&#40;</span> TreePart.<span style="color: #006633;">LEAF</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



<br />
In your SelectionListener you can then distinguish the SelectionEvents you receive:<br />



<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">tree.<span style="color: #006633;">addSelectionListener</span><span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> SelectionAdapter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> widgetSelected<span style="color: #009900;">&#40;</span> SelectionEvent event <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">stateMask</span> <span style="color: #339933;">&amp;</span> SWT.<span style="color: #006633;">ALT</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Alternative Selection</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Standard Selection</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



</p>
<h2>Remote Application Platform (RAP) 2.0</h2>
<p>Starting with Tabris 0.9.0 we are now built on <a href="http://developer.eclipsesource.com/technology/crossplatform/#rap">RAP</a> 2.0. Have a look at the <a href="http://eclipse.org/rap/noteworthy/2.0/">RAP 2.0 New and Noteworthy</a> and the <a href="http://eclipse.org/rap/noteworthy/2.0/migration-guide/">RAP 2.0 migration guide</a> to see what changed and what adjustments you might need to make to your code.<br />
<strong>Please ensure you update your Target!</strong> In case you forgot, here is the URL to the p2 repository: <code>http://developer.eclipsesource.com/technology/tabris/downloads/releases</code><br />
In Tabris, the following changes relate to the RAP 2.0 migration:</p>
<ul>
<li>Reworked the clients and how they communicate to the server. All communication is now 100% JSON.</li>
<li>UICallback is now ServerPush, which is now a way more robust implementation on the Tabris clients.</li>
<li>New Bootstrapper mechanism. It is used to enable Tabris in your <a href="https://github.com/eclipsesource/tabris-demos/blob/master/com.eclipsesource.tabris.demos/src/com/eclipsesource/tabris/demos/Configuration.java" target="_blank">ApplicationConfiguration</a> without the need of confusing startlevels.

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">Bootstrapper bootstrapper <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Bootstrapper<span style="color: #009900;">&#40;</span> application <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
bootstrapper.<span style="color: #006633;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</li>
</ul>
<h2>Next for Tabris</h2>
<p>Since the last Tabris release, we also published our new <a href="http://developer.eclipsesource.com/tabris/">Tabris website</a>. One of the highlights is the <a title="Tabris Roadmap - Milestone Plan" href="http://developer.eclipsesource.com/tabris/roadmap/">Roadmap section</a>. There you can see what happend in the past, what we are currently working on, and what you can expect in the future. Of course, you can comment on all topics and contribute your ideas &#8211; It&#8217;s all publicly available on <a href="https://github.com/eclipsesource/tabris/issues?state=open">GitHub Issues</a>.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Tabris+0.9.0+%26%238211%3B+New+%26%23038%3B+Noteworthy&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/&amp;t=Tabris+0.9.0+%26%238211%3B+New+%26%23038%3B+Noteworthy" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/mobile/' title='mobile Tag'>mobile</a>, <a href='http://eclipsesource.com/blogs/tag/new-and-noteworthy/' title='new and noteworthy Tag'>new and noteworthy</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/12/18/tabris-0-9-0-new-noteworthy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-platform mobile apps in Java with Tabris</title>
		<link>http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/</link>
		<comments>http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 19:45:32 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13021</guid>
		<description><![CDATA[I presented our work on Tabris at  &#8221;Eclipse Day @ Google&#8221; earlier this week. With Tabris you use Java to create native mobile applications for iOS and Android. My slides below provide a quick introduction: Follow this link for detailed information on Tabris. Thank you Eclipse Foundation and Google for organizing this event for the fourth year now!]]></description>
			<content:encoded><![CDATA[<p>I presented our work on <a href="http://developer.eclipsesource.com/tabris/">Tabris</a> at  &#8221;<a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2012" target="_blank">Eclipse Day @ Google</a>&#8221; earlier this week. With Tabris you use Java to create native mobile applications for iOS and Android. My slides below provide a quick introduction:</p>
<p style="text-align: center;"><a href="https://speakerdeck.com/evolanakis/writing-cross-platform-mobile-apps-in-java-with-tabris"><img class="size-full wp-image-13022 aligncenter" alt="tabris slides Cross platform mobile apps in Java with Tabris" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/tabris-slides.png" width="470" height="355" title="Cross platform mobile apps in Java with Tabris" /></a></p>
<p>Follow this link for <a href="http://developer.eclipsesource.com/tabris/">detailed information on Tabris</a>.</p>
<p>Thank you Eclipse Foundation and Google for organizing this event for the fourth year now!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Cross-platform+mobile+apps+in+Java+with+Tabris&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/&amp;t=Cross-platform+mobile+apps+in+Java+with+Tabris" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolving Android design</title>
		<link>http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/</link>
		<comments>http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 15:56:51 +0000</pubDate>
		<dc:creator>Moritz Post</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=12843</guid>
		<description><![CDATA[With the release of Android 4.0 (Ice Cream Sandwich) the new Android design language &#8221;holo&#8221; has been introduced. The following list highlights a few resources that either showcase great holo styled apps or focus on the holo design process. Most of the resources also have an active community on Google+, so a link is added when available. <a href="http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/StylingAndroid.png"><img class="alignleft wp-image-12874" style="margin-right: 16px;" title="StylingAndroid" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/StylingAndroid-300x300.png" alt="StylingAndroid 300x300 Evolving Android design" width="198" height="198" /></a>With the release of Android 4.0 (Ice Cream Sandwich) the new Android <a href="http://developer.android.com/design/index.html">design language</a> &#8221;holo&#8221; has been introduced. The following list highlights a few resources that either showcase great holo styled apps or focus on the holo design process.</p>
<p>Most of the resources also have an active community on Google+, so a link is added when available.</p>
<p><a href="http://developer.android.com/design/index.html">developer.android.com/design</a> - The official website of the android style guide.</p>
<p><a href="http://www.youtube.com/playlist?list=PLWz5rJ2EKKc8j2B95zGMb8muZvrIy-wcF">Android design in action</a> [<a href="https://plus.google.com/u/0/+AndroidDevelopers/posts">g+</a>] - The &#8220;official&#8221; <a href="https://developers.google.com/live/">Google Developers Live</a> show for Android design. The weekly show features app redesigns, usability patterns and best practices when designing for multiple screen sizes.</p>
<p><a href="http://blog.stylingandroid.com/">Styling Android</a> [<a href="https://plus.google.com/u/0/101161883485148457960/posts">g+</a>] - A great set of tutorials on how to change the visual appearance of the various Android UI elements.</p>
<p><a href="http://androidniceties.tumblr.com/">Android Niceties</a> [<a href="https://plus.google.com/u/0/114216908176937747857/posts">g+</a>] - Android niceties publishes a list of well designed Android apps.</p>
<p><a href="http://www.holoeverywhere.com/">Holo Everywhere</a> [<a href="https://plus.google.com/u/0/109359937534966878042/posts">g+</a>] &#8211; Holo everywhere is a &#8220;design review&#8221; page for holo styled apps.</p>
<p><a href="http://www.androidviews.net/">Android Views</a> [<a href="https://plus.google.com/u/0/110920657020724784617/posts">g+</a>] - Android views collects links to opensource Android widgets and presents them in a Google Now like card design.</p>
<p><a href="http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html">Asset Studio</a> - An online tool to create graphics and other UI artifacts for Android applications.</p>
<p><a href="http://www.androiduipatterns.com/">Android UI Patterns</a> [<a href="https://plus.google.com/u/0/+AndroidUIPatterns/posts">g+</a>] &#8211; Great website focusing on Android design news, observations and UI patterns. Also home of the book &#8220;<a href="http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;field-keywords=Smashing+Android+UI">Smashing Android UI</a>&#8221; by <a href="https://plus.google.com/u/0/102272971619910906878/posts">+Juhani Lehtimäki</a>.</p>
<p><a href="http://androiduiux.com/">Android UI UX</a> - <a href="https://plus.google.com/u/0/110199935346260350060/posts">+Taylor Ling</a> discusses Android design and UI patterns.</p>
<p><a href="https://plus.google.com/u/0/communities/116667001535376136065">Android design community on Google+</a> - A (still young) community of people discussing Android design.</p>
<p>Do you know of other Android design resources? Let me know.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Evolving+Android+design&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/&amp;t=Evolving+Android+design" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/design/' title='design Tag'>design</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/design/' title='design Tag'>design</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/12/07/evolving-android-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
