Tag: Android

Testing Android Flows in ViewModel with Turbine

As it is common now, the correct architecture should contain decoupled layers. Inter-layer communication between them is done by streams, or in our case, flows, in Android. To make our solutions foolproof, we should create tests around every component, and the ViewModel is no exception. The more cha...

How Android Handlers and Loopers Help Android Apps Do Their Magic

Hey there, little tech explorers!  Are you ready to learn about some super cool things that make our Android apps work like magic? Today, we’re going to talk about two special helpers in Android land: Handlers and Loopers! Imagine you have a bunch of toys you want to play with, but you...

Learn Simple Android Compose Flow Lifecycle Handling With Counter

Sometimes when we try to understand Android Lifecycle, we crack our heads, wondering what scenario they are really important to tackle. Not understanding them often caused us to miss out on using them appropriately. Here, I came up with a very simple design, i.e. a counter, that helps provides va...

Android UI Design: Limitations of Views

A User Interface (UI) is the point of interaction between a user and a system. It encompasses the visual elements used to reflect and/or control the state of the system. This “state” refers to the condition of the system at a specific moment. Since the inception of Android development...

Now in Android #89

Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.     Most of the content of this post is available in the form of a video or podcast, so feel free to watch or listen rather than re...

What are the AI tools I can use in Android?

As of my last knowledge update in September 2021, there are several AI tools and frameworks that can be used in Android app development to integrate artificial intelligence capabilities into your applications. Please note that the field of technology evolves rapidly, so newer tools might h...

Introduction to Jetpack Compose: Building Android User Interfaces Made Easy

Introduction Are you tired of wrestling with XML layouts and cumbersome UI code in Android app development? Say hello to Jetpack Compose — a revolutionary UI toolkit that’s changing the way developers create beautiful Android interfaces. In this comprehensive guide, we’ll take y...

Best Practices for Testing Android Applications with Espresso and JUnit

Testing Android applications is an essential skill for any developer who wants to ensure the quality and reliability of their code. One of the most popular tools for testing Android apps is Espresso, a framework that provides a fluent API for writing UI tests. Espresso works well with JUnit, the sta...

How To Build, Sign And Publish Android Application Using Github Actions

The main goal of this article is to provide a complete implementation of a Github Workflow capable of securely building, signing, and publishing Android apps. Follow these steps to create the Github Workflow: 1. Generate a new signing keystore 2. Add the following secret...

10 Useful Kotlin Extension Functions for Android Developers

Thanks for showing your love for the Kotlin extension functions in the first part. I would like to share more extensions to help you improve your programming experience with Android and Kotlin. If you have not read it yet, you can check it out at the link below. 10 Useful Kotlin Extension Functio...

Enum Classes and Sealed Classes in Kotlin

When developing applications,  ensuring the accuracy of data representation and controlling program behavior are crucial aspects of maintaining code quality. Two powerful tools that Kotlin offers to achieve these goals are Enum Classes  and Sealed Classes  In this article, we will exp...

Android Studio Live Code Templates to Save Your Time Coding

Android Studio (and any other IDE developed by JetBrains) provides multiple handy auto-complete shortcuts to fill the declarations, method calls, etc. Some of them are for the keywords in Kotlin / Android specific. Avoid repeating some actions just because you avoid using the context helper in IDE. ...

Creating Your First Android App: A Beginner’s Tutorial

Welcome to this beginner’s guide to creating your very own Android app! In this tutorial, we will walk you through the process of setting up your development environment, designing the user interface, adding functionality, and running your app. By the end of this tutorial, you’ll have a ...

Solving the Families Policy Requirement Rejection in Android PlayStore

A recent challenge many Android developers have faced is the consistent rejection of apps from the PlayStore, particularly concerning the “Families Policy Requirement.” This policy insists that apps targeting children must not transmit specific identifiers, including Android advertising ...

Choosing the Right Tech for Android Development: Java, Kotlin, Flutter, and React Native

In the swiftly evolving realm of mobile app creation, the choices you make regarding technology wield substantial influence over your project’s triumph and efficiency. Within the domain of Android app development, a handful of alternatives rise to prominence: Java, Kotlin, Flutter, and Re...

Changing the Android App Icon Programmatically

Searching for a solution online is relatively easy. However, what intrigued me was the reaction on StackOverflow whenever someone asked for a way to implement this. Respondents often insist that it’s impossible, despite the existence of workarounds. If there are workarounds, then it is not ...

A Beginner’s Guide to Retrofit in Android (Java)

In the world of Android app development, making network requests to fetch data from APIs is a common task. Retrofit is a powerful and popular library that simplifies this process by providing a clean and efficient way to make API calls. In this tutorial, we’ll walk through how to use Retrofit ...

Memory Optimizations in Android

Memory optimization is an important aspect of developing any software, and it is particularly crucial in mobile applications where resources are often limited. Android, being the most popular mobile operating system, has a wide variety of devices with varying memory capacities and configurations. To...

The Future of Affordable Android App Development: Trends and Innovations

In the fast-paced world of technology, the landscape of Android app development is constantly evolving. One of the most significant shifts is the focus on affordable Android app development. As businesses of all sizes seek to create impactful applications without breaking the bank, staying updated o...

Dependency Injection (DI) in Android: Providing Interfaces

Dependency injection is a powerful concept in Java, and Dagger2 has become one of the most popular frameworks for implementing it. One of the challenges developers often face is managing multiple implementations of a particular dependency. This article delves into how to provide interfaces in Java u...

