对于熟悉.NET程序员来说,编写iOS应用程序的最佳选择自然是MonoTouch。在上一篇文章里,我们已经在Mac OS X上安装了MonoTouch开发环境,并已经能够在Mac OS X和Windows之间共享文件。现在我们就可以来简单体验一下,如何使用Visual Studio,Interface Builder以及少量的MonoDevelop来开发一个最最简单的iOS应用程序。
根据深圳APP开发公司红孩儿科技程序员个人习惯,我会先创建一个空白的解决方案。首先在Mac OS X中打开MonoDevelop,然后在菜单中选择File - New - Solution,在弹出对话框的Other分类中选择Blank Solution模板,并填写合适的位置和名称:
然后便是创建iPhone应用程序项目。还是刚才的对话框,选择C# - iPhone and iPad分类下的iPhone Window-based Project模板。同样,在对话框下方填写合适的位置和名称,我的习惯是将所有的源代码统一放在src目录下(在解决方案中也会创建一个src目录与之对应):
点击OK。下一步是额外的项目配置,可以直接点击OK。此时我们就会发现MonoDevelop里展示出的项目文件:
其中Main.cs里包含了项目的启动代码及一个AppDelegate类,MainWindow.xib是主窗口的界面文件,而MainWindow.xib.designer.cs文件则是MonoDevelop根据xib文件中的标记所自动创建的C#代码,在绝大部分情况下我们不会去修改它。
双击MainWindow.xib文件,便会打开Interface Builder。下图左为Library窗口(近似于VS中的Toolbox);中间上方是可视化的UI编辑器,下方则是对象管理器,显示了界面中定义的对象;右侧便是用来修改属性的Inspector窗口(近似于VS中的Properties窗口):
虽然MonoDevelop的sln和csproj文件的格式与Visual Studio兼容(包括2005、2008、2010三个版本的VS),但是VS无法识别iPhone应用程序的项目模板,因此如果您直接打开iOS101.sln则会加载失败。因此,我们需要并行地创建一些sln和csproj,其中大部分内容与MonoDevelop创建的内容保持同步。
例如,我创建了iOS101.VS.sln及iPhoneApp.UI.VS.csproj(一个.NET 2.0的Class Library)两个文件,它们分别与iOS101.sln和iPhoneApp.UI.csproj放在同样的目录下。值得注意的是iPhoneApp.UI.VS.csproj文件,如果您直接在VS里创建这个项目文件,它的默认命名空间里也会包含“VS”,您可能需要手动修改一下。由于要和MonoDevelop中的项目保持一致的“可编译通过性”,我们还需要引用MonoTouch SDK里提供的dll。于是我在iOS101目录中创建了lib/monotouch目录,并使用如下命令复制所有的MonoTouch提供的dll文件。
这里您是否有些疑惑,为什么上面创建的是一个.NET 2.0项目呢?这样我们还能够使用C# 3.0中的高级特性吗?答案是肯定的,只要我们使用的是Visual Studio 2008或是2010,则即使是针对.NET 2.0所编写的代码,VS也会使用C# 3.0的编译器,因为我们都知道其实C# 3.0只需要一点点框架和类库的支持(扩展方法)。您甚至可以使用C# 4.0的部分特性,例如参数的默认值,命名参数等等。可惜您无法使用C# 4.0的动态性,因为它需要DLR和Microsoft.CSharp.dll,又涉及到大量的动态代码生成,我对此没什么信心和意愿。当然您感兴趣的话也可以尝试一下。我在这里使用.NET 2.0的原因,是希望可以尽可能减少对系统程序集的依赖,而尽量使用MonoTouch所提供的dll。例如现在,除了mscorlib以外,所有的程序集都与Windows上所安装的.NET Framework无关,这保证了我们编写的代码可以在MonoTouch兼容。
如果您想调试代码,只需要在MonoDevelop中设置端点,并选择菜单Run - Debug,或直接使用快捷键Command + Enter便可以对模拟器进行调试。但是如果是要单元测试呢?这问题也不大,MonoDevelop自带NUnit项目,您可以创建这样一个单元测试项目,删除其默认引用,换之为MonoTouch SDK里所提供的程序集,同样您可以在Visual Studio中开发单元测试代码,但是调试执行必须在MonoDevelop里进行,因为MonoTouch提供的程序集都是Mac下的Mono实现,它们在Windows下的作用只是为Visual Studio提供必要的元数据,使我们能够享受到智能提示之类的便利,想要在Windows里运行则是不行的。
但是,事实上我们也可以将Visual Studio里面的项目定义为.NET Framework 3.5项目,并直接使用.NET提供的程序集,对于MonoTouch里额外的程序集,例如System.Json.dll,则面向.NET 3.5自己重新构建一遍即可(源代码可以使用.NET Reflector获得或是利用Mono上的开源代码)。这么做的优势在于,对于那些与MonoTouch无关的代码,我们都可以在Visual Studio里进行调试与测试了。于是乎,我们可以在代码开发阶段尽可能留在熟悉而强大的环境中,对开发效率有很大帮助。
最后,您应该已经意识到,我们需要在VS的项目文件与MonoDevelop的项目文件直接做同步,这个同步包括程序集引用与代码文件两方面。如果您觉得手动编辑比较麻烦的话,就写一个自动同步的小程序咯――不会?那么还是先别搞MonoTouch了,从编程基础学起吧。
如果您想了解更多关于深圳APP开发/深圳APP开发公司/深圳APP定制开发/直播APP开发等信息内容,详情请访问红孩儿科技官方网站:http://www.hhekj.com 此文章是由深圳市红孩儿信息技术有限公司原创,转载请注明信息来源。
咨询热线:赵先生:18719456473 叶先生:15999536000 段先生:13714194103
固话:0755-23610392 QQ:1678838862 QQ:1124225524
版权保护:本文为深圳红孩儿科技公司原创(翻译)文章,转载请注明来源深圳红孩儿科技公司
2017-04-04 06:44:59
2018-05-07 09:38:39
2018-07-03 09:38:28
2018-10-25 10:00:37
2019-04-15 09:57:47
2018-05-24 11:57:29
2017-03-13 11:19:56
2017-05-28 07:35:57
2019-02-16 11:07:46
相关文章
RELATED ARTICLES
深圳开发顺风车app让打车更容易。
深圳开发顺风车app让打车更容易。顺风车作为城市客运系统中的一种客运方式,租车不仅是城市常规公共交通的重要补充,而且以其快捷、舒适、安全等特点,在树立城市形象、满足高水平出行需求方面发挥着重要作用。顺风车APP软件的开发也是为了满足用户呼叫出租车服务的需要,实现一站式高效的出租车平台。
开发一个app难度是不是很大?
开发一个app难度是不是很大?互联网现在已经进入了千家万户,作为第一批移动互联网产品,手机app现在已经非常普遍,各种行业都有自己的应用程序,甚至改变了人们的生活方式,而且随着时代的发展,各个领域app开发机......
深圳APP定制开发公司红孩儿信息技术开发宠物APP
您想了解更多关于深圳APP开发,深圳APP开发公司,深圳APP定制开发,直播APP开发|APP开发公司|人工智能|AI等信息内容,详情请访问红孩儿信息技术网站:http://www.hhekj.com
深圳APP开发购物APP
您想了解更多关于深圳APP开发,深圳APP开发公司,深圳APP定制开发,直播APP开发|APP开发公司|人工智能|AI等信息内容,详情请访问红孩儿信息技术网站:http://www.hhekj.com
深圳APP开发义工服务APP
如果您想了解更多关于深圳APP开发,深圳APP开发公司,深圳APP定制开发,直播APP开发|APP开发公司|人工智能|AI等信息内容,详情请访问红孩儿科技网站:http://www.hhekj.com
深圳APP开发:全国布局,盒马当先,阿里造新零售之城
咨询热线: 董先生:15013592738 董先生:17324420367 董先生:16675366738 固话:0755-23610392 QQ:1678838862 QQ:1124225524
直播APP开发商务酒店app
咨询热线: 董先生:15013592738 董先生:17324420367 李先生:15207551581
如果APP运营是烹饪,那么APP推送就是一款不可少的调味品。
咨询热线: 李先生:15207551581 叶先生:15999536000 董先生:18822898163
使用我方自主研发的技术在后期可以节省很大一笔费用,在外面都是要接入sdk接口会产生很大一笔费的,有兴趣的来咨询。