IOS编程指南 之 应用设计基础

         如果你从来没有开发过IOS应用,你可能会想应用开发应该如何开始呢?在你有了一个应用的最初想法后,你需要将该想法转换实现你应用的行动方案。从设计角度来看,你需要在实现你想法的最佳行动方案方面做出一些高层决策。你还要安装Xcode,它让你的开发过程变得简单

         如果你对IOS开发一无所知,花点时间熟悉下基本的概念。如果你想开始写代码,有教程可以帮你但是iOS系统是建立在基本的设计模式上的。花一点时间学习这个模式,将对你以后有很大的帮助

        初步设计

        设计一个应用有很多方法,并且许多非常好的方法不需要写任何代码。好的应用始于好创意然后将其扩展为更加丰满的产品描述。在设计之初,理解你希望你的应用做什么是有帮助的。写下实现你创意可能需要的一些高层特征。确定这些特性要基于你对用户需求的思考。对IOS本身做点研究,了解它能力和如何使用它们来实现你的目标。在纸上画出一些界面的草图,让的应用可视化。

         初步设计的目的是回答几个关于你应用的几个非常重要问题。这些特征和界面草图帮助思考写代码时什么是需要的。在有些时候,你需要将展示的信息转换为一系列的数据对象。同样你应用的外观对于实现应用基本的代码有非常大影响。在纸上做初步设计(而不是在电脑上)给你获取答案自由,而被容易做所局限。

        当然,在你开始设计之前读一下《IOS用户界面指南》是非常重要的,该书描述几种初始设计的策略。它还为如何创建一个工作良好IOS应用给予指导和提示。你也应该对一下《IOS技术概览》去理解IOS的功能和如何使用这些功能达到你的目标。

           学习基本的设计模式和技术

            无论你创建什么类型的应用,有些基础的设计模式和技术你都必须知道,在你写代码之前。在IOS中,系统框架是你应用的基础并且大部分时候,它们是访问底层硬件的唯一方式。另外,这些框架使用了许多具体的设计模式,这些设计模式是你所熟悉的。理解这些设计模式是理解系统如何帮助你开发你的应用的第一步。

             你必须知道设计模式

             1)Model-View-Controller(MVC) ——该设计模式统领整个应用架构

             2)Delegation(委托)  ——该设计模式 是协助对象间数据传递

             3)target-action(目标-行为)——该设计模式将用户与按钮和控件的交互信息转换为你应用可执行的代码

             4)Block objects(Block对象)——你可以使用blocks去实现回调和异步代码

             5)Sandboxing(沙盒)——所有的IOS应用都被放在沙盒中以保护系统和其他应用。沙盒的结构会影响你应用文件的位置、数据备份和其他一些应用相关的特性  。

        正确和高效的内存管理对于IOS应用是重要的。由于IOS应用比桌面应用有更少的可用内存,IOS应用需要 积极删除不需要的对象和懒加载对象。应用使用编译器的自动应用计数(ARC)特性可以高效的管理内存,尽管使用ARC 不是必须,还是强烈建议你使用它。另一种 内存管理方式是你自己明确的retaining和releasing对象。

        还有一些其他你可能见到或使用到自己代码中的设计模式。若你想对开发IOS应用的设计模式有个全面的了解请阅读《今天开始开发IOS应用》

        为你的初始设计制定行动计划

         IOS假设所有的应用都是基于Model-View-Controller的设计模式。因此,迈向这个目标的第一步是为你应用中的数据和视图部分选择方法。

       1)为你的数据模型选择一个基本方法:

              (1)存在的数据模型代码——如果你已经有了使用C语言写的数据模型代码,你可以将这些代码直接集成到你IOS应用中。因为IOS应用使用Objective-C开发的,它们可以与其他基于C语言代码在一起很好工作,当然使用Objective-C包裹其他非Objective-C是有益的。

              (2)自定义对象数据模型——一个自定义数据对象通常由一些简单的数据(Strings,numbers,dates,URLs等等)与管理这些数据业务逻辑构成,并且确保它们是一致的。一个自定义对象可以存储原始数据和指向其他对象的指针。例如,在Foundation框架中为许多简单的数据类型定义了类和用于存储其他对象的集合。这些类让创建自定义对象更加简单。

             (3)结构化的数据模型——如果你的数据是高度结构化的,它将自身存储在数据库中——使用Core Data或SQLite存储这些数据。Core Data 提供了为你管理结构化的数据一种简单的面向对象模板,它还是内置对一些高级特性的支持,如undo、ICloud.(SQLite 文件不能与ICloud的结合使用)

       2)决定你是否支持文档(documents):

       文档的任务是管理应用内存中的数据模型对象并且协调一致的将这些数据保存在硬盘上相应的文件中,文档通常暗示着是用户创建的文件,然而应用也可以使用文档管理非面向用户的数据。使用文档的一大好处是UIDocument类使得本地文件与ICloud的数据交换变得简单。对于使用Core Data存储它们内容的应用来说,UIManagedDocument 类提供了类似的支持。

        3)选择一种实现用户界面的方式

                    (1)构建块的方式——创建用户界面最简单的方法是对已存在的视图(view)对象进行组装。视图(Views)展现诸如表格、按钮、文本框等的可视化元素。你使用大部分视图是这样的,但你也可以根据需要自定义标准视图样式和行为。你也可以使用自定义视图(views)创建新的可视化元素并且可以在你界面中将这些视图与标准视图混合使用。使用视图的好处是提供一致的用户体验并且允许你使用比较少的代码定义复杂的界面。

                    (2)基于OpenGL ES的方式

                     如果你的应用需要频繁的屏幕更新或复杂的渲染,你可能需要直接使用OpenGL ES直接绘制这些内容。OpenGL主要用于游戏和依赖于复杂的图形的应用,并且需要尽可能好的性能。

 

          开始创建应用

         在你制定你的行动计划后,就要开始编程了。如果你没有写过IOS应用,花点时间研究一下Xcode中提为开发供的初始化模板是有益的。这些模板可以大大地简化你的工作并且让在几分钟内创建也运行一个应用成为可能。这些模板也允许你根据需要定制你的更加具体初始项目。最后,当你创建Xcode项目时,对下面的问题在你头脑中已经有了答案。

        你应用的基本界面样式是什么?不同类型的应用需要一些不同的初始化视图和视图控制器。知道如何选择一个最适合你的用户界面的模板,你稍后可以经常更改你的用户界面,但首先选择一个最适合的模板让启动项目更加简单

        你想创建一个通用的应用还是一个仅适用IPhone或iPad的应用?创建一个通用应用要求为iPad和iPhone定制一系列不同的视图与视图控制器,在应用运行是根据选择适当的用户界面。通用应用是首选的方案,因为其支持更多的IOS设备,但也需要你为每一个平台添加相应的代码,让其更好的工作。了解一个通用应用对你的代码所产生的影响,请阅读创建一个通用应用 章节

         你希望在你的应用中使用storyboards吗?storyboards通过展现你的应用中的视图和视图控制器以及他们之间的转换来简化你的设计过程。IOS5及以后的SDK支持Storyboards并且在新项目中默认使用它。如果你必须支持更早版本的IOS,不要使用storyboards,而是依然使用nib files.

         你希望使用Core Data作为你的数据模型吗? 一些应用使用原生结构化数据,这时Core Data是理想候选者。若你希望了解更多关于Core Data以及它的益处的信息,请阅读《Core Data编程指南》。

         根据上面的几个问题,你可以创建初始项目并开始编程

          1、如果你还没有安装Xcode,请安装它并配置你的IOS开发团队。关于设置你的开发团队和准备你的Xcode环境更详细的信息请阅读《面向APP Store的开发》。

          2、创建你的Xcode初始项目

          3、在你写任何代码之前,运行的新项目。指定你应用的IOS模拟器来观察它的运行。

                每一个新的Xcode项目都始于一个全功能(毫无特色可言)应用。这个应用本身可以运行并展示建立storyboard或nib 文件中默认试图,者或许不是很有趣。应用可以运行的根本原因是UIKit所提供基础框架。该基础框架初始化那个应用并加载初始的界面文件并且将该应用登记到系统中因此它可以开始处理事件了。关于这个基础架构和它的功能更多信息,请查阅 你应用中的核心对象应用程序启动周期章节 。

         4、开始编写应用的主要代码

                对于一个新应用,你可能打算首先创建一些与数据模型相关的类。这些类通常不依赖与你应用的其他部分并且是最初应该做的。关于创建数据模型的方法请参阅数据模型章节。

                你可能也想从通过在你的storyboard或nib文件添加一些视图来开始用户界面设计。通过这些视图,你可以标示在代码的什么位置来相应与界面相关的变化。对于用户界面的概述和如何将他们融入你的应用的代码中,请参阅用户界面 章节