Deep Dive Into Deep Link. Part 2. Issues: Device, OS Version

Last time we discussed the following topics: Introduced the main concepts: Deep Link, Web Link, Android App Link, disambiguation dialog. Talked about their similarities and differences. Explored the features of the URI format in Android. Described the initial task. Presented the Deep L...

Handling Android App Links

When a user clicks on a link, they have just one thing in mind, they want to see the content which they wish for. Now there are 3 diff types of links, Deep link, and HTTP/HTTPS scheme URL. A deep link URL is something where you have defined some prefixes and schema in your Android Manifest fil...

API Calls with Retrofit in Android Kotlin: A Comprehensive Guide

In the world of modern software development, communication between different software components is crucial. One of the most common ways to achieve this is through APIs (Application Programming Interfaces). When it comes to making API calls in Android app development, Retrofit has become the go-to l...

Getting Started with Room Database in Android

Local data storage is crucial for many Android applications, allowing them to store and retrieve data efficiently. In this guide, we will explore Room, a powerful library that simplifies database management in Android apps. We’ll cover everything from setting up Room to performing database ope...

Mastering the Android Developer Interview: Essential Topics and Tips for Success

I want to share my experience and insights on preparing for an Android Developer interview. It’s an exciting and sometimes nerve-wracking journey, but with the correct preparation, you can ace that interview and land your dream job. Speaking of which, I recently went through the intervie...

Embracing Flutter with an Android Mindset

As a native Android developer with no prior experience with Flutter, I decided to explore how it would be to build a Flutter project with an Android mindset. I wanted to see how easy or hard it would be to come up with a full project in as little time as possible, while following Android developm...

Mastering Android App Development: Your Roadmap to Success

Android, as one of the leading mobile operating systems, continues to dominate the market, and the need for skilled Android app developers is growing rapidly. To thrive in this competitive landscape, staying ahead of the curve by embracing the latest trends, technologies, and best practices is cruci...

How to Monitor/Observe Network Availability for Android Projects

Network/Cellular data is widely used in Android Projects. Most of the app currently exist in the play store have API call some way or another. As in the nature of API (Application Programming Interface), you are interacting with another application that your project does not have any authority in th...

Recyclerview generic adapter — Android

RecyclerView is a powerful widget for displaying lists and grids in Android applications. To maximise code reusability and maintainability, it’s crucial to build a flexible and generic adapter that can work with various data types effortlessly. In this blog post, we’ll explore the implem...

Building a vertical SeekBar from Scratch in Java for Android: Ultimate Guide.

SeekBars are a powerful tool in Android app development for allowing users to adjust values along a horizontal bar. However, there are times when a vertical orientation is more appropriate for the design or functionality of an app. This is where a custom vertical SeekBar comes in handy. In this t...

10 Essential Questions About Gradle in Android Development

Gradle is a powerful build automation tool used extensively in Android development. It simplifies the process of building, testing, and deploying Android applications. Whether you are a beginner or an experienced developer, understanding Gradle is crucial for optimizing your Android development work...

Android development contribution to the advancement of AI

The correlation between Android development and Artificial Intelligence (AI) has recently become a subject of interest for further exploration. It is believed that the application of Android development can contribute to the enhancement of AI. The combination of these two areas has the potential to ...

How to Make Multipart Requests in Android with Retrofit | How to upload image to server

In networking, a multipart request is a type of HTTP request that allows you to send multiple types of data in a single request. This can be useful when you need to upload files, such as images or videos, along with other data, such as text or metadata. A multipart request is structured as a seri...

Creating Adaptive Icons for Android in React Native

As an app developer, you’re well aware of how important it is to make your application look as professional and enticing as possible. This process begins with the first thing users see is the application’s icon. While the process of creating adaptive icons for Android in React Native ...

ULTIMATE Roadmap for beginner Android developers. Track your progress and grow

I know you want to become an Android developer. Android development can become difficult without a roadmap. It can be difficult for a beginner Android developer to understand complex topics like Dependency Injection, Android Architecture, and Jetpack Compose. There are too many topics to cover...

How to become an Android Developer — only good advice

For the purpose of this article I’ll assume that the reader has no connection to IT business or has no experience with any programming language. So, you want to change your career path and your life by becoming an Android Developer. I congratulate you! This is a very rewarding occupation wi...

The Power of Android Immediate and Flexible In-app Updates: Enhancing Security and User Experience

In the rapidly evolving world of technology, staying up-to-date is crucial for developers and users alike. Mobile applications, especially those on the Android platform, require timely updates to introduce new features, fix bugs, and address security vulnerabilities. In this article, we will explore...

File Upload in WebView | Android

Sometimes we want to show some web views in our app and handle them using a javascript bridge. Instead of doing everything natively. To understand more about webView please visit the below link. Build web apps in WebView | Android Developers Edit description developer.android.com This...

Mastering RecyclerView in Android with Kotlin

RecyclerView is a powerful and versatile widget in Android development, designed to efficiently display large sets of data. With its flexibility, it replaces the traditional ListView and GridView, providing better performance and customization options. This article aims to guide you through the proc...

SimpleExoPlayer android java play video online

Add gradle.properties android.useAndroidX=true android.nonTransitiveRClass=true android.enableJetifier=true 2. Add in app build.gradle dependencies implementation 'com.google.android.exoplayer:exoplayer:r2.4.0' implementation 'com.google.android.exoplayer:exoplayer-c...

Getting User Location in Android App

