https://github.com/idealista/ios-challenge
iOS challenge
https://github.com/idealista/ios-challenge
ios programming-challenge
Last synced: 11 months ago
JSON representation
iOS challenge
- Host: GitHub
- URL: https://github.com/idealista/ios-challenge
- Owner: idealista
- Created: 2021-02-02T11:27:13.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-06T14:31:24.000Z (about 1 year ago)
- Last Synced: 2025-03-31T05:29:00.212Z (about 1 year ago)
- Topics: ios, programming-challenge
- Homepage: https://www.idealista.com/empleo/ofertas/
- Size: 301 KB
- Stars: 5
- Watchers: 25
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# idealista iOS Challenge
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!
### 🚀 Getting Started
1. Read the **minimum requirements**.
2. Fork this repository.
3. Start coding and have fun!
### 📱 Task
Build a small app that allows users to browse through a list of ads and view ad details on a separate screen.
### 🌐 API
- List: [https://idealista.github.io/ios-challenge/list.json](https://idealista.github.io/ios-challenge/list.json)
- Detail: [https://idealista.github.io/ios-challenge/detail.json](https://idealista.github.io/ios-challenge/detail.json) *Please note: the response is always the same*.
### ✅ Minimum Requirements
- The app must run on **Xcode 16.0** and be compatible with **iOS 16** 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.
### 🎁 Optional Bonus Tasks (For extra kudos!)
1. Implement **pull-to-refresh** functionality on the listing screen.
2. **Localize** the app into at least one additional language.
3. Add **tests** for key components of the app.
4. Add support for **Dark Mode** to ensure the app looks great in all environments.
5. Incorporate some **SwiftUI** code alongside UIKit.
6. Implement **persistent storage** using Core Data, SwiftData, Realm, or any other suitable solution.
7. Add **iPad support** with a responsive layout.
8. Show the location of the ad using a **map** view, indicating its position.
9. Feel free to go beyond the requirements and **improve the app** in any way you think is best — we love creativity!
### 🎉 Once You’ve Finished
1. Email us at [tlfernandez@idealista.com](mailto:tlfernandez@idealista.com) with your repository link you'd like our iOS team to review, or send the project folder (including the `.git` directory).
2. Celebrate with a beer after a well done job! 🍺