Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add "API Parity" page equivalent for macOS #612

Open
AgneLukoseviciute opened this issue Dec 8, 2021 · 4 comments
Open

Add "API Parity" page equivalent for macOS #612

AgneLukoseviciute opened this issue Dec 8, 2021 · 4 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request Platform: macOS
Milestone

Comments

@AgneLukoseviciute
Copy link
Collaborator

Suggestion

The page currently* titled "API Parity" is the only page that really discusses the components/APIs we support & how we're working to stay up to date with RN Core. This page is linked under "The Basics (Windows)" and links to the rnw repo for milestones, open issues etc., it would make sense to have something similar listed under the same section for macOS.

Location

The Basics (macOS)

@AgneLukoseviciute AgneLukoseviciute added documentation Improvements or additions to documentation enhancement New feature or request labels Dec 8, 2021
@ghost
Copy link

ghost commented Dec 8, 2021

Many of our core contributors are taking some much needed vacation throughout December 2021. Thank you for being patient while we relax, recharge, and return to a normal responsiveness in January 2022. In the meantime feel free to continue to pose questions, open issues, and make feature requests - you just may not get a response right away.

@ghost ghost added the Needs: Triage 🔍 label Dec 8, 2021
@chrisglein
Copy link
Member

@HeyImChris How much difference is there from iOS to macOS as far as API implementation parity? What common questions and content would you want to feature here on the website?

@HeyImChris
Copy link
Contributor

@HeyImChris How much difference is there from iOS to macOS as far as API implementation parity? What common questions and content would you want to feature here on the website?

At a high level, we try and keep macOS and iOS in as much parity as possible. If I were to try and categorize the issues, I'd start with the buckets of differences below. Views have the most differences by far, but various controls throughout the codebase may have an extra API here or there as we saw fit to add support for something.

As for common questions and content to feature here, could you provide a bit more context on what other platforms are providing? Or maybe we can sync up on Teams to review this. I do know that one of the most common issues I see people file is they're not aware that macOS operates nearly identically to iOS (e.g. you built an iOS control? you can just as easily build a macOS control). Maybe we could link the React-Native Build talks we gave that walk through some of the basics that I see get asked a lot.

Accessibility

  • RCTAccessibilityManager doesn't exist for macOS

Notifications

  • RCTPushNotificationManager

System Settings

  • macOS monitors changes to NSUserDefaults

iOS or macOS specific concepts

  • Device Orientation (iOS)
  • Vibration (iOS)
  • StatusBar (iOS)
  • Switches (iOS has tint color)
  • Menus (macOS)
    • RCTActionSheetManager
    • RCTDevMenu

Views (a lot of differences)

  • Accessibility (e.g. keyboarding through controls, key view loop management) (macOS)
  • Mouse interactions (clicking, hover, dragging, etc.) (macOS)
  • Rasterization (iOS)
  • General keyboard interactions/focus (macOS)
  • Tooltips (macOS)

@chrisglein
Copy link
Member

For context, here's the page for Windows (which I believe has some pending changes from the last month, but you get the gist): https://microsoft.github.io/react-native-windows/docs/next/parity-status

At times we've talked about documenting in detail the status of individual APIs. It was... a lot of work. Now the policy is more "if you find it doesn't work, open an issue", and the complete/incomplete status is represented as a category of labeled github issues. Less good for the website, but easier to keep up to date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request Platform: macOS
Projects
None yet
Development

No branches or pull requests

3 participants