<?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/zeljko-plesac/feed/" rel="self" type="application/rss+xml" />
		<link></link>
		<description>Building digital products</description>
		<lastBuildDate>Mon, 27 Apr 2026 14:58:27 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>19257187https://infinum.com/uploads/2024/09/5-finance-min.webp</url>
				</image>
				<title>Digital Transformation in the Finance Industry – 7 Key Insights</title>
				<link>https://infinum.com/blog/digital-transformation-in-finance-industry/</link>
				<pubDate>Fri, 20 Sep 2024 10:58:52 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19257187</guid>
				<description>
					<![CDATA[<p>What does it take to build a winning digital product in finance today?</p>
<p>The post <a href="https://infinum.com/blog/digital-transformation-in-finance-industry/">Digital Transformation in the Finance Industry – 7 Key Insights</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-147"
	 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-typography" data-id="es-93">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-94'
	>
	<strong>Digital transformation in the finance industry is well underway – it’s been going on for no less than 50 years. But what does it take to build a winning digital product in finance today?</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-typography" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-97'
	>
	The financial industry has been a leader in digital transformation since as far back as the 1970s. In fact, it’s one of the most mature sectors in terms of utilizing digital technologies. Despite this, when people think of financial institutions, the first image that often comes to mind is one of complex, outdated enterprise systems that prioritize functionality over user experience.</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-typography" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-100'
	>
	This association is not necessarily bad, as when it comes to money, people want a feeling of stability and security. However, in today’s rapidly evolving market—it’s no longer enough.</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-typography" data-id="es-102">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-103'
	>
	In recent years, fintech disruptors, such as Square, Wise, N26, PayPal, and even AliPay, have injected much-needed innovation into the market, snapping the industry from a long dream. These companies have proven that financial services don’t have to be dull and difficult to navigate. Instead, they can be engaging, intuitive, and as user-friendly as Netflix.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-105">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-106'
	>
	The success of these disruptors has pushed more traditional financial institutions to rethink their digital transformation strategies, recognizing that consumers now expect financial products to be as simple, personalized, and frictionless as the other digital experiences in their lives.</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-typography" data-id="es-108">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-109'
	>
	So, what does digital transformation in the finance industry look like today? We bring you seven experience-based insights to help you build a successful financial product or update an existing one.</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-typography" data-id="es-111">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-112'
	>
	Digital consolidation is a thing</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-115'
	>
	It seems that <a href="https://www.statista.com/statistics/271644/worldwide-free-and-paid-mobile-app-store-downloads/" target="_blank" rel="noreferrer noopener">we have slowly passed the peak</a> of the “there’s an app for that” trend in the digital landscape. A couple of years ago, it didn’t matter if you were a bank, a flower shop, or a hair salon—you couldn’t exist in the market without a mobile or a web app supporting your business.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-117">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-118'
	>
	But things have changed. People are growing tired of the overwhelming number of apps they need to manage for different purposes. Consumers are becoming more selective, setting limits on the number of digital tools they are willing to use for a single task.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-121"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-120'
	>
	<strong>The industry is moving towards digital consolidation—integrating multiple apps and features into a single, centralized app. The focus is on simplicity, ease of use, and delivering a seamless user experience.</strong></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-typography" data-id="es-122">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-123'
	>
	Take the banking sector, for example. Many financial institutions still offer separate apps for retail users, corporate accounts, investments, loyalty programs, and, especially in the EU, mobile wallets for PSD2 SCA transactions. These services are often spread across multiple platforms with different user interfaces, separate login credentials, varying fees, and inconsistent user experiences. It’s not an ideal situation for the users.</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-typography" data-id="es-125">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-126'
	>
	In response to this, the industry is starting to move in the direction of <a href="https://infinum.com/blog/digital-consolidation/" target="_blank" rel="noreferrer noopener">digital consolidation</a>—integrating multiple apps and features into a single, centralized app. And this time, the focus is on simplicity, ease of use, and delivering a seamless user experience.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-130"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-128">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-129'
	>
	Revolut is a prime example. Over the past few years, they’ve introduced flexible savings, joint accounts, stock and crypto investments, eSIMs, insurance, and much more, all within a single app. It’s easy, it’s simple, it’s in one place – and people love it.</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-typography" data-id="es-131">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-132'
	>
	The omnipresent importance of the omnichannel experience</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-136"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-134">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-135'
	>
	A digital product portfolio can be consolidated to some extent, as described above, but sometimes, the same services need to be available on different channels. Maybe we can’t have a single app for everything, but we can offer a unified <em>experience</em>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-139"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-137">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-138'
	>
	Don’t you just hate it when you need to use different accounts for different platforms to access services from the same company? And especially when it’s only to find that some crucial information is missing or not synced.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-142"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-140">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-141'
	>
	Thankfully, the financial sector has moved beyond this fragmented approach. Today, people expect a seamless customer experience across all platforms. For example, it’s now perfectly common to start a process on a web app and continue it on a mobile device without any disruption. Maybe you didn’t get to finish what you intended before leaving the office; maybe you’re commuting—it doesn’t really matter. You want to be able to log in to a different channel and pick up where you left off.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-145"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-143">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-144'
	>
	The omnichannel approach ensures that no matter where or how users interact with a service—whether on a website, mobile app, or even through customer support—the experience is unified and consistent. Remember the aforementioned security and stability? This synchronization is not only good for user convenience but also builds trust and loyalty with the brand.</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-159"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="grid block-grid__grid" data-id="es-158">
	
<div class="block-grid-item" data-id="es-150">
	
<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-148"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-149">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2024/09/showcase-nlb-right-1400x1918.webp				media='(max-width: 699px)'
				type=image/webp								height="1918"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2024/09/showcase-nlb-right.webp"
					class="image__img block-media__image-img"
					alt=""
										height="2000"
															width="1460"
										loading="lazy"
					 />
					</picture>

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

<div class="block-grid-item" data-id="es-157">
	
<a	class="card-simple js-card-simple block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-151"
	 target='_blank' rel='noopener noreferrer' href='https://infinum.com/work/nlb-lease-go/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h2	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-152'
	>
	<strong><strong><strong>Removing bureaucracy from the leasing process</strong></strong></strong></h2>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-153'
	 id='es-151-paragraph'>
	Partnering with NLB Lease&amp;Go, we built a platform for leasing dealers and intermediaries that digitalizes the entire leasing process, reducing its duration from days to hours.</p><button	class="btn btn--color-infinum btn--size-medium btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-154"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-155'
	>
	Read the case study</div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-156'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-281"
	 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-160">
	

</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-163"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-161">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-162'
	>
	AI-powered personalization</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-166"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-164">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-165'
	>
	In this day and age, most internet users are no longer surprised to see advertisements that reflect their recent search engine queries in their social media feeds. If we can have personalized ads, couldn’t we have personalized offers in digital finance?</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-typography" data-id="es-167">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-168'
	>
	People in their thirties or forties today have most likely been online for two decades and have used digital banking for at least half of that time. That is one significant digital footprint. More importantly, it’s a business opportunity.</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-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-170'
	>
	<strong>If Max or Hulu can suggest which show you should watch next, a bank or an insurance company can also track customer behavior to make you an offer you can’t refuse.</strong></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-typography" data-id="es-172">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-173'
	>
	New or existing products in the digital finance sector should use the data they’ve collected over the years to obtain insights into customer behavior. By learning about a person’s interests, experiences, and desires, they can tailor their products to each individual. For example, each January, you book a hotel in the mountains and buy a ski pass. What if, next year, your bank made you a personalized offer for travel insurance?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-177"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-175">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-176'
	>
	Experian is a perfect case in point. Over the years, they have evolved from a monolithic credit reporting company to a dynamic, data-driven financial organization that recommends loans, credit cards, and insurance tailored to individual financial profiles. Tools to optimize credit scores and manage household subscriptions put more control in the hands of consumers.</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-typography" data-id="es-178">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-179'
	>
	With the advancements in <a href="https://infinum.com/machine-learning-development-services/">machine learning</a>, obtaining valuable insights isn’t that complicated anymore. If there’s something artificial intelligence excels at, it’s analyzing large amounts of data and making recommendations.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-183"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-181">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-182'
	>
	Many banks today already offer an AI-powered personal finance manager (PFM). While these tools are mostly still in the early stages, we should see some interesting developments in this space in the near future. For example, banking apps often sort transactions into categories like dining, travel, or utilities. What if, in the next phase, a PFM analyzes your spending in these categories and makes recommendations like switching your electricity provider because there’s a cheaper option for your needs?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-186"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-184">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-185'
	>
	This could be an interesting turn on the digital transformation journey – if Max or Hulu can suggest which show you should watch next, a bank or an insurance company can also track your habits to make you an offer you can’t refuse.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-189"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-187">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-188'
	>
	The hype train is easily derailed</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-192"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-190">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-191'
	>
	Remember when chatbots were the next big thing, supposedly poised to replace all mobile apps? Then came the predictions that the entire financial services sector would migrate to blockchain, solving problems we didn’t even know existed. After that, it was crypto.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-195"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-193">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-194'
	>
	Most recently, the buzz was all about artificial intelligence, with claims that it would revolutionize every aspect of our lives and, among other things, render coding a thing of the past.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-198"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-196">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-197'
	>
	This happens in every industry: there’s always a shiny new technology that promises to disrupt the market. But often, the hype train derails and companies struggle to deliver on those bold promises.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-201"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-199">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-200'
	>
	The finance industry is very specific. Despite the waves of innovation, it operates within a framework that has been in place for thousands of years. Even the ancient Sumerians had a currency system and taxes. While digital transformation in the finance industry began over 50 years ago, we’re still fundamentally working with age-old principles, rules, and protocols.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-204"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-202">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-203'
	>
	Why is this so? Because these systems are battle-tested. They offer low risk, they’re trusted, and there’s a large, experienced workforce that can manage and maintain them. The finance industry isn’t resistant to change, but innovation tends to happen on a smaller, more focused scale.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-207"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-205">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-206'
	>
	Take neobanks, for example. They didn’t revolutionize the entire financial services sector but instead disrupted it by improving specific processes—like transaction execution. Whether this improvement came from blockchain, AI, or another technology isn’t what matters to the user. What matters is that today, people can send money faster and more cheaply than ever before.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-210"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-208">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-209'
	>
	Legal compliance as a catalyst for innovation</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-213"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-211">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-212'
	>
	The finance industry is a highly regulated one. After all, it deals with financial data, one of the most sensitive types of information. While meeting at least the minimum requirements for compliance is non-negotiable if you want to operate in this space, the legal framework doesn’t have to be a burdensome necessity. Controversial as it may seem, it can sometimes serve as a springboard for innovation.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-215"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-214'
	>
	<strong>In 2019, the EU’s PSD2 directive led to a surge of new financial management products in the market, allowing consumers to synchronize data from different banks and benefit from innovative financial services.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-218"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-216">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-217'
	>
	Take the European Union as an example. While it&#8217;s notorious for its bureaucracy (<a href="https://infinum.com/blog/apple-digital-markets-act/" target="_blank" rel="noreferrer noopener">Apple would certainly have opinions on that</a>), not all its regulations are as pointless as <a href="https://world.hey.com/dhh/cookie-banners-show-everything-that-s-wrong-with-the-eu-3bfcf03d" target="_blank" rel="noreferrer noopener">the cookie policy</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-221"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-219">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-220'
	>
	A case in point is the 2016 PSD2 directive, which paved the way for open banking by requiring banks to open up their <a href="https://infinum.com/pci-dss-compliance-guide/" id="https://infinum.com/pci-dss-compliance-guide/">payment services</a> and data to third-party providers. A year after the directive was transposed into the national laws of EU member states, there was a surge of new financial management products, allowing consumers to synchronize data from different banks.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-224"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-222">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-223'
	>
	So, rather than being skeptical of new regulations, it’s worth keeping a close eye on them. In the bureaucratic EU, the current hot topics in legislation are PSD3, <a href="https://infinum.com/blog/eu-cybersecurity-legislation-nis2-dora/" target="_blank" rel="noreferrer noopener">DORA</a>, and the Accessibility Regulation. They all impact financial service providers—whether directly, as PSD3, or through broader concerns like <a href="https://infinum.com/cybersecurity/" target="_blank" rel="noreferrer noopener">cybersecurity</a> and <a href="https://infinum.com/blog/digital-product-accessibility/" target="_blank" rel="noreferrer noopener">accessibility</a> that affect all digital products.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-227"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-225">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-226'
	>
	By keeping up with the regulatory requirements, you’ll be able to identify opportunities for improving existing products or launching something new. At the very least, preparing for compliance in advance can give you a competitive edge, as you’ll be able to roll out services faster than those competitors who may have been lazy about it.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-234"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-228"
	 target='_blank' rel='noopener noreferrer' href='https://infinum.com/cybersecurity/penetration-testing/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-229'
	>
	<strong><strong>The EU’s Digital Operational Resilience Act (DORA) prescribes mandatory pentesting for financial organizations on a yearly basis. Don’t wait until this is a necessity and discover the vulnerabilities in your system before malicious actors do.</strong></strong></p>		</div>

		<button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-231"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-232'
	>
	Find out more </div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-233'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-237"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-235">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-236'
	>
	It’s about bankers as well as banking customers</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-240"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-238">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-239'
	>
	Whatever the type of digital product, focusing on the customer is paramount. And while most customers are end users with accounts, some of a financial institution’s customers are within its own walls – the executives, employees, and traders who make these organizations run.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-243"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-241">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-242'
	>
	As mentioned earlier, finance is a well-established and highly regulated industry. When introducing a new product for internal use, it’s not uncommon to be met with resistance to change – a “we’ve always done it this way” mindset. But people working in a financial institution have the same high expectations of UX and functionality in their day jobs as they do at home. By improving internal processes, risk assessment tools, and trading platforms, it’s possible to bring more insight to decision-making, simplify and speed up workflows, and settle transactions faster and more seamlessly. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-246"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-244">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-245'
	>
	Innovation teams within financial institutions – often working in collaboration with outside partners – are able to quickly bring new products to a market that’s increasingly being disrupted. As traditional companies learn how to work in agile and nimble ways, they level the playing field with fintechs.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-249"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-247">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-248'
	>
	Free your mind, and your digital product will follow</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-252"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-250">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-251'
	>
	Finally, your future digital transformation strategy can benefit from some out-of-the-box thinking. Or out-of-the-industry, to be precise.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-255"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-253">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-254'
	>
	As technology progresses and the world becomes even more connected, the walls separating the digital expectations between different industries are breaking. People exhibit the same patterns while using their digital products—it doesn’t matter if they are obtaining a car loan or buying groceries. We enjoy using apps that are fast, accessible, intuitively designed, and easy to use.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-258"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-256">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-257'
	>
	If you want to disrupt the market with your new idea, you need to look beyond what other financial institutions are doing. The finance sector is not special—we are slightly more careful about whom we trust our money with, but ultimately, we expect the same smooth experience as with any other digital interaction.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-261"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-259">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-260'
	>
	Looking outside the industry, you just might come across a feature you’ll be able to apply in yours. For example, the concept of gamification originated in education and fitness apps but found a great fit with the financial industry. Banking and investment platforms like Acorns or Monzo now use progress bars, achievements, and rewards to encourage users to save or invest more consistently, which does wonders for user engagement.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-264"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-262">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-263'
	>
	Get ready for the next stage of digital transformation in the finance industry</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-267"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-265">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-266'
	>
	Digital transformation in the finance industry is 50 years in and still going strong. However, today, it is no longer simply a matter of adopting new digital technologies.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-270"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-268">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-269'
	>
	To be successful in the digital finance arena of tomorrow, you need to be able to identify and respond to evolving customer expectations. Consolidating services into streamlined apps, creating seamless omnichannel customer experiences, or leveraging AI to offer highly personalized financial products can all be great tactics for your digital transformation journey. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-273"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-271">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-272'
	>
	At the same time, you don’t want to get swept up in every tech trend or hype cycle. Fintech disruptors didn’t disrupt the market through technology alone but used innovation to provide next-level user convenience.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-276"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-274">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-275'
	>
	All the operations in the finance industry continue to be underpinned by trust, stability, and compliance. By staying agile, embracing meaningful innovations, and keeping an eye on regulatory developments, financial organizations can offer the best of both worlds: cutting-edge products with the reliability that customers need.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-279"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-277">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-278'
	>
	<em><em>If you would like to consult with an external partner for the next phase of your digital transformation initiative in finance,</em> <a href="https://infinum.com/contact/" target="_blank" rel="noreferrer noopener">we’re here to help</a>.</em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/digital-transformation-in-finance-industry/">Digital Transformation in the Finance Industry – 7 Key Insights</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19256786https://infinum.com/uploads/2024/08/Team-augementation-min.webp</url>
				</image>
				<title>When Is Team Augmentation the Right Call for Your Project?</title>
				<link>https://infinum.com/blog/team-augmentation/</link>
				<pubDate>Wed, 04 Sep 2024 11:49:00 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19256786</guid>
				<description>
					<![CDATA[<p>Learn about team augmentation and its benefits for software development. Explore different scenarios where it can be a game-changer.</p>
<p>The post <a href="https://infinum.com/blog/team-augmentation/">When Is Team Augmentation the Right Call for Your Project?</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-370"
	 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-282">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-285"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-283">
	<p	class='typography typography--size-36-text js-typography block-paragraph__paragraph'
	data-id='es-284'
	>
	<strong>When your software development project starts struggling with tight deadlines or skill gaps, team augmentation might be the boost you need. But how do you know if it’s the right option for you? We explore the most common scenarios where this model can be a great asset.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-288"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-286">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-287'
	>
	With software development projects, the final goal is easy to define—a rounded, working, thriving digital product. However, to reach that goal, there are many different paths you can take. For example, you can choose between <a href="https://infinum.com/blog/in-house-software-development-vs-outsourcing/" target="_blank" rel="noreferrer noopener">in-house software development vs outsourcing</a>, which we’ve written about before. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-291"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-289">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-290'
	>
	This time, we’re tackling a path that’s “neither here nor there.” It’s for those situations where you <em>almost</em> have what you need with your in-house team, but you’re missing that little bit of extra – be it more hands on deck, the right skill set, or the right level of expertise.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-294"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-292">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-293'
	>
	Team augmentation is a cooperation model that gives you simple access to all of the above. It’s a great way to quickly scale your development capabilities without the long-term commitment and additional costs of hiring full-time employees.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-297"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-295">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-296'
	>
	How do you know that this is the right path for <em>you</em>? In this article, we’ll present some common scenarios where augmenting your internal team with additional members is a great option.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-300"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-298">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-299'
	>
	What is team augmentation?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-303"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-301">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-302'
	>
	Let’s get the definition out of the way. Team augmentation is an outsourcing model where a company adds external talent to its existing software development team on a temporary, contractual basis. The added members integrate with your team and work solely on your project during all working hours. With this staff augmentation model, you get all the dedication and focus of an in-house development team but with limited duration and limited responsibilities.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-306"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-304">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-305'
	>
	Team augmentation is your boost button on the way to product delivery. Whether you need to track down tech talent to fill specific skill gaps, meet strict deadlines, or resolve complex technical issues, it’s a plug-and-play solution that gets you to your goal hassle-free.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-309"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-307">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-308'
	>
	When to choose team augmentation</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-312"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-310">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-311'
	>
	There are multiple benefits to team augmentation, and the model can be applied to all sorts of software development projects in all sorts of industries. With over two decades of experience in the agency business, we’ve learned to immediately recognize the situations when team augmentation is just the remedy a project needs to get to successful completion.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-315"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-313">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-314'
	>
	Not enough internal capacity</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-318"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-316">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-317'
	>
	Here’s probably the most typical situation that calls for staff augmentation services: you’re looking at your product roadmap, you’re looking at your people and their availability, and you think, “OK, there is no way we are going to be able to pull this through.”</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-320"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-319'
	>
	<strong>When you’re chasing deadlines, things can easily fly under the radar, especially with an overworked team. By bringing in skilled reinforcements, you maintain quality standards and end up with a better product on your hands.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-323"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-321">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-322'
	>
	With good organizational skills and development culture, you can organize your project so multiple teams can work on it independently. This includes an app architecture that supports this (like <a href="https://infinum.com/blog/micro-frontends-nx-angular/" target="_blank" rel="noreferrer noopener">Micro Frontends</a>, for example), a smart git branching strategy, meticulous documentation, effective communication, and devoted project managers. With the right setup, you can easily assign a portion of feature development to a remote team. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-326"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-324">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-325'
	>
	When you&#8217;re operating within a staff augmentation model, it’s essential to set the game rules in advance. You want full alignment on the coding standards and the course of the development project. The idea is to speed up the process with a staff augmentation model, not slow it down due to misunderstandings and misaligned practices. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-329"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-327">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-328'
	>
	The added benefit of team augmentation is that this model allows you to maintain the quality of work. When you’re chasing deadlines, things can easily fly under the radar, especially with an overworked team. By bringing in skilled reinforcements, you maintain quality standards and have a better product on your hands.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-332"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-330">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-331'
	>
	Temporary scale-up</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-335"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-333">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-334'
	>
	Sometimes, your increased workload is time-limited, and you’re aware of it. Maybe you’re building an additional feature or performing a complex database migration. There are many scenarios when project requirements dictate a rapid team upscale, but after the work is done, you’ll either have to downscale just as quickly or bench people.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-338"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-336">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-337'
	>
	Clearly, hiring is not the best option here. It can be time- and cost-intensive, not to mention that the lack of work likely to ensue can have a negative impact on your team’s morale.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-341"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-339">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-340'
	>
	It is important to recognize situations where your development process has a short uptick. By leveraging staff augmentation services, you can easily scale your teams up or down. Need three more people to deliver the project? No problem; let’s upscale the team. The majority of the work is done, and the workload has decreased? That’s perfectly fine; we can downscale the team.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-344"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-342">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-343'
	>
	Missing technical expertise</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-347"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-345">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-346'
	>
	How about this situation? You have an excellent development team that delivers on a daily basis, but something is missing. Maybe your current project involves a complex technical challenge they have no experience with. Maybe it’s a matter of specific technology; your team is killing it on the frontend, but you now need a backend wizard.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-350"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-348">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-349'
	>
	You can have your team attend courses, study documentation and online tutorials, but this takes time and can never really replace hands-on experience. What you really need is an ace who will join your team and start delivering quickly and efficiently, taking those technical issues head-on.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-353"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-351">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-352'
	>
	There’s no shame in admitting that sometimes, you don’t have what it takes in your current roster of people (maybe it’s even people skills that are missing – we’ve seen that, too). And this is where an experienced pair of hands or a fresh pair of eyes just might save the day.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-356"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-354">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-355'
	>
	The upscaling phase</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-359"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-357">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-358'
	>
	Sometimes, you want to grow your development team, but at the same time, you need things done. This will often happen to startups in the scaling phase, where it’s important to keep up with the project requirements for delivery while working on building internal teams at the same time.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-362"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-360">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-361'
	>
	Hiring full-time employees is a lengthy process; you need to find the right candidates, assess their technical skills, get them up to speed, achieve team cohesion, and as the old meme wisdom goes – <a href="https://tenor.com/en-GB/view/no-time-busy-aint-nobody-got-time-for-that-gif-15753141" target="_blank" rel="noreferrer noopener">ain’t nobody got time for that</a>. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-365"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-363">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-364'
	>
	Leveraging staff augmentation services can give you some breathing room here: Your outsourced team members will make sure those delivery tasks get done while you focus on building an in-house team for the long run. A remote team you can rely on in the early phase can save you from making any rash hiring decisions under pressure.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-368"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-366">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-367'
	>
	A great example of this scenario is our cooperation with Mara. With several outside factors at play, Mara had very strict deadlines for product launch. They knew they ultimately wanted an in-house team to work on their product, but there simply wasn’t enough time to build one. Our designers and developers worked alongside theirs, and as Mara’s internal capacities grew, we gradually downscaled our engagement. As a bonus, the arriving team members learned from existing ones and strengthened their skills in the process.</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-389"
	 data-animation-target='inner-items'>
		
			<div class="block-columns" data-id="es-388">
	
<div class="block-column" data-id="es-387">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-386"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="grid block-grid__grid" data-id="es-385">
	
<div class="block-grid-item" data-id="es-373">
	
<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-371"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-372">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2023/04/Mara-showcase-square.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1241"
															width="1241"
										loading="lazy"
					 />
					</picture>

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

<div class="block-grid-item" data-id="es-384">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-383"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-374"
	 href='https://infinum.com/work/mara/'>

	
	<div class="intro-label card-simple__intro-label" data-id="es-375">
	<p	class='typography typography--size-14-text-roman js-typography intro-label__intro-label'
	data-id='es-376'
	>
	MARA<br></p></div>
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h2	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-377'
	>
	<strong>Unique digital wallet brings financial freedom to Africa’s millions</strong></h2>		</div>

		<p	class='typography typography--size-16-text-roman js-typography card-simple__paragraph'
	data-id='es-378'
	 id='es-374-paragraph'>
	Partnering with Mara, a pan-African company that offers a suite of financial products, we leveraged Web3 blockchain technology to create Mara Wallet – a fast and secure wallet for easier asset management, and a platform for learning how to make better financial choices.</p><button	class="btn btn--color-infinum btn--size-medium btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn"
	data-id="es-379"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-380'
	>
	Learn more</div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-381'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button><div class="tags card-simple__tags" data-id="es-382">
	<div class="tags__items">
		<div class="tags__list">
					</div>
	</div>
</div>	</div>
</a>	</div>
</div>
</div>	</div>
</div>
</div>	</div>

<div
	class="wrapper"
	data-id="es-477"
	 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-390">
	

</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-393"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-391">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-392'
	>
	Project chunks or irregular work</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-396"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-394">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-395'
	>
	Not all projects are incredibly complex, take years to complete, or require developers by the dozen. Some types of work happen on a smaller scale or only occasionally. For example, this could be maintenance work, content migrations, updates to newer versions of operating systems, file cleanups, etc.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-399"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-397">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-398'
	>
	This type of work is not sexy, it’s not glamorous, but it’s a reality, and we don’t advise you to ever ignore it. Instead of procrastinating about these tasks or hiring new team members for something you only need now and then, you can go with team augmentation. As mentioned before, you can upscale your internal team for a limited time duration and downscale it just as easily when the work is done.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-402"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-400">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-401'
	>
	Focus-switching shield</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-405"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-403">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-404'
	>
	It’s a well-known fact that focus-switching has an enormous negative impact on the quality of delivery and can lead to mental exhaustion. Unfortunately, project work rarely happens in isolation, and prioritization is something we all do.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-407"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-406'
	>
	To give your most valuable developers space to deliver their best work, you can tap into an external talent pool and delegate more efficiently. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-410"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-408">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-409'
	>
	For example, <a href="https://infinum.com/software-development-agency/">software development agencies</a> will prioritize different projects at different times. On a project level, we prioritize some features over others. And when we organize work strategically, we, of course, want the best developers working on priority projects and priority features. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-413"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-411">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-412'
	>
	This is where team augmentation can come in very handy. To save your most valuable developers from the dreaded focus-switching and give them space to deliver their best work, you can tap into an external talent pool and delegate more efficiently.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-416"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-414">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-415'
	>
	There’s a hidden bonus here as well. When you assign less risky work to outsourced team members, you get to see them in action before you trust them with your most prized feature. You’re giving them a chance to impress you with their skills in a low-risk environment and progress to more complex tasks in the future. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-419"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-417">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-418'
	>
	Cost optimization</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-422"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-420">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-421'
	>
	Here&#8217;s a scenario that might sound familiar: you need senior engineering talent, but your budget is giving you a reality check. While it&#8217;s true that experienced developers command premium rates regardless of how you engage them, team augmentation often proves to be the more cost-effective choice – especially for time-bound projects or specific technical challenges.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-425"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-423">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-424'
	>
	Why? Because hiring in-house developers involves more than just their salary. There&#8217;s equipment, software licenses, benefits, training, and various overhead costs that quickly add up. With team augmentation, these costs are absorbed by your technology partner. You&#8217;re essentially paying for pure development capacity, scaling it up or down as your project demands.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-428"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-426">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-427'
	>
	For example, if you need a senior React developer for a six-month project, team augmentation lets you access that expertise without the long-term financial commitment of a full-time hire. Plus, with options for nearshore or offshore partnerships, you can further optimize your budget while maintaining quality standards.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-431"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-429">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-430'
	>
	The advantages of team augmentation</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-434"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-432">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-433'
	>
	After exploring various scenarios where the team augmentation model shines, let&#8217;s distill the key advantages that make it particularly attractive for software development projects. Here&#8217;s what makes team augmentation a smart choice:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-438"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-435">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-436'
	>
	<strong>Quick access to specialized expertise</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-437'
	>
	Instead of spending months recruiting and training new hires, you can tap into a pool of pre-vetted talent with specific technical skills right when you need them. This is especially valuable when facing complex technical challenges or working with niche technologies.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-442"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-439">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-440'
	>
	<strong>Scalability and flexibility</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-441'
	>
	You can scale your team up or down based on project demands without the long-term commitments of traditional hiring. This adaptability means you&#8217;re never over- or under-staffed, keeping your project perfectly resourced at all times.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-446"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-443">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-444'
	>
	<strong>Cost-effective resource management</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-445'
	>
	You avoid the overhead costs associated with full-time employees (benefits, equipment, office space, etc.) and still get a dedicated team. It’s a perfect way to optimize your budget without compromising quality or delivery speed.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-450"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-447">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-448'
	>
	<strong>Reduced administrative burden</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-449'
	>
	The augmented team members are managed by your technology partner, so you can focus on core project objectives. There’s no dealing with HR matters, administrative tasks, and other operational concerns.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-454"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-451">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-452'
	>
	<strong>Risk mitigation in hiring</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-453'
	>
	Team augmentation lets you evaluate potential long-term hires in a real project environment, reducing the risk of poor cultural or technical fits if you decide to transition them to full-time roles later.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-458"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-455">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-456'
	>
	<strong>Maintained development momentum</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-457'
	>
	When your in-house team is stretched thin, adding augmented team members helps maintain consistent development velocity and prevents burnout among your core team while ensuring quality standards aren&#8217;t compromised.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-462"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-459">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-460'
	>
	<strong>Knowledge transfer and team upskilling</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-461'
	>
	Working alongside experienced professionals from different backgrounds can enhance your internal team&#8217;s capabilities through knowledge sharing and exposure to new methodologies and best practices.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-466"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-463">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h3	class='typography typography--size-20-text js-typography bullet__heading'
	data-id='es-464'
	>
	<strong>Faster time-to-market</strong></h3><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-465'
	>
	With immediate access to the right expertise and additional development capacity, you can accelerate project delivery timelines and respond more quickly to market opportunities or competitive pressures.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-469"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-467">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-468'
	>
	Boost your chances of success with team augmentation</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-472"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-470">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-471'
	>
	In conclusion, team augmentation is your direct path to a top-tier talent pool. By giving you plug-and-play access to specialized skills, it can accelerate your project and get you over that delivery finish line faster and with better results.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-475"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-473">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-474'
	>
	We’ve taken you through some common real-world scenarios where team augmentation can greatly boost your chances of success and potentially even give you a strategic advantage. But the list is, as they say, by no means exhaustive. If you’re finding it hard to hit those milestones for whatever reason and want to run some project diagnostics, <a href="https://infinum.com/contact/">let us know</a>. Maybe we can augment the situation.&nbsp;</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/team-augmentation/">When Is Team Augmentation the Right Call for Your Project?</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>52180https://infinum.com/uploads/2024/03/Digital_Transformation_in_the_Insurance_Industry_blogpost-hero-ig-min.webp</url>
				</image>
				<title>Digital Transformation in the Insurance Industry – 5 Best Practices</title>
				<link>https://infinum.com/blog/digital-transformation-in-the-insurance-industry/</link>
				<pubDate>Thu, 21 Mar 2024 10:28:07 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=52180</guid>
				<description>
					<![CDATA[<p>We explore the potential of digital transformation in the insurance industry. Learn the key principles for building winning digital solutions.</p>
<p>The post <a href="https://infinum.com/blog/digital-transformation-in-the-insurance-industry/">Digital Transformation in the Insurance Industry – 5 Best Practices</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-646"
	 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-478">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-481"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-479">
	<p	class='typography typography--size-36-text js-typography block-paragraph__paragraph'
	data-id='es-480'
	>
	<strong>To do digital transformation in the insurance industry right, you need to know the industry. Drawing from two decades of experience, we present the key principles for building winning digital solutions in the insurance space.  </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-484"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-482">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-483'
	>
	When we talk about digital technologies, innovation, and cutting-edge solutions, the insurance sector probably isn’t the first one to come to mind. With all the administration, regulations, and large product complexity, many consider insurance to be a very traditional business.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-487"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-485">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-486'
	>
	In reality, nothing could be further from the truth.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-490"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-488">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-489'
	>
	Digital transformation in the insurance industry is moving faster than a claims agent after a hail storm. Actually, the sector has been one of the first to digitize its systems to improve internal processes, make more accurate risk assessments, and inform product pricing.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-493"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-491">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-492'
	>
	However, with rapid advancements in digital technologies and changing consumer expectations, insurers can’t afford to just maintain the status quo. Customers expect more from their digital experiences. They want fast and smooth processes, intuitive interfaces, and complex interactions made simple.  </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-496"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-494">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-495'
	>
	With over two decades of experience on projects focusing on digital transformation in insurance, we’ve come to learn some important principles for building digital products that customers love and businesses thrive on.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-499"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-497">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-498'
	>
	What does digital transformation in the insurance industry even mean?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-502"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-500">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-501'
	>
	In general, digital transformation is about using technology to create new or improve existing business models by introducing digital innovation to processes, products, or services. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-505"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-503">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-504'
	>
	An early example of digital transformation in the insurance industry is the use of scanners for digital document filing, as well as complex algorithms backed by historical data for shaping the prices of insurance premiums more accurately. This allowed insurance companies to become more profitable and better at risk management.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-507"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-506'
	>
	<strong>Insurers have a number of digital tools in their toolbelt and with the advancements in AI, big data, and IoT – the possibilities just keep multiplying. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-510"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-508">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-509'
	>
	Then, as the World Wide Web became more and more populated in the 1990s, insurance businesses started selling their products over the internet. This gave them a new source of revenue and also helped them increase customer loyalty and retention.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-513"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-511">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-512'
	>
	And today? The insurance industry is hardly imaginable without digital processes. Paperless document signing, online applications, instant quotes, fraud detection, fully digital insurance claim submission and processing, instant insurance, gamification, tracking devices in cars that monitor how a person is driving so that their premium can be adjusted accordingly… </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-516"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-514">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-515'
	>
	Best Practices for Digital Transformation in the Insurance Industry</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-519"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-517">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-518'
	>
	Building a great digital product that will be easily adopted by customers and bring success to a business takes more than tech expertise. Knowing the industry you’re building for allows you to shape that product so that it meets the needs of the market and effortlessly finds its place in it.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-522"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-520">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-521'
	>
	When building for the insurance sector, these are the things to keep in mind.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-525"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-523">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-524'
	>
	1. Know your audience</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-528"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-526">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-527'
	>
	Insurance apps have a very specific target audience. These are not the types of mobile apps users will interact with daily. On the contrary, they will tap that icon only when they need something. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-530"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-529'
	>
	<strong>Bearing in mind that many insurance plans, like car insurance, for example, are extended on a yearly basis, the number of daily or monthly active users won’t be very high.</strong> </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-533"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-531">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-532'
	>
	This can make understanding your audience somewhat challenging as you won’t have ample opportunity to get to know their needs and expectations regarding digital experiences. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-536"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-534">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-535'
	>
	Additionally, and this might come as a hard truth for insurance providers, they also don’t want to engage with your digital product more than that.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-539"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-537">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-538'
	>
	This fact comes into play when you think about upselling your users with additional services. Sending them push notifications about new offers on a daily basis is probably not the best strategy. However, sending them a push notification about travel insurance once their location changes to another country? That could work out great.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-542"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-540">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-541'
	>
	2. Apply the KISS principle</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-545"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-543">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-544'
	>
	We’re not talking about the band that loves heavy makeup, but a well-known principle in marketing, software engineering, and many other fields – keep it simple, stupid.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-548"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-546">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-547'
	>
	Insurance forms and contracts are usually very long and complex. Digitizing the process gives you an opportunity to simplify a complicated matter and position yourself as a leading digital service provider with forms that are easily understood by anyone.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-551"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-549">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-550'
	>
	When you decide to go down this road, don’t just transfer your paper forms to a digital format.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-553"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-552'
	>
	<strong>Think about automation. Is there a piece of information that can be automatically pulled to the user’s screen? Is there a way to connect with your local tax authority or a bank? </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-556"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-554">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-555'
	>
	Think about the customer experience and presenting your data in an easily understandable way and only to the extent to which it is absolutely essential for the user.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-559"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-557">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-558'
	>
	3. Leverage loyalty</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-562"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-560">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-561'
	>
	In the insurance sector, there is an important factor that works in favor of the service providers, and that is customer loyalty. Most users won’t go researching insurance companies each time their contract expires. It’s a hassle and a time-wasting task, especially for an average user who didn’t need to activate their insurance policies in the previous year.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-565"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-563">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-564'
	>
	This definitely doesn’t mean that you can get comfortable and not worry about customer retention. On the contrary, invest in the relationships you have with your loyal customers to strengthen them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-567"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-566'
	>
	<strong>Offer your customers discounts, small gifts, referral bonuses. This is an incomparably smaller investment than the one you need for attracting new ones.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-570"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-568">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-569'
	>
	And bear in mind that the loyalty described above only goes so far. After all, you’re operating in a heavily saturated and highly competitive market. Current trends show that the costs of switching insurance providers are going down as the ease of using digital products in insurance is going up.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-573"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-571">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-572'
	>
	It is just one of the reasons why insurers should make the UX of their digital tools an absolute priority. If your customer gets a more affordable insurance offer from a competitor with a beautifully designed app that lets them do everything in three clicks… they will be tempted to make a move despite years of loyalty.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-576"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-574">
	<h4	class='typography typography--size-30-text js-typography block-heading__heading'
	data-id='es-575'
	>
	Use the power of data</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-579"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-577">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-578'
	>
	With so many digital channels available to people nowadays, the sheer volume of customer data collected is increasing exponentially. This can be both a challenge and an opportunity for insurers.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-582"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-580">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-581'
	>
	Managing and storing this data efficiently and securely is, of course, a prerequisite. And with the data at their disposal, insurance companies can use advanced analytics to gain valuable insights that will help them shape new insurance products and services, form competitive prices, improve the user experience and their underwriting and claims handling processes.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-584"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-583'
	>
	Leveraging personal instead of pooled data, an insurer can create highly personalized offers that are a perfect match for an individual customer and their needs. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-587"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-585">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-586'
	>
	For example, a person who drives an eco-friendly car, mostly for commuting to work and weekend trips, could get an offer for comprehensive coverage with enhanced protection for commute-related incidents and roadside assistance for those weekend getaways. Throw in a discount for green vehicles and a safe driver bonus, which could be applied towards the premium or future renewals, and you have a perfect fit.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-590"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-588">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-589'
	>
	4. Prioritize data privacy and security</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-593"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-591">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-592'
	>
	Insurance companies operate in a highly regulated environment and deal with sensitive customer data. By providing personal data through digital products, the users put their utmost trust in the insurance providers. That trust may come easily for established companies but know that it’s also painfully easy to lose.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-596"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-594">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-595'
	>
	<a href="https://infinum.com/blog/cybersecurity-trends-2024/" target="_blank" rel="noreferrer noopener">Data breaches can cause immense damage</a>. Obviously, there are financial losses, but the damage to an organization’s reputation is especially hard to recover from.  </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-599"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-597">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-598'
	>
	Be very careful how you design your product, remember security plays a critical role, and bake it into every stage of the development process. If you don’t have the resources in-house, hire outside experts and test your insurance solutions thoroughly from a cyber security standpoint to make them bulletproof.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-602"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-600">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-601'
	>
	5. Focus on the customer experience</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-605"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-603">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-604'
	>
	Insurance forms are notoriously difficult to read and understand. There’s no problem with this when you’re signing the contract; most users will do the usual next-next-I-agree<em> </em>dance. However, when they find themselves in a situation where they need to collect the insurance money, things can get complicated fast. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-607"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-606'
	>
	<strong>Insurance providers need to work twice as hard to help their users rest at ease. Don’t put them in a situation where they’re pulling their hair out because they didn’t read the small print. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-610"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-608">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-609'
	>
	Design your insurance products so that you lead your customers by the hand and give them all the information they need, but not excess information. Format and compile your contracts in a way that a high school student with no experience would understand them. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-613"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-611">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-612'
	>
	Your customers are not insurance experts – they just want to know that what’s precious to them is insured and safe. When there is an unfortunate event, you need to step in and step up. Help them in a way that they understand.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-616"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-614">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-615'
	>
	For example, one of our banking clients, NLB, offers 24/7 video chat support, and we’ve integrated this feature into their mobile app. Imagine you’re traveling abroad, and you need to increase your credit card limit, but it’s 4 AM back home. That video chat will be a lifesaver.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-619"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-617">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-618'
	>
	Bonus: Up your insurance game with artificial intelligence</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-622"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-620">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-621'
	>
	Writing this article without touching upon the magic of artificial intelligence would be impossible in the year 2024, and the insurance business has some great use cases for AI products.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-625"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-623">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-624'
	>
	Most insurance providers have collected vast amounts of data in the past two or three decades. With the right tools, this data can be easily utilized for fraud detection, introducing new insurance products and offers to the market, automating routine tasks, providing a personalized experience, and educating their user base. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-628"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-626">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-627'
	>
	But, remember the KISS principle. For starters, you can implement <a href="https://infinum.com/blog/ai-chatbot-development-pain-points/" target="_blank" rel="noreferrer noopener">a nice AI-powered chatbot</a> or a flow that would help the user pick out the best offer for their specific case. Maybe a completely personalized offer too?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-635"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-629"
	 href='https://infinum.com/ai-readiness-assessment/#form'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h2	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-630'
	>
	<strong><strong>If you&#8217;re considering integrating AI into your digital product, the first step is to evaluate your current state. <strong>Fill out our survey and get a free personalized assessment of your business&#8217;s readiness for AI implementation.</strong><br />
</strong></strong></h2>		</div>

		<button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-632"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-633'
	>
	Learn more </div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-634'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-638"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-636">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-637'
	>
	Ready for digital transformation in the insurance industry?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-641"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-639">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-640'
	>
	Though no novice in digital transformation, the insurance industry is well-settled in its ways. Insurance products have carved their niche in the digital landscape, and groundbreaking changes don’t happen on a daily basis. It’s important not to get stuck in the setup that you have. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-644"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-642">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-643'
	>
	Bearing in mind the above best practices, it might be helpful to <a href="https://infinum.com/contact/" target="_blank" rel="noreferrer noopener">connect with an external technology partner</a> to support you on your business transformation journey. They can bring a new perspective to your business and introduce you to new ways and digital tools to challenge the status quo.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/digital-transformation-in-the-insurance-industry/">Digital Transformation in the Insurance Industry – 5 Best Practices</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>49823https://infinum.com/uploads/2024/01/Delay-hero.webp</url>
				</image>
				<title>Why Digital Product Development Projects Often Suffer Delays</title>
				<link>https://infinum.com/blog/why-digital-product-development-projects-often-suffer-delays/</link>
				<pubDate>Wed, 31 Jan 2024 12:31:04 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=49823</guid>
				<description>
					<![CDATA[<p>The second edition of Infinum Slovenia’s Business Breakfast event identified the main reasons behind project delays. </p>
<p>The post <a href="https://infinum.com/blog/why-digital-product-development-projects-often-suffer-delays/">Why Digital Product Development Projects Often Suffer Delays</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-670"
	 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-647">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-650"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-648">
	<p	class='typography typography--size-36-text js-typography block-paragraph__paragraph'
	data-id='es-649'
	>
	<strong>The second edition of Infinum Slovenia’s Business Breakfast event identified the main reasons behind project delays. Knowing what to expect, we all become better equipped to tackle potential issues.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-653"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-651">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-652'
	>
	Once there’s a product reaping success out in the market, nobody will think much about the hurdles that have been encountered on the way. However, hurdles are more common than you think, and one of the most common ones are project delays.&nbsp;&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-656"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-654">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-655'
	>
	The phenomenon of software development projects often running late and the reasons behind it were the main focus of the panel discussion held at Infinum Slovenia’s Business Breakfast – a brunch-style networking event for a select group of attendees from the local business community. The idea behind the event is to encourage honest and open discussion on various topics at the intersection of business and technology, even the not-so-comfortable ones.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-659"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-657">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-658'
	>
	The main guest of Business Breakfast’s second edition was Goran Golubović, the CIO of Deželna banka Slovenije, a bank with a long tradition and history and a wide network of 76 branches across Slovenia, and the president of the Information Technology Committee of the Bank Association of Slovenia. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-662"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-660">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-661'
	>
	Speaking from 25 years of experience in digital transformation projects in the financial sector, Goran identified some of the most common pitfalls that are likely to push a project’s release date far from the client’s original expectations.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-665"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-663">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-664'
	>
	Project delays – more common than not</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-668"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-666">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-667'
	>
	Goran Golubović has worked in managerial roles at a number of banks in the Slovene market and is a professor at the Rome Business School in Belgrade, leading the executive MBA module Managerial Data Science and Advanced Analytics. With a strong background in IT engineering and ample business experience, he was able to provide valuable insights into the subject in question.</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-673"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-671"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-672">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2024/01/business-breakfast-panel-1400x834.webp				media='(max-width: 699px)'
				type=image/webp								height="834"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2024/01/business-breakfast-panel.webp"
					class="image__img block-media__image-img"
					alt=""
										height="905"
															width="1520"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper"
	data-id="es-708"
	 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-674">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-677"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-675">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-676'
	>
	“I’ve been involved in a large number of projects, mostly in the banking sector, during the last 25 years. I can say that approximately 80% of them were successful, and the remaining 20% less so. However, all of them experienced at least some delays. I can’t remember that we ever completed a project by the originally set deadline,” reflected Goran, opening the debate.&nbsp;&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-680"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-678">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-679'
	>
	The lively discussion, in which Goran was joined by Infinum Slovenia’s Managing Director Tamara Lah Momčilović, identified six main reasons that may hinder a project’s progress and lead to unwanted delays.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-683"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-681">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-682'
	>
	Company culture can make or break a project</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-686"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-684">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-685'
	>
	It may not be everyone’s first thought, but corporate culture is key for project success. This includes both sides of the project team, the client as well as the technology partner. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-688"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-687'
	>
	<strong>The values and principles nurtured within a company, what we commonly refer to as culture, shape the way a team approaches a project, which then influences its course and the final outcome. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-691"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-689">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-690'
	>
	According to Goran, culture is something that is passed top-down and is fundamental for a project to run smoothly.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-694"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-692">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-693'
	>
	“If a company has a culture of power play, promotes negativism and career growth by stomping over others, that company will have difficulty completing projects successfully. When the person at the top is positive and values transparency, empathy, and fairness, those are the values that will be promoted on all levels and will increase project pace,” Goran explained. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-697"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-695">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-696'
	>
	“It’s the human factor,” Tamara joined in, adding the agency perspective. “Through all the projects we’ve done and the relationships we’ve built, I’ve noticed that on all the successful projects there was almost always a highly positioned individual who understood and knew how to motivate and direct people. If such a person is missing, we have a problem.”</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-700"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-698">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-699'
	>
	The importance of top-down communication</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-703"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-701">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-702'
	>
	Another important factor closely connected to culture is quality of communication. Without it, there are no aligned goals and expectations, which will surely hinder a project’s progress.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-706"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-704">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-705'
	>
	“This is my lesson learned,” said Goran. “I used to be over-reliant on what my team and I knew that the business part of the company and the management were all on the same page with us and shared our perspective. The reality can be harsh once you realize that this isn’t so.”</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-718"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="grid block-grid__grid" data-id="es-717">
	
<div class="block-grid-item" data-id="es-711">
	
<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-709"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-710">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2024/01/business-breakfast-goran.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1704"
															width="1136"
										loading="lazy"
					 />
					</picture>

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

<div class="block-grid-item" data-id="es-716">
	
<div class="blockquote block-blockquote__blockquote" data-id="es-712">
	
	<div class="blockquote__content">
		<i
	class="icon blockquote__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='blockquote-24' data-id='es-713'>
	<svg fill='none' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-2.79685-.9568-5.37021-2.561-7.41062-.581.22951-1.0832.60583-1.5069 1.12898-.5132.60844-.7698 1.41969-.7698 2.43375v.07605h2.5789v5.59004h-5.6197v-5.01962c0-1.11547.154-2.06616.4619-2.85205.3336-.81125.757-1.48307 1.2702-2.01545.528-.52161 1.1175-.92155 1.7687-1.1998-2.0728-1.70651-4.7279-2.73128-7.6223-2.73128-6.62742 0-12 5.37258-12 12 0 6.6274 5.37258 12 12 12zm-3.53811-18.05347c-.30793.78589-.46189 1.73658-.46189 2.85205v5.01962h5.6197v-5.59004h-2.5789v-.07605c0-1.01406.2566-1.82531.7698-2.43375.5389-.63379 1.1804-1.05209 1.9245-1.2549v-2.28164c-.7441.07605-1.4626.25351-2.1555.53238-.6928.27887-1.3086.68449-1.84752 1.21688-.51321.53238-.9366 1.2042-1.27019 2.01545z' fill='currentColor' fill-rule='evenodd'/></svg></i><p	class='typography typography--size-24-text js-typography blockquote__quote'
	data-id='es-714'
	>
	There are no IT projects. An isolated IT project could be changing the hardware or network maintenance. Here, we’re talking about business projects that involve the company’s tech teams. The IT department is a partner to the business and supports it in achieving common goals.</p>
		<div class="blockquote__caption-wrap">
			<div	class='typography typography--size-12-text-roman js-typography blockquote__caption'
	data-id='es-715'
	>
	<strong>GORAN GOLUBOVIĆ</strong>, CIO, DEŽELNA BANKA SLOVENIJE</div>		</div>
	</div>
</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-762"
	 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-719">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-722"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-720">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-721'
	>
	Top-down support is crucial for a successful project. It starts with the management, goes through all the middle layers, and ends with each individual customer. Everyone needs to understand the goals and the benefits, and the only way to achieve company-wide buy-in is effective communication.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-725"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-723">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-724'
	>
	Taking on projects in the manner of Chuck Norris</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-728"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-726">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-727'
	>
	A very common reason likely to bring on delays is an overly ambitious project scope. Very often, the client will try to fit everything they want done in a single project. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-730"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-729'
	>
	<strong>Adding features on top of features and trying to tackle everything at once make for an unclear focus. And the more moving targets there are, the bigger the chances for something to go awry.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-733"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-731">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-732'
	>
	“If you go into a project like a megalomaniac, set it up like you are Chuck Norris, and want to do all of it at once, you are not likely to succeed. Planning a project that will last over a year is an illusion in this day and age. You need to break it down into smaller, implementable, chewable chunks so that every chunk has some tangible benefit. That way, every month you have a delivery that brings some return on investment, which in turn validates the project,” Goran explained. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-736"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-734">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-735'
	>
	Tamara confirmed that this is true from an agency perspective.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-739"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-737">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-738'
	>
	“There is no point going into a project with a huge scope and a set deadline. We can tell you right away that this will fail,” she said. “A way to tackle this is for the client to work together with a dedicated team on defining the scope and the next steps. When it’s agreed that we’ll have three or four releases a year, these become our deadlines. Every release has its own scope, and chances are that it will be on the mark.”</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-742"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-740">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-741'
	>
	When you overpromise, you’re sure to underdeliver</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-745"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-743">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-744'
	>
	During his career, Goran has worked with a number of technology companies. Unfortunately, not all of them exhibited an impeccable work ethic and dedication. Sometimes he witnessed a substantial discrepancy between what was promised and what was delivered.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-748"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-746">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-747'
	>
	“I’ve seen pre-sales teams promise you Hollywood-style dreams, and then the tech teams clutching their heads, unallowed to say anything. You’ll often see these staff members switching companies very soon because they don’t want to participate in what the sales team promised. However, this way you are enhancing the “reliable service providers” filter, you know whom to avoid next time, because at the end of the day, we are working with people, not companies, regardless how big and shiny they are,” Goran shared his experience.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-751"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-749">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-750'
	>
	“If you sold something just to sell it, you practically shot yourself in the knees,” Tamara agreed. “It’s completely wrong. If you promise something your teams are unable to deliver, they will leave and you are not going to survive as a company. These things ruin reputations and it’s important to know when to say no.”</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-754"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-752">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-753'
	>
	Sometimes issues arise from within</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-757"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-755">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-756'
	>
	A digital product development project, especially in the banking industry, requires the participation of internal teams. However, when these teams don’t have the skillset a modern development project requires, it can cause issues.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-760"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-758">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-759'
	>
	“Large corporations often have employees who’ve worked on the same platforms for years. Once you start modernizing and optimizing, they will require upskilling, which is a complex and long-term task,” Goran reflects on his experience. “Maybe one in ten staff members will be enthusiastic and capable enough to make that switch, but all of them are undoubtedly such great diplomats that they will assure you they are willing to learn and master the latest technology, which will not happen in practice.”</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-765"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-763"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-764">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2024/01/business-breakfast-ruke-1400x789.webp				media='(max-width: 699px)'
				type=image/webp								height="789"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2024/01/business-breakfast-ruke.webp"
					class="image__img block-media__image-img"
					alt=""
										height="857"
															width="1520"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper"
	data-id="es-812"
	 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-766">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-769"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-767">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-768'
	>
	What also may prove problematic is the time and focus the staff is able to dedicate to a project. This is especially true with the state of hyper-regulation the industry is currently in, Goran points out.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-772"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-770">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-771'
	>
	“There are constant regulatory requirements, stress tests, new ESG regulations. The teams are booked all the time. When there is no adequate resource management, you have a dedicated team made up of people who are all over the place,” he explains.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-775"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-773">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-774'
	>
	Goran has experienced this on his own skin, too.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-778"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-776">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-777'
	>
	“Once I enthusiastically took on the role of a project manager at a company where I was also the director of several divisions. It’s a huge mistake I’ll never repeat again. You just can’t manage several different roles at the same time, time-wise, physically, mentally, and maintain the same level of quality and the expected delivery“.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-781"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-779">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-780'
	>
	Having learned from previous experience, he now has a dedicated, internal project management team working exclusively on the project currently underway. This team can focus on communication, deadlines, or workshops and can easily make sure everything is running smoothly without the dreaded context-switching.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-784"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-782">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-783'
	>
	To set up a project, you need to be asking the right questions</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-787"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-785">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-786'
	>
	Finally, when a project isn’t set up on solid foundations right from the start, it can easily slip into floating specifications, which will surely cause delays. In those situations, the scope keeps eluding and the deadlines become impossible to meet. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-789"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-788'
	>
	<strong>“The key thing is asking the right questions. If the business side knows what their challenge is, what they are resolving, and what is the expected delivery, it is a great step towards knowing how to make that happen,” Goran claims.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-792"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-790">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-791'
	>
	A great tool for tackling this are discovery workshops, as Tamara pointed out.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-795"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-793">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-794'
	>
	“We insist on intense workshops in the early phase so we can try to define as much as we can right from the start. It’s much harder to achieve that later in the process. Communication is also crucial here – later changes in scope can be caused by a misunderstanding between us and the client. If we’ve nearly developed a product and then a feature comes up that should have been connected to a different feature, we’re extending the scope. In come change requests, and the delivery date needs to be moved,” she shares her experience.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-798"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-796">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-797'
	>
	Building better products with the lessons learned</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-801"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-799">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-800'
	>
	As the debate on Infinum Slovenia’s Business Breakfast confirmed, there are a number of things that can go wrong on a digital product development project and cause delays. However, the first step in avoiding them is raising awareness – which is exactly what the event was about.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-804"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-802">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-803'
	>
	Goran Golubović has experienced, and navigated, a number of issues on the projects he was involved in. However, he’s also noticing a positive change in how the industry approaches digital projects today.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-807"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-805">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-806'
	>
	“We used to work in the waterfall model, set a budget and a fixed scope so we don’t waste time constantly negotiating with an outside partner. Now, I want to talk to that partner all the time. We deliver an MVP in a month or three, get the product to a stage where it is usable, have someone try it out, and then add a couple of features to it. If the product fails to justify the minimal benefit and minimal practical use case in a couple of months, we need to re-evaluate if we need it at all.” </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-810"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-808">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-809'
	>
	Technology is moving forward at an unprecedented pace, and the general consensus is that large-scope projects and distant deadlines are a thing of the past. Agile methodologies, clear communication, and strong dedication to the project on both sides are the best remedies for aligning expectations and achieving great results.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/why-digital-product-development-projects-often-suffer-delays/">Why Digital Product Development Projects Often Suffer Delays</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>8066https://infinum.com/uploads/2017/04/one-recyclerview-to-rule-them-all-0.webp</url>
				</image>
				<title>One RecyclerView to Rule Them All</title>
				<link>https://infinum.com/blog/one-recyclerview-to-rule-them-all/</link>
				<pubDate>Thu, 20 Apr 2017 18:45:00 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/one-recyclerview-to-rule-them-all/</guid>
				<description>
					<![CDATA[<p>I decided to write my own wrapper around RecyclerView and RecyclerAdapter. It had to be as simple as possible and offer a limited set of functionalities.</p>
<p>The post <a href="https://infinum.com/blog/one-recyclerview-to-rule-them-all/">One RecyclerView to Rule Them All</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-917"
	 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-813">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-816"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-814">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-815'
	>
	When <a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html">RecyclerView</a> was introduced, we were amazed with all of the new possibilities. We could finally start using <a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder.html">ViewHolders</a> by defaults, simply switch between list or grid by using a different <a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager.html">LayoutManager</a>, define our own custom click listeners, and a lot more.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-819"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-817">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-818'
	>
	What was missing were some basic <a href="https://developer.android.com/reference/android/widget/ListView.html">ListView</a> features – empty view support for example, and this began to frustrate me. When I started working on a project where headers and footers with RecyclerView had to be used I knew it was the right time to do something regarding the problem.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-822"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-820">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-821'
	>
	I decided to write my own wrapper around RecyclerView and <a href="https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html">RecyclerAdapter</a>. The wrapper needed to be as simple as possible and offer a limited set of functionalities, I envisioned it to mimic ListView and ArrayAdapter behaviors. I didn’t want to overcomplicate. We don’t want to save the world – we just want to speed up our development process.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-825"
	 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-823"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-824">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/04/one-recyclerview-to-rule-them-all-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="600"
															width="1000"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-828"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-826">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-827'
	>
	That’s how <a href="https://github.com/infinum/MjolnirRecyclerView">MjolnirRecyclerView</a> was born &#8211; and after a few tweaks and bug fixes, it’s finally ready to take its place in the hand of the lawful ruler of Asgard. It’s open sourced and available on Github.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-831"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-829">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-830'
	>
	Usage</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-834"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-832">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-833'
	>
	Add the library as a dependency to your build.gradle</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-836"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-groovy github-light" data-language="groovy" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">compile &amp;#</span><span class="token" style="color: #005cc5;">8217</span><span class="token">;co</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">infinum</span><span class="token">:</span><span class="token" style="color: #005cc5;">mjolnirrecyclerview</span><span class="token">:</span><span class="token">version</span><span class="token" style="color: #d73a49;">@aar&amp;#8217;</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-839"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-837">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-838'
	>
	Define an adapter, which extends <a href="https://github.com/infinum/MjolnirRecyclerView/blob/master/mjolnirrecyclerview/src/main/java/co/infinum/mjolnirrecyclerview/MjolnirRecyclerAdapter.java">MjolnirRecyclerAdapter</a>:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-841"
	 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;">SimpleAdapter</span><span class="token"> </span><span class="token" style="color: #d73a49;">extends</span><span class="token"> </span><span class="token" style="color: #6f42c1;">MjolnirRecyclerAdapter</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">String</span><span class="token">&gt;</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"> </span><span class="token" style="color: #24292e;">List</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">String</span><span class="token">&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">items</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;">SimpleAdapter</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;">List</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">String</span><span class="token">&gt;</span><span class="token"> </span><span class="token" style="color: #e36209;">items</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">context</span><span class="token">,</span><span class="token"> items</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;">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: #24292e;">MjolnirViewHolder</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">String</span><span class="token">&gt;</span><span class="token"> </span><span class="token" style="color: #6f42c1;">onCreateItemViewHolder</span><span class="token">(</span><span class="token" style="color: #24292e;">ViewGroup</span><span class="token"> </span><span class="token" style="color: #e36209;">parent</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;">viewType</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;">View</span><span class="token"> </span><span class="token" style="color: #24292e;">view</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">LayoutInflater</span><span class="token">.</span><span class="token" style="color: #6f42c1;">from</span><span class="token">(</span><span class="token" style="color: #24292e;">parent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getContext</span><span class="token">(</span><span class="token">)</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">inflate</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;">list_item_adapter</span><span class="token">,</span><span class="token"> parent</span><span class="token">,</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><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;">TestViewHolder</span><span class="token">(</span><span class="token">view</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" 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;">TestViewHolder</span><span class="token"> </span><span class="token" style="color: #d73a49;">extends</span><span class="token"> </span><span class="token" style="color: #6f42c1;">MjolnirViewHolder</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">String</span><span class="token">&gt;</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;">BindView</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;">tv_position</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">TextView</span><span class="token"> </span><span class="token" style="color: #24292e;">tvPosition</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;">BindView</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;">tv_text</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">TextView</span><span class="token"> </span><span class="token" style="color: #24292e;">tvText</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;">BindView</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;">root_view</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">View</span><span class="token"> </span><span class="token" style="color: #24292e;">rootView</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;">TestViewHolder</span><span class="token">(</span><span class="token" style="color: #24292e;">View</span><span class="token"> </span><span class="token" style="color: #e36209;">itemView</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">itemView</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"> itemView</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;">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;">bind</span><span class="token">(</span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #24292e;">String</span><span class="token"> </span><span class="token" style="color: #e36209;">item</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #d73a49;">int</span><span class="token"> </span><span class="token" style="color: #e36209;">position</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">List</span><span class="token">&lt;</span><span class="token" style="color: #d73a49;">Object</span><span class="token">&gt;</span><span class="token"> </span><span class="token" style="color: #e36209;">payloads</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;">tvPosition</span><span class="token">.</span><span class="token" style="color: #6f42c1;">setText</span><span class="token">(</span><span class="token" style="color: #24292e;">String</span><span class="token">.</span><span class="token" style="color: #6f42c1;">valueOf</span><span class="token">(</span><span class="token">position</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">concat</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">.</span><span class="token" style="color: #032f62;">&quot;</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;">tvText</span><span class="token">.</span><span class="token" style="color: #6f42c1;">setText</span><span class="token">(</span><span class="token">item</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 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-844"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-842">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-843'
	>
	Include <a href="https://github.com/infinum/MjolnirRecyclerView/blob/master/mjolnirrecyclerview/src/main/java/co/infinum/mjolnirrecyclerview/MjolnirRecyclerView.java">MjolnirRecyclerView</a> in XML layout:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-846"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-xml github-light" data-language="xml" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">&lt;?</span><span class="token" style="color: #22863a;">xml</span><span class="token" style="color: #6f42c1;"> version</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">1.0</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #6f42c1;"> encoding</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">utf-8</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">?&gt;</span><span class="token">
</span></span><span class="line"><span class="token">&lt;</span><span class="token" style="color: #22863a;">RelativeLayout</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">xmlns</span><span class="token" style="color: #6f42c1;">:</span><span class="token" style="color: #6f42c1;">android</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">http://schemas.android.com/apk/res/android</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">android</span><span class="token" style="color: #6f42c1;">:</span><span class="token" style="color: #6f42c1;">layout_width</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">match_parent</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">android</span><span class="token" style="color: #6f42c1;">:</span><span class="token" style="color: #6f42c1;">layout_height</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">match_parent</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">&gt;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">&lt;</span><span class="token" style="color: #22863a;">co.infinum.mjolnirrecyclerview.MjolnirRecyclerView</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #6f42c1;">android</span><span class="token" style="color: #6f42c1;">:</span><span class="token">id=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">@+id/recycler_view</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #6f42c1;">android</span><span class="token" style="color: #6f42c1;">:</span><span class="token" style="color: #6f42c1;">layout_width</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">match_parent</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #6f42c1;">android</span><span class="token" style="color: #6f42c1;">:</span><span class="token" style="color: #6f42c1;">layout_height</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">match_parent</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">/&gt;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">&lt;</span><span class="token" style="color: #22863a;">include</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #6f42c1;">layout</span><span class="token">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">@layout/empty_view</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">/&gt;</span><span class="token">
</span></span><span class="line"><span class="token">&lt;/</span><span class="token" style="color: #22863a;">RelativeLayout</span><span class="token">&gt;</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-849"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-847">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-848'
	>
	In your activity, set MjolnirRecyclerAdapter to MjolnirRecyclerView and populate it with data.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-851"
	 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;">SimpleActivity</span><span class="token"> </span><span class="token" style="color: #d73a49;">extends</span><span class="token"> </span><span class="token" style="color: #6f42c1;">AppCompatActivity</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_simple</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><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">recyclerView</span><span class="token">.</span><span class="token" style="color: #6f42c1;">setLayoutManager</span><span class="token">(</span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">LinearLayoutManager</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">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">recyclerView</span><span class="token">.</span><span class="token" style="color: #6f42c1;">setEmptyView</span><span class="token">(</span><span class="token">emptyView</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">        adapter </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;">SimpleAdapter</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: #24292e;">recyclerView</span><span class="token">.</span><span class="token" style="color: #6f42c1;">setAdapter</span><span class="token">(</span><span class="token">adapter</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;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addHeader</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;">view_header</span><span class="token">,</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><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addFooter</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;">view_footer</span><span class="token">,</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><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addAll</span><span class="token">(</span><span class="token">ITEMS</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;">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;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">cancel</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></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-854"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-852">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-853'
	>
	Features</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-857"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-855">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-856'
	>
	Header and footer support</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-860"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-858">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-859'
	>
	MjolnirRecyclerAdapter treats header and footer view as two different ViewHolders inside RecyclerAdapter, which are added to the MjolnirRecyclerView. At the moment, it supports only one header and footer.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-862"
	 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: #24292e;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addHeader</span><span class="token">(</span><span class="token" style="color: #24292e;">View</span><span class="token"> view</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">   </span><span class="token" style="color: #24292e;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addHeader</span><span class="token">(</span><span class="token" style="color: #d73a49;">int</span><span class="token"> headerViewId</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">   </span><span class="token" style="color: #24292e;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addFooter</span><span class="token">(</span><span class="token" style="color: #24292e;">View</span><span class="token"> view</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">   </span><span class="token" style="color: #24292e;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addFooter</span><span class="token">(</span><span class="token" style="color: #d73a49;">int</span><span class="token"> footerViewId</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-865"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-863">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-864'
	>
	Mjolnir offers full header and footer support for <a href="https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html">LinearLayoutManager</a> (both vertical and horizontal), and <a href="https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.html">GridLayoutManager</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-868"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-866">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-867'
	>
	Empty view support</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-871"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-869">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-870'
	>
	Add an empty view to the RecyclerView and it will be automatically shown when items are set to the adapter.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-873"
	 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: #24292e;">recyclerView</span><span class="token">.</span><span class="token" style="color: #6f42c1;">setEmptyView</span><span class="token">(</span><span class="token" style="color: #24292e;">View</span><span class="token"> view</span><span class="token">)</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-876"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-874">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-875'
	>
	You can also show empty view while the adapter is not set to the MjolnirRecyclerView, which is handy if you want to initialize adapter at some later point in the time.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-878"
	 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;">*</span><span class="token"> </span><span class="token" style="color: #24292e;">Sets</span><span class="token"> the empty view to the RecyclerView</span><span class="token">.</span><span class="token"> </span><span class="token">{</span><span class="token">@</span><span class="token" style="color: #d73a49;">param</span><span class="token"> showIfAdapterNotSet</span><span class="token">}</span><span class="token"> determines should we show the empty    
</span></span><span class="line"><span class="token"> </span><span class="token" style="color: #d73a49;">*</span><span class="token"> view </span><span class="token" style="color: #d73a49;">if</span><span class="token"> adapter is still not set to the </span><span class="token" style="color: #24292e;">RecyclerView</span><span class="token">.</span><span class="token"> </span><span class="token" style="color: #24292e;">Default</span><span class="token"> value is set to </span><span class="token" style="color: #005cc5;">false</span><span class="token">.</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token" style="color: #d73a49;">*</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token" style="color: #d73a49;">*</span><span class="token"> </span><span class="token">@</span><span class="token" style="color: #d73a49;">param</span><span class="token"> emptyView           view which is used as RecyclerView</span><span class="token" style="color: #d73a49;">&amp;</span><span class="token">#</span><span class="token" style="color: #005cc5;">8217</span><span class="token">;</span><span class="token">s empty view</span><span class="token">.</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token" style="color: #d73a49;">*</span><span class="token"> </span><span class="token">@</span><span class="token" style="color: #d73a49;">param</span><span class="token"> showIfAdapterNotSet determines should we show empty view </span><span class="token" style="color: #d73a49;">if</span><span class="token"> adapter is still not set to the RecyclerView</span><span class="token">.</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token" style="color: #d73a49;">*</span><span class="token" style="color: #d73a49;">/</span><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;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">setEmptyView</span><span class="token">(</span><span class="token" style="color: #24292e;">View</span><span class="token"> emptyView</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #d73a49;">boolean</span><span class="token"> showIfAdapterNotSet</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 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-881"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-879">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-880'
	>
	DiffUtil support</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-884"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-882">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-883'
	>
	<a href="https://developer.android.com/reference/android/support/v7/util/DiffUtil.html">DiffUtils</a> is an awesome utility class introduced with Android Support library version 24.2.0. It can easily be used to calculate updates for RecyclerView adapter.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-887"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-885">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-886'
	>
	Simply add <a href="https://developer.android.com/reference/android/support/v7/util/DiffUtil.Callback.html">DiffUtil.Callback</a> in adapter’s update method:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-889"
	 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;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">update</span><span class="token">(</span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">ItemDiffUtilResult</span><span class="token">(</span><span class="token">)</span><span class="token">)</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-892"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-890">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-891'
	>
	As DiffUtil is a blocking sync action, it’s executed on the background thread inside the MjolnirRecyclerAdapter by using a AsyncTask. As a result of this approach, you need to call cancel() method on your adapter when your activity or fragment is about to be destroyed so that the adapter is not updated if the screen has been destroyed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-894"
	 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><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;">adapter</span><span class="token">.</span><span class="token" style="color: #6f42c1;">cancel</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></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-897"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-895">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-896'
	>
	ArrayAdapter like methods</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-900"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-898">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-899'
	>
	Although RecyclerAdapter can be treated as an upgrade to regular ListAdapter, it’s missing some neat utility methods like add(), addAll(), reset(), remove(), set()… MjolnirRecyclerAdapter has full support for those methods.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-903"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-901">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-902'
	>
	Next page listener</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-906"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-904">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-905'
	>
	MjolnirRecyclerAdapter defines OnNextPageListener interface listener, which is called when user scrolls to the end of the adapter data set. You can also define a minimum number of items to have below your current scroll position before onScrolledToNext() page callback is called.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-909"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-907">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-908'
	>
	What’s next?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-912"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-910">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-911'
	>
	There are some features we plan to add in future releases, like support for a custom number of header and footer views, loading views…</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-915"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-913">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-914'
	>
	If you would like to get involved in developing new Mjolnir’s features, head forward to its official <a href="https://github.com/infinum/MjolnirRecyclerView">Github</a> repository and make a pull request with a short description of your changes. Feedback and code contributions are very much welcome.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/one-recyclerview-to-rule-them-all/">One RecyclerView to Rule Them All</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>8003https://infinum.com/uploads/2015/07/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed-0.webp</url>
				</image>
				<title>I Don&#039;t Always Use the Facebook API, but When I Do, Everything Has Changed</title>
				<link>https://infinum.com/blog/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed/</link>
				<pubDate>Tue, 24 Mar 2015 08:19:00 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed/</guid>
				<description>
					<![CDATA[<p>Last year, Facebook announced a series of changes to their developer platform and launched API v2.0. </p>
<p>The post <a href="https://infinum.com/blog/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed/">I Don&#039;t Always Use the Facebook API, but When I Do, Everything Has Changed</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-995"
	 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-918">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-921"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-919">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-920'
	>
	Last year, Facebook announced a series of changes to their developer platform and launched API v2.0. All Facebook apps have to start using this new API by the end of April 2015. As the big date is drawing near, a lot of questions are beginning to trouble developers.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-924"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-922">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-923'
	>
	With over a billion of users, Facebook is the most popular social network today. It has also become the largest <strong>open repository</strong> of <strong>personal user information</strong>. This data is <strong>publicly available</strong> via the Facebook API and we can use it to enhance the user experience of our mobile and web apps.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-927"
	 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-925"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-926">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/07/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="366"
															width="720"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-930"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-928">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-929'
	>
	We can use it for:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-933"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-931">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-932'
	>
	<li>user authentication</li><li>obtaining personal data on our users</li><li>exporting the app data to users’ walls</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-936"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-934">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-935'
	>
	Although the Facebook API is <strong>free of charge</strong>, we still need to adhere to <strong>platform policies</strong>. One of these is that the old Facebook API will officially become deprecated and we’ll need to switch to the new one.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-939"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-937">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-938'
	>
	What are the changes?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-942"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-940">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-941'
	>
	There are a lot of <strong>important differences</strong> between API v1 and API v2:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-945"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-943">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-944'
	>
	<li>FQL is officially deprecated from version v2.1, and can no longer be queried</li><li>support for real time updates for Pages</li><li><em>installed</em> permission no longer exists</li><li>user IDs are now app-scoped</li><li>Facebook Login has been drastically improved</li><li>optional permissions &#8211; users can now decline any permission that your app requests. This is done during login, and the only required permission is <em>public_profile</em>.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-948"
	 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-946"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-947">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/03/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="344"
															width="590"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			OMG, not again…		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-951"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-949">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-950'
	>
	The most important changes are connected to the permission management. Every app which asks for more than <em>public_profile</em>, <em>email</em> and <em>user_friends</em> permission needs to be reviewed by Facebook.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-954"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-952">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-953'
	>
	The <em>user_friends</em> permission has undergone many changes. You’ll no longer be allowed to obtain the friend lists of your users. This permission has been completely refactored and will now return only the list of the user’s friends who are using your Facebook app. Also, all <em>friend_</em>* permissions have been removed. This means that it’s no longer possible for an app to see data from your user’s friends. You can see this data only if those friends have also logged into the app and granted permission for the app to see that data.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-957"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-955">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-956'
	>
	Also, a large number of permissions have been completely removed. You can see the full list <a href="https://developers.facebook.com/docs/apps/upgrading">here</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-960"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-958">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-959'
	>
	Do I need to upgrade my apps to API v2?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-963"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-961">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-962'
	>
	After the deadline, all Facebook apps will <strong>automatically</strong> be migrated to API v2. This could potentially create a lot of problems for developers and end users. Facebook officially states that users who will use our apps after April 30th, 2015 <strong>risk</strong> any of the <strong>following problems</strong>:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-966"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-964">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-965'
	>
	<li>Crashes due to the unexpected format of an API call response</li><li>Inability to load your game</li><li>Inability to invite friends</li><li>Broken gameplay due to missing permissions not being handled correctly</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-969"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-967">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-968'
	>
	Also, as several of the most popular API calls and permissions will completely change their <strong>responses</strong>, you’ll need to refactor your app behavior in order to preserve your business model. Maybe you’ll need to ask for <strong>new permissions</strong> or even completely refactor some of your screens and actions. You’ll also need to explain to your current users that some <strong>features will no longer be available</strong>. Be prepared for everything.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-972"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-970">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-971'
	>
	OK, now you got me scared. What should I do?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-975"
	 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-973"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-974">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/03/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed-3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="500"
															width="401"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			I’m a little bit scared right now.		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-978"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-976">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-977'
	>
	Although you still have a <strong>lot of time</strong> to implement the necessary migrations, it’s better that you start working on them right now. You also need to take into consideration that maybe you’ll need to ask for <strong>additional permissions</strong> from your users. For every new permission, you’ll need to go through <strong>app review</strong>, which usually takes 3-7 business days. But don’t take this as a hard fact – in the upcoming two months, a large number of apps will apply for an app review, so the duration of this process could potentially increase to more than a week.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-981"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-979">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-980'
	>
	Facebook has already <strong>documented</strong> all the necessary changes and created a <strong>FAQ page</strong> especially targeting migration problems:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-984"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-982">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-983'
	>
	<li>https://developers.facebook.com/docs/apps/upgrading</li><li>https://developers.facebook.com/docs/apps/faq</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-987"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-985">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-986'
	>
	Conclusion</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-990"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-988">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-989'
	>
	In conclusion, if you have <strong>regularly updated</strong> your applications, you’ll have no problems with the migration to API v2. Facebook has done a really good job with documenting all new functions, permissions and migration strategies. You can also join the <a href="https://developers.facebook.com/">Facebook Developers Community</a> and ask any question you want to further simplify your migration process.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-993"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-991">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-992'
	>
	But don’t get too used to API v2. It’s already deprecated and will only be supported for two more years at most, and will probably be up only until April 30th, 2016.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/i-dont-always-use-the-facebook-api-but-when-i-do-everything-has-changed/">I Don&#039;t Always Use the Facebook API, but When I Do, Everything Has Changed</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>8000https://infinum.com/uploads/2015/03/the-past-present-and-future-of-android-development-0.webp</url>
				</image>
				<title>The Past, Present and Future of Android Development</title>
				<link>https://infinum.com/blog/the-past-present-and-future-of-android-development/</link>
				<pubDate>Wed, 04 Mar 2015 08:46:00 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/the-past-present-and-future-of-android-development/</guid>
				<description>
					<![CDATA[<p>Android runs on countless models of smartphones and tablets, as well as many other devices. One would think that programm is simple and easy. Is it?</p>
<p>The post <a href="https://infinum.com/blog/the-past-present-and-future-of-android-development/">The Past, Present and Future of Android Development</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1124"
	 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-996">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-999"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-997">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-998'
	>
	With more than 80 percent market share, Android is the dominant mobile operating system today. It’s running on countless models of smartphones and tablets, as well as many other devices. Judging by this, one would think that programming for Android is simple and easy. Or is it?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1002"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1000">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1001'
	>
	A few years ago, Miley Cyrus was still singing country music, Justin Bieber wore his famous “Bieber” haircut, Malcolm still played in AC/DC and Android development was <strong>quite complex</strong>. Android developers had a lot of problems with developing even the simplest possible applications for Android OS.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1005"
	 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-1003"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1004">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/03/the-past-present-and-future-of-android-development-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="400"
															width="700"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1008"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1006">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1007'
	>
	Why? Well, my dear reader, problems were everywhere:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1011"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1009">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1010'
	>
	<li>Buggy IDEs &#8211; have you ever tried to repair your car with a shovel? Or tried to pick up girls while driving your grandfather&#8217;s 40-year old <a href="https://www.youtube.com/watch?v=-MknuRE2Bcg" target="_blank" rel="noreferrer noopener">Yugo</a>? In the Android world, we had an official IDE for Android development &#8211; Eclipse, which had a ton of problems and could drive you mad in 10 minutes. The Eclipse ADT plugin was just buggy, slow and unfriendly for more complex projects. We quickly got sick of it and were praying for a miracle.</li><li>OS fragmentation &#8211; Gingerbread (2.3.7) occupied quite a market share (at least 15-20 percent) of Android OS versions. As you already know, Android underwent <strong>complete overhaul with the version 4.0 (Ice Cream Sandwich)</strong> &#8211; we got new UI elements, new APIs for device hardware, new screen densities&#8230; This resulted in us having to be careful to optimize and program our apps to work well on the new as well ancient versions of Android. All this greatly affected our development process and resulted in prolonged development time with more bugs and crashes.</li><li>Slow emulators &#8211; We need to test our apps on different Android OS versions and screen dimensions, so we have to buy at least 20 different Android devices. Sounds crazy? OK, so we can use <strong>emulators</strong>. But have you ever tried to use the default Android emulator? It&#8217;s so painfully slow that you&#8217;ll soon catch yourself counting cars parked in front of your office while your app is being deployed to your emulator.</li><li>UI &#8211; Android apps were boring. If you commit blasphemy and take a look at iOS apps, you will see that they are full of life and colors. Everything is animated, transforming, going from left to right, right to left and so on&#8230; Our apps were static, and if we wanted to enrich our UX, the old Gingerbread would have soon killed all our hopes and wishes.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1014"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1012">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1013'
	>
	But that was like so 2013!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1017"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1015">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1016'
	>
	A fresh start</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1020"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1018">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1019'
	>
	Everything changed last year, and changes were happening so fast that you could easily lose track of them and ask yourself, “When did this happen???” What’s even more important is the fact that the <strong>whole Android ecosystem</strong> underwent many improvements – we got new hardware (smartwatches), new software (Gradle, Android Studio), new OS (Android 5.0 Lollipop).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1023"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1021">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1022'
	>
	Everybody contributed – Google, device manufacturers, developers. Everybody had the same goal and asked themselves the same question: “OK, now we have stable OS, billions of apps with billions of users – how can we further simplify and improve Android? How can we make the development process better?” This is where <a href="http://en.wikipedia.org/wiki/Open_access">open access</a> and <a href="http://opensource.org/">open source</a> principles have shown their true potentials – everybody can make a change. An improvement. Something new.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1026"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1024">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1025'
	>
	It’s hard to summarize all the changes, but I’ve made a list of things which are (in my opinion) the most important:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1029"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1027">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1028'
	>
	1. Android Studio</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1032"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1030">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1031'
	>
	Our favorite IDE for Android development finally became <strong>stable</strong> with the version 1.0. I won’t go into too much detail about why AS is great for the development process because we have already covered this topic in two of our blog posts (<a href="https://infinum.com/blog/android-studio-vs-eclipse-1-0/">first</a> and <a href="https://infinum.com/blog/eclipse-is-dead-for-android-development-and-i-helped-kill-it/">second</a>). I’ll just say that the Eclipse ADT plugin is <strong>officially deprecated</strong> and I strongly advise you to migrate all your apps to Android Studio. Hail to the king!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1035"
	 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-1033"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1034">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/02/the-past-present-and-future-of-android-development-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="297"
															width="394"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			The new Android Studio logo		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1038"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1036">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1037'
	>
	2. Gradle</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1041"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1039">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1040'
	>
	<a href="http://www.gradle.org/">Gradle</a> is a <strong>project automation tool</strong> which has replaced <a href="http://ant.apache.org/">Apache Ant</a> as a primary build system for Android applications. It has gained huge popularity among Android developers because we can pretty much automate everything with it – from dividing our apps into different flavors, signing with correct configuration, incrementing our build numbers, defining external dependencies and much more.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1044"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1042">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1043'
	>
	Because of that, it has become a sort of an “administration” tool, with which we define and maintain our project settings. Gradle is also one of the main reasons for the increasing number of test automation libraries and automate build servers, which have brought the continuous integration (CI) development process to Android OS. But not everything is so rosy – Gradle is also heavily criticized for its <strong>speed of execution</strong>. It can be really slow on complex projects, but we hope that this problem will be fixed in the upcoming versions and releases.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1047"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1045">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1046'
	>
	3. Lollipop</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1050"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1048">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1049'
	>
	Google said that <a href="http://www.android.com/versions/lollipop-5-0/">Lollipop</a> was the biggest improvement of Android OS since the beginning of mankind, and they were right. Every part of Android has undergone some modifications and improvements, but we are yet to see how users will react to the changes. We had a lot of problems with upgrading older devices to Lollipop, but we hope that this will be fixed in the upcoming versions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1053"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1051">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1052'
	>
	4. Lollipop on the outside – material design</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1056"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1054">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1055'
	>
	A lot has been written about bright new Android UI, called <a href="http://www.google.com/design/spec/material-design/introduction.html">Material Design</a>. It’s one of the most important innovations on Android OS in the last few years, which has completely changed the look and feel of our applications. What I like the most about Material Design is the complete change of UX principles – <strong>everything is important</strong>. There is no such thing as tiny details which can be ignored. We have to respond to every user interaction, click, touch, etc. Because, as Google says, <strong>motion provides meaning</strong>. We have to be bold, embrace new vivid colors, use animations at every step, large fonts – simply said – we add <strong>life to our applications</strong>. Also, Material Design is completely adjusted to the Android ecosystem and it adapts to different screen sizes. That’s why our apps have a similar but not the same look on different platforms.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1059"
	 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-1057"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1058">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/02/the-past-present-and-future-of-android-development-3.gif"
					class="image__img block-media__image-img"
					alt=""
										height="600"
															width="800"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			 One animation, please		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1062"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1060">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1061'
	>
	5. Lollipop on the inside – ART</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1065"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1063">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1064'
	>
	Everybody’s talking about design, UI components, animations, colors… But we are developers and we’re interested in what is under the hood. And, oh boy, the engine is pure beauty: a brand new runtime system, called ART. Just for the record, <a href="https://infinum.com/blog/art-vs-dalvik-introducing-the-new-android-runtime-in-kit-kat/">Android ART</a> is not a new thing – it was introduced as a secondary runtime system on Kitkat. With the introduction of Lollipop, it became the primary system that has completely replaced Dalvik. ART is great because of several things, but I’ll mention only two of them:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1068"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1066">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1067'
	>
	<li>It uses <strong>AOT (ahead-of-time) compilation</strong>, which means that it compiles the intermediate language (Dalvik bytecode) into a system-dependent binary. This results in <strong>shorter execution time</strong> of our apps, <strong>less CPU usage</strong> and <strong>less battery drain</strong>. On the other hand, the installation process is quite longer.</li><li>It provides <strong>multidex support</strong> out of the box. Dalvik dex files had one major flaw &#8211; they could contain only 65,356 methods. We had to organize our Android applications in a way that the method count doesn&#8217;t exceed this limitation. Although this number may seem quite big, if you take into account Google Play services (which are needed in almost every application) and a few external libraries, you could easily exceed this limit. ART organizes your application in a way that it breaks byte-code in multiple dex files which are packaged together in one single APK.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1071"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1069">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1070'
	>
	4. Android is everywhere</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1074"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1072">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1073'
	>
	We have started to develop apps for <a href="http://www.android.com/wear">smartwatches</a>, TVs and cars, but why stop there? If you are sitting in your room and having a cup of hot coffee, take a minute and look around yourself. You will probably see at least five things which will run Android OS in the next few years – the TV, laptop, tablet, camera, bicycle, kitchen appliances, thermostats, cars, etc. Android started as an experiment and it has proven that it can be run on every item which can hold a small microprocessor.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1077"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1075">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1076'
	>
	5. Increased quality of smartphones</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1080"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1078">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1079'
	>
	Smartphones are still core devices for Android OS. For a long time, we had problems with their overall quality. Older Android devices were much uglier and slower than older iPhones – iOS always felt more fluid. This was especially true for cheaper devices produced by a multitude of Chinese manufacturers.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1083"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1081">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1082'
	>
	Luckily, the quality and speed of Android smartphones have steadily increased, so today we have a plethora of new devices that are suitable for everyone’s budget and needs. It doesn’t matter if you want a mobile phone with great camera resolution, design, processor or battery – we have it all.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1086"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1084">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1085'
	>
	My personal favorite is Motorola Mobility (nowadays a subsidiary of the Chinese computer technology company Lenovo) with their great line of smartphones – Moto X, Moto G and Moto E, which indeed have a really good price/quality ratio. Also, a team at Google is working on a modular smartphone. Project Ara aims to completely shake the Android world and, if all goes well, it probably will.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1089"
	 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-1087"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1088">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/02/the-past-present-and-future-of-android-development-4.webp"
					class="image__img block-media__image-img"
					alt=""
										height="480"
															width="720"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			 Project Ara parts		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1092"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1090">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1091'
	>
	What’s next?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1095"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1093">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1094'
	>
	Moving away from Java</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1098"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1096">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1097'
	>
	As we have finally fixed most of our problems with IDEs and OS versions, we can shift our focus to other Android problems.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1099">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1100'
	>
	IMHO, the most important problem is the core problem of Android development – Java. Sorry, Java Harmony. Which is basically Java 7. Or Java 6. But is not Java. Don’t get me wrong – I strongly believe that Java is a good programming language, but I also think that it’s the right time to think outside of the box. We need to start looking for other programming languages that will replace Java as the primary language for Android development.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1102">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1103'
	>
	Just look at our most important competitor – Apple. They have introduced a completely new language called Swift which combines the best features of several other languages (like Python, Ruby or C#). We already need considerably more time than iOS developers to develop the same app, and now we’ll be even slower.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1105">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1106'
	>
	That’s why we need something new. We already a have few ideas about which language could replace Java. My eyes are set on <strong>Groovy</strong>. Its syntax is quite similar to Java (actually, it’s built upon Java) and we already have some <a href="https://github.com/ikust/groovy-pokemons">working prototypes</a>. Also, don’t forget that it is the primary language for Gradle – so why not use it in Android development? Or maybe <a href="http://www.scala-lang.org/">Scala</a> (which is quickly gaining new users) or <a href="http://kotlinlang.org/">Kotlin</a> (Jake Wharton recently wrote a <a href="https://docs.google.com/a/infinum.hr/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit?hl=en&amp;forcehl=1">great overview</a> of Kotlin for Android)?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1108">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1109'
	>
	Getting better at DB management</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1112'
	>
	I would also like to point out one more problem – <strong>database management API</strong>. If you commit blasphemy once again and take a look at our competitors – iOS (Core Data, to be more precise) – you’ll see that they have really nice methods and GUI for creating database objects, CRUD methods, database change listeners. But if you look at the default Android API – we still haven’t gotten far from writing SQL commands which greatly affects our development process.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1115'
	>
	Debugging SQL errors is not so easy – it’s time consuming, and we have no GUI for looking at our database data. Although there are some good ORM libraries (like <a href="http://greendao-orm.com/">GreenDAO</a>, ActiveAndroid or <a href="http://satyan.github.io/sugar/">SugarORM</a>), they all have their own problems. I have never been completely satisfied with them – they have been either complex to use or something has been missing (like database change listeners). My mind is set on <a href="http://realm.io">Realm for Android</a> and <a href="https://github.com/Raizlabs/DBFlow">DBFlow</a>, which I’m hoping will solve all of my problems and will also have shorter execution times.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1117">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1118'
	>
	Conclusion</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1120">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1121'
	>
	A lot has changed in the past few years for Android. It has evolved from a simple OS for smartphones and is now powering many other devices. Time will tell what will become of it. Who knows, maybe we’ll even program nuclear fusion reactors with it. Or <a href="http://www.theguardian.com/technology/2013/dec/17/google-boston-dynamics-robots-atlas-bigdog-cheetah">Terminators</a>. Terminators are more fun.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/the-past-present-and-future-of-android-development/">The Past, Present and Future of Android Development</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>7973https://infinum.com/uploads/2014/03/eclipse-is-dead-for-android-development-and-i-helped-kill-it-0.webp</url>
				</image>
				<title>Eclipse Is Dead for Android Development and I Helped Kill It</title>
				<link>https://infinum.com/blog/eclipse-is-dead-for-android-development-and-i-helped-kill-it/</link>
				<pubDate>Thu, 03 Apr 2014 09:13:00 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/eclipse-is-dead-for-android-development-and-i-helped-kill-it/</guid>
				<description>
					<![CDATA[<p>In less than a year, Eclipse lost its position as the primary IDE for Android development and became extinct. </p>
<p>The post <a href="https://infinum.com/blog/eclipse-is-dead-for-android-development-and-i-helped-kill-it/">Eclipse Is Dead for Android Development and I Helped Kill It</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1226"
	 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-1125">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1126">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1127'
	>
	A year has passed since <a href="https://developers.google.com/live/shows/478404424">Google introduced Android Studio IDE</a> at the Google I/0 2013 Conference. A month later, we wrote <a href="https://infinum.com/blog/android-studio-vs-eclipse-1-0/">an article</a> on how Eclipse would slowly, but ultimately lose its position and recommended switching to Android Studio. Over 25,000 people read this article. Were we right?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1129">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1130'
	>
	Today, in 2014, over 75% of the world’s smartphones use Android as their operating system. Soon, Android will evolve beyond mobile phones – it will be in smart watches, cars, kitchen devices, laptops. And thanks to the mercy of the heavenly Gods of Java, we finally have a state-of-the-art IDE for Android.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1132">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1133'
	>
	Eclipse hell</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1135">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1136'
	>
	I’ve never been an Eclipse fan. I never liked it in the first place, but after years of use, I’ve grown to hate it to the point that I’d rather eat rusty nails than use Eclipse again.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1138">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1139'
	>
	I always thought of Eclipse as a <strong>”student-project IDE”</strong>; I learned about it during my college years, did my lab work in it and used it to introduce myself to the world of Android development. But when things started to get more complicated – that’s when Eclipse started to frustrate me more and more.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1141">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1142'
	>
	You want to develop an application and use more than 3 projects in your workspace? OK, but you’ll have to clean your project and restart Eclipse every couple of minutes. You want to upgrade Ant? OK, but you’ll have to spend a few more hours to get your project back to life. You want to release your application? OK, but close all other active applications because Eclipse will crash every few seconds.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1146"
	 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-1144"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1145">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/03/eclipse-is-dead-for-android-development-and-i-helped-kill-it-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="413"
															width="550"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Fig 1. I really hate Eclipse.		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1147">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1148'
	>
	Android developers were desperate for a <strong>more stable IDE</strong> and were quite optimistic when Google announced <strong>Android Studio</strong>. Eclipse slowly started to lose its market share and in less than one year it became obsolete, a relic of some older, “darker” times.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1150">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1151'
	>
	It couldn’t rival Android Studio because it was designed differently, in different times. You can use Eclipse for a bunch of different programming languages and for a bunch of different platforms, but it couldn’t adapt completely to the world of Android development. On the other hand, Android Studio is designed specifically for Android development and its main goal is to speed up the Android development process and make it easier and simpler.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1155"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1153">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1154'
	>
	Hail to the king!</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1156">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1157'
	>
	I’ve been using Android Studio for a few months now and have made a list of reasons why it’s, in my opinion, superior to Eclipse:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1159">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1160'
	>
	1. Gradle project structure</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1162">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1163'
	>
	Android Studio introduced a new project automation tool – <a href="http://www.gradle.org/">Gradle</a>, which replaced <a href="http://ant.apache.org/">Apache Ant</a>. Have you ever tried to upgrade your Ant version while developing an Android application and cried in agony when your project exploded into millions of pieces? Upgrades are always frustrating and in 9/10 cases you have to modify Ant scripts or your project to bring it back to life.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1165">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1166'
	>
	Gradle also allows you to use different flavors of an application – you can define separately the development and production version. You don’t want to use <a href="http://developer.android.com/tools/help/proguard.html">Proguard</a> and have different app icons in the dev and prod version? Just modify your build.gradle file.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1170"
	 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-1168"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1169">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/03/eclipse-is-dead-for-android-development-and-i-helped-kill-it-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="217"
															width="587"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Fig 2. Separate your development and production resources		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1171">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1172'
	>
	2. Smart shortcuts</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1174">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1175'
	>
	Android Studio replaces references to resource files with their real values, so you can find out which color you are using or what is the height of the layout directly from the code editor.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1179"
	 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-1177"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1178">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/03/eclipse-is-dead-for-android-development-and-i-helped-kill-it-3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="85"
															width="559"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Fig 3. Which color should I use?		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1180">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1181'
	>
	3. Improved graphical preview</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1185"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1183">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1184'
	>
	I’ve always experienced a lot of problems while using graphical preview in Eclipse. In Android Studio you can build layouts and observe changes in real time. Heck, you can even track these changes on different screens!</p></div>	</div>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1191"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1189">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1190'
	>
	Android Studio uses <a href="http://developer.android.com/tools/help/lint.html">Lint</a> by default, and you can modify your Gradle files to include Lint when releasing your APKs – if Lint finds some warnings, it will automatically abort your release process.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1194"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1192">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1193'
	>
	Why is this good? It forces you to use good Android development practices (like defining all of your dimensions in separate XML files, or avoiding hardcoded strings), it can point to unused resource files (which results in a smaller APK file in the end), mistakes or unused permissions in the manifest file etc. We want to speed up our development process, but we also want to <strong>produce quality code</strong>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1197"
	 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-1195"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1196">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/04/eclipse-is-dead-for-android-development-and-i-helped-kill-it-4.webp"
					class="image__img block-media__image-img"
					alt=""
										height="140"
															width="949"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Fig 4. So you want to use dp instead of sp? Not on my watch…		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1200"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1198">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1199'
	>
	5. Unit tests</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1203"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1201">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1202'
	>
	One of the most important steps in software development is testing – you want to avoid bugs and errors. In Android Studio you can define your unit tests in separate classes and launch them while building your applications. In case of an error, you know where your bugs are even before they happen in production.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1206"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1204">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-1205'
	>
	6. Speed</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1209"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1207">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1208'
	>
	Android Studio is fast – and by fast I mean really fast. Just for comparison – in Eclipse you need at least one or two minutes for building release versions of more complicated projects. In AS you can build the same project in less than 30 seconds.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1212"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1210">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1211'
	>
	Dawn of a new era</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1215"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1213">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1214'
	>
	In conclusion, in less than a year, Eclipse lost its position as the primary IDE for Android development and became extinct. By the mercy of the heavenly Gods of Java, we have also fought in this war, alongside other developers.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1218"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1216">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1217'
	>
	Now we are quite optimistic about how Android will evolve with AS in future years because Android development is once again fun and simple. Android Studio is the new king and we wish him a long and happy reign…</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1221"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1219">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1220'
	>
	P.S. What are you waiting for? Go install <a href="http://developer.android.com/sdk/installing/studio.html">Android Studio</a>!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1224"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1222">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1223'
	>
	—<br />
<br />
<br />
<em>If you’ve enjoyed this article, read my latest piece about the <a href="https://infinum.com/blog/the-past-present-and-future-of-android-development/">future of Android development.</a></em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/eclipse-is-dead-for-android-development-and-i-helped-kill-it/">Eclipse Is Dead for Android Development and I Helped Kill It</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>7970https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-0.webp</url>
				</image>
				<title>Android Studio vs. Eclipse  1 : 0</title>
				<link>https://infinum.com/blog/android-studio-vs-eclipse-1-0/</link>
				<pubDate>Tue, 18 Jun 2013 10:05:00 +0000</pubDate>
				<dc:creator>Željko Plesac</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/android-studio-vs-eclipse-1-0/</guid>
				<description>
					<![CDATA[<p>After the initial fuss has settled following the release of Android Studio, it&#8217;s time to make some remarks about this new IDE for Android development. </p>
<p>The post <a href="https://infinum.com/blog/android-studio-vs-eclipse-1-0/">Android Studio vs. Eclipse  1 : 0</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1307"
	 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-1227">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1230"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1228">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1229'
	>
	One month has passed since Google released Android Studio at the Google I/0 2013 Conference. After the initial fuss has settled, it’s time to make some remarks about this new IDE for Android development.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1233"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1231">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1232'
	>
	After Google announced its own IDE for Android development based on the IntelliJ platform (let’s face it, as the name suggests, it’s the most intelligent IDE for Java programmers), I was quite optimistic and happy about this exciting news. So I made some coffee, opened a fresh box of <a href="http://www.amazon.com/Kras-Cookies-Chocolate-Domacica-12-30-Ounce/dp/B00472VBTG">Domaćica cookies</a> and downloaded the IDE from their official website.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1236"
	 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-1234"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1235">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="600"
															width="799"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1239"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1237">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1238'
	>
	I’ve never been a big fan of Eclipse for different reasons: a) it’s ugly, b) it’s buggy, c) it makes you start believing in heavenly creatures and divine wisdom of the <strong>Gods of Java &amp; Android (it is a known fact that gods of programming exist, and you have to worship them in the form of yelling, cursing and drinking a lot of coffee)</strong>. It is OK when you are developing smaller applications, but when your application has 10 projects and 10 external libraries, that’s when the fun begins – refresh project, clean project, restart Eclipse, and then all over again. I absolutely hate Graphical Layout when I’m developing UI elements, because it never works properly – at most I can only look at half of the screen after reopening it for two, three times… Also, we experienced a lot of problems with the newest version of Eclipse (it was crashing at least once a day).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1242"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1240">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1241'
	>
	The installation process for Android Studio went perfectly, and after starting the IDE, I was immediately amazed when I saw the brand new Studio – it was ugly and not sexy at all (so it was just like Eclipse). But guess what – you can change the default theme to a totally sexy, dark theme named Darcula (genius name) without hacks and workarounds. It uses really nice colors, and I absolutely love the default font (Lucida Grande), which looks fresh and cool.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1245"
	 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-1243"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1244">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-2-1400x875.webp				media='(max-width: 699px)'
				type=image/webp								height="875"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="900"
															width="1440"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			 Fig 1. Awesome Darcula theme		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1248"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1246">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1247'
	>
	My first project</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1251"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1249">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1250'
	>
	Then it was time to import my first project – Streamoplayer, an application for streaming media files from the Internet or SD card developed in Eclipse. This is when problems started – Google said that Apache ant is old technology and they replaced it with Gradle in Android Studio. I won’t go into much detail about Gradle (<a href="http://www.gradle.org">here</a> you can find more information on Gradle), just point out that first you have to create Gradle files in your project.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1254"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1252">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1253'
	>
	Of course, this is not as simple as it looks, because first you have to upgrade your Eclipse to the newest version (this could be the subject of a new blog post, because it is NOT as easy as it seems).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1257"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1255">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1256'
	>
	After I successfully upgraded my Eclipse and generated Gradle files, I said bye-bye to Eclipse and deleted it from my filesystem. Then it was time for the second miracle to happen – importing the project to Android Studio. Most of you have some experience with importing projects from different IDEs and know that it never goes smoothly. But, this is Android Studio, and it’s God’s favorite IDE for Android development – importing a project is as easy as just clicking the button Import. Puff, and it’s there.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1260"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1258">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1259'
	>
	After playing with AS for some time, I’ve created my list of 5 totally cool and sexy features:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1263"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1261">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1262'
	>
	Sexy list</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1266"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-1264">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-1265'
	>
	<strong>UI development</strong> – changes in UI files (like layouts) are dynamically updated in Preview. This is quite an improvement in comparison with Eclipse, because Graphical Layout never works fine for me. Never.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1269"
	 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-1267"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1268">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-3-1400x875.webp				media='(max-width: 699px)'
				type=image/webp								height="875"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="900"
															width="1440"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			 Fig 2. Dynamically updated Preview		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1272"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-1270">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-1271'
	>
	<strong>Layout previewing</strong> – layouts can be previewed on a bunch of different screen resolutions (from 2.3 inch to 7 or 10 inch tablets) in real time. At Infinum, we are always developing applications for a gazillion different Android devices, and this could really speed up our development process</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1275"
	 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-1273"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1274">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-4-1400x875.webp				media='(max-width: 699px)'
				type=image/webp								height="875"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2014/02/android-studio-vs-eclipse-1-0-4.webp"
					class="image__img block-media__image-img"
					alt=""
										height="900"
															width="1440"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			 Fig 3. Devices… devices everywhere		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1278"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-1276">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-1277'
	>
	<strong>New completion dialog</strong> – which shows icons, translation files, etc. This is quite handy. For example, if you are developing an application in different languages, you can see all translations of the selected word in one place</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1281"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-1279">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-1280'
	>
	<strong><strong>Out of the box integration with version control systems</strong> </strong>–<strong> </strong>AS has by default a smart version control plugin (for git, SVN, GitHub and Mercurial), which controls versioning of your files and their updating with branches. I love Linux and Terminal, but sometimes it would be easier and quicker just to use a plugin instead of typing commands into Terminal</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1284"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-1282">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-1283'
	>
	<strong><strong><strong>Deep code analysis</strong> </strong></strong>–<strong><strong> </strong></strong>if you point to a line, it gives you detailed explanation of an exception based on the annotation added. And you can also know which constants are allowed for which API. Believe me, you will be amazed when you see how much this affects your debugging process and time wasted on looking for an error, like a bad constant.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1287"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1285">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1286'
	>
	But, I have to say that AS has a lot of bugs, which is not surprising, as it is still a work in progress. Some features don’t work sometimes (or don’t work at all), like replacing a <code>R.string.something</code> key with its actual value.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1290"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1288">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1289'
	>
	Users have also reported errors in workspace after creating a new project while they were not connected to the Internet. I really hope that this is a bug, because I find the idea of being connected to the Internet all the time while developing an app totally stupid and unnecessary.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1293"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-1291">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-1292'
	>
	Final thoughts</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1296"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1294">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1295'
	>
	AS is still not a polished product that I would recommend to all of the Android developer community, but I’m quite optimistic that most of the bugs will be fixed in the official and stable version (current version is 0.1.3, so it’s still an early access preview). The guys at Google really did a good job. I will keep my eye on AS and wait for the official version, and pray to <strong>Gods of Java &amp; Android <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong> that the day when I won’t be needing Eclipse anymore is coming.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1299"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1297">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1298'
	>
	The future looks quite promising for AS, especially as Google is directly supporting the development efforts, and we all know how much Google cares about Android. In mine and God’s opinion (He is also an Android developer), Eclipse will be defeated by AS.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1302"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1300">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1301'
	>
	Resistance is futile.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1305"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-1303">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-1304'
	>
	—<br />
<br />
<br />
<em>If you’ve enjoyed this article, read my latest piece about the <a href="https://infinum.com/blog/the-past-present-and-future-of-android-development/">future of Android development.</a></em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/android-studio-vs-eclipse-1-0/">Android Studio vs. Eclipse  1 : 0</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>