Blundell
Android Developer tutorials sorted into categories of Beginner, Intermediate and Expert. Covering all aspects of AndroidDev.
- Posts
- 134 from 31 Jan 2012 to 6 Sep 2026
- Posting
- now and then (4 in the last year)
- Kind
- personal blog
- Feed
- https://blog.blundellapps.co.uk/feed/
2026 4
2025 7
- Linting, Automated: AI-Powered Static Analysis with Gemini
- Google I/O 2025: AI Unleashed – What Android Devs Need to Know!
- Choosing Wisely: for vs. forEach in Kotlin (A Thinking Dev’s Perspective)
- Get started with Gemma 3 LLM on Android now!
- Room Debug DAOs in Android: Streamlining Your Workflow
- Android Bugsee SDK: Ignore the Docs, Do THIS Instead
- Android Dynamic Animated SVGs (with Lottie Dynamic Properties)
2024 1
2023 8
- Emoji error! Using the latest Compose with compileSDK < 34
- Setting JDK level in Android Gradle builds
- Dependency Injection in Legacy Code
- Set Activity Screen Brightness without Permission
- build.gradle.kts conversion for Android Studio Empty Activity
- Android Job Interview – Take-Home Test Cheat Sheet
- Proven Prepping for Easy Android Interviews in 2023
- Applying a 3rd Party Gradle Plugin as a Composite Plugin
2022 1
2021 5
2020 4
2019 5
2018 1
2017 30
- [TUT] Android Things – Zx Gesture Sensor using UART
- [TUT] Android Things – Using the ADS1015 analog to digital converter driver library
- [TUT] Android Things – APA102 7 LED Array, SPI on the Rainbow Hat
- [TUT] Android Things – Alphanumeric Segment Display, I2C on the Rainbow Hat
- [TUT] Android Things – Temperature Sensor, I2C on the Rainbow Hat
- [TUT] Google Cloud IoT Core – MQTT on Android
- [TUT] Android Things – Piezzo Transducer, PWM on the Rainbow Hat
- [TUT] Android Things – Capacitive Touch Buttons, GPIO on the Rainbow Hat
- [TUT] Android Things – LEDs, GPIO on the Rainbow Hat
- [TUT] Your First Android Things Application
- Android Architecture Components meets AndroidThings
- Threading best practices : 3 ways on Android Things
- [TUT] Android Things – Writing a PIR Motion Sensor Driver
- Battling the 65k method limit
- You have permission to crash
- Inspecting databases with Stetho
- Q&A with Android Developer Paul Blundell
- The Making of an Android Auto Demo Unit
- Hexawhat Architecture?
- Taming your Github notification emails
- Developing like a pro — portrait only apps
- This one simple change for better class naming will blow your mind
- Five reasons why Android developers should start developing for the internet of things
- Top 3 Android Studio Shortcuts
- 5 tools for a remote Android developers toolchest
- Clean Code: Java Class Fields
- Swanseacon 2016 : An agile software craftsman’s view
- CleanCoders – Mobile App Case Study Review
- The only way to implement Model View Presenter
- How to use an extra GPIO pin on Raspberry Pi Rainbow Hat
2016 6
- [TUT] Testing Android Things – Unit & Vendor tests
- [TUT] Using Firebase with a Node JS Amazon Lambda
- [TUT] Programmatically create a RippleDrawable of any color
- [TUT] How to test time and control System.currentTimeMillis
- [TUT] Creating comments with timestamps like YouTube
- [TUT] Send app data to a web spreadsheet (Google Sheets)
2015 3
2014 11
- [TUT] Front Camera Face Detection – with preview
- Arrow Logger – Log louder than everyone else
- [TUT] Front Camera Face Detection – explained
- A simple Activity to complete a form or continue
- [TUT] Locally release an Android Library for JCenter or Maven Central inclusion
- [TUT] How to run Robolectric JUnit tests in Android Studio
- [TUT] Migrating to AdMob in Google Play Services from AdMob SDK jar
- [TUT] Android Gradle App with Espresso Instrumentation tests
- Creating GIF images from your Android device
- [TUT] Android Gradle App with Robolectric JUnit tests
- [TUT] Android Gradle App with JVM JUnit tests
2013 5
2012 43
- [TUT] Simple InApp Billing / Payment V3
- [TUT] Create your own CheckStyle check
- Creating 9 Patch Images – Android Asset Studio
- [TUT] Using the camera with a custom overlay
- [TUT] Get your app OAuth YouTube API access
- Register for YouTube API use
- [TUT] Networking off the UI thread – SOLID Architecture
- [TUT] ASyncTaskLoader using Support Library
- [TUT] Twitter Feed on an App Widget
- [TUT] Animate Removing From a Custom Adapter (ListView)
- Forget work for a minute
- [TUT] Keep Screen on/awake – 3 possible ways
- [TUT] Backup & Restore SharedPreferences to the cloud
- [TUT] Using Annotations for Android XML onClick visibility
- [TUT] HTML in an Email Intent
- [TUT] Generic One Option Dialog Fragment (with data)
- [TUT] Change alias passwords of your Android Keystore
- [TUT] Show YouTube Feed for a Users Videos in a ListView ( XML )
- [TUT] SplashScreen with Progress Bar
- Overview of Android In App Billing V2 (FlowChart)
- Testing Devices – Emulator Settings for each Android Density Bucket
- List of Android Devices with pixel density buckets
- [TUT] Switching Android build constants using Ant
- [TUT] Running an Ant script with Eclipse
- Tyre Pressure Readings in your App – Using Intent Filters
- [TUT] Click item in a ListView to show YouTube Video
- Google Analytics – Common Problems and Fixes
- [TUT] Add Your App to the Android ‘do something’ Menu (using Intent Filters)
- [TUT] Show YouTube Feed for a Users Videos in a ListView ( JSON )
- [TUT] Set a notification for a user chosen time
- OutOfMemory error – do you use runnables?
- [TUT] Basic Date Picker
- [TUT] Preloaded images set as phone wallpaper
- [TUT] Sliding Drawer Activity – Animate an Activity
- [TUT] Infinite Scrolling Gallery View
- [TUT] Simple InApp Billing / Payment (V2)
- Add source code links to Android APIs
- [TUT] Array List of countries for arrays.xml
- [TUT] Rounded Corners Map View
- [TUT] Sending a Tweet
- [TUT] Button to open web browser
- [TUT] ImageView with Loading Spinner
- [TUT] ListView with a Footer Item