Learn how to implement location service into your android app using Kotlin and the Fused Location Provider API. This article will guide you through the process of retrieving the user’s current location and handling common errors that may occur. By the end of this article, you’ll have the...

Mastering Dagger Hilt: A Key to Success in Android Interviews

In Android development, dependency injection is a crucial concept that helps manage dependencies and promotes code modularity. Dagger Hilt, a powerful library, offers an easier approach to implementing dependency injection in Android applications. In this blog, I will demystify Dagger Hilt, explo...

Add Firebase Crashlytics in android java

Insert Firebase Crashlytics in app build.gradle to get plugin plugins { id 'com.android.application' id 'com.google.firebase.crashlytics' id 'com.google.gms.google-services' } dependencies { implementation 'com.google.firebase:firebase-cras...

Android Disable Dark Mode programmatically using java

1.Before onCreate insert the line to set dark mode set to no. @Override protected void onCreate(Bundle savedInstanceState) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } ...

Coroutines on Android (part I): Getting the background

Fetching a webpage or interacting with an API both involve making a network request. Similarly, reading from a database or loading an image from disk involve reading a file. These sorts of things are what I call long running tasks — tasks that take far too long for your app to stop and wait fo...

Firebase Performance Android Java Integration Steps

Add Internet permission in manifest <uses-permission android:name="android.permission.INTERNET" />Mani 2. Build gradle add in perf plugin // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotl...

Media Permission for Android 13

Android SDK 33 has several new behaviors to support your application. One of them is related to permissions. The permission request that is quite noticeable is to read the media. In previous releases, AndroidManifest.xml states 2 permissions which are READ_EXTERNAL_STORAGE and...

Find the Advanced Money-Making World on SproutGigs - Your Way to Success!

Hello,my fellow online money-makers and yearning business visionaries! Today, I have something genuinely energizing to impart to you - a definitive entryway to the universe of online pay, SproutGigs! Assuming you've been looking for that brilliant pass to support your income and open new open do...

Jetpack Compose: Revolutionizing Android UI Development

In the ever-evolving world of Android development, crafting a seamless and visually appealing user interface (UI) has always been a top priority. With the release of Jetpack Compose, a declarative UI toolkit by Google, developers now have a powerful tool at their disposal that simplifies the process...

Combining Hilt dependency injection with Workers for harmonious Android development

Dependency Injection (DI) is widely used in modern Android development. It simplifies the process of creating and provisioning objects with their dependencies and reduces the likelihood of bugs resulting from misconfigured components. Hilt, a DI library built on top of Dagger, has made things even s...

48 Stories To Learn About Android Development

  1. How to Sign Android APKs with Apache Cordova: A Brief Guide A short article on how to easily and correctly sign your Cordova Android APK. 2. How to Make Splash Screen in Android Hello World, Today we are going to see how we can make a beautiful Splash Screen in your And...

A Brief Story About Animations in Android

In the prehistoric era, cave paintings served as a powerful form of communication, documenting various aspects of daily life, including hunting scenes and spiritual beliefs. These visual depictions not only conveyed information but also offered valuable insights into the cultural, artistic, and hist...

Everything you need to know about Memory Leaks in android.

One of the core benefits of Java, or to be more accurate, of the JVM (Java Virtual Machine), is the garbage collector (GC). We can create new objects without worrying about freeing them up from memory. The garbage collector will take care of allocating and freeing up the memory for us. We wo...

Android App Development: Empowering Mobile Experiences and Transforming Industries

Android app development has revolutionized the way we interact with technology and transformed the mobile landscape. With the widespread adoption of smartphones, Android apps have become an integral part of our daily lives, catering to diverse needs and preferences. This essay delves into the signif...

Displaying the lines of the graph (MPChart) in different colors depending on whether the value is positive or negative

Hello everyone, on one of my previous projects I encountered an interesting problem, to solve which I needed seventh-grade geometry. I hope this will help you solve a similar problem, or maybe it will simply be interesting to read. The task was that I needed to display the user’s earnings s...

Unit Testing for Android : A Beginner’s Guide

“ONE TEST IS MORE THAN ZERO TESTS” Unit testing is a crucial phase of software development. It brings about a development paradigm known as Test Driven Development (TDD). These tests typically test the business logic of applications. If you are not writing tests, you are...

Gradle Version Catalog: A Step-by-Step Guide — Part2

In the Part 1 of this series, we have discussed about the theory behind Gradle Version Catalog and its role in the dependency management. If you haven’t read it yet, I recommend to read it from here, for comprehensive understanding of this powerful tool. Here the step-by-step guide on ...

Deep-Linking in Jetpack Compose — Android

In this article, we’ll learn how to easily implement deep-linking in Jetpack Compose. What is Deep-Linking? Deep-linking allows users to navigate to specific content within an app directly from an external source, such as a website or another app. Dependency Go ahead to&nb...

Using Retrofit to upload file and some data on server in Android App.

During my recent project, I utilized the Retrofit library in my App to efficiently handle file uploads alongside additional data fields. While implementing this functionality, I encountered some challenges that I want to share with you. I would like to begin with Retrofit library, Retrofit is a p...

The Google Pixel 6 – A Top Choice for Android Enthusiasts

The Android smartphone market is flooded with numerous options, each boasting a unique set of features and capabilities. Among the sea of choices, the Google Pixel 6 stands out as a top-tier option, combining cutting-edge technology with a user-friendly experience. In this essay, we’ll explore...

Implement Clean Architecture in Android

