<?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>Top 5 Libraries for Every Android Developer v.2015 | Infinum</title>
		<atom:link href="https://infinum.com/blog/top-five-android-libraries-every-android-developer-should-know-about-v2015/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/top-five-android-libraries-every-android-developer-should-know-about-v2015/</link>
		<description>Building digital products</description>
		<lastBuildDate>Fri, 17 Apr 2026 13:59:15 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>8120https://infinum.com/uploads/2014/06/top-five-android-libraries-every-android-developer-should-know-about-v2015-0.webp</url>
				</image>
				<title>Top 5 Android Libraries Every Android Developer Should Know About  V. 2015</title>
				<link>https://infinum.com/blog/top-five-android-libraries-every-android-developer-should-know-about-v2015/</link>
				<pubDate>Thu, 12 Nov 2015 07:19:00 +0000</pubDate>
				<dc:creator>Ivan Kust</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/top-five-android-libraries-every-android-developer-should-know-about-v2015/</guid>
				<description>
					<![CDATA[<p>The updated list of our five favorite libraries.</p>
<p>The post <a href="https://infinum.com/blog/top-five-android-libraries-every-android-developer-should-know-about-v2015/">Top 5 Android Libraries Every Android Developer Should Know About  V. 2015</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-198"
	 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'
	>
	In June 2014, we published an article about <a href="https://infinum.com/blog/top-5-android-libraries-every-android-developer-should-know-about/">top 5 Android libraries</a> we were using back then and believed every Android developer should know about. Since then, there have been a lot of changes on the Android scene, so we’re giving you the updated list of our five favorites.</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'
	>
	So here’s the updated list:</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-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-99"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-100">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/06/top-five-android-libraries-every-android-developer-should-know-about-v2015-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-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-102">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-103'
	>
	1. <a href="https://github.com/square/retrofit/tree/version-one">Retrofit</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-105">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-106'
	>
	Retrofit is still our favorite when it comes to implementing REST APIs.</p></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'
	>
	From their site: “Retrofit turns your REST API into Java interface.” Yes, there are other solutions, but Retrofit has proven to be the most elegant and simple 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-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-112'
	>
	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-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-115'
	>
	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-118"
	 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-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'
	>
	Retrofit uses <a href="https://code.google.com/p/google-gson/">Gson</a> 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-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'
	>
	Retrofit 2.0 is being actively developed at the moment. It is still in beta, but you can check it out <a href="http://square.github.io/retrofit/">here</a>. A lot of things from Retrofit 1.9 have been stripped down and some major changes include a new Call interface which replaces Callback.</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-heading" data-id="es-125">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-126'
	>
	2. <a href="https://github.com/Raizlabs/DBFlow">DBFlow</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-130"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-128">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-129'
	>
	If you are going to store any more complex data in your project, you should use DBFlow. As stated on their GitHub, it’s “a blazing fast, powerful, and very simple ORM Android database library that writes database code for you.”</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-133"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-131">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-132'
	>
	Just a few short examples:</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-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;"> Query a List</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><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;">SomeTable</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;">queryList</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><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;">SomeTable</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;">where</span><span class="token">(</span><span class="token">conditions</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">queryList</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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Query Single Model</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><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;">SomeTable</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;">querySingle</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><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;">SomeTable</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;">where</span><span class="token">(</span><span class="token">conditions</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">querySingle</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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Query a Table List and Cursor List</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><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;">SomeTable</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;">where</span><span class="token">(</span><span class="token">conditions</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">queryTableList</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><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;">SomeTable</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;">where</span><span class="token">(</span><span class="token">conditions</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">queryCursorList</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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> SELECT methods</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><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;">distinct</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">table</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">queryList</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><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;">all</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">table</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">queryList</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><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;">avg</span><span class="token">(</span><span class="token" style="color: #24292e;">SomeTable$Table</span><span class="token">.</span><span class="token" style="color: #24292e;">SALARY</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;">SomeTable</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;">queryList</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><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;">method</span><span class="token">(</span><span class="token" style="color: #24292e;">SomeTable$Table</span><span class="token">.</span><span class="token" style="color: #24292e;">SALARY</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">MAX</span><span class="token" style="color: #032f62;">&quot;</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;">SomeTable</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;">queryList</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-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'
	>
	DBFlow is a nice ORM that will remove a lot of boilerplate code used for working with databases. While there are other ORM alternatives for Android, DBFlow has proven to be the best solution for us.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-141"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-139">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-140'
	>
	3. <a href="https://github.com/bumptech/glide">Glide</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-144"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-142">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-143'
	>
	Glide is the library to use for loading images. Current alternatives are <a href="https://github.com/nostra13/Android-Universal-Image-Loader">Universal Image Loader</a> and <a href="https://github.com/square/picasso">Picasso</a>; but, in my opinion, Glide is the best choice at the moment.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-147"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-145">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-146'
	>
	Here’s a simple example how you can use Glide to load an image from a URL into ImageView:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-149"
	 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;">ImageView</span><span class="token"> </span><span class="token" style="color: #24292e;">imageView</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">(</span><span class="token">ImageView</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #6f42c1;">findViewById</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">id</span><span class="token">.</span><span class="token" style="color: #24292e;">my_image_view</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: #24292e;">Glide</span><span class="token">.</span><span class="token" style="color: #6f42c1;">with</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: #6f42c1;">load</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">http://goo.gl/gEgYUd</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">into</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-152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-150">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-151'
	>
	4. <a href="http://jakewharton.github.io/butterknife/">Butterknife</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-155"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-153">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-154'
	>
	A library for binding Android views to fields and methods (for instance, binding a view OnClick to a method). Basic functionality hasn’t changed from the early versions, but the number of options has grown. Example:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-157"
	 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;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">ExampleActivity</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 class="token">@</span><span class="token" style="color: #d73a49;">Bind</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">id</span><span class="token">.</span><span class="token" style="color: #24292e;">title</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #24292e;">TextView</span><span class="token"> </span><span class="token" style="color: #24292e;">title</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;">Bind</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">id</span><span class="token">.</span><span class="token" style="color: #24292e;">subtitle</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #24292e;">TextView</span><span class="token"> </span><span class="token" style="color: #24292e;">subtitle</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;">Bind</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">id</span><span class="token">.</span><span class="token" style="color: #24292e;">footer</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #24292e;">TextView</span><span class="token"> </span><span class="token" style="color: #24292e;">footer</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 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;">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;">simple_activity</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;">ButterKnife</span><span class="token">.</span><span class="token" style="color: #6f42c1;">bind</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><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> TODO Use fields...</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 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-160"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-158">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-159'
	>
	5. <a href="http://google.github.io/dagger/">Dagger 2</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-163"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-161">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-162'
	>
	Since we moved to MVP architecture, we’ve started using dependency injection extensively. Dagger 2 is the successor of the famous Dagger dependency injection library and we highly recommend it.</p></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'
	>
	One of the major improvements is using zero reflection in generated injection code, which makes debugging a lot easier.</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-paragraph" data-id="es-167">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-168'
	>
	Dagger creates instances of your classes and satisfies their dependencies. It relies on javax.inject.Inject annotation to identify which constructors or fields should be treated as dependencies. From the famous CoffeeMaker example:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-171"
	 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;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Thermosiphon</span><span class="token"> </span><span class="token" style="color: #d73a49;">implements</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Pump</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;">private</span><span class="token"> </span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #24292e;">Heater</span><span class="token"> </span><span class="token" style="color: #24292e;">heater</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;">Inject</span><span class="token">
</span></span><span class="line"><span class="token">  </span><span class="token" style="color: #6f42c1;">Thermosiphon</span><span class="token">(</span><span class="token" style="color: #24292e;">Heater</span><span class="token"> </span><span class="token" style="color: #e36209;">heater</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;">heater</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> heater</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 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></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-174"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-172">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-173'
	>
	An example with direct injection into fields:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-176"
	 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;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">CoffeeMaker</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;">Inject</span><span class="token"> </span><span class="token" style="color: #24292e;">Heater</span><span class="token"> </span><span class="token" style="color: #24292e;">heater</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;">Inject</span><span class="token"> </span><span class="token" style="color: #24292e;">Pump</span><span class="token"> </span><span class="token" style="color: #24292e;">pump</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 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></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-177">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-178'
	>
	Dependencies are provided via modules and @Proivides annotation from Dagger:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-181"
	 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">@</span><span class="token" style="color: #d73a49;">Module</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">DripCoffeeModule</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;">Provides</span><span class="token"> </span><span class="token" style="color: #24292e;">Heater</span><span class="token"> </span><span class="token" style="color: #6f42c1;">provideHeater</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: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">ElectricHeater</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><span class="line"><span class="token">  </span><span class="token">@</span><span class="token" style="color: #d73a49;">Provides</span><span class="token"> </span><span class="token" style="color: #24292e;">Pump</span><span class="token"> </span><span class="token" style="color: #6f42c1;">providePump</span><span class="token">(</span><span class="token" style="color: #24292e;">Thermosiphon</span><span class="token"> </span><span class="token" style="color: #e36209;">pump</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"> pump</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></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-182">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-183'
	>
	If you want more information on dependency injection itself, check out the Dagger 2 page or this great <a href="https://www.youtube.com/watch?v=oK_XtfXPkqw">talk about Dagger 2 by Gregory Kick</a>.</p></div>	</div>

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

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-193"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-191">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-192'
	>
	Also, here’s a list of big shots in the Android world who regularly post about Android development:</p></div>	</div>

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