<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
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/">
	<channel>
		<title>Author at Infinum</title>
		<atom:link href="https://infinum.com/blog/author/dario-penic/feed/" rel="self" type="application/rss+xml" />
		<link></link>
		<description>Building digital products</description>
		<lastBuildDate>Fri, 24 Apr 2026 14:02:14 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>8124https://infinum.com/uploads/2014/06/top-5-android-libraries-every-android-developer-should-know-about-0.webp</url>
				</image>
				<title>Top 5 Android Libraries Every Android Developer Should Know About [2014]</title>
				<link>https://infinum.com/blog/top-5-android-libraries-every-android-developer-should-know-about/</link>
				<pubDate>Thu, 12 Jun 2014 07:52:00 +0000</pubDate>
				<dc:creator>Dario Penic</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/top-5-android-libraries-every-android-developer-should-know-about/</guid>
				<description>
					<![CDATA[<p>In the last year or so, Android development has really come of age. Android Studio with Gradle at its core is a dash of light after Eclipse. </p>
<p>The post <a href="https://infinum.com/blog/top-5-android-libraries-every-android-developer-should-know-about/">Top 5 Android Libraries Every Android Developer Should Know About [2014]</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-199"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	<strong>There’s an updated post about this, check out <a href="https://infinum.com/blog/top-10-android-libraries-every-android-developer-should-know-about/">top 10 Android libraries every Android developer should know about</a>.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-97'
	>
	In the last year or so, Android development has really come of age. Android Studio with Gradle at its core is a dash of light after Eclipse. Besides that, there are quite a few open source libraries that we use on a daily basis.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-100'
	>
	Here is a selection of five of our favorite ones and a list of links where you can find others.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-102"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-103">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/06/top-5-android-libraries-every-android-developer-should-know-about-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="306"
															width="700"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-105">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-106'
	>
	1. <a href="https://code.google.com/p/google-gson/">Gson</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-108">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-109'
	>
	Gson is a Java library used for serializing and deserializing Java objects from and into JSON. A task you will frequently need to do if you communicate with APIs. We mostly use JSON because it’s lightweight and much simpler than XML.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-112"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Serialize </span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">String</span><span class="token"> </span><span class="token" style="color: #24292e;">userJSON</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Gson</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">toJson</span><span class="token">(</span><span class="token">user</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Deserialize</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">User</span><span class="token"> </span><span class="token" style="color: #24292e;">user</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Gson</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">fromJson</span><span class="token">(</span><span class="token">userJSON</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">User</span><span class="token">.</span><span class="token" style="color: #24292e;">class</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-115"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-113">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-114'
	>
	It also plays nice with the next library:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-118"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-116">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-117'
	>
	2. <a href="http://square.github.io/retrofit/">Retrofit</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-121"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-119">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-120'
	>
	From their site: “Retrofit turns your REST API into a Java interface.”<br>It’s an elegant solution for organizing API calls in a project. The request method and relative URL are added with an annotation, which makes code clean and simple.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-124"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-122">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-123'
	>
	With annotations, you can easily add a request body, manipulate the URL or headers and add query parameters.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-127"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-125">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-126'
	>
	Adding a return type to a method will make it synchronous, while adding a Callback will allow it to finish asynchronously with success or failure.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-129"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">interface</span><span class="token"> </span><span class="token" style="color: #6f42c1;">RetrofitInterface</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> asynchronously with a callback</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">GET</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">/api/user</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">User</span><span class="token"> </span><span class="token" style="color: #6f42c1;">getUser</span><span class="token">(</span><span class="token">@</span><span class="token" style="color: #d73a49;">Query</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">user_id</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #d73a49;">int</span><span class="token"> </span><span class="token" style="color: #e36209;">userId</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">Callback</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">User</span><span class="token">&gt;</span><span class="token"> </span><span class="token" style="color: #e36209;">callback</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> synchronously</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">POST</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">/api/user/register</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">User</span><span class="token"> </span><span class="token" style="color: #6f42c1;">registerUser</span><span class="token">(</span><span class="token">@</span><span class="token" style="color: #d73a49;">Body</span><span class="token"> </span><span class="token" style="color: #24292e;">User</span><span class="token"> </span><span class="token" style="color: #e36209;">user</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> example</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">RetrofitInterface</span><span class="token"> </span><span class="token" style="color: #24292e;">retrofitInterface</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> RestAdapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Builder</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token">.</span><span class="token" style="color: #6f42c1;">setEndpoint</span><span class="token">(</span><span class="token" style="color: #24292e;">API</span><span class="token">.</span><span class="token" style="color: #24292e;">API_URL</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">build</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">create</span><span class="token">(</span><span class="token" style="color: #24292e;">RetrofitInterface</span><span class="token">.</span><span class="token" style="color: #24292e;">class</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> fetch user with id 2048</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">retrofitInterface</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getUser</span><span class="token">(</span><span class="token" style="color: #005cc5;">2048</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #24292e;">Callback</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">User</span><span class="token">&gt;</span><span class="token">(</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">Override</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">success</span><span class="token">(</span><span class="token" style="color: #24292e;">User</span><span class="token"> </span><span class="token" style="color: #e36209;">user</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">Response</span><span class="token"> </span><span class="token" style="color: #e36209;">response</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">Override</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">failure</span><span class="token">(</span><span class="token" style="color: #24292e;">RetrofitError</span><span class="token"> </span><span class="token" style="color: #e36209;">retrofitError</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-132"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-130">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-131'
	>
	Retrofit uses Gson by default, so there is no need for custom parsing. Other converters are supported as well.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-135"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-133">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-134'
	>
	3. <a href="http://greenrobot.github.io/EventBus/">EventBus</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-138"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-136">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-137'
	>
	EventBus is a library that simplifies communication between different parts of your application. For example, sending something from an Activity to a running Service, or easy interaction between fragments. Here is an example we use if the Internet connection is lost, showing how to notify an activity:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">NetworkStateReceiver</span><span class="token"> </span><span class="token" style="color: #d73a49;">extends</span><span class="token"> </span><span class="token" style="color: #6f42c1;">BroadcastReceiver</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> post event if there is no Internet connection</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">onReceive</span><span class="token">(</span><span class="token" style="color: #24292e;">Context</span><span class="token"> </span><span class="token" style="color: #e36209;">context</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">Intent</span><span class="token"> </span><span class="token" style="color: #e36209;">intent</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">super</span><span class="token">.</span><span class="token" style="color: #6f42c1;">onReceive</span><span class="token">(</span><span class="token">context</span><span class="token">,</span><span class="token"> intent</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #d73a49;">if</span><span class="token">(</span><span class="token" style="color: #24292e;">intent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getExtras</span><span class="token">(</span><span class="token">)</span><span class="token" style="color: #d73a49;">!=</span><span class="token" style="color: #005cc5;">null</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #24292e;">NetworkInfo</span><span class="token"> </span><span class="token" style="color: #24292e;">ni</span><span class="token" style="color: #d73a49;">=</span><span class="token">(</span><span class="token">NetworkInfo</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #24292e;">intent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getExtras</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">get</span><span class="token">(</span><span class="token" style="color: #24292e;">ConnectivityManager</span><span class="token">.</span><span class="token" style="color: #24292e;">EXTRA_NETWORK_INFO</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">if</span><span class="token">(</span><span class="token">ni</span><span class="token" style="color: #d73a49;">!=</span><span class="token" style="color: #005cc5;">null</span><span class="token"> </span><span class="token" style="color: #d73a49;">&amp;&amp;</span><span class="token"> </span><span class="token" style="color: #24292e;">ni</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getState</span><span class="token">(</span><span class="token">)</span><span class="token" style="color: #d73a49;">==</span><span class="token" style="color: #24292e;">NetworkInfo</span><span class="token">.</span><span class="token" style="color: #24292e;">State</span><span class="token">.</span><span class="token" style="color: #24292e;">CONNECTED</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> there is Internet connection</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">            </span><span class="token">}</span><span class="token"> </span><span class="token" style="color: #d73a49;">else</span><span class="token"> </span><span class="token" style="color: #d73a49;">if</span><span class="token">(</span><span class="token">intent
</span></span><span class="line"><span class="token">                </span><span class="token">.</span><span class="token" style="color: #6f42c1;">getBooleanExtra</span><span class="token">(</span><span class="token" style="color: #24292e;">ConnectivityManager</span><span class="token">.</span><span class="token" style="color: #24292e;">EXTRA_NO_CONNECTIVITY</span><span class="token">,</span><span class="token" style="color: #24292e;">Boolean</span><span class="token">.</span><span class="token" style="color: #24292e;">FALSE</span><span class="token">)</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> no Internet connection, send network state changed</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #24292e;">EventBus</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getDefault</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">post</span><span class="token">(</span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">NetworkStateChanged</span><span class="token">(</span><span class="token" style="color: #005cc5;">false</span><span class="token">)</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> event</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">NetworkStateChanged</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">private</span><span class="token"> mIsInternetConnected</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #6f42c1;">NetworkStateChanged</span><span class="token">(</span><span class="token" style="color: #d73a49;">boolean</span><span class="token"> </span><span class="token" style="color: #e36209;">isInternetConnected</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">this</span><span class="token">.</span><span class="token" style="color: #24292e;">mIsInternetConnected</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> isInternetConnected</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">boolean</span><span class="token"> </span><span class="token" style="color: #6f42c1;">isInternetConnected</span><span class="token">(</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #d73a49;">return</span><span class="token"> </span><span class="token" style="color: #005cc5;">this</span><span class="token">.</span><span class="token" style="color: #24292e;">mIsInternetConnected</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">HomeActivity</span><span class="token"> </span><span class="token" style="color: #d73a49;">extends</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Activity</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">Override</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">protected</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">onCreate</span><span class="token">(</span><span class="token" style="color: #24292e;">Bundle</span><span class="token"> </span><span class="token" style="color: #e36209;">savedInstanceState</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">super</span><span class="token">.</span><span class="token" style="color: #6f42c1;">onCreate</span><span class="token">(</span><span class="token">savedInstanceState</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">setContentView</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">layout</span><span class="token">.</span><span class="token" style="color: #24292e;">activity_main</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">EventBus</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getDefault</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">register</span><span class="token">(</span><span class="token" style="color: #005cc5;">this</span><span class="token">)</span><span class="token">;</span><span class="token"> </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> register EventBus</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">Override</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">protected</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">onDestroy</span><span class="token">(</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">super</span><span class="token">.</span><span class="token" style="color: #6f42c1;">onDestroy</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">EventBus</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getDefault</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">unregister</span><span class="token">(</span><span class="token" style="color: #005cc5;">this</span><span class="token">)</span><span class="token">;</span><span class="token"> </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> unregister EventBus</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> method that will be called when someone posts an event NetworkStateChanged</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">onEventMainThread</span><span class="token">(</span><span class="token" style="color: #24292e;">NetworkStateChanged</span><span class="token"> </span><span class="token" style="color: #e36209;">event</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #d73a49;">if</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #d73a49;">!</span><span class="token" style="color: #24292e;">event</span><span class="token">.</span><span class="token" style="color: #6f42c1;">isInternetConnected</span><span class="token">(</span><span class="token">)</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #24292e;">Toast</span><span class="token">.</span><span class="token" style="color: #6f42c1;">makeText</span><span class="token">(</span><span class="token" style="color: #005cc5;">this</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">No Internet connection!</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">Toast</span><span class="token">.</span><span class="token" style="color: #24292e;">LENGTH_SHORT</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">show</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-141">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-142'
	>
	4. ActiveAndroid</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-144">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-145'
	>
	ActiveAndroid is an ORM for Android. It’s an abstraction over SQLite which allows you to communicate with a database on a device without writing SQL statements. An Object that extends ActiveAndroid Model can be saved to the database like this:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-148"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #24292e;">user</span><span class="token">.</span><span class="token" style="color: #6f42c1;">save</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-151"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-149">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-150'
	>
	which can easily replace a big SQL statement like this:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-153"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-sql github-light" data-language="sql" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">INSERT INTO</span><span class="token"> Users (Nickname, </span><span class="token" style="color: #d73a49;">Name</span><span class="token">, </span><span class="token" style="color: #d73a49;">Address</span><span class="token">, City, PostalCode, Country) </span><span class="token" style="color: #d73a49;">VALUES</span><span class="token"> (’Batman’,’Bruce W’,’Palisades </span><span class="token" style="color: #005cc5;">21</span><span class="token">’,’Gotham’,’</span><span class="token" style="color: #005cc5;">40000</span><span class="token">’,’USA’);
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-156"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-154">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-155'
	>
	An example of retrieving all users:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #24292e;">List</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">User</span><span class="token">&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">users</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Select</span><span class="token">(</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">from</span><span class="token">(</span><span class="token" style="color: #24292e;">User</span><span class="token">.</span><span class="token" style="color: #24292e;">class</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">execute</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-159">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-160'
	>
	of which SQL counterpart would look like this:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-163"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-sql github-light" data-language="sql" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">SELECT</span><span class="token"> Nickname, </span><span class="token" style="color: #d73a49;">Name</span><span class="token">, </span><span class="token" style="color: #d73a49;">Address</span><span class="token">, City, PostalCode, Country </span><span class="token" style="color: #d73a49;">FROM</span><span class="token"> Users;
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-166"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-164">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-165'
	>
	ActiveAndroid is a nice way to remove a lot of boilerplate code used for working with databases. There are other open source solutions like <a href="http://greendao-orm.com/">GreenDAO</a> and <a href="http://ormlite.com/sqlite_java_android_orm.shtml">ORMLite</a></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-169"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-167">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-168'
	>
	5. <a href="https://github.com/nostra13/Android-Universal-Image-Loader">Universal Image Loader</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-172"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-170">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-171'
	>
	UIL is a library which provides asynchronous, out of the box loading and caching of images. It’s pretty straightforward to use:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-174"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #24292e;">imageLoader</span><span class="token">.</span><span class="token" style="color: #6f42c1;">displayImage</span><span class="token">(</span><span class="token">imageUri</span><span class="token">,</span><span class="token"> imageView</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-177"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-175">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-176'
	>
	Although <a href="http://square.github.io/picasso/">Picasso</a> has a nicer API, it lacks in customization. With the UIL configuration builder almost everything can be configured (important for fetching and caching of really large images, which Picasso fails to do).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-180"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-178">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-179'
	>
	Good open source libraries will make your development a hell of a lot easier and faster. Popular libraries are often well tested and simple to use. In most cases you can easily import them into your Android Studio project from Maven. Add them into dependencies in your build.gradle file like this:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">dependencies </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    compile ’</span><span class="token" style="color: #24292e;">com</span><span class="token">.goog</span><span class="token" style="color: #24292e;">l</span><span class="token">e</span><span class="token">.co</span><span class="token" style="color: #24292e;">d</span><span class="token">e</span><span class="token" style="color: #24292e;">.gso</span><span class="token">n</span><span class="token" style="color: #d73a49;">:</span><span class="token">gson</span><span class="token" style="color: #d73a49;">:</span><span class="token" style="color: #005cc5;">2.2</span><span class="token" style="color: #b31d28;font-style: italic;">.</span><span class="token">4</span><span class="token">’
</span></span><span class="line"><span class="token">    compile ’</span><span class="token" style="color: #24292e;">com</span><span class="token">.square</span><span class="token" style="color: #24292e;">u</span><span class="token">p</span><span class="token" style="color: #24292e;">.okhtt</span><span class="token">p</span><span class="token" style="color: #d73a49;">:</span><span class="token">okhttp</span><span class="token" style="color: #d73a49;">:</span><span class="token" style="color: #005cc5;">1.3</span><span class="token">.</span><span class="token">0</span><span class="token">’
</span></span><span class="line"><span class="token">    compile ’</span><span class="token" style="color: #24292e;">com</span><span class="token">.square</span><span class="token" style="color: #24292e;">u</span><span class="token">p</span><span class="token" style="color: #24292e;">.retrofi</span><span class="token">t</span><span class="token" style="color: #d73a49;">:</span><span class="token">retrofit</span><span class="token" style="color: #d73a49;">:</span><span class="token" style="color: #005cc5;">1.3</span><span class="token">.</span><span class="token">0</span><span class="token">’
</span></span><span class="line"><span class="token">    compile ’</span><span class="token" style="color: #24292e;">de</span><span class="token" style="color: #24292e;">.greenrobo</span><span class="token">t</span><span class="token" style="color: #d73a49;">:</span><span class="token">eventbus</span><span class="token" style="color: #d73a49;">:</span><span class="token" style="color: #005cc5;">2.2</span><span class="token">.</span><span class="token" style="color: #d73a49;">+</span><span class="token">’
</span></span><span class="line"><span class="token">    compile ’</span><span class="token" style="color: #24292e;">com</span><span class="token">.nostra</span><span class="token" style="color: #24292e;">1</span><span class="token">3</span><span class="token" style="color: #24292e;">.universalimageloade</span><span class="token">r</span><span class="token" style="color: #d73a49;">:</span><span class="token">universal</span><span class="token" style="color: #d73a49;">-</span><span class="token">image</span><span class="token" style="color: #d73a49;">-</span><span class="token">loader</span><span class="token" style="color: #d73a49;">:</span><span class="token" style="color: #005cc5;">1.9</span><span class="token" style="color: #b31d28;font-style: italic;">.</span><span class="token">1</span><span class="token">’
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-185"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-183">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-184'
	>
	and after syncing you will be good to go to implement them into your app.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-188"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-186">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-187'
	>
	Additional links</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-191"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-189">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-190'
	>
	One of the best sources for learning about Android libraries is <a href="http://androidweekly.net/">Android Weekly</a>, a weekly newsletter about Android development.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-194"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-192">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-193'
	>
	Also, there are many developers who use Twitter to post regularly about Android development, some of them are:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-197"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-195">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-196'
	>
	<li><a href="https://twitter.com/JakeWharton">Jake Wharton</a></li><li><a href="https://twitter.com/chrisbanes">Chris Banes</a></li><li><a href="https://twitter.com/cyrilmottier">Cyril Mottier</a></li><li><a href="https://twitter.com/commonsguy">Mark Murphy</a></li><li><a href="https://twitter.com/MarkIAllison">Mark Allison</a></li><li><a href="https://twitter.com/retomeier">Reto Meier</a></li></ul></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/top-5-android-libraries-every-android-developer-should-know-about/">Top 5 Android Libraries Every Android Developer Should Know About [2014]</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>