Software architecture defines a set of rules for writing software, which helps the developer to structure the code in a well-mannered way so that the software is reliable and scalable. It helps determine various qualities such as scalability, performance, security, code reduction, etc., and analy...

Checking Internet Status in Basic4Android

Basic4Android lets you use WebView to load URLs in your application, but if your phone isn’t connected to the internet when the program runs, an error message will show up in the WebView itself, which doesn’t look nice… By using this piece of code, you can check if the user&rsq...

Make your Android Studio Look Awesome

Developers are obsessed with dark mode. We purposefully change the default color scheme of our IDEs and Code Editors from standard white to an inverted color theme. Sometimes we play with the IDE settings for fun and change the way functions, classes, and different parts of our code get highlight...

Android Developers and Accessibility — Challenges and Proposed Solutions

My current Big Project is my master’s thesis — I’m writing about Android accessibility, and my goal is to create a list of checks Android developers could use to create more accessible apps. I’m super excited about the theme, and once it’s ready, I will definitely share...

10 Practical Examples of Higher-Order Functions in Android Development

Kotlin is a modern programming language that has become increasingly popular due to its expressiveness, conciseness, and versatility. One of its key features is the support for higher-order functions, which allow you to write more concise and flexible code. A higher-order function is a function that...

Decoding the Android Manifest: A Beginner’s Guide

When developing an Android app, there is a critical component that plays a pivotal role in defining your app’s identity, permissions, and behavior—the Android Manifest. In this beginner’s guide, we’ll dive into what the Android Manifest is all about, its significance, and how...

Video and Image Capture with CameraX in Android

Table of Contents Permissions Image Capture - Save Photo - Capture Photo Video Capture Getting Started App level build.gradle file, def camerax_version = "1.3.0-alpha02" implementation "androidx.camera:camera-core:${camerax_version}" impleme...

Release your build on the Google play store for Internal testing

This year for the very first time I was making a test release on the Google play console. And when I was going through the process of understanding how to do it. It was very confusing to understand how to do it. So much back and forth to understand the app signing key. So here in this article, I am ...

Reduce Android app bundle size

Android apps are a huge industry. Every major and minor platforms have equivalent Android apps for their users. The Android market is booming with billions of apps. But not all apps succeed. If you are one of the developers building an Android app to make a living or to make an impact you want to ma...

Essential Android Security: Protecting Your App

We’ll begin our journey through Android apps security from a minimal setup. The app is already using HTTPS-only connections (or WSS in the case of WebSocket), and the backend is secure on its own. Basic initial setup What could go wrong? Lots of things! First of all, be sure ...

Unveiling the Best Android Phone: A Fusion of Innovation and Performance

In the vast and competitive landscape of smartphones, Android devices have become synonymous with versatility, customization, and cutting-edge technology. This essay aims to delve into the features that define the best Android phone, considering aspects such as performance, design, display, camera c...

How to add background image to your Android project with Jetpack Compose

There could be instances when we might decide to use an image as the background instead of the default background color for some specific screens in the Android app we are developing. With the combination of Jetpack Compose and Kotlin programming language in Android Studio, this can be easily achiev...

Deep Dive Into Deep Link. Part 1. Introduction and the initial problem

The reason for this material was a task from our past project. The goal was to expand the coverage of the application’s content with new Deep Links. It all sounded simple, but when we started testing the solution, there were some non-obvious problems: on different versions of Android, shells, ...

A Comprehensive Guide to Memory Profiling in Android Studio

Memory management is crucial for developing efficient and high-performance Android applications. As applications become more complex, it becomes essential to analyze and optimize memory usage to ensure smooth user experiences. This is where memory profiling comes into play. In this article, we will ...

How to Use an Android App

In today’s digital era, smartphones have become an integral part of our lives, and Android apps play a significant role in enhancing our productivity, entertainment, and connectivity. Whether you are new to the Android platform or want to explore a new app, understanding how to effectively use...

Context in Android

Every Android developer quickly realizes the significance of the Context class right from the start of their journey. The Context is like a key that unlocks a treasure trove of essential resources and services within an Android application’s environment. It acts as a bridge connecting develope...

Jetpack Compose: The Future of Android App Design

Jetpack Compose is a modern UI toolkit for building native Android apps using a declarative approach. It allows developers to create stunning and interactive user interfaces by describing the desired UI hierarchy and behavior in simple, composable functions. With Jetpack Compose, you can focus on...

Mastering Android WorkManager: A Comprehensive Guide

In modern Android app development, managing background tasks efficiently is crucial for delivering a smooth user experience. Android WorkManager is a powerful library that simplifies and automates the execution of background tasks in a flexible and efficient manner. In this comprehensive guide, we w...

Android Jetpack Compose: Inset Padding Made Easy

Ina typical Android App, other than the app content, there are other visible elements on shown top of the app, as shown in the picture below. They are called Insets.   Sometimes we want to expand our app content’s view into these insets area, or we want to pad our view not to be blo...

Why am I building Android apps?

I started building Android apps around 2018 when everyone wanted to make money by building apps that solve real-world problems. I took on an internship with very little experience. I build a couple of Android apps using Firebase and Google APIs. I was more and more comfortable with building apps ...

How to get the Bluetooth Host Controller Interface logs from a modern Android phone

Most of the guidance floating around the internet for extracting the Bluetooth HCI logs from Android is grossly out of date. Here is how I managed to achieve it with a Samsung Galaxy S10 running Android version 10. Things that don’t work on this version of android, for this phone at least, ...

