【问题标题】:What business logic can I share between my Android and iOS apps using Xamarin?我可以使用 Xamarin 在我的 Android 和 iOS 应用程序之间共享哪些业务逻辑?
【发布时间】:2016-02-14 03:36:54
【问题描述】:

我想使用 Xamarin 构建一个面向多个平台(Android 和 iOS)的应用。这个应用程序包括从 MySQL 数据库中检索特定数据,将它们存储在内部数据库中(例如,使用 Android 的 SQLite 数据库)并制作一个包含产品名称列表的屏幕以使其变得简单。这样做,运行我的应用程序的设备可以离线显示列表。除此之外,使用我的应用程序(Android设备或iOS设备)的客户端上线时,应通知mysql数据库的修改并更新内部数据库。

使用 Xamarin 创建这个跨平台的 Android 和 iOS 应用程序通常涉及创建三种类型的项目:

  • 包含共享代码的可移植类库项目
  • 包含 Android 特定代码的 Android 应用程序项目
  • 包含 iOS 特定代码的 iOS 应用程序项目

很容易注意到,用户界面是我无法在 Android 和 iOS 之间共享的部分。但是我发现很难找到可以在他们之间共享的部分。

能不能分享一下逻辑

  • 正在从 MySQL 数据库中检索数据
  • 在 MySQL 数据库更新时收到通知
  • 将数据存储在内部存储中
  • 从内部存储中检索数据

【问题讨论】:

  • 如果您的共享库中有表示数据对象的类、执行存储/检索此类数据的类等,那么其他项目可以使用它们。更新UI之类的逻辑必须留在UI项目中,而计算之类的逻辑可以留在业务逻辑部分。

标签: android ios mysql sqlite xamarin


【解决方案1】:

您的共享项目(通常)可以包含任何非平台或 UI 特定的内容,例如:

  • 数据访问
  • 领域模型
  • 服务代码
  • 查看模型
  • 实用程序代码

另外请注意,如果您使用 Xamarin Forms,您还可以将您的 UI 代码放在共享项目中。

【讨论】:

  • 感谢您的回答。但是将 Xamarin Forms 用于共享 UI 与为每个平台使用两个单独的 UI 有什么区别?
  • 如果您希望最大程度地控制您的 UI,并希望最大限度地利用平台特定功能,请为您的 UI 编写单独的平台项目。如果您想最大限度地共享代码,并且愿意(可能)在性能和失控方面付出一点代价,那么请考虑使用 Forms。
  • 借助 Xamarin Forms,您可以使用平台特定功能。
猜你喜欢
  • 1970-01-01
  • 2013-03-18
  • 2016-01-22
  • 2011-03-30
  • 2011-09-16
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多