Compose Multiplatform: architecture and platform integration
How the shared Compose architecture adapts to Android, iOS, and Desktop: runtime structure, Skia backend usage on desktop, native layer integration on Android and iOS, UI code organization, and platform adaptation strategies.
Osman Suleimanov ··15 min read
Draft
Android Under the Hood: Beyond Testing APIs·Part 7
Compose Test Internals: Semantics Tree and Declarative UI Verification
A deep dive into how Compose testing works: the semantics tree, declarative UI test APIs, and the differences from traditional View tests. How Compose tests simplify UI verification but introduce new hidden challenges.
Osman Suleimanov ··20 min read
Draft
Android UI Under the Hood·Part 7
Vulkan in Android: modern low-level GPU access and control
What is Vulkan and why it matters for Android: differences from OpenGL, full pipeline control, performance and power efficiency improvements, usage scenarios, limitations, and integration architecture in Android graphics. Deep technical overview.
Osman Suleimanov ··16 min read
Draft
Android Under the Hood: Beyond Testing APIs·Part 6
Readable UI Tests with Kaspresso and Kakao: DSLs Beyond Espresso
Dissecting Kaspresso and Kakao: how Kotlin DSLs improve UI test readability, why Kaspresso enhances stability, and the real value of scenario-based structures. Technical internals and design philosophy behind these frameworks.
Osman Suleimanov ··20 min read
Draft
Android Under the Hood: Beyond Testing APIs·Part 5
Bytecode Manipulation and Control: MockK vs Mockito in Kotlin
Exploring the bytecode hacking magic behind MockK and Mockito: how they manipulate objects, handle static calls, and break Kotlin's final restrictions. A technical journey into runtime control and the philosophy of object mocking.
Osman Suleimanov ··20 min read
Draft
Android Under the Hood: Beyond Testing APIs·Part 4
Espresso Synchronization and UI Control: Inside Android's Test Framework
A deep analysis of Espresso's inner mechanics: thread synchronization, idling resources, and Looper interactions. How Espresso knows when your UI is 'idle', and the hidden challenges behind writing stable UI tests in Android.
Osman Suleimanov ··25 min read
Draft
Android UI Under the Hood·Part 6
Jetpack Compose Architecture: Slots, Modifiers, and Recomposition
Deep dive into Compose architecture: slot-based composition, modifier chains, recomposition optimization, and state management. Understanding how Compose transforms declarative UI into efficient rendering and state updates.
Osman Suleimanov ··22 min read
Draft
Android UI Under the Hood·Part 8
Cross-platform Frameworks: Android Architecture and Integration
How cross-platform frameworks integrate with Android: React Native, Flutter, and Xamarin architecture analysis. Understanding the bridge mechanisms, native module integration, and performance implications of cross-platform development.
Osman Suleimanov ··18 min read
Draft
Android UI Under the Hood·Part 5
Hardware Acceleration in Android: Principles and Limits
Deep dive into Android's hardware acceleration: GPU rendering pipeline, OpenGL ES integration, layer types, and performance optimization. Understanding when and why hardware acceleration fails, and how to optimize rendering performance.
Osman Suleimanov ··20 min read
Draft
Android UI Under the Hood·Part 7
Skia Rendering Engine: Android and Compose Integration
Deep dive into Skia rendering engine: how it powers Android graphics, Compose integration, vector graphics, and text rendering. Understanding the rendering pipeline from high-level APIs to GPU commands.
Osman Suleimanov ··19 min read
Draft
Android UI Under the Hood·Part 4
OpenGL Shaders in Android: Pipeline and Optimization
Understanding OpenGL ES in Android: shader compilation, rendering pipeline, texture management, and performance optimization. Deep dive into GPU programming for Android developers.
Osman Suleimanov ··18 min read
Draft
Android Under the Hood: Beyond Testing APIs·Part 3
Robolectric Internals: Shadow Worlds and JVM Illusions
Uncovering the secret world of Robolectric: how shadow classes replace Android SDK calls, how JVM illusions are created to simulate the environment, and why Robolectric tests aren't true Android tests. A technical and philosophical analysis of testing illusions.
Osman Suleimanov ··20 min read
Draft
Android UI Under the Hood·Part 3
Canvas in Android: architecture, drawing commands, and state management
Detailed analysis of Canvas as a core drawing API: internal state management, transformations, clip operations, batching of commands, interactions with Paint and Path. Breakdown of what actually happens inside onDraw(), and Canvas impact on UI performance and flexibility.
Osman Suleimanov ··16 min read
Draft
Android Under the Hood: Beyond Testing APIs·Part 2
Instrumented Tests Under the Hood: How Android Executes Your Code
Exploring the internals of Android instrumented tests: from AndroidJUnitRunner and TestInstrumentationRunner to ActivityTestRule and ActivityScenario. How instrumentation interacts with your app, and what really happens when you run tests on a device or emulator.
Osman Suleimanov ··25 min read
Draft
Android UI Under the Hood·Part 2
Android Render Architecture: RenderThread, SurfaceView, TextureView, Choreographer, DisplayList, and LayerType
How Android manages rendering threads and frame synchronization: RenderThread structure, Choreographer and VSync mechanisms, differences between SurfaceView and TextureView, internal DisplayList usage, and LayerType (hardware/software) concepts. In-depth overview of thread and buffer architecture.
Osman Suleimanov ··20 min read
Draft
Android UI Under the Hood·Part 1
View in Android: from XML and LayoutInflater to ViewRootImpl and frame lifecycle
Complete path of View creation and rendering: XML parsing, LayoutInflater, the role of Window and ViewRootImpl, measure/layout/draw phases, invalidate and requestLayout calls, and the full frame lifecycle call chain. Detailed breakdown of classic Android UI architecture.