我目前正在实现一个 Monotouch 应用程序,最终将移植到 Monodroid。该应用程序只是 OData Web 服务的客户端。没有什么太花哨或对性能至关重要的东西。
挑战是重用尽可能多的代码。我知道 Monotouch 和 Monodroid 的 UI API 有很大不同,但我希望重用数据数据抽象和业务层。
由于我的 UI 层遵循 MVP 模式,因此我还希望通过编写每个视图的抽象表示来重用 UI 控制器。然而,我只能猜测这是否有效,因为我还没有被允许使用 Monodroid beta。
现在我的问题是:
Thanks,
Adrian
您对这种方法有何看法?这是一个好主意,还是会因为 iPhone 和 Android 之间 UI 概念的差异而导致应用程序平庸?
我想说的是后者,但是您绝对可以重用大部分业务和域对象。 Monodroid 中使用相同的 Mono Sqlite,因此应用程序的数据持久性部分(如果使用它)是可重用的。
我不会费心创建中间层 UI - 两者完全不同。例如,在 Android 应用程序上,您有底部菜单,屏幕上可以包含 6 个按钮。在 iPhone 上,标签栏或工具栏中很可能没有 6 个按钮。为此制定一个通用模式对你没有多大帮助。
另一个例子是ListViews(UITableViews)。他们完全不同。正如您所期望的,Monodroid 实现忠实于它丑陋的 Java 姐妹。在 Android 上,您不必使用 Apple 强加给您的大量间接寻址,而只需使用一个简单的 ArrayAdapter 作为数据源 - 为更复杂的布局进行子类化。
另一件需要注意的重要事情是Android 没有单一的屏幕尺寸。您为以下对象创建图像3种不同的屏幕密度。字体大小不是绝对的。
Android 为您提供了类似于 XAML 和 Web 的布局机制,但在 iPhone 上您就没那么幸运(或者更幸运,取决于您如何看待它),因为所有内容通常都是绝对定位的(他们可以做到这一点,因为它始终是 320x480)。
您能否提供有关如何构建应用程序以最大限度地提高代码重用率的任何提示?
我认为您已经覆盖了大部分数据的单独层并坚持使用控制器。如果没有看到你的应用程序,很难说重用控制器有多么容易(无论你使用 UITableViews 还是自定义 uis),但 Android 的开发速度要快得多,我认为这应该是一个快速的任务。
(I'm on the Monodroid preview and also have a MT apps out)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)