在线客服:
联系电微 17324447100 陈先生
您的位置:首页 > APP资讯 > 深圳APP开发iOS应用程序(上):环境配置

深圳APP开发iOS应用程序(上):环境配置

发布时间:2017-04-06 11:11:11

前段时间深圳APP开发公司红孩儿科技的工程师在工作机上装了Mac OS X,这主要是因为我最近需要开发iPhone应用程序。虽然Xcode,Objective C一定是开发iOS应用程序的主流,但是经过一番考虑,我还是决定尝试一下使用MonoTouch进行开发。MonoTouch是Novell公司基于开源的Mono平台构建的一套iOS开发环境,使用MonoDevelop作为代码编写工具。不过目前的MonoDevelop较之Visual Studio可谓“萤火之光比皓月之明”,甚至还有无法输入中文的低级问题。因此,至今我所有在Mono上运行的代码其实都是用Visual Studio写的,这次自然也不例外。不过,这似乎并不是件非常直接的事情……


深圳APP开发


什么是MonoTouch


Mono是由Novell提供的.NET跨平台执行环境,无论别人如何进行FUD,我使用下来对Mono的感觉很不错,自认为也有足够的理由来支持我的观点,如今无论是微软Mix大会还是社区类型的NDC 2010都有Mono的内容(尤其是后者)。在我看来,如果没有尝试过Mono就发表的猜忌就很难令人接受了。


Mono使用的授权方案允许第三方基于它上构建商业应用程序,MonoTouch便是其中的典型(还有哪些?自己看吧)。MonoTouch是Novell公司的产品,可以让开发人员在.NET环境下开发iOS应用程序(包括iPhone 4和iPad),支持最新的iOS SDK 4.1。这样.NET开发人员就可以利用现有的知识来开发iOS应用程序,如.NET 3.5中的绝大部分类库以及C# 3.0。例如,之前有同事抱怨Android里的API没法方便地使用SOAP协议(似乎iOS下也有不便),但是在MonoTouch中,一切的一切都是最常见的Add Web Services,或是用WCF的svcutil.exe便可直接生成代理。我们同样可以复用大量.NET平台下的开源类库,只要基于MonoTouch重新编译一遍就可以了。在NDC 2010中“深入MonoTouch”演讲中便演示了在MonoTouch中使用Json.NET、FlickrNet及CoolStorage三套类库的做法。


除了.NET 3.5中的类库之外,MonoTouch也提供了访问iOS API(即Cocoa Touch)的.NET接口(尤其是在UI方面)。在这方面MonoTouch不是一味地直接暴露出Cocoa Touch的功能,而是在一定程度上将它的API改写为更倾向于.NET程序员的形式。例如UIView的Frame属性为System.Drawing.RectangleF类型,而不是Cocoa Touch中原本使用的CGRect。当然,尤其是UI方面,MonoTouch还是使用了传统iOS应用程序的架构,包括它的MVC驱动方式。因此,即使您使用MonoTouch,最好也要能够看懂简单的Objective C代码,因为SDK提供的文档和大量的示例都是用它来实现的。


深圳APP开发


众所周知,Mono使用JIT(Just-in-Time)编译来执行IL代码,JIT代表了在运行时动态生成原生代码,但是iOS不允许这么做。因此,MonoTouch实际上是使用了AOT(Ahead-of-Time)编译方式,真正部署在机器上时已经是原生代码了。此外,MonoTouch还提供了一个Linker,它只会将SDK及我们自己编写的代码中,真正使用到的部分静态链接至应用程序中,这削减了应用程序的体积。从中我们可以看出,使用MonoTouch开发出来的应用程序,其实和普通使用iOS SDK开发出的应用程序并没有什么区别,都是完全独立运行的。当然,这也是因为MonoTouch将一个Runtime塞入应用程序内部的关系,这会给应用程序的体积带来大约5MB的增长,压缩后(也就是用户真正需要下载的体积)大约是3MB。


除了MonoTouch以外,用于Android开发的MonoDroid也已经进入了beta阶段,已经向一些开发人员提供试用版本了。这意味着,在不久的将来,C#及.NET类库将成为Windows Phone,iOS,Android三大移动平台上的跨平台开发工具。


如果您想了解更多关于深圳APP开发/深圳APP开发公司/深圳APP定制开发/直播APP开发等信息内容,详情请访问红孩儿科技官方网站:http://www.hhekj.com   此文章是由深圳市红孩儿信息技术有限公司原创,转载请注明信息来源。

咨询热线:赵先生:18719456473  叶先生:15999536000  段先生:13714194103  

固话:0755-23610392  QQ:1678838862  QQ:1124225524