文档章节

我对Xamarin的一些抱怨

kut
 kut
发布于 2014/02/04 12:11
字数 897
阅读 7638
收藏 16

Xamarin,因为客户公司要节省成本,想提高开发效率,这样,我接触了这东西。

很早就听说这家伙了,那是做Android开发的时候,这家伙把广告打得好响,去看了一下,貌似愿景很美好,可是一看见授权费用这么惊人之后,立马摇头,再也没看过。而这段时间因为客户公司的要求,想在技术成本及开发上取得一些便利,于是听了微软推销人员的话,想在这上面做一些尝试,于是乎自己便再次接触这东西。

Xamarin设想得想当美好,它的意思就是,无论是iOS平台亦或是Android平台,它们在业务方面都是一致的,只是因为Android和iOS开发语言的不同,而使用C++的话会使得开发这些共用的业务逻辑的代码成本过高,于是它想利用Mono可移稙性,统一所有平台都使用C#这种语言,将共用的业务逻辑统一写在一个模块中,而各个平台的应用另写模块,却共用这个业务模块,这样可以省下大量的开发工作,特别是Android和iOS开发时因为业务理解不一或实现不一导致的不一至的业务行为和结果。这是相当理想化的设想,而且很多工作都可并行合作。

但是这个想法太不切实际。这里就列几点吧。

  1. Android或iOS平台上该要学习的知识点,你都得学习一遍。也就是说,别以为你懂个C#就行,你如果想进行Android开发,你还得会Java语言,并且了解Android开发环境里的一切,包括API,相关运作机制。这样的话,你得了解更多的东西,你才能在Xamarin上开发你想要的东西,也就是说,你得先是一个Android开发人员,然后才能是使用Xamarin开发的人员。

  2. API虽然做了一对一的映射,可是却是迟滞的,也就是说,你使用的API不可能立即和官方同步。而且因为Xamarin的实现机制,有些东西并没有很好地实现,比方说iOS的已经使用了ARC,而Xamarin使用的还是自行释方这些资源,虽然C#语言可以垃圾收集,可是关于UI这一块的实现却是老旧的自行释放方式。再比方说iOS排版,Xamarin仍是使用Frame这样的方式,而不是使用Autolayout。

  3. 第三方库支持的不行。开发惯iOS的程序员都知道个cocoapods这个东西,它可以帮我们管理第三方库,而在iOS上开发效率上,这些第三方开发库起到了决定性的作用,Android也是同样的。然,在Xamarin中,你必须要抛弃这些,也就是说,某种程度上你是在废了自己武功之后再去和高手较量。当然,如果你在Xamarin上积累了大量的Xamarin库,那还好,可是这毕竟是少数,Xamarin是绝对小众的东西,从某个意义上讲,这是不可能实现的。

  4. 从职业前途而言,你认为Android开发人员或者是iOS开发人员会SB到转到这个上面吗?

实在是无奈,年后就要实施这个东西,狗日的。

© 著作权归作者所有

共有 人打赏支持
上一篇: 学习DDD总结
kut

kut

粉丝 52
博文 115
码字总数 33247
作品 0
广州
技术主管
私信 提问
加载中

评论(20)

D
DarrenTen
同感,试用了下,幸亏懂点Android开发,否则真不知道从何开始下手开发,还真以为是write once, run anywhere呢,原来坑人的。既不是设想的像开发winform一样,拖个控件,写写逻辑就行了的事,也不是只需要编写一个Android版本就直接可以打成ios包,简直坑爹,授权费还这么贵,玩毛!
大学霸
大学霸
   C#苹果应用开发——Xamarin ios 教程 Xamarin跨平台开发http://my.oschina.net/u/1585857/blog/228818
衣往情深
衣往情深
看来我不用考虑Xamarin 了,还是.net归.net,ios和安卓的学原生,需要跨平台就用appcan之类的做,游戏用coco或者3D...
javasql
javasql
一套代码跨Android和iOS开发,目前看来就delphi和Adobe Air靠谱。
Zero__One
Zero__One
有参考价值
渡世白玉
渡世白玉

引用来自“gakaki”的评论

qt也一样啊

QT不一样、、Qt ios的我不清楚、、Qt Android是直接开发的so库文件,用NDK,然后Jni调用的、、Qt更多的是api封装、、话说Android和ios原生都是支持C++开发的、、C#不一样啊、、
朱静程
朱静程
不是很同意楼主观点,虽然你说的有一些道理。
真正做跨平台时才能体会到。
xmlspyspring
xmlspyspring
还有哪个Titanium,使用js写的,同样的问题.用过一段时间后,立即扔了.
zybook
zybook
还是delphi好
树相马
树相马
使用过一周,发现,我先要成为咖啡程序员才能使用它。于是。·~~~~~~彻底放弃!
使用Xamarin实现跨平台移动应用开发

Xamarin曾是一种利基产品,售价昂贵。现在,它正逐渐成为一种广为使用的移动应用开发工具(参见链接给出幻灯片的第4张和第6张)。出于一些原因,Xamarin并不适用于某些类型的应用,其本身也存...

移动开发和深度学习
01/15
0
0
Xamarin.Forms教程下载安装Windows版的Xamarin开发工具

Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具。 下载安装GTK# GTK#是一个.NET库,用来绑...

大学霸
2016/03/18
95
0
强大UI控件Telerik UI for Xamarin发布R3 2016 BETA|附下载

Telerik UI for Xamarin是一个构建跨平台移动应用程序的原生UI。Telerik UI for Xamarin使用Xamarin.Forms技术,它可以让开发人员从一个单一的共享C#代码库中创建原生的iOS、Android和Windo...

Miss_Hello_World
2016/10/18
8
0
RoboVM 被 Xamarin 收购,不再开源

自从 RoboVM 被 Xamarin 收购以来,公司不断的提升服务的价格,现在已经关闭了 RoboVM 的源代码。 RoboVM 在 10 月 21 日被 Xamarin 收购。 Xamarin 和 RoboVM 两个都主要是创建跨平台移动应...

oschina
2015/10/30
7.1K
16
Xamarin 学习笔记 - 配置环境(Windows & iOS)

本文翻译自CodeProject文章:https://www.codeproject.com/Articles/1223980/Xamarin-Notes-Set-up-the-environment-Windows-and-I 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开...

葡萄城技术团队
07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Gensim?

Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训...

火力全開
18分钟前
0
0
图片验证码

图片验证码,线上登录是最常见的场景,也有发送手机验证码之前进行图片验证码的验证。 图片验证码很大程度上防止机器人撞库登录或频繁发起短信验证码从而使系统暂时性"瘫痪"。 以下是项目中用...

貔貅叔
21分钟前
1
0
科班出身程序员和培训出来的程序员区别在哪?

科班出身只是代表你要从事的职业和你的专业是一致的,代表着你具备了得天独厚的优势,至于是不是优势看你上班好不好学,平时逃课没,上班是认真听还是玩手机。一般而言科班出来的理论性比较强...

java菜分享
21分钟前
0
0
java框架学习日志-8(AOP简介)

小王被委托开发一款游戏,程序分为启动页面,登陆页面,战斗页面等。小王就采用了面向对象编程思想(OOP),把整个程序分解成下图 这种就是传统的自上而下的编程,或者说纵向的编程,负责启动...

白话
21分钟前
2
0
简易ZK分布式锁实现与测试

分布式锁创建以及销毁 public class ZKLock { private String node; public String path = "/lock"; ZkClient zkClient = new ZkClient("192.168.0.239"); public......

zzx10
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部