The idealista iOS team is on the lookout for a new teammate! We’re on a mission to find someone who’s ready to dive into the exciting (and sometimes wild) world of iOS development. From building cool new features to squashing bugs, crafting pixel-perfect UIs, and making sure everything runs smoothly and securely — we’ve got plenty to keep you on your toes.
Think you’re up for the challenge? We could really use your skills to create the next generation of awesome features that will take our app to new heights. Whether it’s making sure our users have a seamless experience or pushing the limits of performance, we need someone who’s ready to jump in and make a real impact.
Here at idealista, we’re all about clean, maintainable code and solid testable components. If you love turning great ideas into reality, this might just be the perfect challenge for you!
- Read the minimum requirements.
- Fork this repository.
- Start coding and have fun!
Build a small app that allows users to browse through a list of ads and view ad details on a separate screen.
- List: https://idealista.github.io/ios-challenge/list.json
- Detail: https://idealista.github.io/ios-challenge/detail.json Please note: the response is always the same.
- The app must run on Xcode 16.0 and be compatible with iOS 15 through iOS 18.
- The app should include at least two screens:
- A listing screen displaying a collection of ads.
- A detail screen for viewing individual ad information.
- The code must be written in Swift and use the UIKit framework.
- Implement functionality to allow users to favorite ads.
- If an ad is favorited, display the date it was favorited.
- Use the provided API endpoints to fetch and display ad data.
- Only use third-party libraries if absolutely necessary. We value clean and lightweight implementations.
- Implement pull-to-refresh functionality on the listing screen.
- Localize the app into at least one additional language.
- Add tests for key components of the app.
- Add support for Dark Mode to ensure the app looks great in all environments.
- Incorporate some SwiftUI code alongside UIKit.
- Implement persistent storage using Core Data, SwiftData, Realm, or any other suitable solution.
- Add iPad support with a responsive layout.
- Show the location of the ad using a map view, indicating its position.
- Feel free to go beyond the requirements and improve the app in any way you think is best — we love creativity!
- Email us at [email protected] with your repository link you'd like our iOS team to review, or send the project folder (including the
.git
directory). - Celebrate with a beer after a well done job! 🍺