Películas.
All your movies,
in a single app.
Discover what to watch tonight, save what you liked, and stop searching across three different apps for what that movie was called.
Your list
Built with judgment, not a checklist.
Every module answers a real use case. No decorative features that look great in the demo and get in the way day-to-day.
Browse catalog
Thousands of movies and series, from new releases to classics. Search by title, actor, director, or genre.
Custom lists
Create lists by genre, decade, or whatever you dream up. "For Sundays", "With mom", whatever you want. Your favorites one tap away.
Advanced search
Filter by year, genre, rating, cast, or duration. Find exactly what you feel like watching.
Full details
Cast, rating, trailer, trivia, and synopsis. All in one view, without opening five apps. Recommendations based on what you saved.
Multi-device sync
Your lists and favorites on any device. Your account, your collection, wherever you are.
Fast and modern
Fluid UI with aggressive poster caching, animated transitions, and Android 15 support. No lag, no waiting.
Decisions that mattered.
The problem
You want to watch a movie and end up running three streaming apps in parallel just to figure out where it is available. A list you built in one app is useless in another. Chaos. 60% of users abandon the search after 2 apps.
Data architecture
Películas is a custom layer over open movie data (TMDB). No custom backend — Retrofit consumes the API, Room caches everything locally. The catalog is infinite but your selection is yours. The tradeoff: without a backend there is no cross-device sync.
Aggressive image caching
Coil with memory + disk cache. Posters pre-loaded in background scroll. Animated transitions between list and detail: the poster expands from its position. The app feels fast because you never see an empty slot where a poster should be. Metric: 0 empty posters during normal scroll.
Search that does not block
Local search with Room + FTS (Full Text Search). No unnecessary debounce: every keystroke filters in < 50ms. Advanced search: year, genre, rating, cast, duration. Combinable filters without lag. The tradeoff: local search limited to the cached catalog.
Deep links and navigation
Every movie has a stable deep link: /peliculas/{id}. This enables sharing directly to a movie, returning from a push, or opening from a widget. Navigation Compose handles the navigation stack with protection against back-stack corruption.
Offline: what works and what does not
With connection: full catalog, search, trailers, recommendations. Without connection: your lists, favorites, and cached posters. Room stores the entire viewed catalog. The tradeoff: you cannot explore new movies without network, but your collection is always available.
Real performance
Cold start: < 500ms. Catalog scroll: 60fps with high-resolution posters. Search: < 50ms per query. Memory: < 80MB with 500 cached posters. APK size: < 12MB. These metrics are measured on a Xiaomi Redmi Note 11 (mid-range), not a Pixel 7.
What I learned
Images are everything in this kind of app. Coil with aggressive caching, pre-loaded posters, animated transitions between list and detail. Android 15 forced me to rethink permissions and battery — and the result was better for the user. Hilt simplified dependency injection but added complexity to the build.
Need something similar?
If you liked this app and want one for your industry or your idea, let's talk. I build things like this every day.