How to change the default app icon to the preferred icon for your Android app project in Android…

Every Android mobile application usually comes with unique app icon associated with it by the Android Developer. An app icon visually represents a mobile application on the screen of user’s device, or in any app store, for example, Figure 1 shows app icons for various applications on the scree...

Android Accessibility — Resolving common Talkback issues

Many Android applications suffer from similar Talkback issues and at Microsoft To Do we run into these often as well. We use multiple strategies to make our app more accessible. This article covers a few scenarios where Talkback experience is improved. A companion Github repository containing the...

From Android to Multiplatform: Migrating real 100% Jetpack Compose App to fully Multiplatform App.

App is habit tracker like. User is able to define steps in the process and track consistency. User either wins or loses. The goal is to keep win streak going. Some of the things app is using: Jetpack Compose for UI Hilt for Dependency Injection Jetpack Navigation for navigation ViewMo...

How to create an APK from the Android App Bundle

Let's suppose that for some reason we are interested in doing some tests with the version of Android that is in production and we cannot install it directly from the Play Store because it is being published progressively, one option is to download the AAB file from the Google Play Console a...

7 Secretive Arts of Developing Epic iOS and Android Apps.

In a world driven by technology, the demand for innovative mobile applications has reached a fever pitch. Developers are constantly striving to create groundbreaking apps that captivate audiences and redefine user experiences. This article will unravel the enigmatic world of app development, providi...

How to be prepared for an Android Developer job interview and improve your skills

First of all, this article isn’t just for fresh starters. Most of the information I have is from lessons I have learned while I have been working. They could be very useful whether you are looking for a job or seeking to improve yourself. I have been working as an Android Developer for 7 ye...

Android MVVM Architecture Simplified

In modern software development, writing Graphical User Interfaces (GUIs) from scratch is uncommon due to the time it takes and the redundancy it entails. Instead, developers rely on preexisting components to achieve their desired outcomes, whether it’s rendering UI elements or performing busin...

Enhancing Android TV Playback Experience with MediaSession

In this post, we'll learn about Android MediaSession API, why we should use it, and how to implement it on Android TV (or Fire TV) apps. After setting the ground, we'll follow a step-by-step guide on a basic MediaSession implementation. The sample app used for this articl...

Reasons Why Kotlin is the Future of Android Development!

In recent years, Kotlin has emerged as a powerful and preferred programming language for Android development. Developed by JetBrains, Kotlin was officially endorsed by Google as a first-class language for Android development in 2017. Since then, its popularity has soared, and it has become the go-to...

Android Mastering the Integration: Coexisting Google and Huawei Mobile Services in a Single…

Hello dear Android developers, today I will give you information about using HMS and GMS libraries over a single code base. We will also make an example of using Google Maps and Huawei Map Kit in the same project as an example. If you’re ready, let’s start! First of all...

Learn Unit Testing in Android by building a sample application

In the last article, I listed out the benefits of Unit Testing your applications. In this tutorial, we’ll take a look at how to begin Unit Testing your Android Applications. If you haven’t checked out the previous article on why you should unit test your android app, th...

My Transformative LGMVIP Internship Journey: Unlocking New Skills and Experiences

I recently had an incredible internship experience with LGMVIP, a prestigious program offered by LetsGrowMore (LGM). Throughout my internship, I gained valuable skills, worked on interesting projects, and connected with a supportive community of learners. In this blog post, I’ll shar...

Android Unit Testing Basics

In mobile application development, we have many trending things which are in progress like MVVM, Jetpack, KMM(Kotlin Multiplatform), etc. Testing is one of the important and preferred things nowadays. Testing has become a crucial factor in development. There are multiple strategies for app testing. ...

Write your First Line of Code in Kotlin for Android!

In 2017, Google announced Kotlin as an official programming language for Android development. At the Google I/O conference held in May 2017, Google declared Kotlin a first-class language for Android app development, alongside Java. This means developers can use Kotlin to build Android applications w...

Best Android App Development Tools to Use in 2023

Android is still the most popular operating system around the world. That implies that Android apps are highly rated. The majority of companies that create mobile apps develop apps for many devices, both Android devices as well as iOS devices. You must use the most effective tools to create an impre...

Building a Caller ID and Spam Blocker App for Android in 2023

Welcome to the world of app development! In this blog, we’ll be exploring the basics of building a Caller ID and Spam Blocker app for Android. Despite the numerous challenges posed by the latest Android APIs, including background restrictions, creating a functional and user-friendly app i...

Activity Context vs Application Context: A Deep Dive into Android Development

The journey through Android development is fraught with complex concepts, and the notion of ‘Context’ is undoubtedly one of the most ubiquitous, yet often misunderstood. This silent workhorse, always present, yet frequently misused, is a gateway to a too many of Android system services a...

Enhanced Crashlytics Investigation for your Android App

In more than 10 years as an Android engineer, I’ve seen a ton of crashes that were impossible to reproduce or things that are behaving in a non-sense when reading stack traces. Most of the time, I’ve left things as-is, considering it was something beyond my power. I’m pretty sur...

DateRangePicker Using Jetpack compose

The DateRangePicker is a user interface component in Android that allows users to select a range of dates. It is commonly used in applications where a date range selection is required, such as booking systems or event planners. Add below dependency implementation "androidx.compose.mater...

Android Jetpack Compose: CompositionLocal Made Easy

