您如何看待这种方法?这是一个好主意,还是会因为 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 的开发速度要快得多,我认为这应该是一项快速的任务。
(我在 Monodroid 预览版中,也有一个 MT 应用程序)