在Xamarin解决方案中,典型的项目分组如下:
SOLUTION
CORE Project (shared non-UI code, referenced by all the other projects)
Android Project
iOS Project
Windows Phone Project
使用此解决方案体系结构,您需要为每个(非Core)项目编写特定于平台的UI代码。
如果只有两个项目会更容易,例如:
SOLUTION
CORE Project
HTML5/CSS/jQuery/jQuery Mobile Project
有哪些缺点? HTML5 / jQuery Mobile"服装"也许并不像本机应用程序那样;表现可能不太好。
但这是一个可行的选择吗?我很想在此声明的基础上尝试这个:" ...总的来说,Web应用程序比不同语言的多个本机应用程序更容易开发和维护。 here
我认为PhoneGap是具有独立本机代码的最低公分母GUI,而Xamarin是具有单独GUIS的API的最低公分母子集,并且该提议是两个GUI的最低公分母和API。但作为一种补偿,以及#34;贫民窟"在两端,代码是(部分)共享的,并且所有的GUI都是共享的(虽然各种浏览器的调整和垫片无疑是必要的。)
我能看到的主要问题是那些需要编写平台特定代码的区域,例如处理条形码扫描和外围设备(带式打印机)打印 - 它会在哪里生存?
基于我在" Xamarin跨平台应用程序开发中看到的内容.pdf"通过Doogie Howser,似乎解决方案folderama应该是这样的:
SOLUTION
FooeyBar.Core
. . .
FooeyBar.Core.Droid
. . .
FooeyBar.Core.iOS
. . .
FooeyBar.Droid
. . .
FooeyBar.iOS
. . .
思想/肯定/反驳?
答案 0 :(得分:2)
绝对可以将Web前端包装在本机应用程序中。您单独使用Xamarin时遇到的一个令人头疼的问题是,您的UI必须几乎完全针对您所针对的平台进行重写(良好的业务逻辑分离可以减轻这种痛苦)。
在集成硬件的本机shell中使用Web UI的一种方法是在injecting javascript和自定义协议处理程序工作的两者之间编写一个瘦的通信层,我已经成功地将这个策略应用于项目 - 它可以工作,它可以让你开发一次你的UI,然后为每个设备设置样式。好消息是您不需要依赖浏览器检测 - 您的本机应用程序可以使用特定URL加载其WebView,后端可以确定要使用的样式,甚至可以在设备之间提供UI版本控制和功能更改。
如果您确实采用了这种方法,请确保将您的原生应用通信层编写为尽可能精简和通用,以减少将来更新本机应用的需要。
答案 1 :(得分:1)
如果您打算用html / javascript编写应用程序中的所有UI,为什么甚至使用Xamarin?这是MonoTouch提供的主要优势 - 每个设备上具有100%本机UI体验(具有共享代码库)。如果你想走那条路,那就去配合Phonegap或Titanium。
至于你的例子,它不一定更容易",这只是你想要完成的事情或你希望你的应用看起来像什么的问题。我找到了第一种方法,单独的项目将更容易"为了我。我也喜欢它在各自平台上提供的原生UI。
最重要的是找到最适合您需要的工具。我不建议尝试使其中一个工具像另一个一样工作。与使用任何一种方法的方法相比,这种方法可以得到更好的结果。