InJetpack Compose, we commonly heard about Recomposition and Remember, the two important concepts to grasps how one can work with Jetpack Compose. Android Jetpack Compose: Recompositiom Made Easy Android Jetpack Compose: Remember Made Easy However, when we check out the&n...

Clean Architecture: The Key to Modular and Testable Android Apps

Imagine you’re building a house. In Clean Architecture, your codebase is like that house. It’s organized in distinct layers, each with its own purpose and responsibilities. Just like a house has an outer shell, rooms, and inner workings, Clean Architecture has layers: Presentation (UI), ...

How to change/rename the app name in react-native(in android and IOS)

To change the app name in a React Native project, you’ll need to make adjustments both in the code and possibly in the configuration files. Here’s a step-by-step guide on how to do it: Change the Display Name (Visible Name): To change the display name of your app that appears on ...

Canopas Newsletter

Hello Readers, Thanks for being Canopas subscribers!!! Here is our curated collection of links and a brief intro about this week’s latest updates of different technologies if you have missed any. Our Stack Weekly iOS Stack Weekly — Issue#87 This week in...

Become More Senior Android Developer with these 15 Android Studio Tips & Tricks — part 1

Ifyou read my 50 Android Studio Tips, Tricks & Resources article (over 10k ), you will probably find this useful as well. The idea behind this story is to extend your knowledge and know-how even more about Android Studio features and how to use them efficiently and with a proper perfor...

Uploading Files to an AWS Signed URL using Ktor on Android

This post is based on a recent experience where the need arose to upload a file directly to an AWS signed URL instead of what we were previously using, GraphQL FileUpload. As there are many good examples of how to perform this upload using Retrofit 2, this post is aimed at helping other Android deve...

The Syntax Chronicles: Implementing Google Sheets API in your Android app

Over the past few weeks, we’ve looked in detail at securely managing API keys in Android apps and creating our own API with Google Sheets. Today we bring the two together by integrating the Google Sheets API into an Android project based on the MVVM architecture. Preparation in build.gradle...

Android Fragmentation state. Did Google fix it?

In Android 13 a new feature called Photo Picker appeared. It allows applications to access individual user photos and videos without giving them full access to the photo/video or the entire memory of the device. This is a good feature for limiting an application’s access to a user&rs...

What’s new in Android 14 for developers

Android 14 is already here, so I took the documentation, experts’ reviews, and other available resources to sort out all the important changes that will affect most application developers. Let’s examine new restrictions on background mode, changes in Foreground Service, new restrictions ...

Android Stack Weekly — Issue#96

Streamlined Android Sign-In with Credential Manager Passkeys Explore the latest in Android sign-in security and convenience with Credential Manager Passkeys. This blog post discusses how this feature simplifies and enhances user authentication on Android devices for a seamless experience. Crea...

Modularization of Android project in practice

In this article, I will demonstrate how I modularized my existing project, creating structure and clarity for both the project and myself. I’ll showcase this through a concrete example and how I broke down my project into modules. Basics of Modularization In a growing codebase, maintaina...

Testing Android apps for flaky network situations with Flaker

In today’s world, every app is connected to the internet. And as we all know, network conditions are not always stable. As part of a good user experience, developers should test their apps for flaky and slow networks to see how they behave under these conditions. Existing ways… Em...

Become More Senior Android Developer with these 15 Android Studio Tips & Tricks — part 1

Ifyou read my 50 Android Studio Tips, Tricks & Resources article (over 10k ), you will probably find this useful as well. The idea behind this story is to extend your knowledge and know-how even more about Android Studio features and how to use them efficiently and with a proper perfor...

Migrating an Android app to iOS with KMP — Part I: First steps and architecture

Since I started Alkaa, a task management open-source app, I have dreamt of also releasing it on iPhone. However, I don’t have experience in developing apps for iOS, and porting all the features to Swift would be an exhaustive job. Imagine how surprised I was when JetBrains introduced K...

Android Hacking Masterclass | The only guide you need to secure your android apps

In the ever-evolving world of mobile app development, one aspect remains a constant concern: security. As the Android platform continues to dominate the market, understanding the intricacies of Android app security becomes paramount for both developers and security researchers. Welcome to Android Ha...

Android Security: Securing your Gradle builds from baddies

This is the accompanying blog post for my recent Droidcon Berlin 2023 talk “How to stop the Gradle Snatchers: Securing your builds from baddies” — you can find the slides, video and other resources for this talk at my site spght.dev/talks If you are an Android developer lik...

Android Interview Part 1 2023

1) Higher Order Function — A higher-order function is a function that takes functions as parameters, or returns a function. In Kotlin we treat Function as an Object itself means we can pass func0on inside function or we can store a function inside variable also Click Here

A flexible, modern Android app architecture: complete step-by-step

I wrote recently about the theory behind good Android app architecture. It ended up being my most popular article of all time, and many people were kind enough to say it had helped them. One of the most common queries was, but what about X? That doesn’t really fit the rules. ...

Deep Dive Into Android Memory

Android app development always reminds us that we are part of the android hardware and operating system. We can divide Android phones into certain levels in terms of hardware. Basically, we can classify them as entry-intermediate and advanced hardware-API phones. When developing applications, dev...

Testing Android Flows in ViewModel with Turbine

As it is common now, the correct architecture should contain decoupled layers. Inter-layer communication between them is done by streams, or in our case, flows, in Android. To make our solutions foolproof, we should create tests around every component, and the ViewModel is no exception. The more cha...

What are the Differences Between KAPT and KSP in Android?

