Xcode Version Used: Xcode 16.2
visionOS Version: 2.2
Project Objective: Build an app for the Spatial Shoes store that displays 3D models alongside the data for each shoe model. The UI design is entirely up to you, but it must adhere to Apple’s native interface design guidelines.
- Create a catalog that displays all the information and models.
- The models can be manipulated in 3D to view them from any orientation and size in a "free view" mode.
- There will also be a "display" mode that can be selected on the screen, where the model rotates continuously and automatically.
- Users can tap on a 3D model to view it exclusively in a volumetric window with more detailed information.
- Users can mark any model as a favorite.
- Create a new layout for these favorites in a shelf mode, where 3D models rotate continuously with their names displayed below. Tapping on them will show a more detailed profile.
- Create an immersive space featuring a carousel of shoes (optional). The first shoe appears in front of the user with "next" and "previous" buttons to cycle through the rest. You can implement this by fading shoes in and out or creating a wheel effect where other shoes approach as the user cycles through. The presentation of this space is up to you. However, the shoes must be displayed in maximum detail while being "grabbed" and return to their display position when released.
A shoes.json file contains all the necessary information:
struct Shoe: Codable {
let id: Int
let name: String
let brand: String
let size: [Int]
let price: Double
let description: String
let model3DName: String
let type: String
let materials: [String]
let origin: String
let gender: String
let weight: Double
let colors: [String]
let warranty: Int
let certifications: [String]
}
The file must be loaded as read-only. The data is not editable from the app; it only displays the information.
You are free to analyze the data and create enumerations or substructures to optimize the catalog.
The model3DName
field contains the USDZ 3D model, located in the 3D folder. A file in Reality Composer Pro must be created to organize all the models appropriately.
All tasks are mandatory except for the final immersive space, which is optional for those who want to go the extra mile.
Scenes can be created in Reality Composer Pro if desired. The scale of each model should be adjusted individually, but in the app, all models must appear the same size.
Please feel free to fill issues for bugs, erros and features.
Give a ⭐️ if this project helped you! If you want to show some extra appreciation: