-
Notifications
You must be signed in to change notification settings - Fork 5
UX Leads: Introduction to the Role
Welcome, UX Leads!
The role of UX Leads in this project is critical. Most user interfaces can be implemented quickly, given the right specification. However, in the absence of a great specification, user interfaces tend to ignore edge cases, use conflicting styles, and fail to meet visual quality expectations. The role of each UX Lead is to help ensure that this package delivers a user experience that's identical to that of Swift UI.
The role of a UX Lead includes the following:
- Explore Swift UI behavior, using real Swift UI code, to determine how some aspect looks and behaves.
- Contribute real Swift UI code to the iOS gallery app that reproduces all relevant visuals and behaviors (or work with a developer to contribute that code).
- Draft specific visuals and behaviors for each Swift UI View, so that they can be implemented by developers.
- Review developer Pull Requests to ensure that the implementation fulfills all specified details.
It's up to each UX Lead as to how much code that UX Lead might write. If a UX Lead is uncomfortable writing code, then that UX Lead can find a contributing developer and pair program with that developer to achieve the desired goals. Again, the primary purpose of a UX Lead isn't to write code, it's to discover, document, and uphold UX expectations. This package will be as good as the UX Leads make it.
To help the team track the progress of the Swift UI port, the team maintains a spreadsheet, which includes all Swift UI Views.
If you're a UX Lead, please request edit permissions for the spreadsheet.
To explore Swift UI, a UX Lead might begin by exploring the Swift UI API Docs.
Once a UX Lead reaches a basic understanding of some area of Swift UI UX, that UX Lead should create a wide variety of examples in this project's iOS gallery app.
The goal of creating real Swift UI examples is to demonstrate the full variety of visuals, behaviors, and API usages. Once the full variety of UX is displayed in the gallery app, no further examples should be created, because excess examples result in a lot of unnecessary code and work.
After a UX Lead explores the full variety of UX for a given Swift UI View, the UX Lead should draft a specification for what developers need to build for this package.
Each specification will include fragments from different UX areas. For example, the Text
View includes UX specifications for typography, localization, and accessibility. Therefore, multiple UX Leads will contribute to shared specification documents.
Specifications should be written as Wiki entries with a name like "Spec: MyView", e.g., "Spec: Text", "Spec: VStack".
Once a full specification is written, an issue ticket should be filed so that a developer can build the UX.
Whichever UX Lead finishes the specification should work with the Tech Lead to file an appropriate issue ticket.
Once a developer thinks he/she has completed work on an issue ticket, the developer will post a Pull Request for review.
Pull Request reviews required both a UX review and a technical review. Relevant UX Leads should review each Pull Request, first, to ensure that the code results in the desired visuals and behaviors. Once the UX details are reviewed and approved, the Tech Lead will review the Pull Request for final approval and merge.