Introduction Hello everyone!  In today’s article, I will talk about the differences between Kapt and Ksp. First of all, what are the Kapt and Ksp, let’s learn about them. What is Kapt? Kapt stands for Kotlin Annotation Processing Tool. ...

Top 15 Common Android Interview Questions for Experienced Android Developers

Hello forks how are you doing, today was thinking about aritcle title then suddenly got idea why shouldn't I share common question that are being asked in interview mostly? So forks without wasting time lets start… 1. What is Work Manager? Work Manager is an Android Jetpack library ...

Are Android OS Updates Still King?

In the ever-evolving landscape of Android, we explore whether the traditional importance of Android OS updates remains a top priority for users and developers. Why did android worried about the security update back then and is it worrying even now? Android and iOS OTA (Over The Air) U...

The Best Android Apps — October 2023

Android devices have revolutionized our social landscape, offering entertainment, work flexibility, and connectivity. However, with the vast number of apps available on the Google Play Store, it can be challenging to determine which ones are worth downloading. Here’s a curated list of some of ...

Migrating an Android app to iOS with KMP — Part II: Data sources and migrations

In the first article, we covered the basics of application architecture and the first steps in multiplatform using KMP. This time we will dive into data sources, which libraries to use, and how to keep the data integrity during the migration. — This article is part of a series of mi...

Making the Move: Transitioning from iPhone to Android

Thinking about making the switch from iPhone to Android? It’s a big decision, but fear not! This guide will help you get through the process. In this article, we’ll provide you with useful information and tips, including insights from the official Android website, to help you smoothly...

Demystifying internal vs external storage in modern Android

Android devs have the option of internal vs external storage when saving files. Whilst there’s a historical reason for this, the difference nowadays is a bit confusing. Let’s go on a journey to understand why these options exist, which option you should go for, and what the better alt...

Qualcomm’s Newest Mobile Chipset Is Looking Insane for Future Android Phones

So, in my previous posts, I’ve chatted about all sorts of smartphone stuff, and you can find those linked below. But for today, I’m gonna dive into the nitty-gritty of Qualcomm’s fresh mobile chip and how it’s gonna make future Android phones seriously awesome! The Sn...

Enhancing RecyclerView Performance with DiffUtil in Android

Introduction: Welcome to my blog! Today, we’re exploring an advanced topic related to RecyclerView optimization in Android. Before we delve in, I assume you have a basic understanding of how the RecyclerView structure works. In this article, we’ll focus on leveraging the RecyclerView fo...

Best Practice for Handling API Calls Using Retrofit in Android Studio

When making API calls in Android applications, it’s common to encounter three types of responses. First, you might receive a successful response with HTTP status codes like 200/201, indicating everything is functioning correctly. Second, due to various reasons such as incorrect headers, invali...

iOS vs Android: Which Mobile Operating System is Better?

With over 1 billion iPhone users worldwide and over 2 billion Android users, iOS and Android are the two dominant mobile operating systems today. Both offer slick interfaces, vast app stores, and great smartphone hardware, but there are some key differences between these two platforms. In this artic...

How to play an encrypted Video or Audio file locally or from a remote server on Android (Part 2)

Introduction A Media Player will never be astonishing if it doesn’t provide you with online media streaming. So pursuing Part 1 of this article, where we discussed how to play an encrypted local file using a custom ExoPlayer’s DataSource, in this part of my article, I am goi...

65% Smaller APKs and 70% Less Memory: How I Optimized My Android App-Part I (APK Size)

We’ve been working on building an MVP product for our Android application. After developing our MVP product, we identified the need for app optimization to enhance performance. After analysis, we’ve found areas for improvement in app metrics: memory use, APK size, CPU usage, and UI perfo...

How to play an encrypted Video or Audio file from a remote server or a local file on Android (Part 1)

Playing an Audio or a Video file can become very challenging on Android when it comes to protecting the media content so that it can’t be reclaimed through the decompilation process. To tackle this issue, a widely used approach is leveraging Advanced Encryption Standard (AES) Encrypt...

How To Build a Home Screen Widget for iOS and Android in React Native

Objective: Learn how to build a native widget and share information with your React Native app on click of the widget open the application’s home screen. React Native widget The widget is an important addition to an app and often a highly requested feature. Unfortunately, you...

Minimizing APK Size: Techniques for Shrinking Android App Size

In the world of mobile app development, optimizing your Android app’s APK (Android Package) size is a crucial task. Smaller APK sizes not only reduce the download and installation times for your users but also save valuable storage space on their devices. In this article, we’ll explore v...

Deep Dive Into Android OS Fundamentals

When we look at the basics of Android Apps, we see four basic components. Activities, Services, Broadcast receivers and Content providers. Before moving on to components and Android OS, let’s look at what an android user does. On our Android phone we are gr...

How I hacked my android kernel

Hi, well I was inactive for a while because as you know I’m a curious lad lol. Some context for this read-up, since I was a kid, I always tinkered with my smartphones. Unlocked their bootloaders, flashed custom recoveries, kernels and even flashed whole different OSes. This is cool IMO, ...

Mastering Android Jetpack Compose BottomSheet with Material-3

Introduction: In this tutorial, we will explore how to implement a bottom sheet in Android Jetpack Compose using Material-3. The bottom sheet is a common UI component that can enhance user experience by providing additional content or options within an app. We will leverage the Material-3 library...

The Android Odyssey: A Time-Traveling Expedition Through Android OS Versions

