---
title: "Vitor Pamplona - Air Market"
description: "Vitor Pamplona publishes 11 listings on Air Market."
canonical: "https://airmarket.ai/@vitorpamplona"
---

[Air Market](/) / [Creators](/creators) / Vitor Pamplona

Creator

# Vitor Pamplona

**Vitor Pamplona on Air Market**

|  |  |
| --- | --- |
| Listings | 11 |
| GitHub | [vitorpamplona](https://github.com/vitorpamplona) |

**Published listings, with what each one does**

| Listing | Kind | What it does |
| --- | --- | --- |
| [Compose Multiplatform Expert](/app/compose-expert) | Skill | You're building UI meant to work on more than one platform and keep hitting judgment calls: how to hold state, what to theme, what belongs… |
| [Find Non-Lambda Log Calls](/app/find-non-lambda-logs) | Skill | Logging looks harmless until you need it. Catch blocks that print only the error message throw the stack trace away, and interpolated log c… |
| [Compose State Holder Split](/app/compose-state-holder-ui-split) | Skill | Some screen composables end up doing everything: take a ViewModel, collect state, handle navigation and snackbars, wire callbacks, and lay… |
| [Compose modifier and layout style](/app/compose-modifier-and-layout-style) | Skill | Compose layout code has a lot of small decisions - where the modifier parameter goes, how the chain is built, whether a root layout should… |
| [Kotlin Flow State Modeling](/app/kotlin-flow-state-event-modeling) | Skill | You need to expose something from a Kotlin class and the choice between StateFlow, SharedFlow and a Channel is not obvious. Nor is where to… |
| [Kotlin coroutines: structured concurrency](/app/kotlin-coroutines-structured-concurrency) | Skill | Kotlin coroutine code has a few patterns that cause trouble later: keeping a scope around, launching work from a constructor, blocking a th… |
| [Compose state deferred reads](/app/compose-state-deferred-reads) | Skill | Scroll position, animations and gestures change on every frame. If your Compose code reads those values in the wrong place, everything arou… |
| [Compose Slot API Pattern](/app/compose-slot-api-pattern) | Skill | You built one Compose component and now every caller wants a slightly different look, so it keeps growing extra content parameters and true… |
| [Compose stability diagnostics](/app/compose-stability-diagnostics) | Skill | Your Compose screen redraws more than it should and you are not sure which parameter is to blame. This is guidance for working through para… |
| [Compose: side effects](/app/compose-side-effects) | Skill | Compose UI code often needs to do something besides draw: show a snackbar, move to another screen, move focus, send an analytics event. Get… |
| [Kotlin value class vs data class](/app/kotlin-types-value-class) | Skill | You are declaring a Kotlin type and reaching for a data class out of habit. Sometimes an inline value class is the better fit, and the choi… |

## Links

- [vitorpamplona.com](http://vitorpamplona.com/)
- [GitHub](https://github.com/vitorpamplona)

---

Canonical URL: <https://airmarket.ai/@vitorpamplona>
