Matt Ramotar

Senior Software Engineer at Uber

Talk Title

Reimagining Pagination in Kotlin Multiplatform: Meet StoreX Paging







on Twitter

Pagination in Kotlin Multiplatform is challenging. Existing solutions have limitations. We wanted to rethink what’s possible. Join us on our journey of building StoreX Paging, the Mobile Native Foundation solution for extensible and efficient paging in Kotlin Multiplatform projects.

We’ll dive into specific pain points and use cases that existing solutions struggle with, such as handling complex operations like sorting, filtering, grouping, transforming, deduplicating, and validating paged data. And we’ll share our experience creating StoreX Paging to overcome them.

You’ll gain insights into the design decisions behind StoreX Paging, including the use of middleware, reducers, and effects for extensible and maintainable code. We'll explore how StoreX Paging supports complex operations through customizable strategies and a flexible aggregation pipeline. You'll learn how to implement sorting, filtering, grouping, transforming, deduplicating, and validating paged data efficiently and how to customize the ordering of these operations to suit your specific requirements.

Additionally, you'll discover how StoreX Paging can delegate to Store for optimized data loading and caching, and how it opens up efficient mutations and streaming of child items within paging lists.

Through real-world examples, you’ll learn how to implement high-performance pagination with support for complex operations. And you’ll walk away with fresh ideas and the tools to build better pagination in your own projects.

Key Takeaways
1. Gain a deep understanding of the challenges of pagination in Kotlin Multiplatform projects
2. Explore the technical details of StoreX Paging’s architecture, including concrete examples of middleware, reducers, effects, custom strategies for fetching, inserting, aggregating, and handling errors, and support for complex operations through customizable strategies and a flexible aggregation pipeline
3. Discover the power of delegating data loading and caching to Store for optimal performance and offline support, and how it enables mutations and child item streaming, opening up new possibilities for dynamic and reactive UI
4. Walk away with best practices for implementing paging solutions that are efficient, extensible, maintainable

Experience Level
Senior software engineer at Uber. Authored the latest major version of Store (Store5). Enabled developers to use the previous major version of Store (Store4) on all major Kotlin platforms. Generalized Google's offline-first principles for Android to all other major Kotlin platforms. Added support for mutations, conflict resolution, fallback mechanisms, list decomposition, cache delegation, and validation. Premiered Store5 at Droidcon SF with Mike Nakhimovich. Secured funding from The Kotlin Foundation. Featured on JetBrains’ Talking Kotlin podcast with Mike Nakhimovich and Yigit Boyar.

Kotlin Multiplatform
Performance Benchmarks
Architectural Patterns
Complex Operations
State Management
UI Integration
Open Source

Speaker Bio

Senior software engineer at Uber. Authored Store5, maintain Store under the Mobile Native Foundation. Presented at Droidcon SF 2023. Funded by The Kotlin Foundation. Podcast guest on JetBrains’ Talking Kotlin. Outside of work: skiing, hiking, playing with my dog Tag.