---
title: "Posts Page 3 | Shreyas Patil's Blog"
description: "Senior Android Engineer @ Deliveroo. Google Developer Expert for Android. Writing about Android, Kotlin, and AI."
image: "https://blog.shreyaspatil.dev/og.png"
---

# All Posts

- [![](https://blog.shreyaspatil.dev/_astro/cover-hide-internal-members-of-kotlin-module-from-jvm.DlxpwfRU_14QGnt.webp)](https://blog.shreyaspatil.dev/hide-internal-members-of-kotlin-module-from-jvm)[## #23Hide internal members of Kotlin Module from JVM 🔐](https://blog.shreyaspatil.dev/hide-internal-members-of-kotlin-module-from-jvm)17 May, 2021Learn how to properly hide internal Kotlin members from JVM to maintain a clean API for Java consumers when developing libraries.
- [![](https://blog.shreyaspatil.dev/_astro/cover-let-your-delegates-auto-nullify-references.DzBtReak_ZzcXXG.webp)](https://blog.shreyaspatil.dev/let-your-delegates-auto-nullify-references)[## #22Let your delegates auto-nullify references☠️](https://blog.shreyaspatil.dev/let-your-delegates-auto-nullify-references)12 Mar, 2021Learn how to use Kotlin property delegates to automatically nullify references in Android, preventing memory leaks in Fragments and Activities.
- [![](https://blog.shreyaspatil.dev/_astro/cover-cooking-tasty-code-in-kotlin-part-2.D3BUqTXT_1oL1gm.webp)](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-2)[## #21👨‍🍳 Cooking Tasty code in Kotlin 🍴 — Part 2](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-2)1 Jan, 2021Part 2 of 'Cooking Tasty Code'. Dive deeper into Kotlin features like delegation, operator overloading, and more to enhance your coding style.
- [![](https://blog.shreyaspatil.dev/_astro/cover-cooking-tasty-code-in-kotlin-part-1.CxGbDmW3_1yxb10.webp)](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-1)[## #20👨‍🍳 Cooking Tasty code in Kotlin 🍴 — Part 1](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-1)24 Dec, 2020Part 1 of the 'Cooking Tasty Code' series. Explore Kotlin's syntactic sugar and features that help write cleaner, more readable, and idiomatic code.
- [![](https://blog.shreyaspatil.dev/_astro/cover-quickly-distribute-your-app-with-firebase-app-distribution-using-github-actions-fastlane.Cddyj_lq_1uoPoV.webp)](https://blog.shreyaspatil.dev/quickly-distribute-your-app-with-firebase-app-distribution-using-github-actions-fastlane)[## #19🔥 Quickly distribute your app with Firebase App Distribution using GitHub Actions + Fastlane 🚀](https://blog.shreyaspatil.dev/quickly-distribute-your-app-with-firebase-app-distribution-using-github-actions-fastlane)21 Oct, 2020Step-by-step guide to automating Android app distribution with Firebase App Distribution, GitHub Actions, and Fastlane for faster QA cycles.
- [![](https://blog.shreyaspatil.dev/_astro/cover-automate-publishing-app-to-the-google-play-store-with-github-actions-fastlane-ac9104712486.DkuvaDj7_Z60n2j.webp)](https://blog.shreyaspatil.dev/automate-publishing-app-to-the-google-play-store-with-github-actions-fastlane-ac9104712486)[## #18Automate publishing app to the Google Play Store with GitHub Actions⚡+ Fastlane🏃](https://blog.shreyaspatil.dev/automate-publishing-app-to-the-google-play-store-with-github-actions-fastlane-ac9104712486)9 Oct, 2020Automate your Android app deployment to Google Play Store using GitHub Actions and Fastlane. Implement a 'Code, Push, and Chill' workflow for your projects.
- [![](https://blog.shreyaspatil.dev/_astro/cover-devops-ify-android-libraries-with-github-actions-and-package-registry-5e7f69a83622.CT0hB_Eo_1RIHfj.webp)](https://blog.shreyaspatil.dev/devops-ify-android-libraries-with-github-actions-and-package-registry-5e7f69a83622)[## #17DevOps-ify Android libraries with GitHub Actions and Package Registry🚀](https://blog.shreyaspatil.dev/devops-ify-android-libraries-with-github-actions-and-package-registry-5e7f69a83622)2 Oct, 2020Learn how to use GitHub Package Registry (GPR) and GitHub Actions to safely publish and consume private or public Android libraries with ease.
- [![](https://blog.shreyaspatil.dev/_astro/cover-hello-datastore-bye-sharedpreferences-android-part-2-proto-datastore-2716fbfd4783.YqvhnOSj_Z1q02uA.webp)](https://blog.shreyaspatil.dev/hello-datastore-bye-sharedpreferences-android-part-2-proto-datastore-2716fbfd4783)[## #16Hello DataStore, Bye SharedPreferences👋 — Android📱 — Part 2: Proto DataStore](https://blog.shreyaspatil.dev/hello-datastore-bye-sharedpreferences-android-part-2-proto-datastore-2716fbfd4783)12 Sep, 2020Jetpack DataStore Part 2: Deep dive into Proto DataStore for type-safe data storage in Android using Protocol Buffers.
- [![](https://blog.shreyaspatil.dev/_astro/cover-hello-datastore-bye-sharedpreferences-android-f46c610b81d5.rXuWijni_kuzhf.webp)](https://blog.shreyaspatil.dev/hello-datastore-bye-sharedpreferences-android-f46c610b81d5)[## #15Hello DataStore, Bye SharedPreferences👋 — Android📱 — Part 1: Preference DataStore](https://blog.shreyaspatil.dev/hello-datastore-bye-sharedpreferences-android-f46c610b81d5)3 Sep, 2020Introduction to Jetpack DataStore Part 1: Learn how to migrate from SharedPreferences to Preference DataStore for better data storage in Android.
- [![](https://blog.shreyaspatil.dev/_astro/cover-accessing-device-location-using-sim-card-6cdb15645bef.C68xN0Bm_Z1hoDou.webp)](https://blog.shreyaspatil.dev/accessing-device-location-using-sim-card-6cdb15645bef)[## #14🕵️ Accessing device location using SIM Card 🗺️📍](https://blog.shreyaspatil.dev/accessing-device-location-using-sim-card-6cdb15645bef)28 Jul, 2020Discover a clever trick to access device location using SIM card info in Android. Learn how to handle mock location scenarios for better location accuracy.
- [![](https://blog.shreyaspatil.dev/_astro/cover-getting-data-from-google-sheets-flutter-app-part-2-d6e689fdbbed.Dwbw9F97_1S4194.webp)](https://blog.shreyaspatil.dev/getting-data-from-google-sheets-flutter-app-part-2-d6e689fdbbed)[## #13Getting data from Google Sheets📊 → Flutter App📱 — Part 2](https://blog.shreyaspatil.dev/getting-data-from-google-sheets-flutter-app-part-2-d6e689fdbbed)4 Jul, 2020Part 2 of the series: Learn how to fetch and display data from Google Sheets in your Flutter application using Google AppScript as an API.
- [![](https://blog.shreyaspatil.dev/_astro/cover-stateflow-end-of-livedata-a473094229b3.BFUu2tbb_1UBkhH.webp)](https://blog.shreyaspatil.dev/stateflow-end-of-livedata-a473094229b3)[## #12🌊 StateFlow, End of LiveData?](https://blog.shreyaspatil.dev/stateflow-end-of-livedata-a473094229b3)22 May, 2020Is StateFlow the end of LiveData? An opinionated look at how Kotlin's StateFlow is replacing LiveData for state management in Android.
- [![](https://blog.shreyaspatil.dev/_astro/cover-automate-publishing-android-library-to-bintray-using-github-actions-9b8ad8ab2698.YzHsouuV_ZYi0Ky.webp)](https://blog.shreyaspatil.dev/automate-publishing-android-library-to-bintray-using-github-actions-9b8ad8ab2698)[## #11🤖 Automate Publishing Android Library to Bintray using GitHub Actions 🚀](https://blog.shreyaspatil.dev/automate-publishing-android-library-to-bintray-using-github-actions-9b8ad8ab2698)1 May, 2020Learn how to automate the publishing of your open-source Android libraries to Bintray using GitHub Actions CI whenever you create a new release.
- [![](https://blog.shreyaspatil.dev/_astro/cover-firebase-ing-with-kotlin-coroutines-flow-dab1bc364816.BKfaL3wi_ZovfwK.webp)](https://blog.shreyaspatil.dev/firebase-ing-with-kotlin-coroutines-flow-dab1bc364816)[## #10🔥Firebase-ing with Kotlin Coroutines + Flow 🌊](https://blog.shreyaspatil.dev/firebase-ing-with-kotlin-coroutines-flow-dab1bc364816)30 Apr, 2020Learn how to integrate Firebase with Kotlin Coroutines and Flow for reactive data streams in your Android applications.
- [![](https://blog.shreyaspatil.dev/_astro/cover-introduction-to-dagger-di-by-a-life-way-d34f62540329.CFC29cTA_ZISRrh.webp)](https://blog.shreyaspatil.dev/introduction-to-dagger-di-by-a-life-way-d34f62540329)[## #9🔪 Introduction to Dagger DI 💉 by a Life way!](https://blog.shreyaspatil.dev/introduction-to-dagger-di-by-a-life-way-d34f62540329)15 Mar, 2020Demystifying Dependency Injection with Dagger. Learn DI concepts through real-life analogies and simplify your Android app architecture.
- [![](https://blog.shreyaspatil.dev/_astro/cover-update-queries-without-changing-recyclerview-adapter-using-firebaseui-android-32098b3082b2.EH4XJr_m_Z1oYrpY.webp)](https://blog.shreyaspatil.dev/update-queries-without-changing-recyclerview-adapter-using-firebaseui-android-32098b3082b2)[## #8Update Queries without changing RecyclerView Adapter using FirebaseUI — Android 🔥](https://blog.shreyaspatil.dev/update-queries-without-changing-recyclerview-adapter-using-firebaseui-android-32098b3082b2)13 Mar, 2020Learn how to update Firebase queries dynamically without recreating your RecyclerView adapter using the FirebaseUI-Android library.
- [![](https://blog.shreyaspatil.dev/_astro/cover-storing-data-from-the-flutter-app-google-sheets-e4498e9cda5d.DE3-lxEf_1p3D6L.webp)](https://blog.shreyaspatil.dev/storing-data-from-the-flutter-app-google-sheets-e4498e9cda5d)[## #7Storing data from the Flutter app → Google Sheets 📊 — Part 1](https://blog.shreyaspatil.dev/storing-data-from-the-flutter-app-google-sheets-e4498e9cda5d)10 Jan, 2020Learn how to use Google Sheets as a database for your Flutter app. A simple and effective way to store and manage app data using Google AppScript.
- [![](https://blog.shreyaspatil.dev/_astro/cover-scheduling-fcm-push-notifications-on-device-android-2d3bb9653b4d.BcYDrTZe_Ma15R.webp)](https://blog.shreyaspatil.dev/scheduling-fcm-push-notifications-on-device-android-2d3bb9653b4d)[## #6⏰Scheduling FCM Push Notifications🔔 On Device — Android📱](https://blog.shreyaspatil.dev/scheduling-fcm-push-notifications-on-device-android-2d3bb9653b4d)19 Dec, 2019Learn how to schedule FCM push notifications on-device in Android without expensive cloud cron jobs, using AlarmManager and WorkManager.
- [![](https://blog.shreyaspatil.dev/_astro/cover-making-google-apps-like-navigation-drawer-material-design-c8781d9ff8c8.56l3nuKP_Z1dvUyk.webp)](https://blog.shreyaspatil.dev/making-google-apps-like-navigation-drawer-material-design-c8781d9ff8c8)[## #5Making Google-Apps Like NavigationView — Android 📱](https://blog.shreyaspatil.dev/making-google-apps-like-navigation-drawer-material-design-c8781d9ff8c8)10 Sep, 2019Step-by-step guide to implementing a Google-style Navigation Drawer in Android using the MaterialNavigationView library for premium UI design.
- [![](https://blog.shreyaspatil.dev/_astro/cover-firestore-pagination-in-android-using-firebaseui-library-1d7fe1a75704.CmdQFkVP_Piq0A.webp)](https://blog.shreyaspatil.dev/firestore-pagination-in-android-using-firebaseui-library-1d7fe1a75704)[## #4Firestore Pagination in Android — Using FirebaseUI Library 🔥](https://blog.shreyaspatil.dev/firestore-pagination-in-android-using-firebaseui-library-1d7fe1a75704)21 Jul, 2019Efficiently implement Cloud Firestore pagination in Android using the FirestorePagingAdapter from the FirebaseUI library.

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Shreyas Patil's Blog",
  "url": "https://blog.shreyaspatil.dev/",
  "description": "Senior Android Engineer @ Deliveroo. Google Developer Expert for Android. Writing about Android, Kotlin, and AI.",
  "author": {
    "@type": "Person",
    "name": "Shreyas Patil",
    "url": "https://shreyaspatil.dev/"
  }
}
```
