Mobile Movies App Challenge
سؤال انترفيو في تيلدا (مصر) · المرحلة: تاسك في البيت · المجال: تطبيقات موبايل · الوظيفة: مهندس برمجيات ومهندس موبايل · الصعوبة: متوسط · اتسأل 7 مرات، آخرها أكتوبر 2025
What they ask
The mobile take-home has been the same movies app for iOS and Android since at least late 2022, built on the public TMDB API. The brief is two main screens.
Search and list. A search bar that looks movies up by title, with the popular movies list shown while the query is empty. Results are grouped by release year.
Details. Title, overview, poster, tagline, revenue, release date and status. Underneath it, up to five similar movies, and from the credits of those similar movies, the top five actors and the top five directors, grouped and sorted by popularity. A watchlist toggle on the details screen; whether it persists is up to you, and several candidates kept it in memory and said so. Images should be cached and show a placeholder when a load fails.
Some versions of the brief add a short checklist: portrait only, responsive to screen sizes, dark mode, and a note on how the API key is kept out of the repository.
What candidates built
iOS submissions are UIKit or SwiftUI with Combine, MVVM or clean layers, and most used plain URLSession with no third-party networking. Android submissions are Kotlin with Compose or XML, Retrofit or Ktor, Room, Hilt or Koin, coroutines and StateFlow, with JUnit, MockK and Turbine on the test side. One late 2024 Android candidate received a different brief (products, categories and a cart over a mock API with Room), so the mobile task is not perfectly fixed.
By late 2025 at least one Android candidate got a live hands-on test after the intro conversation instead of a take-home, and wrote that they would have preferred the task. Be ready for either.
What they look for
- The actors and directors block, which needs several credits calls merged, deduplicated and sorted. It is the part of the task that separates submissions.
- Search that debounces and cancels stale requests, and a list that pages.
- Clear layer boundaries you can defend in the follow-up call.
- API key handling (xcconfig, BuildConfig, local properties), not a string in the source.
- Tests for the view model and the mapping logic, and a README that explains the decisions.