我有本地Android开发人员的背景(以前的Eclipse,自2015年初以来的Android Studio)和unity3d作为模拟和游戏开发人员。我目前负责调查跨平台开发平台。
我在this question和others进行了搜索。我会说Xamarin是大型/复杂项目的赢家。但是,对于核心复杂项目来说,xamarin是否足够?
例如社交平台应用程序,假设我正在开发自己的Facebook,Xamarin是否足够好?请以一般方式回答并考虑以下方面;
我了解到Xamarin使用了所有Android组件,例如recycleview等。所以它很不错。
但是在需要身份验证登录的复杂性中,使用Twitter,谷歌,Facebook apis是否可用?当我在这个问题上遇到错误时,Xamarin能提供足够的文档和帮助吗?对于其他apis,例如Google Analytics和静态甚至可能是Admob。
上传/下载文件(图片/视频/文字)可以(或应该)使用我以前的库,例如Asynchttp,picasso。或者有更好的解决方案吗?(也许xamarin有自己的方式来实现这些功能,我甚至不得不使用3方库)。
对于webservice组件,iOS有自己的解析以及第三方库,例如afnetworking,restkit,Android有一些库。 xamarin提供什么样的解决方案?我知道我可以将jar文件添加到Xamarin。但还有其他解决方案吗?
Xamarin作为单声道,使用unity3d支持增强现实,但它是否支持原生应用?这样的beyondar in Android,我会说wikitude和vuforia令人惊讶,但是我可以将这些插件实现到原生的Xamarin(而不是unity3d)吗?
答案 0 :(得分:4)
我不认为,StackOverflow是讨论这样问题的正确场所。它非常依赖于您的技能和具体要求。
一般而言,如果您没有任何技术经验,那么用它(对您而言)构建超级复杂软件当然不是正确的。
请不要将Xamarin视为移动应用框架,它可以为您处理很多内容。它确实不是。
Xamarin允许您在C#中编写所有应用程序代码,并在iOS和Android上运行.Net代码。这基本上都是。
如果您不想最大限度地使用Xamarin,您当然不应该使用特定于平台的库,而应使用便携式解决方案,因此您只需要执行一次。
Rest,Json,Web,Filetransfer等有大量的.Net软件包,其中大多数都是可移植的。 Xamarin还提供了一个组件存储,它们可以确保跨平台兼容性。
对你而言,这意味着你必须学习所有这些框架(以及一些.Net / C#)。这将花费你很多训练时间。
从长远来看,好处可能只会变得明显,因为您只需维护一个代码库。对于具有大量逻辑的超级复杂应用程序尤其如此。