Modern Paging at Scale: StoreX + Compose
Pagination in large-scale mobile applications presents unique challenges. This talk, presented by engineers from Uber and TikTok, introduces StoreX Paging, the Mobile Native Foundation’s KMP solution.
We’ll dive deep into StoreX Paging’s architecture, built on unidirectional data flow, Store, Molecule, and Compose. We’ll discuss the results of our preliminary performance benchmarks. We’ll explore new concepts like an “updating item” for independent updates and an “operation pipeline” for on-the-fly data transformations, setting StoreX apart from traditional paging libraries.
The talk will cover StoreX Paging’s core APIs and customization points, including launch effects, middleware, side effects, and adaptive fetching strategies. We’ll share implementation details of our default fetching strategy and Compose Runtime integration, demonstrating how we’ve optimized memory management for large datasets. Finally, we’ll discuss performance benchmarking approaches and real-world applications of StoreX Paging at TikTok.
Mobile Developer Productivity Panel
The panelists will discuss developer productivity, developer experience, tools, etc topics for large scale mobile applications. The panel will start with an introduction of the tech/tooling stack of their current organizations then dive into topics like Gen AI, measurement/metrics,
remote development, forward looking innovation, roadmap, IDE, Tooling, Build, CI/CD. Panelists TBD
Topics
- What had the biggest impact on mobile Developer Experience in the last 24 months?
- Remote development: how do you approach development environment consistency? What were the DPE/DevEx results from their investment in remote development?
- How are you using AI in your infrastructure?
- What are the IDE plugins and toolings that had the most impact on developer productivity
- How are you measuring Developer Productivity?
- How do you balance velocity vs quality?
How to make Kotlin compile 2x faster on a super large project?
In this talk, we'll introduce 5 advanced optimizations, from easy to hard to existing Kotlin compilers which are related to cache rate improvement and cache reuse. One of the heavyweight optimizations we call the "baseline kotlin cache". As we all know, normally, any changes to a low-level module will make the parent module cache fingerprint change invalid. We solved this problem by turning the fuzzy cache of the compileKotlin task into an incremental record bin, and reducing the full build time of the TikTok app in any scenario to 50%! Those solutions from TikTok could help Kotlin module build 2x+ faster than it used to be.