Author: amir

Let's Get The Job Done!

Do you code DRY!

What is DRY principle, and how to achieve that in your android development journey, let’s discuss. DRY stands for “don’t repeat yourself!”. it simply means that you have to never write any piece of code twice otherwise you are really doing it wrong. because when a logic related to that piece of code changes we…
Read more

Android

Android Must-Have tools and libraries

Here I am gonna name some of the most useful and necessary tools you could use in android development. Beside android studio and java/kotlin installed on your device, there are some other tools and libraries that can help you enhance your android app quality, so let’s go through some of theme. LeackCanary: A widespread tool…
Read more

memory leaks

Android Memory Leaks

Here i’m gonna discuss the memory leak and some causes of this defect in android apps. So what is the “Memory Leak”? Simply the memory leak means that you have allocated a memory to an object but never have the chance to free up that allocated memory. that causes the garbage collector neglect that part…
Read more

Kotlin Object Keyword

In this post we are gonna find out what is the Object keyword in Kotlin and discuss it’s use-cases. in one definition the Object is another way to declare classes but with some differences, the most important difference is that defining an object makes it act like a singleton object, also by defining an object…
Read more

How to Unit Test live Data?

In this article we are going to discuss how we could unit test the Live Data object from googles architectural components. If you have tried to test live Data Object on Android platform you have certainly encountered the error below. java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details. at android.os.Looper.getMainLooper(Looper.java) at android.arch.core.executor.DefaultTaskExecutor.isMainThread(DefaultTaskExecutor.java:58)…
Read more

Rx Android

Implement search using Rx.Android

In this article we are gonna learn how to implement a handy search tool using RxAndroid. So let’s take a look into the UI code: private val searchSubject = PublishSubject.create<String>() private fun initUi() { svMain.setOnClickListener { svMain.isIconified = !svMain.isIconified } svMain.setOnQueryTextListener(object : SearchView.OnQueryTextListener{ override fun onQueryTextSubmit(query: String?): Boolean { Utils.hideKeyboard(context!! , svMain) return true }…
Read more

dialog

How to create android custom dialog

Here we’re gonna discuss how to create a usable custom dialog for every day android work . Using dialogs for showing some messages or asking user what to do in some situations is a common and necessary feature in android development , so maybe you are tired of simple and ordinary standard dialogs and want…
Read more

Why to choose MVVM over MVP

Here we’re gonna talk a littile about Sofware Architecture Patterns and  discuss the advantages of MVVM architecture pattern over MVP in the Android app development . First off why we use such solutions , that some times make it harder and more verbose to write code !? so there were always problems in development like…
Read more

Kotlin : some cool features

Let’s take a look at some of kotlin‘s cool features here , gathered from multiple sources across web , i personally hope that kotlin replaces java in android totally. Extension function: As it’s name indicate this adds some extra functionality to the existing component. Have a look below we are adding an extra functionality to…
Read more

Android Studio Shortcuts

Some of the useful android studio shortcuts are : CTRL +  /  : comment/uncomment lines of codes. CTRL + .  : folds/unfolds the code blocks . CTRL+ R : replace. CTRL + SHIFT + R: Replace  in all Files . CTRL + SHIFT + A : search IDE commands. CTRL + F : searching a…
Read more