若应用支持iCloud,你应该在早期将对iCloud的支持集成到你的代码中。关于在你的应用增加对ICloud的支持的更多信息,请参阅iCloud存储章节。

          5、增加对应用状态改变的支持

                在IOS中,应用的状态决定了什么时间允许做什么事,你的应用状态由一些高层对象管理,但它也能影响到许多其他的对象。因此你需要考虑,当前的应用状态对你的数据模型、视图代码和适当更新代码有什么样的影响。有关应用状态和应用如何运行在前后台,请参阅应用 状态与多任务 章节。

          6、创建需要的资源来支持你的应用

                App Strore中的应用,必须有些特定的资源,如图标、启动画面等,这些资源让你应用的整体用户体验更好。良好构建的应用使用资源文件将代码与其所操作的数据相分离。这使得你应用的本地化更加简单,微调性能和执行其他任务不需要重写任何代码。有关IOS应用中的资源类型及如何使用它们,请参阅 “应用程序包”和“应用相关资源”章节。

         7、根据需要,执行与应用相关的特定行为。

                改变应用启动或与系统交互的方式很多。有关自定义应用的常见类型请参阅“高级应用技巧”章节。

          8、增加高级特性让你的应用独一无二

                IOS包含许多其他框架,这些框架包含多媒体管理、高级渲染、游戏、地图、联系人、定位和其他高级特性。对这些框架的概述和将这些特性应用到你的应用中,请参阅《IOS技术概览》

           9、基础性能调优

           为尽可能好的性能,所有的IOS 应用都需要调整。除了你的应用跑的更快,还有系统资源的使用如内存和电池寿命,更加高效 。关于调优过程中应关注的领域信息,请参阅“性能调优”章节    。

           10、迭代

                  应用开发是一个迭代的过程。为添加一个行特性,您可能需要重新审视一些或所有前面的步骤来调整现有的代码 。             

        

    

            

          

           

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值