对应用程序设计感到困惑(应用程序架构师?)
Confused about the application design (app architect?)
所以我正在构建一个移动应用程序,但我遇到了瓶颈,因为我对一切适合的地方或事物如何相互沟通感到困惑。让我详细说明一下
零件:
- 移动应用程序 (React Native)
- 本地存储(Redux-presist)
- 云存储 (AWS)
- 后端管理员 UI 提交的信息被推送到所有移动应用程序(比如添加了新的锻炼或设备)(反应)
- 数据库(Heroku-postgresql)
- API(我知道我需要一个,仅此而已)
这是我目前拥有的图表,但我认为 Web 应用程序 (admin UI) 被排除在外(在下面发布)。我将简单地问这个问题,而不会扩展我研究的内容,以将混淆降到最低。
- 管理员将如何 UI 将更新的项目发送到所有移动应用程序?
- 移动应用程序如何连接到 Heroku 上的 postgresql?
- Web 应用程序 (admin UI) 如何连接到 Heroku 上的 postgresql?
- 什么是客户端库?
- 连接到服务的定义是什么?
- API是否只适合应用的移动端(是这个node还是express js)?
- 我知道我需要 Node 或 express JS,但我不知道它们是两端都用还是只用一个?
我知道这些是基本问题,但我自己也很困惑,非常感谢任何指导。
也许这个解释会有所帮助...
首先你需要3个'computers':
- 第一台计算机是 phone 您的应用所在的移动设备 运行ning
- 第二台计算机是您的中央服务器,它是 运行ning NodeJS/Express
- 第三台计算机正在运行创建您的数据库。
要使您的应用程序正常运行,您需要 'wire-up' 所有三台计算机相互 'talk'。对于移动应用程序和您的服务器之间的通信,我建议使用简单的 HTTP 来处理使用 Fetch API .fetch()
.
的通信
就您的数据库而言,移动 phone 根本不会 'talking' 到数据库。与数据库的所有通信都将由您的服务器处理。例如,如果您需要数据库中的一些信息,您的 NodeJS/Express 服务器将使用数据库 driver/library 查询数据库,然后将该信息发送回 phone。 (请注意,有时人们 运行 数据库与 NodeJS/Express 在同一台机器上,但通常数据库会 运行 在它自己的机器上。)
最后,不要担心 'pushing information from the server to the phone.' 相反,请尝试遵循此模式。 phone 向服务器询问一些信息,服务器向数据库询问答案,然后服务器响应 phone 完成 HTTP 请求。整个过程看起来像这样:移动应用程序发出 .fetch()
请求,服务器响应一个答案。就 phone 而言,它不需要知道数据库的存在。就数据库而言,它不需要知道 phone 存在。
如果您发现自己在苦苦挣扎,我建议您拿起一本关于 NodeJS 和 Express 的书,并涉足一点全栈 Web 开发。您构建的示例 Web 应用程序将具有服务器 'spit out' HTML 或 JSON 数据。对于您的移动应用程序,您需要吐出 JSON。起床 运行 NodeJS/Express 后,您可以将网络应用换成移动应用。
希望我的回答能帮助您指明正确的方向。构建一个完整的堆栈应用程序涉及很多活动部分,none 确实不言自明。
所以我正在构建一个移动应用程序,但我遇到了瓶颈,因为我对一切适合的地方或事物如何相互沟通感到困惑。让我详细说明一下
零件:
- 移动应用程序 (React Native)
- 本地存储(Redux-presist)
- 云存储 (AWS)
- 后端管理员 UI 提交的信息被推送到所有移动应用程序(比如添加了新的锻炼或设备)(反应)
- 数据库(Heroku-postgresql)
- API(我知道我需要一个,仅此而已)
这是我目前拥有的图表,但我认为 Web 应用程序 (admin UI) 被排除在外(在下面发布)。我将简单地问这个问题,而不会扩展我研究的内容,以将混淆降到最低。
- 管理员将如何 UI 将更新的项目发送到所有移动应用程序?
- 移动应用程序如何连接到 Heroku 上的 postgresql?
- Web 应用程序 (admin UI) 如何连接到 Heroku 上的 postgresql?
- 什么是客户端库?
- 连接到服务的定义是什么?
- API是否只适合应用的移动端(是这个node还是express js)?
- 我知道我需要 Node 或 express JS,但我不知道它们是两端都用还是只用一个?
我知道这些是基本问题,但我自己也很困惑,非常感谢任何指导。
也许这个解释会有所帮助...
首先你需要3个'computers':
- 第一台计算机是 phone 您的应用所在的移动设备 运行ning
- 第二台计算机是您的中央服务器,它是 运行ning NodeJS/Express
- 第三台计算机正在运行创建您的数据库。
要使您的应用程序正常运行,您需要 'wire-up' 所有三台计算机相互 'talk'。对于移动应用程序和您的服务器之间的通信,我建议使用简单的 HTTP 来处理使用 Fetch API .fetch()
.
就您的数据库而言,移动 phone 根本不会 'talking' 到数据库。与数据库的所有通信都将由您的服务器处理。例如,如果您需要数据库中的一些信息,您的 NodeJS/Express 服务器将使用数据库 driver/library 查询数据库,然后将该信息发送回 phone。 (请注意,有时人们 运行 数据库与 NodeJS/Express 在同一台机器上,但通常数据库会 运行 在它自己的机器上。)
最后,不要担心 'pushing information from the server to the phone.' 相反,请尝试遵循此模式。 phone 向服务器询问一些信息,服务器向数据库询问答案,然后服务器响应 phone 完成 HTTP 请求。整个过程看起来像这样:移动应用程序发出 .fetch()
请求,服务器响应一个答案。就 phone 而言,它不需要知道数据库的存在。就数据库而言,它不需要知道 phone 存在。
如果您发现自己在苦苦挣扎,我建议您拿起一本关于 NodeJS 和 Express 的书,并涉足一点全栈 Web 开发。您构建的示例 Web 应用程序将具有服务器 'spit out' HTML 或 JSON 数据。对于您的移动应用程序,您需要吐出 JSON。起床 运行 NodeJS/Express 后,您可以将网络应用换成移动应用。
希望我的回答能帮助您指明正确的方向。构建一个完整的堆栈应用程序涉及很多活动部分,none 确实不言自明。