Skip to content

Latest commit

 

History

History
88 lines (66 loc) · 4.06 KB

README.md

File metadata and controls

88 lines (66 loc) · 4.06 KB

VISION DEVELOPER PROGRAM 2024 - Apple Coding Academy

Spatial Shoes App - Final Training Project

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.

Tasks to Complete:

  • 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.

Feedback

Please feel free to fill issues for bugs, erros and features.

Contributing

Give a ⭐️ if this project helped you! If you want to show some extra appreciation:

Buy Me A Present