<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kotlin Archives - Petamind</title>
	<atom:link href="https://petaminds.com/tag/kotlin/feed/" rel="self" type="application/rss+xml" />
	<link>https://petaminds.com/tag/kotlin/</link>
	<description>A.I, Data and Software Engineering</description>
	<lastBuildDate>Wed, 05 Jun 2024 22:27:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://petaminds.com/wp-content/uploads/2019/09/ic_launcher.png</url>
	<title>Kotlin Archives - Petamind</title>
	<link>https://petaminds.com/tag/kotlin/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MVVM vs MVI &#8211; Architecture for Mobile Development</title>
		<link>https://petaminds.com/mvvm-vs-mvi-architecture-for-mobile-development/</link>
					<comments>https://petaminds.com/mvvm-vs-mvi-architecture-for-mobile-development/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Fri, 05 Apr 2024 22:22:00 +0000</pubDate>
				<category><![CDATA[front-end]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[MVI]]></category>
		<category><![CDATA[MVVM]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=5191</guid>

					<description><![CDATA[<p>The Model-View-ViewModel (MVVM) and Model-View-Intent (MVI) are architectural patterns used in software development, particularly for structuring the code of user interface (UI) applications. Both patterns aim to separate concerns and manage the flow of data between the UI and the underlying data models, but they do so in different ways. Let&#8217;s explore both patterns with [&#8230;]</p>
<p>The post <a href="https://petaminds.com/mvvm-vs-mvi-architecture-for-mobile-development/">MVVM vs MVI &#8211; Architecture for Mobile Development</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/mvvm-vs-mvi-architecture-for-mobile-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exploring Kotlin&#8217;s suspendCoroutine: A Guide with Examples</title>
		<link>https://petaminds.com/exploring-kotlins-suspendcoroutine-a-guide-with-examples/</link>
					<comments>https://petaminds.com/exploring-kotlins-suspendcoroutine-a-guide-with-examples/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Tue, 08 Aug 2023 22:51:56 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[full-stack]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[suspendCoroutine]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=3948</guid>

					<description><![CDATA[<p>Introduction: Kotlin, with its modern syntax and powerful features, has taken the programming world by storm. One of its unique offerings is the suspendCoroutine function, a game-changer when it comes to handling asynchronous operations. In this article, we&#8217;ll dive into the world of suspendCoroutine, demystifying its usage and providing you with real-world examples to showcase [&#8230;]</p>
<p>The post <a href="https://petaminds.com/exploring-kotlins-suspendcoroutine-a-guide-with-examples/">Exploring Kotlin&#8217;s suspendCoroutine: A Guide with Examples</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/exploring-kotlins-suspendcoroutine-a-guide-with-examples/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Convert Callback Into Kotlin Coroutines Suspend or Deferred</title>
		<link>https://petaminds.com/convert-callback-into-kotlin-coroutines-suspend-or-deferred/</link>
					<comments>https://petaminds.com/convert-callback-into-kotlin-coroutines-suspend-or-deferred/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Thu, 28 Apr 2022 09:16:45 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[Coroutine]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[suspendCoroutine]]></category>
		<category><![CDATA[wrapper]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=3718</guid>

					<description><![CDATA[<p>Since coroutine is a hot topic in mobile development, converting vanilla JVM callback into Kotlin Coroutines is desirable. The wrapping happens using something called&#160;SuspendCoroutine. What is a SuspendCoroutine suspendCoroutine&#160;is a builder function that mainly used to convert callbacks into&#160;suspend&#160;functions. Let&#8217;s say for example you have some legacy (or not) Api, that uses callbacks. You can [&#8230;]</p>
<p>The post <a href="https://petaminds.com/convert-callback-into-kotlin-coroutines-suspend-or-deferred/">Convert Callback Into Kotlin Coroutines Suspend or Deferred</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/convert-callback-into-kotlin-coroutines-suspend-or-deferred/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kotlin Scoping Functions apply vs. with, let, also, and run</title>
		<link>https://petaminds.com/kotlin-scoping-functions-apply-vs-with-let-also-and-run/</link>
					<comments>https://petaminds.com/kotlin-scoping-functions-apply-vs-with-let-also-and-run/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Sun, 27 Mar 2022 00:03:42 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[scoping]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=3693</guid>

					<description><![CDATA[<p>Functional-style programming is highly advocated and supported by Kotlin’s syntax as well as a range of functions in Kotlin’s standard library. In this post we will examine five Kotlin scoping functions (aka higher-order functions): apply, with, let, also, and run. When learning these five functions, you will need to memorize 2 things:&#160;how&#160;to use them, and&#160;when&#160;to [&#8230;]</p>
<p>The post <a href="https://petaminds.com/kotlin-scoping-functions-apply-vs-with-let-also-and-run/">Kotlin Scoping Functions apply vs. with, let, also, and run</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/kotlin-scoping-functions-apply-vs-with-let-also-and-run/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Number of Islands solution</title>
		<link>https://petaminds.com/number-of-islands-solution/</link>
					<comments>https://petaminds.com/number-of-islands-solution/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Thu, 21 Oct 2021 22:36:30 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[bfs]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[queue]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=3438</guid>

					<description><![CDATA[<p>In this post, we have a look at using a queue and breath-first search algorithm to solve a Leetcode challenge. The problem is stated as follows. Given an m x n 2D binary grid grid which represents a map of '1's (land) and '0's (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally [&#8230;]</p>
<p>The post <a href="https://petaminds.com/number-of-islands-solution/">Number of Islands solution</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/number-of-islands-solution/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WHY DO WE NEED TO OVERRIDE EQUALS AND HASHCODE METHODS IN JAVA/Kotlin</title>
		<link>https://petaminds.com/why-do-we-need-to-override-equals-and-hashcode-methods-in-java-kotlin/</link>
					<comments>https://petaminds.com/why-do-we-need-to-override-equals-and-hashcode-methods-in-java-kotlin/#comments</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Fri, 19 Mar 2021 02:12:56 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[equals]]></category>
		<category><![CDATA[hashcode]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Kotlin]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=2889</guid>

					<description><![CDATA[<p>In this post, we will discuss why it is important to&#160;override equals and hashCode method&#160;in Java/Kotlin. Item 9 in Josh Bloch’s Effective Java suggests always override&#160;hashCode()&#160;method if the class overrides&#160;equals(). In this post, we will discuss why this is necessary and good practice. &#160;We know that two objects are considered equal only if their references [&#8230;]</p>
<p>The post <a href="https://petaminds.com/why-do-we-need-to-override-equals-and-hashcode-methods-in-java-kotlin/">WHY DO WE NEED TO OVERRIDE EQUALS AND HASHCODE METHODS IN JAVA/Kotlin</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/why-do-we-need-to-override-equals-and-hashcode-methods-in-java-kotlin/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial: Multi-touch gesture for android</title>
		<link>https://petaminds.com/tutorial-multi-touch-gesture-for-android/</link>
					<comments>https://petaminds.com/tutorial-multi-touch-gesture-for-android/#comments</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Fri, 23 Oct 2020 03:34:21 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[full-stack]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[gesture]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[multi-touch]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=2853</guid>

					<description><![CDATA[<p>Multi-touch gestures are very useful in many common scenarios, such as zooming, panning. For game development, handling multi-touch is essential. This post will give a quick guide for handling multi-touch points. Project structure We create a new project name MultiTouch with Java and add a new class named GameScene as a subclass of android.view.View. The [&#8230;]</p>
<p>The post <a href="https://petaminds.com/tutorial-multi-touch-gesture-for-android/">Tutorial: Multi-touch gesture for android</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/tutorial-multi-touch-gesture-for-android/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Ping the pong redev video tutorial</title>
		<link>https://petaminds.com/ping-the-pong-redev-video-tutorial/</link>
					<comments>https://petaminds.com/ping-the-pong-redev-video-tutorial/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Sat, 19 Sep 2020 00:40:08 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[petamind]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[Pong]]></category>
		<category><![CDATA[youtube]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=2710</guid>

					<description><![CDATA[<p>Following up the article &#8220;RE-DEV THE FIRST VIDEO GAME PONG WITH SURFACEVIEW AND GAMELOOP&#8221;, here is the video tutorial for another version of the Ping game. What is new? Improve the GUI Better collision handling Challenges The source code for the project is not fully provided but you can always get the code from the [&#8230;]</p>
<p>The post <a href="https://petaminds.com/ping-the-pong-redev-video-tutorial/">Ping the pong redev video tutorial</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/ping-the-pong-redev-video-tutorial/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>re-dev the first video game pong with SurfaceView and gameloop</title>
		<link>https://petaminds.com/re-dev-the-first-video-game-pong-with-surfaceview-and-gameloop/</link>
					<comments>https://petaminds.com/re-dev-the-first-video-game-pong-with-surfaceview-and-gameloop/#comments</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Mon, 14 Sep 2020 02:21:56 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game loop]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[Pong]]></category>
		<category><![CDATA[surfaceview]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=2688</guid>

					<description><![CDATA[<p>In this article, we recreate the two-player game Pong &#8211; the first arcade video game 1972 &#8211; for Android using Kotlin. We will implement the game SurfaceView, game loop design pattern, and code optimization for better performance. Game loop Game loop is a common design pattern in game development. It is already integrated into different [&#8230;]</p>
<p>The post <a href="https://petaminds.com/re-dev-the-first-video-game-pong-with-surfaceview-and-gameloop/">re-dev the first video game pong with SurfaceView and gameloop</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/re-dev-the-first-video-game-pong-with-surfaceview-and-gameloop/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Create a simple YET most addictive apps/games</title>
		<link>https://petaminds.com/create-a-simple-yet-most-addictive-apps-games/</link>
					<comments>https://petaminds.com/create-a-simple-yet-most-addictive-apps-games/#respond</comments>
		
		<dc:creator><![CDATA[Tung Nguyen]]></dc:creator>
		<pubDate>Wed, 12 Aug 2020 10:33:39 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[full-stack]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[addictive]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[Kotlin]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[sticky]]></category>
		<guid isPermaLink="false">https://petaminds.com/?p=2617</guid>

					<description><![CDATA[<p>With simple implementation, no user can escape from this addictive app! They will cry desperately for help! Let do it! The UI Do not spend much time on this. As said, make it as simple as possible. You can use any text, images, for the activity. TRICK #01: Disable the back button To let users [&#8230;]</p>
<p>The post <a href="https://petaminds.com/create-a-simple-yet-most-addictive-apps-games/">Create a simple YET most addictive apps/games</a> appeared first on <a href="https://petaminds.com">Petamind</a>.</p>
]]></description>
		
					<wfw:commentRss>https://petaminds.com/create-a-simple-yet-most-addictive-apps-games/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
