Whooliday is a mobile application that transforms how travelers plan and book their stays, whether it’s a cozy apartment in a bustling city or a luxurious hotel by the beach. Whooliday makes it easy to find the perfect accommodation using powerful search tools and a user-friendly interface, allowing users to explore a wide range of hotels and apartments in their desired location.
Developed using Swift and SwiftUI, this app is built on a three-tier client-server architecture and integrates with various third-party services such as Firebase, Google Maps API, Open Meteo API, and Firestore.
-
Seamless Search and Comprehensive Insights: Users can effortlessly browse through numerous accommodations with advanced filters and detailed listings that include high-quality photos and user reviews.
-
Detailed Price Charts for Smart Planning: The app provides detailed price charts for each accommodation, helping users understand price trends over time and plan the best time to book.
-
Price Tracking Feature: Users can track price changes for specific accommodations or areas, receiving real-time updates about price drops or changes.
-
Suggested Places: Whooliday suggests popular destinations, allowing users to explore locations with additional data such as historical temperature information and user ratings.
-
Multiple Languages: The app supports English, Italian, German, Spanish, French, and Simplified Chinese.
Whooliday employs the MVVM (Model-View-ViewModel) architectural pattern for iOS and iPadOS development. SwiftUI views handle the UI, while business logic and data handling occur through Combine framework and dependency injection.
- Firebase Authentication: Securely manage user credentials and sessions.
- Firestore: Store user data such as preferences and favorites.
- Google APIs: For location-based suggestions and mapping services.
- Custom Accommodation API: Fetches up-to-date listings and information from the Booking.com API via RapidAPI.
Whooliday features comprehensive testing:
- Unit Tests: Cover the core functionalities like authentication, profiles, and searches.
- UI Tests: Simulate user interactions with key workflows like login, search, and filtering.
With a total of 80 unit tests and 13 UI tests, the app has a coverage rate of approximately 89.5%.
- Clone the repository:
git clone https://github.com/yourusername/Whooliday-App.git
- Install dependencies:
cd Whooliday-App pod install - Open the project in Xcode:
open Whooliday-App.xcworkspace
- Build and run on a simulator or connected device.
- Tommaso Diegoli
- Fabio Tagliani
This project is licensed under the MIT License.