从单个 React Native 代码库实现不同的 Android / iOS UI 约定?

Fulfilling differing Android / iOS UI conventions from a single React Native codebase?

这可能吗?

我发现的 React Native 的每个概述/分析都涵盖了使用 RN 的基本原因,并且要么是旧的(没有 Android,要么 "Android just released"),或者侧重于它编译为本机元素(即不是 HTML5)

我想念的是,用 React Native 构建的应用程序如何满足风格指南、约定和用户对每个平台上的应用程序应该如何运行的期望?我不想制作看起来像 iOS 应用程序的 Android 应用程序,反之亦然。

平台特定样式和交互指南的开创性资源是 Material Design system for Android and the Human Interface Guidelines for iOS

在 React Native 上实现 iOS-感觉 UX 开箱即用非常简单。 Android 应用可能会受益于使用 react-native-material-design 包来获得原生感觉控件。

对于通过 React Native 进行移动开发的网络开发人员(我就是其中之一)来说,最大的挑战之一是了解是什么让 那种原生感觉 。这是一个非常主观和敏感的话题,不是阅读指南或应用逻辑工程思维解决问题就能轻易解决的。

我发现,使用大量流行的应用程序并尝试推理是什么让它们成功,这是一种非常宝贵的做法,批判性地评估自己的工作并花时间和关注细节,有时这就是一切都不同了。

正如@jevakallio 回答的那样,您可以根据 Google 或 Apple 的平台特定规则自定义 UI。 从技术上讲,它可以通过多种方式完成。如果差异很小,您可以使用 Platform 模块进行条件检查:

if (Platform.OS === 'ios') {
    ...
} else {
    ...
}

如果差异很大则使用文件后缀(androidios):

MyComponent.ios.js
MyComponent.android.js

https://facebook.github.io/react-native/docs/platform-specific-code.html

您甚至可以为每个平台或设备类型(平板电脑或 phone)制作完全不同的 UI 保存所有非 UI 逻辑通用。