想要用 Visual Studio 来开发 iOS 应用,所以想到了 Xamarin
所以想问问用 Xamarin 的前辈们: 使用 Xamarin 是不是基本就告别了所有 obj-c swift 写的第三方库? 是不是什么都要重头开始造轮子呢?
1
webdev 2016-11-19 17:02:10 +08:00 via iPhone
据我所知 你需要 2 台机器(如果你在 win 上开发) 因为模拟器只能运行在 MAC 上 库应该用不了 毕竟是用 C#开发 他帮你编译而已
|
3
beginor 2016-11-19 17:30:14 +08:00 via Android 1
Mac 不是必须的,但是 macOS 是必需的,可以在虚拟机跑,用 vmware+unlocker 装 macOS 已经非常简单了;
iOS 第三方库可以用,不过麻烦的是要做绑定,就是把.h 头文件翻译成 C#,有个半自动的工具, Objective sharpee, 可以干一部分工作, 但是手工调整是少不了的,尤其是你想使用 C#的专属特性时,比如事件,委托, lambda 等, 不过不用担心,流行的库应该都有了, dx , ca 等大牌控件厂商也有了相应的产品; 使用 xamarin 的应该都是.net 老司机了,大量的 C#第三方类库可以直接用,也支持 async/await ,这才是 xamarin 最大的优势; 我认为用 xamarin 开发 iOS 最正确的姿势还是在 Mac 上运行 xamarin studio ,实在离不开 vs 的话,在 mac 上开虚拟机跑 win+vs ,然后连接 Mac 物理机。 |
4
beginor 2016-11-19 17:33:26 +08:00 via Android 1
@bdbai 所谓的 vs for mac 就是现在的 xamarin studio ,换了个马甲而已, xamarin studio 已经稳定版,占用资源非常少,推荐使用。
|
5
plqws OP @beginor 我特别喜欢 Visual Studio + ReSharper 套装,还有 C# 的 async await 特性,所以想要试试用这些开发 iOS 应用。感觉 C# 的第三方库还是比较少而且能在 mono 上跑的就更少了。
当然还有个很重要的原因是 Xcode 实在是不好用,写 Swift 不能 Refactor ,还有一大堆 bug ,所以让我有用 xamarin 的想法了。 |
7
Majirefy 2016-11-19 20:32:58 +08:00 via iPhone
JB 的 Project Rider 也加入了 Xamarin 支持,不过极其原始,还不能用
Xamarin Studio 很好用了, Xamarin Form 更新速度也不错 |
8
beginor 2016-11-19 21:12:37 +08:00 via Android
@plqws 其实很多库都可以在 mono 上运行了, mono 对.net 服务端支持的非常好,许多著名的开源的类库( spring.net , castle , NHibernate , json.net , log4net , nunit 等)都能完美运行。
就 Xamarin studio 来说,本身也具备全局代码分析能力,还有单元测试集成等功能, 可以说在 C# 代码编辑方面说比单独 VS 要强,但是肯定不如 VS+R# 。 |
9
yrq110 2016-11-19 21:17:12 +08:00
|
11
zoumouse 2016-11-19 23:29:49 +08:00
新的 VS 好像有 Windows 上的 mac 模拟器了
|
14
yamada 2016-11-20 10:38:43 +08:00 via Android
用吧,然后你将面对各种各样来自底层的 bug
|
17
yamada 2016-11-20 16:36:38 +08:00
@plqws 各种由 MONO BUG 引起的闪退,内存泄露,以及经常 MONO 老版本运行的好好的,一升级 MONO 反而带来了莫名其妙的 BUG ,最后只能退回老版本等修复,尤其是 httpwebrequest 这类……去 bugzilla.xamarin.com 看看就知道了
|
18
zoumouse 2016-11-20 16:43:19 +08:00
|
19
beginor 2016-11-20 17:16:25 +08:00 via Android
@zoumouse 呵呵, IT 之家的段子手也能信? 在 Windows 上“运行”(其实是看到)的 iOS 模拟器的原理是 emulator remote ,没有 Mac 玩个啥?
|
20
zoumouse 2016-11-20 17:51:02 +08:00
|
22
plqws OP @Brucepac Xamarin 的坑我感觉可以一劳永逸地解决, Xcode 的 Swift 升级一下我的努力就全白费了
|
23
nicevar 2016-11-23 12:44:34 +08:00
多年胡搞瞎搞的经验告诉你,这种问题是要看你做什么项目的,比如你只是要写个 helloworld 或者是简单的上层应用项目,不管你是 Xamarin 、 Qt for iOS 还是 React Native 都行,但是一旦你做的项目比较复杂又设计与系统结合的东西,我劝你还是老老实实用 Xcode 来做开发,要不然有踩不完的坑,到头来发现没法解决还得重做项目,曾经遇到过有公司吃螃蟹吃死的,产品到上线时间了遇到无法解决的问题,技术跑到知乎和 V 站上到处寻求解决方案
|
24
InfinitySam 2017-02-17 12:28:01 +08:00
@nicevar = =做生意和个人玩乐果然是两码事
|