

Attraction Ticket Booking Service
1. Search Engine
This page optimizes the user’s search experience with intuitive features:
-
A destination selection entrance.
-
Convenient search history for quick revisits.
-
Direct access to popular keywords and top products, each providing immediate links to the product detail view or web view.
#UserDefaults
#RESTful APIs
#ReusableUIComponents
#FirebaseAnalytics

1-2. Search historys
It tracks the user’s search history, storing previously searched keywords or selected destinations. These items appear on the search engine page, allowing users to quickly revisit their search result.
#UserDefaults
#RESTfulAPIs
#ReusableUIComponents
#FirebaseAnalytics

2-2. Search by keyword
This feature allows users to search for attraction tickets or destinations by entering keywords. Before typing, users can view their previous search history in the list. Each new input dynamically updates the search results in real-time. Clicking on any result takes the user directly to the product detail page for more information.
#RESTfulAPIs
#UserDefaults
#ReusableUIcomponents
#FirebaseAnalytics

3-1. Filter
This page uses a UICollectionView to display filtering options, including price range filters. All filter criteria are dynamically fetched from the API, ensuring real-time updates.
#RESTfulAPIs
#ReusableUIcomponents
#FirebaseAnalytics

5. Order setting
This page features a calendar displaying available dates with corresponding prices using FSCalendar. Users can select their desired date, choose ticket quantity, plan, and type, and review the total cost. After confirming the selection, users are directed to input customer information and proceed with the in-app purchase flow.
#RESTfulAPI
#reusablecomponents
#HTMLParsing
#FSCalendar
#FirebaseAnalytics

1- 1. In-App links
The page utilizes Universal Links to seamlessly direct users either to a web content via a WebView or directly to the product detail view within the app.

2. Select a Country or City
This page allows users to select countries and cities. The available options are fetched in real-time via API responses. The layout leverages nested UICollectionView to display reusable UI components efficiently. Clicking on any cell takes the user directly to the attraction ticket search result view.
#RESTfulAPIs
#ReusableUIComponents
#FirebaseAnalytics

3. Search result
Displays all available attraction tickets based on the selected destination. The page supports complex filtering options and sorting, with both filter parameters and sorting data fetched from an API. Cursor pagination is used to load data incrementally, and users can refresh results by pulling down the page. Images are efficiently loaded using SDWebImage.
#CursorPagination
#RESTfulAPIs
#SDWebImage
#ReusableUIcomponents
#FirebaseAnalytics

4. Ticket detail information
This page enhances the user experience with intuitive features:
-
Detailed ticket information such as location, pricing, terms. etc
-
generate a short link for sharing.
-
Ability to add items to favorites, making them quickly accessible from My Favorite page.
-
Seamless navigation to the next step for configuring purchase details after confirmation.
#RESTfulAPI
#UserDefaults
#HTMLParsing
#ReusableUIcomponents
#FirebaseAnalytics
