Best Android Tutorials

Best Free Android Tutorials By MindOrks

A complete list of Android tutorials to learn Android App Development published by MindOrks. These tutorials will help you in becoming a better Android Developer.

Android Tutorials

  • Understanding Android Core: Looper, Handler, and HandlerThread - Looper, Handler, and HandlerThread are the Android’s way of solving the problems of asynchronous programming. They are not old school, but a neat structure on which a complex android framework is built.
  • Mastering Kotlin Coroutines In Android - Step By Step Guide - 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.
  • Understanding Context In Android Application - What is Context? If we go by name, it’s the context of the current state of the application(object). It lets newly-created objects understand what has been going on. You can use the context to get the information regarding activity and application.
  • RxJava Anatomy: What is RxJava, how RxJava is designed, and how RxJava works. - RxJava has become the single most important skill for Android development. Most of you must have worked with it in some form, either in your own codebase or through other third party libraries, like Fast Android Networking and Retrofit.
  • Essential Guide For Designing Your Android App Architecture: MVP: Part 1 - Android framework does not advocate any specific way to design your application. That in a way, make us more powerful and vulnerable at the same time.
  • Essential Guide For Designing Your Android App Architecture: MVP: Part 2 - This is the second part of the article series. In the first part, we developed the concept of MVP and worked out a blueprint for the android application architecture.
  • How The Android Image Loading Library Glide and Fresco Works? - 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.
  • Understanding Higher-Order Functions and Lambdas in Kotlin - 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.
  • Implement Caching In Android Using RxJava Operators - 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.
  • Implement Search Using 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.
  • Understanding RxJava Subject — Publish, Replay, Behavior and Async Subject - 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.
  • Android Annotation Processing Tutorial: Part 1: A practical approach - Annotation processing has become one of the most important language features in the modern Java programming. Java supports annotation processing from its release of Java 5. It generates files during the compile time.
  • Android Annotation Processing Tutorial: Part 2: Project Structure - In this tutorial, we will build a project as a complete library implementation. The reader will be able to develop his own library similar to ButterKnife, Room etc.
  • Android Annotation Processing Tutorial: Part 3: Generate Java Source Code - Our library will generate a wrapper class that will help to map the views and clicks listeners for an activity.
  • Android Annotation Processing Tutorial: Part 4: Use The Generated Code - In this final part of the tutorial we will see the usage of the generated code while annotation processing.
  • Best Practices for Using Text in Android - In this blog, we will learn some of the best practices od using text in Android. This is very important because we know that almost 70% of the application is covered by text. So, the performance of the application majorly depends on the texts present in it. We have created a detailed blog of the same.
  • How to convert a Kotlin source file to a Java source file? - In this blog, we will learn how to convert a Kotlin source file to a Java source file. We will do the file conversion by two methods. So, let's see how.
  • Property, Getter, and Setter  - Kotlin - In this blog, we will learn about Property, Getter, and Setter in Kotlin. We have a detailed explanation of Getter and Setter in this blog.
  • What is tools:context in Android layout files? - In this blog, we will learn about tools:context attribute that is present in every layout file by default.
  • Understanding Memory Usage In Android - In this blog, we will understand the Android memory usage. We will see how the memory usage of your application can increase or decrease your users. The blog contains detailed information about memory usage in Android.
  • Integrating Work Manager in Android - In this blog, we will talk about how to integrate the work manager in your android project and much more advanced feature and customization which makes your life easy in scheduling tasks.
  • Improving Android app performance with Benchmarking - In this blog, we will learn how to improve Android app performance with Benchmarking. Benchmarking is a way to measure the code that you have written for your app. For the process of benchmarking, we have one library called Jetpack Benchmark. So, we will lean each and everything related to benchmarking.
  • Safe calls(?.) vs Null checks(!!) in Kotlin - In this blog, we will learn about Safe calls(?.) and Null Checks(!!) in Kotlin. Both are used to avoid NullPointerException in Kotlin. So, let's see how we can use these in our code.
  • @JvmStatic, @JvmOverloads and @JvmField in Kotlin - In this blog, we will learn how we can use the Kotlin code in our existing Java code with the help of @jvmStatic, @JvmOverloads and @JvmField in Kotlin.
  • How to create a singleton class in Kotlin? - In this blog, we will learn how to create a singleton class in Kotlin? If you don't know anything about the singleton class then don't worry, we will cover every part of the singleton class.
  • Companion object in Kotlin - In this blog, we will learn about the concept of companion object that is used to call the members of a class with the help of class name and not by making an instance of the class.
  • How to implement Splash Screen in Android? - In this blog, we will learn about two ways to implement the SplashScreen. One is by using Handler and other is by using RxJava.
  • Understanding LiveData in Android - In this blog, we will learn about LiveData which is used to notify the observers associated with it if there is a change in the LiveData. Normally, the UI elements are notified when there is a change in data. Also, only that observers will be notified that are in Live state. So, let's explore this.
  • How to build a Modular Android App Architecture? - In this blog, we will learn how can we Build a Modular Android App Architecture. We will learn about dynamic-feature and dynamic delivery. We will also learn how can we use a library module to modularise the app's architecture
  • Authentication Using Fingerprint In Android - Tutorial - In this blog, we will learn how to authenticate in Android applications with the help of fingerprint. Fingerprint Authentication is the best way for authentication because you need not worry about remembering the password and it is a very fast process also. So, let's see how we can do this in our application.
  • Easy SMS Verification in Android: SMS User Consent API - In this blog, we will learn how to implement SMS verification using the SMS User Consent API in Android. This API is used to read only the message containing the verification code and will automatically extract the code from the message by taking permission from the user with the help of a prompt.
  • Implementing Dark Mode Theme in Android - In this blog, we will learn how to implement the dark theme in Android app in Android Q
  • Speed up Gradle build for Android to save your time - In this blog, we will talk about how can we speed up your gradle build to run it quickly and save your time
  • Code Formatting in Kotlin using ktlint - In this blog, we will learn how to format your Kotlin code using ktlint in our project. ktlint is a tool that is used to check if our Kotlin code is according to the Kotlin code standards or not. If not, then it will format the code for you. So, let's learn how to do that.
  • Using LocalBroadcastManager in Android - In this blog, we will learn about LocalBoradcastManger. We will learn what the LocalBroadcastManager is and how we can use this in our Android project.
  • What are the differences between Dalvik and ART? - In this blog, we will see the difference between Dalvik and ART in Android.
  • Using Mockito in Android Unit Testing as a Pro - In this blog, we will learn about how to use mocking as a pro in Android unit testing. You will learn how to set up and the perform test using it
  • Error Handling in RxJava - In this blog, we will learn how to handle errors in RxJava. We would be understanding various ways to handle the error and will also see a real-life example for better understanding.
  • Color Palette API in Android - In this blog, we will learn about the Color Palette API in Android. Here we will see how can we generate dynamic colors based on an image.
  • How to check the visibility of software keyboard in Android? - In this blog, we will learn how to check the visibility of software keyboard in Android.
  • How to create a Transparent Activity in Android? - In this blog, we will learn how to create a Transparent activity in Android. By using Transparent activity, your app will be launched but nothing will be displayed in the background of the window.
  • What are the different protection levels in Android Permission? - In this blog, we will learn different protection levels in permission in Android application. There are three protection levels i.e. Normal, Signature and Dangerous. We will learn about all these permissions.
  • Migrating to 64 bit Architecture in Android - Recently Google announced that in Aug'19 Apps on the PlayStore should provide the subsequent version of 32-bit native libraries in 64 bit. 64 bit is supported since Android 5 (Lollipop) days. In this blog, we will be learning how can we migrate an app from 32 bit to 64 bit. ↵↵
  • How to programmatically take a screenshot on Android? - In this blog, we will learn about how can we take a screenshot of the particular view we are into.
  • Integrating Android Google’s reCAPTCHA in Android App - In this blog, we will learn how to implement Google's reCAPTCHA in our Android application. reCAPTCHA is used to verify if the user is a Human Begin or some robot or bot.
  • How to enable logging in OkHttp ? - In this blog, we will learn about how to log your API calls better using OkHttp . We will learn how to create our own custom Interceptor and log more.
  • Observe event only once using SingleLiveEvent - In this blog, we will learn how to using SingleLiveEvent to emit data only once whenever required. This is useful when we want the data to be only emitted once like in the case of Snackbar, navigation. In this blog, we will use the case of Snackbar to understand better.
  • Android Studio Tutorial For Beginners - This blog is for those who are starting Android development and are facing some problem while using Android Studio. We have created a full tutorial of Android Studio for Beginners.
  • Service vs IntentService in Android - In this blog, we will learn the difference between Service and IntentService. Services are used to perform some tasks in the background without using the UI of the application and at the same time, you can use other applications parallelly.
  • How to communicate between fragments? - In this blog, we will learn how to communicate between various Fragments in our Activity. You can have more than one Fragments in your Activity and it becomes a necessary task to learn how to communicate between those Fragments. So, let's learn how we can do this.
  • Learn to write good code in Android: Starter Pattern - In this blog, we will learn how to write good code in Android by using the Starter Pattern. Starter pattern is used to write codes in such a way that there is no bug or runtime error while launching an Activity. So, use Starter Pattern and stand out from the crowd.
  • Things to care while using Proguard in Android application - In this blog, we will learn about the things that we should know before using Proguard in Android application. Proguard is used to minify, obfuscate and optimize the Android code. So, we created a list of things that you should know before using Proguard.
  • Shared ViewModel in Android: Shared between fragments - In this blog, we will learn about ViewModel which is a part of Android Jetpack. This ViewModel is used to store the UI related data to have a consistent flow of data even when the UI changes. We will also learn how to share data between fragments using ViewModel.
  • Implementing Android Jetpack Preferences - In this blog, we will learn how to implement Preferences in Android. Preferences are a part of Android Jetpack and are used to implement in-app settings. So, by using Preferences, you can change the behavior of your app without changing the system's settings. Let's get started.
  • Android TextView Decoration Tutorial - In this blog, we will learn how to decorate TextView in Android. We will use both XML and Kotlin code for TextView decoration. So, read this blog and use it in your Android project.
  • Implementing Paging Library in Android - In this blog, we will learn how to implement Paging Library in Android. Paging Library is used to get only a selected amount of data out of a heap of data i.e. at a particular instant of time only the desired amount of data will be loaded in the application. This feature is very important for applications using infinite scrolling. We have created a full tutorial for Paging.
  • LiveData setValue vs postValue in Android - In this blog, we will learn about LiveData and the methods that are used to update the value of the LiveData i.e. setValue() method and postValue() method. We will look at the difference between these two methods. So, let's get started.
  • Animation in Android - Android Tutorial - In this blog, we will learn how to use Animation in our Andoird Application. Animations are used to convey the message in a better way. It helps in improving the user experience. So, this blog is all about Animations in Android. So, let's learn about Animation.
  • Parsing JSON in Android - In this blog, we will learn how to do JSON parsing in Android. JSON parsing is done to get the data that is present in the form of JSON i.e. you will fetch the desired data from the JSON file in your Android Application by using JSON parsing. We will learn each and every concept of JSON parsing.
  • Processing and Parsing XML in Android - In this blog, we will learn the concept of XML parsing in Android. XML parsing is used to get the data from the XML format files in our Android Application. Various websites use XML format to represent the data. So, in order to get that data in our application, we need to parse the XML file. In this blog, we will cover every aspect of XML parsing.
  • Building Android applications with Gradle — Tutorial - In this blog, we will learn how to use Gradle in Android to build some applications. We will learn some Gradle commands that can be used to perform various Gradle functions using the command line and not the Android Studio. Also, we will learn gradlew tasks and build variants.
  • What are intents in Android? - In this blog, we will learn about Intents in Android. Intents are used to communicate between various components in Android application. If you are new to Android then this is the must-read blog. Also, if you have done Application development in Android, then you will learn various new things about Intents. So, let's learn together the concept of Intents in Android.
  • Using Coordinator Layout in Android - In this blog, we will learn how to use Coordinator Layout in Android. Coordinator Layout is super-powered FrameLayout that is used to handle the physical transactions or animations between various views present in a particular Activity.
  • How to open a PDF file in Android programmatically? - In this blog, we will learn how to open a PDF file i.e. Portable Document Format file in Android programmatically. Since PDF files are the most used document file format, so, using a PDF file in our application can be a good way of displaying some documents in our application. Let's find, how to open a PDF file in Android programmatically.
  • Understanding Activity Aliases in Android To Preserve Your Launchers - In this blog, we will learn the concept of Activity Aliases in Android. Activity Aliases are used to preserve the Launchers whenever there is a change in the Launcher Activity name. Generally, when we create a shortcut on our home screen and if we change the Launcher Activity, then the shortcut will be removed from the home screen. So, let's find how to deal with this.
  • Implementing DialogFragment in Android - In this blog, we will learn how to implement a DialogFragment in our Android Application. A Dialog Fragment is a fragment that floats over some activity. One common example of Dialog is Alert Dialog. In the blog, we will learn how to make our own custom Dialogs.
  • Tips and Tricks of Android Studio - In this blog, we will learn about some of the Tips and Tricks of Android Studio. This is very important because a machine can do a lot of things if the operator, operating the machine knows how to use it efficiently. Same is with Android Studio. Using some shortcuts will help us in making projects in a lesser time than ever.
  • Implementing Easy Permissions in Android: Android Tutorial - In this blog, we will learn how to implement Easy Permissions in Android. Easy Permissions are used to ask for permissions required by the application explicitly. These are used to ask users for permissions that are dangerous in nature and involves user privacy.
  • Activity Recognition in Android — Still, Walking, Running, Driving and much more - In this blog, we will learn how to use the Activity Recognition API in our Android Application. The Activity Recognition API is used to determine the Activity that a user is doing at a particular instant of time like walking, running, driving, still, etc.
  • Implementing Preferences Settings Screen in Android - In this blog, we will learn how to implement the Preferences Settings Screen in Android. Settings screen are used to change the functionality and behavior of a particular application without changing the system settings. For example, you can change the background of a particular application by using the Settings feature.
  • Implementing Bubbles in Android - In this blog, we will learn how to use Bubbles in Android. Bubbles are a new feature introduced in the Beta version of Android Q. These are used to display notifications of any application over some other application and you can launch any activity by using these Bubbles, something like Facebook Messenger's app.
  • Using SVG Vector Drawables in Android - In this blog, we will learn how to use SVG Vector Drawables in our Android applications. By using SVG images in your app, you can use the same image or icon in every device size and you don't have to worry about the quality of images i.e. you don't have to add different size images for different size mobile devices.
  • Using GPS, Location Manager in Android: Android Tutorial - In this blog, we will learn how to update the location using the GPS of a mobile device. Firstly we will look upon some of the important things that should be kept in mind to use Google map and after that, we will perform an example to live track the user location.
  • The powerful tool DiffUtil in RecyclerView - Android Tutorial - In this blog, we will learn about DiffUtil in RecyclerView. How it is good from the traditional way of using RecyclerView. We will discuss in details
  • Understanding Init block in Kotlin - In this blog, we will understand about init block and how can we use it.
  • Implementing Android Slice - In this blog, you will learn about Android Slice and how to implement it. We have learned a basic way to implement a slice and how to work with it.
  • Understanding the Application Lifecycle in Android - In this blog, we will learn about the Application life cycle in Android. We will learn how to make use of various application states that a particular application has in general.
  • Pair and Triple in Kotlin - In this blog, we will learn how to use Pair and Triple in Kotlin. Pairs and Triples can be used in Kotlin to return two or three variables of same or different types of variables, respectively.
  • LiveData vs ObservableField in Android - In this blog, we will talk about LiveData vs ObservableField in Android. We will also talk about the differences and also compare them.
  • ForEach in Kotlin - In this blog, we will learn about forEach in Kotlin. We will compare it to For Loop and make you understand by an example
  • Mockito cannot mock because : final class in Kotlin - In this blog, we will talk about how we can mock the final class using Mockito. By default, we can't mock the final classes using mockito. Here in this blog, I have talked about multiple ways to test final classes.
  • Replace Switch with When in Kotlin - In this blog, we will learn how to use when instead of switch in Kotlin. We will see some examples to understand the usage of when in the best possible way.
  • Better Logging in Android Using Timber - In this blog, we will be learning about a third party library which we use to log in android studio.
  • What is Lint? What is it used for? - In this blog, we will learn about Lint. Lint is a code scanning tool present in Android Studio that identifies the error in our code and suggests some changes in our code. Before publishing our app, we should use lint for our project. In this blog we will learn how to use lint in a more smarter way.
  • Android KTX - Android development with Kotlin - In this blog, we will learn how to implement the Android KTX feature of the Android Jetpack that was announced in the Google I/O 2018. We will learn how Kotlin will help us to write the same code and use the same APIs used in Java in a much easier and faster way.
  • AutoSizing TextView Implementation for Android - In this blog, we will learn how to autosize the textview. We will learn how to make the TextView scalable according to the size of the container. We have created a complete tutorial of Autosizing the textview.
  • Implementing in-app updates on Android - In this blog, we will learn about the in-app update feature in your Android app. In-app update is a feature that is used to download the update of the app without using the play store. We will see how to use the flexible and immediate in-app update in our app.
  • Using Drag-Drop in Android Applications - In this blog, we will learn how to use the drag and drop feature in our Android app. Drag and Drop feature is used to move one view from one place to other. This will help in moving the UI and the data associated with that item also.
  • Using Exoplayer to play Video and Audio in Android like a Pro - In this blog, we will learn how to use ExoPlayer like a pro. ExoPlayer is a library used to play audio and video in Android apps. You can customize the ExoPlayer according to your needs. And due to this feature, the Youtube app is also using ExoPlayer for video streaming.
  • Exploring Edge to Edge Feature in Android Q - In this blog, we will talk about how to use the Edge to Edge feature of Android Q This will help the user to explore the complete width and height of the device.
  • Getting Started with Firebase RemoteConfig in Android - In this blog, we will learn about the firebase Remote Config feature in Android. By using Firebase Remote Config, we can bring some updated in the App like some color change in the app, without publishing any update of the app on the Play Store. We will cover this topic by doing one example also.
  • Exploring Android ViewPager2 in Android - As Google introduced a new ViewPager called the ViewPager2 with some cool features like vertical orientation, use of Recycler View and many more. So, in this blog, we will explore the new ViewPager2 with its implementation as well .
  • Primary and Secondary Constructors in Kotlin - In this blog, we will learn about Primary and Secondary Constructors in Kotlin. Unlike other object-oriented languages, Kotlin has two types of constructors. So, in this blog, we will learn how to use them.
  • Downloading and Showing Image with Glide Library in Android - In this blog, we will learn how to use Glide for downloading and showing images in our Android application. Basically, Glide library downloads the image and store it into your cache or local memory and uses it when needed in future.
  • Using Swipe-to-refresh in Android Application - In this blog, we will be learning the Swipe-to-refresh gesture that is being used in various application like the Facebook app or the Instagram app, where the user of the app refreshes the app according to their need.
  • Understanding Multidex in Android - In this blog, we will learn how to use Multidex in Android. Basically, Multidex is used when we want to add more than 64K methods in our Android project. If we don't use any Multidex for project having more than 64K methods, then we will encounter DEX error. So, in this blog, we will learn how to use Mulidex to improve functionalities in our App.
  • Getting Started with ShareSheet in Android Q - In this blog, we will understand how to integrate the share sheet in our application and how it is different from DirectShare API which was launched in Android M. This blogs covers the detail and step by step explanation to integrate it .
  • Gradle Tips and Tricks for Android - In this blog, we will learn some Gradle tips and tricks for Android. After reading this blog, you will be able to use various features of Gradle that will help you in developing an Android App faster than before.
  • Getting started with Motion Layout: Android Tutorials - In this blog, we will learn how to use MotionLayout in Android. MotionLayout is a subclass of ConstraintLayout for building animations. Here you will learn how to apply animation without writing any java or kotlin code.
  • Create your own Custom View - In this blog, we will learn about the custom view and how to implement it as one. We will talk about each and every aspect of CustomView like onDraw(), onMeasure(), Why it is necessary and how simply you can create your own Views.
  • Using Custom and Downloadable Fonts in Android - In this blog, we will learn how to use custom and downloadable fonts in android that was introduced in Android 8.0. Now there is no need of writing some piece of code for using the fonts. Also you can choose from any of the thousands of fonts on Google Fonts and use them in your app.
  • Push Notifications in Android Using FCM - In this blog, we will learn using Push Notifications in Android Device using FCM. We will learn how to integrate the push notification feature in the app from scratch and handle the message as well.
  • Understanding Settings Panels in Android Q - In this blog, we will understand the new setting panel which released in Android Q. With Google launching Android Q, Lot of exciting features has also popped up. One amazing feature is Location Service usage and few more.
  • Understanding and Implementing Permission in Android Q - In this blog, we will understand the new privacy-based location permission in Android Q and how to implement it in your app.
  • Getting Started With CameraX Jetpack Support Library - In this blog, you will learn how to use camera-x support library to build your next generation camera app.In this app we will be building a Camera app from scratch.↵
  • Getting Started with Retrofit using Kotlin and RxJava - Android Networking Library - Networking is one of the primary components of any Android application. There are a lot of good libraries out there that helps in making networking fairly easy for us. In this article, I am going to provide you the essential setup and concepts required to build an Android application using Retrofit with RxJava and Kotlin
  • ViewModel with SavedState - In this blog, we will learn about using SavedState in ViewModel. This is the part of Android Architecture Component. You will learn how to Persist ViewModel state across process recreation.
  • Understanding inline, noinline, and crossinline in Kotlin - 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.
  • Understanding RxJava Create and fromCallable Operator - 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.
  • Understanding RxJava Defer Operator - 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.
  • Understanding RxJava Timer, Delay, and Interval 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.
  • Understanding RxJava Zip Operator With Example - 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.
  • Android Browser: Let’s Launch Chrome Custom Tabs with Kotlin - Google had launched a library called chrome custom tabs. As a developer, we have an option to open an in-app browser for better user experience. Chrome Custom Tabs helps us to open web URLs within the context of our app using an installed chrome browser.
  • Understanding Density Independence Pixel: sp, dp, dip in Android - What is the best measurement unit for designing for Android Screen? Density Independent Pixel, Scaled Independent Pixels, Density Pixels or Pixels.
  • Play with Flexbox-Layout for Android - Learn about Google's library Flexbox layout for Android. FlexboxLayout is a library project which brings the similar capabilities of CSS Flexible Box Layout Module to Android.
  • How to download a file in Android and show the progress very easily? - 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.
  • RxJava Operator - Concat Vs Merge - 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.↵
  • What are Android Architecture Components? - What are Android Architecture Components? As the Android Jetpack components are a collection of libraries that are individually adoptable and built to work together while taking advantage of Kotlin language features that make us more productive.These software components have been arranged in 4 categories in which one of the categories is Architecture Components.
  • Android SearchView in Room Database in Kotlin - How to implement SearchView inside Room Database?
  • Android Room Persistence Library in Kotlin - Room Database is an abstraction layer over the SQLite Database which helps us to reduce our work with the SQLiteOpenHelper class.
  • Android SQLite Database in Kotlin - SQLite database helps us to store the data in the database. Android comes with the built-in implementation of SQLite Database.
  • Android Content Provider in Kotlin - Content Provider is one of the Android Component helps to access data of other apps. We will be learning Content Provider implementation in Kotlin.
  • What is Android Jetpack and why should we use it? - What is Android Jetpack and why should we use it? Benefits of Android Jetpack. Build high quality, robust apps using the Android Jetpack. Android Jetpack is a collection of Android software components which helps us in building great Android apps.
  • Android Preferences Settings Screen in Kotlin - Every Android App consists of setting which provides user to change the default behaviour of the application. We are going to implement the settings screen in kotlin.
  • Android SharedPreferences in Kotlin - Android SharedPreferences in Kotlin
  • Android BottomSheet Example in Kotlin - In this blog, we will learn how to implement BottomSheet in Kotlin and handle all its callback
  • Android Bottom Navigation Example in Kotlin - Android Bottom Navigation Example in Kotlin. How to implement the BottomNavigationView in Kotlin?
  • Android Navigation Drawer in Kotlin - Android Navigation Drawer in Kotlin
  • Android ReyclerView in Kotlin - Android RecyclerView
  • All About Android Development In 2018 - What happened to Android development in 2018. Android has changed a lot in 2018. Let's see what actually happened in 2018.↵
  • Android Material Tabs in Kotlin - How to create Material Tabs in Android in kotlin?
  • Android ViewPager in Kotlin - Android ViewPager
  • Android  Fragments and its Lifecycle - Android Fragments
  • Android WebView — in kotlin - Android WebView
  • Android Activity and its Lifecycle - In this blog, we will learn about Activities. In this, we will learn how to create activity and it's lifecycle in detail. We will also learn about Intents and how to navigate from one Activity to another.
  • Android Constraints Layouts - Android Constraints Layout
  • Android Layouts - Relative/Linear/Frame - Understand the Android Layouts to create beautiful screens
  • Android User Interface — View Components - User Interface components like button, text etc provided by Android Studio
  • Introduction to Android Studio IDE - Brief details of Android Studio IDE
  • Welcome Emulator - Run your first Android Application with MindOrks
  • Setup Kotlin in Android Studio - Kotlin is a statically typed programming language which Google has announced as an official language on Android
  • Install Android Studio - Install Android Studio on your machine and configure your device to start developing Android Apps.
  • Navigation Drawer Android Example - Navigation Drawer is the sliding menu that appears on the android screen with a hamburger menu icon in the ActionBar. The construction of it requires placing multiple views inside the navigation portion of the DrawerLayout.
  • Android View Evolution : PlaceHolderView - Implementing RecyclerView with dynamic content and adding listeners on each is a very irritating task. Let's leave animation alone, if we have to do it for nested Recyclers then it’s a nightmare.
  • Android Advance Image Gallery Example - Objectives Outline for this tutorial: 1. We would be building a list of images with two types of views. One of the top with horizontal image list and below with vertical image list and apply animations on these view items as shown in the above display image....
  • Android Beginner Image Gallery Example - This example demonstrate creation of a list of images with animation using PlaceHolderView. For the sake of this example we will be placing our images in the drawable folder.
  • Android Expandable News Feed Example - This view is very different from the Android ExpandableListView in the sense that it’s based on PlaceHolderView which is based on RecyclerView. So, we have the power of reusing the views and managing the memory, that too is a very modular and simple interface.
  • Android Tinder Swipe View Example - Tutorial using PlaceHolderView: In this example we will develop views and architecture to simulate the Tinder Swipe.
  • Android Networking Bare Skin: Understanding JPost - Android networking is typically very involved if you try to implement bottom-to-top. So, we rely on third-party libraries. But never understand what’s underneath it.
  • Modifying Android Tinder Swipe View Example to support auto resize - This thread is in continuation to the Android Tinder Swipe View Example. it modifies the example codes to auto fit various screen sizes. It also fixes the issue of card overlapping the like/dislike buttons and making them unclickable.
  • Android Infinite List with Load More Example - Objectives Outline for This Tutorial: We will be building a news feed, which will simulate JSON data loading from the internet and then populate the list items.....
  • Why Android developers should consider FlatBuffers over JSON - 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.
  • Android Memory Leaks InputMethodManager Solved - Main Activity is not garbage collected even after finish because it is referenced by InputMethodManager indirectly.
  • Android App Performance Tips (Smooth Running Android App) - Tips to make better android app (No lags now … only smooth running UI)
  • Android Activity “launchMode” Explained , Must know for Android Development. - What happens , when we add this launchMode tag in an activity of Android application.
  • Awesome Android Complete References At One Place - Awesome Android Complete Reference Link
  • Using Bitmap Pools in Android - 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.
  • The Best Android Networking Library for Fast and Easy Networking - 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?↵↵
  • Using ThreadPoolExecutor in Android - 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 how it’s implementation).
  • RxJava + Fast Android Networking - 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.
  • Comparing Android NDK and RenderScript - The Native Development Kit (NDK) is a set of tools that allow you to leverage C and C++ code in your Android app. You can use it to build from your own source code, or to take advantage of existing prebuilt libraries.↵
  • Migrating from RxJava 1.0 to RxJava 2.0 and Learn RxJava by Examples - 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.
  • Creating Custom Annotations in Android - 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.
  • Android Development Useful Tools - 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.
  • Amazing Open Source Android Apps - 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.
  • Using Constraint Layout in Android - 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.
  • Android Development Best Practices - 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.
  • Android App Optimization Using ArrayMap and SparseArray - 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.
  • Android Code Style And Guidelines - 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.
  • Introduction to Dagger 2, Using Dependency Injection in Android: Part 1 - 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.
  • Introduction to Dagger 2, Using Dependency Injection in Android: Part 2 - This is the part 2 of the article series. In part 1 we understood the need and advantages of dependency injection. We also got an overview of Dagger 2. In this part, we will focus on implementing the DI using Dagger in an android app.
  • Why You Must Try Kotlin For Android Development ? - Kotlin is a statically typed programming language for the JVM, Android and the browser.↵
  • Debugging Android Databases And Shared Preferences In The Easiest Way - 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.
  • Awesome Android Open Source Libraries - 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.
  • Android Dagger 2: Critical things to know before you implement. - Dagger 2 in a Dependency Injection framework for Android. I assume the reader is familiar with Dagger and it’s usage pattern in Android for the sake of this Article.
  • Google Releases The Developer Preview Of Android Things (IOT) - 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 Things Tutorials — Getting Started - 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?
  • Battery Optimization for Android Apps - 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 uninstall the application because of the battery draining issue.
  • Using SnapHelper in RecyclerView - 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.
  • Use StrictMode To Find Things You Did By Accident In Android Development - 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.
  • Android App Performance Metrics - 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.
  • Android TensorFlow Machine Learning Example - Machine Learning: Integrating Tensorflow in Android
  • Creating Custom Model For Android Using TensorFlow - How to train custom model for Android using TensorFlow.
  • A Complete Guide To Learn RxJava - A Complete Resources To Learn RxJava At One Place. 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. As we know that the RxJava is the most important library for Android Projects. So we must have a proper grip on using RxJava in the Android Projects.
  • Improve Your Android Coding Through Annotations - 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.
  • A Complete Guide To Learn Dagger 2 - 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.
  • A Complete Guide To Learn Kotlin For Android Development - A Complete Resources and Tutorials To Learn Kotlin For Android Development At One Place.
  • Why use Facebook’s Android Device Year Class Library? - Year Class Library by Facebook. Building for the next billion users using the Year Class Library. This library is very important.
  • How to reduce APK size in android - Recently we have released an Android application called Correctify. Then, many of the folks started asking us that how this application size can be less than 2.5 MB. Then, I thought to write this article to answer it. There is nothing special, we only have to follow the simple and standard things.
  • How To Learn Android Development - 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.
  • Android Interview Questions - 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.
  • Android Package Name Vs Application ID - 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.
  • How To Become A Complete Android Developer - 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.
  • The New Dagger 2 Android Injector - 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.
  • Implementing EventBus With RxJava — RxBus - 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.
  • What are Coroutines in Kotlin? - Coroutines are great features available in Kotlin Language. I played with it and really liked it. Coroutines are light-weight threads. A lightweight thread means it doesn’t map on the native thread, so it doesn’t require context switching on the processor, so they are faster.
  • I have 1 year of experience in Android. Now What? - 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.
  • How Voice And Video Call Works? - 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.
  • Android Task and Back Stack Review - Android Activities are the logical construct of the screens that we want a user to navigate through. The relation that each Activity holds with respect to other is very crucial for a good user experience.
  • Handle SSL(Https) Certification Path Exception for Java Applications - As a java developer, if you have not been stung by the below-mentioned exception while running a Java application developed by you on your machine that hits an SSL server (https), then be prepared to get a nasty experience at some point of your coding journey.
  • Essential Guide For Designing Your Android App Architecture: MVP: Part 3 (Dialog, ViewPager, and Adapters) - During the course of this development, many of you inquired about the implementation of Dialogs and Adapter based views in this architecture. So, I am writing this article to explain the place-holding for these.
  • Android MVP Architecture Extension with Interactors and Repositories - Sometime back I wrote a series of articles on the design of MVP architecture for Android. The project was very well received in the community and hundreds of companies and developers added the architecture in their applications.
  • PRDownloader — A File Downloader Library For Android - 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.
  • Understanding Types Of Observables In RxJava - Observable, Operator and Observer. An Observable is like a speaker which emit value. It does some work and emits some values. An Operator is like a translator which translate/modify a data from one form to another form. An Observer gets those values.
  • Best Articles on Android That We Published In 2017 - 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.
  • How to create multiple apk files for android application - Too many android devices and much more to come and among them, various different CPU architectures and different screen densities devices are there. Making single apk with all device compatible, increases your apk size, as it has resources for every device.
  • Detecting and fixing memory leaks in android - Many a time we see ANR dialog while using android apps, lags in our apps, we also see OutOfMemoryError in Android Studio while building apps. All these kinds of stuff happen due to memory leaks.
  • Applying Proguard In An Android Application - ProGuard is a tool used to minify, obfuscate, and optimize the code in an Android application.↵
  • Powerful Android ORM: greenDAO 3 Tutorial - greenDAO is an open source Android ORM making development for SQLite databases easy. It relieves developers from dealing with low-level database requirements while saving development time.
  • Learn Kotlin — Extension Functions - As the name implies, the extension functions are the functions that help us to extend the functionality of classes without having to touch their code.
  • Learn Kotlin- Destructuring Declarations - Destructuring is a convenient way of extracting multiple values from data stored in (possibly nested) objects and Arrays. It can be used in locations that receive data (such as the left-hand side of an assignment).
  • Learn Kotlin - Data Class - We frequently create a class to do nothing but hold data. In such a class some standard functionality is often mechanically derivable from the data. In Kotlin, this is called a data class and is marked as data.
  • Learn Kotlin —  Sealed Classes - From the documentation: Sealed classes are used for representing restricted class hierarchies, when a value can have one of the types from a limited set, but cannot have any other type. They are, in a sense, an extension of enum classes: the set of values for an enum type is also restricted, but each enum constant exists only as a single instance, whereas a subclass of a sealed class can have multiple instances which can contain state.
  • Learn Kotlin —  apply vs with↵ - There are many great features available in Kotlin, we can take advantage of all these features to write the better application in Kotlin. Among all those features, apply and with are important feature. We must know when to use which one.
  • Learn Kotlin —  lateinit vs lazy - There are many great features available in Kotlin, we can take advantage of all these features to write the better application in Kotlin. Among all those features, lateinit and lazy are important property initialization feature. We must know when to use which property initialization.