An iOS application that allows users to search, view, and save real estate listings using Zillow’s REST API and Core Data for persistence.
Built entirely with UIKit and programmatic Auto Layout, following the MVC architecture.
Developed as part of an academic project at Seneca Polytechnic.
⚠️ Note: The app originally integrated Zillow’s RapidAPI for live property data.
As of 2025, the public API endpoint is deprecated, so real-time search is no longer active.
However, the project fully demonstrates API request handling, JSON decoding, and Core Data integration.
- 🔍 Property Search — Browse real estate listings with filters for location, price, beds, and baths
- 🏠 Property Details — View images, prices, and descriptions of individual listings
- ❤️ Favorites Management — Save and view favorite properties using Core Data persistence
- 🔑 User Authentication — Register, log in, and manage accounts locally
- 🧭 Smooth Navigation — Custom tab bar with login, search, favorites, and logout flows
- 🧱 Programmatic UI — Built fully with Auto Layout in code (no storyboards)
The app follows the MVC (Model–View–Controller) pattern for clarity and scalability.
PropertyModel.swift
— Defines the structure for API-decoded property data- Core Data Entities:
User
andFavoriteProperty
(with relationships and attributes)Persistence.swift
handles the Core Data stack
SearchPropertyCell.swift
— Displays search results dynamically with async image loadingFavoritesTableViewCell.swift
— Shows saved favorites in a card-like layout
SearchZillowViewController.swift
— Handles API requests and search logicFavoritesViewController.swift
— Displays and manages saved Core Data favoritesLoginViewController.swift
/SignUpViewController.swift
— Handles user authenticationMainTabBarController.swift
/LogoutPlaceholderViewController.swift
— Manages main navigation flowWelcomeViewController.swift
— Initial screen for first-time users
- Frameworks: UIKit, Core Data, Foundation
- Architecture: MVC
- Networking: REST API integration (Zillow’s RapidAPI, using
URLSession
) - Persistence: Core Data (CRUD operations and entity relationships)
- UI: Fully programmatic layout with Auto Layout constraints
- Authentication: Core Data–based local login and registration
- Error Handling: Alerts, predicates, and optional unwrapping for safe logic execution
Category | Tools / Frameworks |
---|---|
Language | Swift 5 |
Frameworks | UIKit, Core Data, Foundation |
Architecture | MVC |
API Integration | Zillow’s RapidAPI (REST) |
Persistence | Core Data |
UI Layout | Programmatic Auto Layout |
Authentication | Local (Core Data–based) |
Welcome | Sign Up | Log In |
---|---|---|
![]() |
![]() |
![]() |
Empty Search | Search by City | Filter Results |
---|---|---|
![]() |
![]() |
![]() |
Empty Favorites | Add to Favorites | Favorites List | Remove Favorite |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Logout Confirmation |
---|
![]() |
Andrea Selina Perez
📍 Seneca Polytechnic – Computer Programming (iOS & Data Structures focus)
📫 andreaselinaperez26@gmail.com
🌐 GitHub Profile
⭐ If you found this project interesting, feel free to star the repo or connect with me on GitHub!