Photo by Carol Magalhães on Unsplash

For people around me, knows that I always give WhatsApp a hard time. Although they’re the pioneers that popularised instant messaging on our smartphones, but ever since they got bought by Facebook. It just seems like time has stopped in WhatsApp.

They’re always a step behind all their competitors, that includes Facebook Messenger and Instagram Messages.

Even as a billion dollar company in Silicon Valley, WhatsApp still doesn’t have an iPad app in 2021! (Not even Instagram, not sure what Facebook has against having iPad apps)

Having said that, you can’t deny that WhatsApp is ubiquitous and has become a…


Photo by insung yoon on Unsplash

When Siri Shortcuts got announced back in 2018 on iOS 12, I could see a lot of potential, but I couldn’t find something that could put into good use my life.

I have the same exact feelings about Notion, it started out to be a bit intimidating. But, the more I get to explore Shortcuts, it started to warm up to me and able to make small mundane tasks way more fun!

🚨 Warning: Article contains an excessive amount of GIFs

Not sure how it slipped through my radar, but I’ve only just realised that GIPHY is actually integrated natively


Photo by Ralph Hutter on Unsplash

As an Android developer, you will have definitely find your way into the Gradle configuration files. It’s the place where you import your dependencies, change your app version and build numbers.

It’s also quite a mysterious island. Although it is something that we facing it everyday, but many of us still finding new interesting things you do with it.

Do you know that Gradle can actually do more than that? It can help you improve your build times, better by setting up attributes in your BuildConfig.java and generally improve your workflow like a pro!

“Get to know what’s actually inside…


Photo by Erol Ahmed on Unsplash

When JetBrains revealed that they’ll be deprecating kotlin-android-extensions in version 1.4.20-M2 back in October 2020. I was puzzled by this announcement, because Kotlin Android Extensions introduced kotlinx-syntheics which was plugin that allows you to access to your views in your XML layouts, like they were properties.

It was one of the plugins that instantaneous shows you how beneficial is it to switched to Kotlin for Android Development. Before that, we have to manually call findViewById() and assign variable to access to that View .

Why would JetBrains want to discontinued such a beloved feature?

There were a few issues that has been plaguing developers with kotlinx-synthetics .

  • Even though…


Photo by Henry & Co. on Unsplash

Ever since I started working in the software industry, I have been asked this question a lot. “Which is more secure, iPhone or Android?”. Then, I will talk about how iOS has a much more robust architecture when it comes to handling privacy and permissions compared to Android.

Trust me, I’m an Android Developer 👨🏻‍💻

Although I may have made my case that iOS is a substantially more secure platform than Android. However, I do not believe this conversation is the one we should be having 💭

It doesn’t matter if you have the most secure phone with the best…


Here’s how Android native Switch and iOS themed Switch looks like.

Don’t you ever feel that you want spice it up your Switch layout? Here’s a style that you can customise to look like how iOS does it for their Switches.

Fret not, there’s no libraries involved. Everything is done natively Android!

Before that, here’s a shout out to a Medium article that guided me on how easily that you customise your Android Switch thumb and tracks.

I’ve just added a few changes and just a few spins of my own. Hopefully, it can help you make your app look incredible!

Android’s Switch actually allows you to customise the layout quite…


Photo by Edu Lauton on Unsplash

Here we’re going to talk about the ways to update (and also delete) Contacts. If you feel like there’s some missing parts, for example why I use a certain Data Model. Check out my Part 1, Adding Contacts.

Find Raw Contact ID

Before you can update your Contact, you’ll need to find the Raw Contact ID. Depends on which search parameter you want to find your Contact, if can be a phone number, email or a unique website identifier.

If you’re building something that is quite deeply integrated with Contacts, I’d suggest to add a field CommonDataKinds.Website.DATA with your own unique ID.

For…


Photo by Clark Van Der Beken on Unsplash

If you’re here, which means you’re totally clueless why saving Contacts on Android is such a painful process and Google’s Documentation on this topic just feels like maze.

Can’t really blame them, it’s a really old API Level 5.
https://developer.android.com/reference/kotlin/android/provider/ContactsContract

Fret not, you came the right place. It took me a while to figure out and figured out I did. I’m going to break down my guide into three separate parts.

  1. Overview and Saving Contacts
  2. Update and Import Contacts with vCard

This article is going to go through the structural approach that I took and ultimately leading to saving…


Photo by David Pennington on Unsplash

Every pencil will need an eraser, every proton will need an electron, and every mistake will need a Ctrl/⌘+Z!

Although life doesn’t has undo button, but in code we can certainly build one to undo your past mistakes and regrets!

Frame of Mind

One of the classical example, is how graphics editor software like Adobe Photoshop or GIMP.

Whenever you change a colour of the Text Field, dragged the Text Field to a different position or insert an new Image to the editor, each of these changes are treated as an Action.

You’ll be able to backtrack and fast track to the…


Overview of Styled Dropdown Menu

Normally, when something as styled as this is being shown to an Android developer. There are only two things that passed through their mind.

“This isn’t native behaviour!”

“I’m telling you, this is going to take up a lot of time. Why not just stick with the plain old dropdown menu provided by Android?”

Trust me, I also have the same thoughts in my mind as well. Whenever there’s styling in Android, it can be messy affair.

Fear not! I’m going to show you the ropes on achieving your own stylised dropdown menu with ListPopupWindow and ArrayAdapter.

Step 1 — Creating ListPopupWindow

There’s a few…

Delacrix Morgan

To know me is to fly with me 🚀

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store