Introduction: Setting the Stage for an Android Adventure Hey there, Android aficionados! Ready for a trip down memory lane? Today, we’re hopping in our time machine to explore the fascinating universe of Android Operating System versions. We’ll start from the humble beginnings and jou...

15 new features in Android 14 for developers…

1. Predictive Back Gesture in action Already in Android 13, we were warned that in the next version of Android, we should expect updates of the Back Gesture and Predictive Back Gesture with animation in the form of a preview screen where we will move. Animation for that previe...

Obtaining Network Connection Info with Flow in Android

If you’re an Android Developer, you might find this topic intriguing. Considering that almost every app requires data exchange, for example, to refresh feeds or upload/download content. And internet connection is essential for that purpose. However, how can data be exchanged when a user’...

Why Kotlin Rules and Java Drools: Your Hilarious Journey to Android Excellence!

Are you an aspiring Android developer, eager to make your mark in the coding world? If you’ve recently embarked on your Android development journey, you’re in for a treat! In this article, we’ll take you on a humorous and enlightening adventure through the captivating battle betwee...

Elevate Your Android App’s Visual Appeal with Simple and Elegant Animations in Jetpack Compose.

In the fast-paced world of mobile app development, creating an engaging and visually captivating user experience is paramount. A well-designed app should not only be functional but also aesthetically pleasing. After all, first impressions matter, and a visually appealing interface can make the diffe...

Understanding Activities, Services, and Intents for Android Apps

In this tutorial, we will be discussing the different Android application components, including activities, services, content providers, broadcast receivers, and intents. Activities An activity represents a single screen with a user interface in an Android application. For example, the screen ...

The Atlantic and Why Android Apps Suck

That puts me in what I can only imagine is a tiny minority of content-consuming Americans that want to read a 6000 word essay about how democracy is failing in America. Today, most people don’t even read anything online at all… they skim. It might be surprising, t...

Android 14- Top New 14 features for android.

In the last few updates, Android got some big upgrades. Android 12 changed the look with Material UI and made the interface better. Then, Android 13 made things even smoother after Android 12 by improving the experience. Now, Android 14 might seem like a small upgrade, but it has...

10 Useful Kotlin Extension Functions for Android Developers #2

Thanks for showing your love for the Kotlin extension functions in the first part. I would like to share more extensions to help you improve your programming experience with Android and Kotlin. If you have not read it yet, you can check it out at the link below. 10 Useful Kotlin Extension Functio...

Decoding Broadcast Receivers and Intents: Simplifying How They Make Your Android App Work

In this tutorial, we will continue our discussion on Android application components, specifically broadcast receivers and intents. What are Broadcast Receivers? When you receive an SMS or when your phone’s battery goes low, you often see dialog boxes or notifications. These actions are c...

Explicit Intents in Android: Part 2

Welcome back! In this tutorial, we will be discussing explicit intents and their implementation in Android app development. Setting Up the Project First, let’s create a new project in Android Studio called “Explicit Intents”. In the project, we have a main activity (Activity ...

Create Build Flavor in Flutter Application (iOS & Android)

From this article we will learn step by step how to different environment application (iOS & Android) using the same source code. Outline What is Build Flavor Difference between Build Flavor & Build Mode Define Environment Setup Fluter App Setup Build Flavor in iOS Setup B...

Android Fragmentation, Kotlin’s Advanced Functional Programming, IOS, KMP, and more!

Migrating an Android app to iOS with KMP — Part II: Data sources and migrations   Igor Escodro  delves into the data sources required for migrating an Android app to iOS using KMP. Living Dangerously without Obfuscation   Jimly Asshiddiqy  shares his jo...

Migrating an Android app to iOS with KMP — Part II: Data sources and migrations

In the first article, we covered the basics of application architecture and the first steps in multiplatform using KMP. This time we will dive into data sources, which libraries to use, and how to keep the data integrity during the migration. — This article is part of a series of mi...

Here’s Why Developers Prefer Android Over iOS

Which makes the exact opposite argument. Now some of its points are convincing like how iOS users pay more for apps. However if you’re using a cross platform framework like Flutter it doesn’t really matter because you can code for both. And honestly coding for both is the best option if ...

How to Convert Your Angular Application to a Native Mobile App (Android and iOS)

Looking for a way to convert your existing Angular application to a mobile app without having to rewrite everything from scratch? Well, you came to the right place. In this article, we will be using Capacitor to achieve that. Prerequisites Before we start, make sure to set up your en...

iOS vs Android: Which Mobile Operating System is Better?

With over 1 billion iPhone users worldwide and over 2 billion Android users, iOS and Android are the two dominant mobile operating systems today. Both offer slick interfaces, vast app stores, and great smartphone hardware, but there are some key differences between these two platforms. In this artic...

Your own Virtual Android Phone on the Mac for Free!

Emulating Android on macOS has long been associated with complexities, and resource-intensive Java setups. However, a new application has emerged, offering a simple and efficient solution. This innovative tool discards the need for Android ...

Setting up ADB Path on Windows: Android Tips.

ADB (Android Debug Bridge) is a crucial tool for Android app developers, allowing you to communicate with Android devices from your computer. To use ADB effectively, you need to set up the ADB path in your Windows environment. Follow these step-by-step instructions to get started: Step 1...

15 Android Apps Every Geologist Should Have

As technology continues to advance, geologists are increasingly turning to mobile applications to enhance their fieldwork, research, and data analysis. Whether you’re a seasoned geologist or a student exploring the world of rocks and minerals, these 15 Android apps are essential tools to have ...