A Self Taught Programmer’s Journey. My transition from a Civil Engineer to a Software Engineer.
In this blog, we are going to learn about the suspend function in Kotlin Coroutines. Suspend function is the building block of the Coroutines in Kotlin. It is important to learn about the suspend function. We will deep dive into the source code of Kotlin to understand it today.
This article is for anyone who is curious about the higher-order functions and lambdas in Kotlin but has no idea what they are exactly. The goal is to make you understand what are higher-order functions and lambdas which means that there are few simplifications done while writing this. If you understand what higher-order functions and lambdas in Kotlin are, then my mission will be accomplished.
In this blog, we are going to learn about the withContext and Async-await in Kotlin. We will also see how the withContext and Async-await differ from each other and when to use which one.
In this blog, we are going to learn how to implement the instant search feature using Kotlin Flow operators in Android application. We will also learn about all the operators used to implement this feature.
In this tutorial, first, we are going to learn about the MVVM architecture in Android and then we will build a project with MVVM architecture. This tutorial is for beginners who want to get started with the MVVM architecture.
In this blog, we are going to master the Kotlin Coroutines in Android. We will cover what exactly Coroutines are and how they are useful. We will also go through the step by step guide on how to implement Kotlin Coroutines in Android. We will understand why there is a need for the solutions which Kotlin Coroutines provide. We will also talk about the scopes and the exception handling in Kotlin Coroutines.
What happens, when we add this launchMode tag in an activity of Android application. Android Activity "launchMode" Explained, Must-know for Android Development.
In this blog, we are going to see why we need Jetpack DataStore Preferences, learn how to implement Jetpack DataStore Preferences in our Android application and how can we migrate our SharedPreferences to DataStore Preferences.
PRDownloader: A file downloader library for Android with pause and resume support. I recently published a library, which I believe to be the simplest way to handle downloading in Android with pause and resume support. Overview of the PRDownloader library.
We are going to discuss the Google Android Engineer Interview Process and the resources required for the preparation. We will also discuss the types of questions asked for the Android Developer role.
RxJava Tutorials. A Complete Resources To Learn RxJava At One Place. These RxJava tutorials will help you in learning RxJava properly.
In this blog, we are going to learn how to optimize the RecyclerView performance in Android. With these optimizations, we can make the RecyclerView scrolling smooth.
In this blog, we will be comparing Android NDK and RenderScript. Both NDK and RenderScript share the common goal of improving the performance of applications. Each has its own advantages and drawbacks.
This post is all about making a better Android App (No lags now! only smooth running UI). We will learn what can we do to improve the performance of an Android application.
In this blog, we are going to learn the types of Observables in RxJava. Observable, Flowable, Single, Maybe, Completable. Then, we can use these types of observables in RxJava correctly.
Over the years, these are the Android development tools I’ve found most useful. I consistently use these tools to build apps. I recommend you take a look at them and see whether they’re a good fit for your tool chain.
Debugging your application is an important part of the Android Development. When it comes to debugging databases in an android application, it is very difficult to see what’s happening inside the database. The same is true with shared preferences.
Reducing battery usage in an android application. Battery Usage Reduction is also an important part of an android development as this optimization will ultimately lead to retain the user, as many times the user uninstalls the application because of the battery draining issue.
I am writing this article to share my knowledge which I have learned the hard way. In Android, working with images(bitmaps) is really difficult as the application goes out of memory(OOM) very frequently. OOM is the biggest nightmare for the Android developers.
This article will show why and when to use ArrayMap and SparseArray to optimize your Android Applications. Whenever you need to store key -> value pairs, the first data structure that probably comes to mind for accomplishing this is HashMap. HashMap is quite flexible, so it may be tempting to use it all over the place, without really thinking about their possible side effects.
Let’s explore some best practices in designing and developing Android apps. For starters, when you develop an Android application, you should prepare it to be run on a wide variety of devices and circumstances. Every Android device is a family in itself. When one member of the family goes haywire, it means the rest of the family is also likely to be affected.
In this blog, we are going to learn the RxJava Defer Operator. We will understand when to use Defer operator depending on our use-case. Most of the time, we do mistake while using the RxJava Defer Operator. Let's understand it clearly to avoid the mistake.
In this tutorial, we are going to learn about the Kotlin Flow Zip Operator and how to make the multiple network calls in parallel using it. This tutorial will also help you in doing any type of background tasks in parallel using Kotlin Flow Zip Operator.
In this blog, we are going to learn about the Exception Handling in Kotlin Flow. We will also learn how to handle errors in the real use-cases in Android Development.
In this blog, we are going to discuss the different types of flow builders and how to create Flow using Flow Builder. We will learn to create Flow with examples.
In this blog, we are going to learn about the Terminal Operators in Kotlin Flow. The Flow APIs in Kotlin Coroutines are very helpful when it comes to handling the stream of data.
In this blog, we are going to learn the RxJava Create and fromCallable Operators. We will understand when to use the Create operator and when to use the fromCallable operator depending on our use-case. Most of the time, we do mistake while using RxJava Operators. Let's understand it clearly to avoid the mistake.
In this tutorial, we are going to learn about the Kotlin Flow retry and retryWhen operators and how to retry the task with exponential backoff delay using it.
This article will cover thread pools, thread pool executors, and their use within Android. We’ll cover these topics thoroughly, with lots of example code. A thread pool manages a pool of worker threads (the exact number varies depending upon its implementation).
Dagger 2 is a dependency injection for Android. Dagger 2 is a dependency injection (DI) framework. Dependency Injection in build upon the concept of Inversion of Control which says that a class should get its dependencies from outside. In simple words, no class should instantiate another class but should get the instances from a configuration class.
Voice over Internet Protocol (VoIP) is one of the most popular standards for voice and video calling over the web. This post is all about how the voice and video call works on the high level. We all use voice and video on the various platform like WhatsApp, Skype, Messenger, Facebook, and etc.
Friends, many of you asked me this question, so I thought of writing this as an article to answer this good question so that most of us get benefited. Let’s start, how we all have started the Android Development. We all use to write the whole code in the single class that is Activity either it’s data fetching or any type of logic.
In this blog, we are going to discuss why there is a need for the App Startup Library. Most importantly, we will learn what are the problems it solves and how it helps us in improving the App Startup time.
In this blog, we will learn how to work with the OkHttp Interceptors. We will also see the real use cases where we can use it and how we can use it to get the most of it. In Android, we have so many use-cases that can be done using the OkHttp Interceptors.
Your Cheat Sheet For Android Interview Questions. I am very fortunate to have the experience of taking interviews of many Android Developers. In the whole process, I have learned a lot and also cracked the interviews of top companies including startup and MNC.
This article is all about the Subject available in RxJava. A Subject is a sort of bridge or proxy that is available in some implementations of ReactiveX that acts both as an observer and as an Observable.
What is Context? As there are different types of context in Android, we as an Android Developer often get confused about which context to use at which place. So let’s understand what are those, how to use those and when to use which one.
A Complete Resources and Tutorials To Learn Kotlin For Android Development At One Place. We will provide all the topics with the resources to learn from which are important in Kotlin for Android Development.
In this article, we are going to learn how to write the unit-test for ViewModel with Kotlin Coroutines and LiveData that follows a basic MVVM Architecture. We will write the unit-test for the ViewModel which makes a network call and then, validate if our ViewModel is working as expected or not.
In this tutorial, we are going to learn how to make the multiple network calls in parallel using Kotlin Coroutines. We will learn to write the code inside the ViewModel with Kotlin Coroutines and LiveData that follows a basic MVVM Architecture. This tutorial will also help you in doing any type of background tasks in parallel using Kotlin Coroutines.
In this tutorial, we are going to learn how to use Room Database with Kotlin Coroutines. We will learn to write the code inside the ViewModel with Kotlin Coroutines that follows a basic MVVM Architecture.
Image heavy applications have to decode many images, so there will be continuous allocation and deallocation of memory in application. This results in frequent calling of the Garbage Collector (GC). And if you call the GC too many times, your application UI freezes.
How to learn Android app development? Here, I have tried to cover most of the important things in the Android Development that I have learned the hard way. Learning Android Development is a step by step process, so must learn it step by step. So this guide will also show how to learn android app development step by step.
The Kotlin Multiplatform feature is very promising. And, in this blog, we are going to learn how does the Kotlin Multiplatform work? When we know how it works, we can get the most of it.
It has been more than three years since MindOrks started taking shape as a community for Tech learning. In these three years, we as a team, running MindOrks have done our best to promote Tech learning and we will continue to give our best in promoting Tech learning for everyone who wishes to learn and grow with us. We as a team believe that learning is a bilateral process where the one who teaches, learns from those who are learning too.
How to use the new Dagger 2 Android Injector? This article is all about implementing the new Dagger 2 Android Injector in an Android application. The new dagger 2 is released with the Android support module and the Android compiler.
In this blog, we are going to cover all the data structures which are must for any Android Developers when it comes to cracking the interview and knowledge both. Although there are many more to learn, we will cover the most used and the most frequently asked in Android Interview.
I believe there is an operator for everything in RxJava. In this blog, we are going to learn RxJava operators by examples in which we will cover some typical problems in Android and its solution using the RxJava operators.
Nowadays, most of the applications that we use in our daily life come with a search feature which provides us a facility to get things very quickly we are looking for. So, having a search feature is very important. And, we as a developer have a responsibility to implement it in a better way.
Implement Caching In Android Using RxJava Operators with three data sources as memory, disk, and network. First, we need to understand why caching is useful? Caching is very useful in the following situations: Reduce network calls, we can reduce the network calls by caching the network response. Fetch the data very fast, we can fetch the data very fast if it is cached.
Kotlin is a statically typed programming language for the JVM, Android and the browser.
In this blog, we are going to learn the inline, noinline, and crossinline keywords in Kotlin. We will understand when to use the inline, when to use noinline and when to use the crossinline in Kotlin depending on our use-case. Most of the time, we do mistake while using these keywords inline, noinline, and crossinline in Kotlin. Let's understand it clearly to use it properly.
In this blog, we are going to learn the RxJava Zip Operator with an example. Zip combine the emissions of multiple Observables together via a specified function and emit single items for each combination based on the results of this function. We will also see the advantages of Zip Operator.
RxJava Operator - Concat Vs Merge. RxJava has so many operators. In order to use them correctly, we must know about them. Here, we will discuss the Concat and the Merge Operators.
In this blog, we are going to learn the RxJava Timer, Delay, and Interval Operators. We will understand when to use Timer operator, when to use Delay operator and when to use Interval operator depending on our use-case.
Google introduced ConstraintLayout, a new layout for Android at their I/O developer event this year. ConstraintLayout combines a simple, expressive and flexible layout system with the powerful features built into the Android Studio Designer tool. It makes it easier to create responsive user interface layouts that adapt automatically to different screen sizes and changing device orientations.
Annotations are Metadata. And Metadata is a set of data that gives information about other data. There are many ways in which annotations can be used. But, here we will talk about how the annotations can be used to improve our android coding.
How to download a file in Android and show the progress very easily? Most of the time while developing Android Apps, we come across a common use-case that is to download a file in Android and show the progress in the progress dialog. At MindOrks, we have an open-source library PRDownloader that solves this problem very easily.
FlatBuffers vs JSON-You may be asking - why use new tools if we already have standard JSON, JSON-parser like GSON, and Jackson. Well, give FlatBuffers a try and you’ll find that they’re significantly faster than JSON.
Fast Android Networking Library (supports all types of HTTP/HTTPS request like GET, POST, DELETE, HEAD, PUT, PATCH). Why should you use Fast Android Networking Library? How to use the Fast Android Networking library?
Fast Android Networking now supports RxJava. Let’s explore why RxJava support is important. RxJava is used for reactive programming. In reactive programming, the consumer reacts to the data as it comes in. Reactive programming allows for event changes to propagate to registered observers.
This article will help you learn RxJava 2.0 by example. It will also show you how to migrate from RxJava 1.0. If you are just getting starting with RxJava, here’s a sample project to learn it with examples. You can dive right in, build the project, and start learning.
Annotations are Metadata. And Metadata is a set of data that gives information about other data. So in this case, annotations are essentially just information about your code.
By following standard coding style and guidelines, we can build a better android application. If you follow a standard coding style in android, it will be easier for you and also for others to understand your code easily.
Best Android Open-Source Libraries. As you know that using third-party libraries in your projects can save you a lot of time and also make the projects bugs-free. The main reason behind is that the open source projects are being developed by the whole community of developers with love.
By using and examining open source apps, you can learn how to build better apps yourself. The following are my picks for the top open source Android projects. I’ve found these helpful in proving my own ability to ship better production apps. From the source code of the below projects, you’ll be able to learn a ton of best practices for Android development.
What is Android Things? Android Things allows developers to build a smart device using Android APIs and Google Services. This takes the usual Android development stack — Android Studio, the official SDK, and Google Play Services — and applies it to the IoT.
Android + Internet Of Things = Android Things. This article is completely about getting started with Android Things application and how to build an Android Things application?
SnapHelper is a helper class that helps in snapping any child view of the RecyclerView. For example, you can snap the firstVisibleItem of the RecyclerView as you must have seen in the play store application that the firstVisibleItem will be always completely visible when scrolling comes to the idle position.
As long as we are human, we are bound to make mistakes. StrictMode is a developer tool which detects things you might be doing by accident and brings them to your attention so you can fix them.
This article is completely about the metrics that you should measure continuously while android application development. This metric is very important as it tells, how your android application is being experienced by the end user.
Year Class Library by Facebook. Building for the next billion users using the Year Class Library. This library is very important.
Creating multiple APKs for different purposes. Nowadays, many times we come to the situation that we need the APK with another different package name. Most of us do it easily, but sometimes we got stuck because of applicationId and packageName.We must know the difference between packageName and applicationId.
A complete guide to become a complete Android Developer. How to be an expert android developer? I have met many great Android developers all around the world. I have learnt a lot from them and tried to collect things that we should know to become a complete Android Developer.
RxBus implementation with RxJava2. So, let’s see how we can create RxBus using RxJava 2. First of all, We must have the knowledge of subject in RxJava. For that you can refer my previous article on RxJava Subject.
How to train custom model for Android using TensorFlow.
Main Activity is not garbage collected even after finish because it is referenced by InputMethodManager indirectly.
Awesome Android Complete Reference Link
Good code is like a good joke — it requires no explanation.
Clean Code — A Handbook of Agile Software Craftsmanship
Top articles on Android that are actually worth reading
Today is a special day for us, our Mindorks Blog has reached 3000 subscribers in 80 days since it’s inception.
Machine Learning: Integrating Tensorflow in Android
Today I am going to tell you why a developer should write blog. All programmers should write blog.
Top articles on Android that are actually worth reading. First of all, I must say that I am very fortunate to have the readers like you. It encourages me to share my knowledge with you and at the same time, I am learning from you.