![]() |
1
15
你觉得这种方法怎么样?这是一个好主意,还是仅仅因为IPhone和Android在UI概念上的差异而导致一个平庸的应用?我会说后者,但您肯定可以重用大部分业务和域对象。Monodroid中使用了相同的Mono-Sqlite,因此应用程序的数据持久性部分(如果它使用的话)是可重用的。 我不会费心去创建一个中间层用户界面-这两者完全不同。例如,在Android应用程序上,你有一个底部菜单,它可以在屏幕上包含6个按钮。在iPhone上,标签栏或工具栏中很可能没有6个按钮。做一个共同的模式对你没有多大帮助。
Android没有一个屏幕大小 . 您可以为创建图像 3 different screen densities . 字体大小不是绝对的。 Android为你提供了类似于XAML和web的布局机制,在iPhone上你没有那么幸运(或者更幸运,取决于你如何看待它),因为所有的东西都是绝对定位的(他们可以这样做,因为它总是320x480)。 您能否提供一些关于如何构造应用程序以最大化代码重用的提示?
(我在Monodroid预览版上,还有一个MT应用程序) |
![]() |
2
7
听起来你有一个非常坚实的概念。事实上,有一个开源项目叫做MonoCross(http://code.google.com/p/monocross/)使用MVC模式来做类似的事情。 Miguel de Icaza已经完成了一个看起来很酷的MVVM项目,它可能也会对您有所帮助。 https://github.com/migueldeicaza/MonoTouch.MVVM |
![]() |
3
3
我不得不说,它工作得很好,如果我能把我的整个MVC层在控制台中进行单元测试,并让它在Android下工作,那么我就非常希望它能在iPhone和windowsphone下工作,因为控制台甚至没有接口。这是测试表示层通用性的最佳方法。尽管我采取的这种方法可能有些过分,但我计划长期支持这个应用程序,而且我还计划将它移植到Android平板电脑、iPad和Windows8框架上,因此我有必要花额外的时间来做好这一点。 我尝试了MVP模式,但是在这种情况下它不够灵活。我也尝试过各种各样的框架,但最终还是定制开发了整个框架,因为它给了我最大的灵活性。不管怎么说,它都不是微不足道的,如果你对抽象、泛型和面向对象的设计没有非常透彻的理解,那么我建议你采用一种更简单的方法,否则你会为了让它发挥作用而付出惨重的代价。 如前所述,Android有很多细节,例如我在Android中遇到的最大问题是多线程或异步操作和活动轮换,这将彻底破坏你的活动并重新创建它,从而将你的视图和它一起抹去。我自己选择了管理所有轮换配置的路径,这意味着我必须手动清理活动使用的所有可绘制内容和资源。 |
![]() |
4
2
但是,我恢复到只使用“通用”的模型层,并在Mac上(即在MonoDevelop中)执行UI层(控制器和视图)。对于我正在开发的相对较小的应用程序来说,所付出的努力是过度的——只有我一个人在开发它。 另外,如果你对iPhone和/或Android还不熟悉,那么尝试做一些相对复杂的事情会让你更难找到样本或得到问题的答案。我发现自己的生活越来越艰难(当然是在iPhone工作的早期)。
|
![]() |
5
0
可能有点晚,但这次 cross-platform mobile development 视频很有帮助。我还写了一个MT应用程序,将被移植到Android和WP。对于数据存储我正在认真考虑 Vici CoolStorage 用来建立数据模型 completely re-usable 这将是非常有趣的,知道你的项目进展如何。代码重用真的有回报吗? |
![]() |
Om Singh · 如何检测iOS设备类型Xamarin 3 年前 |
![]() |
Patrik · Xamarin安卓长按后退按钮 3 年前 |
![]() |
mersey · Xamarin Android本机调用堆栈 7 年前 |
![]() |
Jeppe Christensen · 如何处理大块文本 7 年前 |