How to Input Unicode Characters in Maestro Android Tests: A Complete Workaround Guide
Learn how to overcome Maestro's Unicode input limitations on Android by building a custom HTTP server solution with ADB Keyboard. Complete implementation guide with code examples.
Android Architecture Patterns: A Comprehensive Pre-Interview Guide
Looking to brush up on Android architecture patterns before your next mobile interview? This guide covers everything from traditional MVC to modern Jetpack Compose implementations, with code examples and comparisons of MVC, MVP, MVVM, and MVI patterns.
Shadow Calls and Circuit Breakers: Uber's Safe Approach to Mobile Network API Migration
Ishan discusses Uber's journey from REST to gRPC, showcasing a 45% payload reduction and 27% latency improvement. Dive into the three-phase migration strategy, technical challenges, and innovative solutions that transformed Uber's mobile app performance.
Remove Duplicates From a List in Kotlin
In this article, Ishan Khanna shows you the best way to remove duplicates from a List in Kotlin.
Mastering The Gradle Dependency Tree
Learn everything about the Gradle Dependency Tree and Five Different Ways to Generate Them.
Impact of Dependency Tree Depth on Gradle Builds
In this post, Ishan shows the impact of dependency tree depth on Gradle Builds with a complete analysis of changes at the Top, Middle, and Bottom of the Dependency Tree.
Flutter vs Jetpack Compose: The Battle of the Decade
Android app developers have been debating whether to use frameworks like Flutter or Jetpack over the last few years. In this article, I share my own opinion as a mobile engineer who has worked with both technologies.