Kurt CapatanMobile Dev
← All work

Fueled · Victoria's Secret

Victoria's Secret app iconPINK app icon

Victoria's Secret Community Library

A plug-and-play community library embedded inside the Victoria's Secret app.

Role
Senior Android Developer / Lead Mobile Engineer
When
2022, 2026
Platforms
Android
Industry
Retail, Social community
Release
Live inside the Victoria's Secret and PINK apps on Google Play.
  • Kotlin
  • Android library
  • XML + Data Binding
  • Hilt
  • Coroutines
  • StateFlow
  • Retrofit
  • Room
  • LeakCanary
The Styles feed grid and the filter sheet
The Styles feed and filter sheet, which I built. Test accounts and placeholder photos.

About the app

Community is a social space inside the Victoria's Secret and PINK shopping apps. Shoppers join Spaces to post and run polls, and share outfit photos in Styles, tagged with the products they wear. I worked on the Android library that powers it.

What I built (2022)

  • The profile page — the screen, its ViewModel, the joined-spaces carousel, the user’s paginated post list, and profile badges stored in Room.
  • The whole search stack — the API, service, contract, ViewModel, fragment and a large test suite. Search runs as you type, with an 800 ms debounce, and each new query cancels the previous request.
  • The Styles feed — tag filtering with a paginated grid, plus badges and product links.
  • Style post creation — pick a photo, choose from the cached style-tag tree, add products, and submit; a pending-moderation sheet when the post is held for review.

What I shipped (2026)

  • 2.1.43: under edge-to-edge, the keyboard covered the comment field because adjustResize no longer resizes the window — I added a listener that includes the keyboard inset.
  • 2.1.44: fixed a sort arrow overlapping its label, and a post image that flashed on like/unlike because a payload-less change rebound a second view holder before data binding ran.
  • Releases: I cut both releases to GitHub Packages Maven and kept master and develop in sync after a squash merge split them.
How analytics work in a library

The library ships no analytics SDK. It defines an Analytics interface with one call for actions and one for screens; the host app implements it and forwards events to its own tool. A library should not force a vendor on the app that embeds it.