从今天开始学习iOS开发(iOS 7版)–构建一款App之App开发过程

构建一款App之App开发过程App开发过程设计用户界面定义交互

教程: Storyboard

(构建一款app一章中包含四个小节:App开发过程、设计用户界面、定义交互以及教程,本文是第一小节)

App开发过程

虽然开发一款app可能会令人心生畏惧,但这个过程可以被分为几个容易理解消化的部分。在你首次开发app的过程中,这些步骤将帮开启app开发之旅并为你指引正确的方向。

 220140318113447
定义概念每款伟大的app都始于一个概念。直达概念最有效的方法是思考你想通过app解决什么问题。伟大的app只解决一个定义明确的问题。比如设置应用程序允许用户调整设备上所有的设置,它为用户提供了单个界面来完成相关的设置任务。

以下直达概念需要考虑的一些关键问题:

1.你的用户是谁?应用程序的概念和体验将会根据你是要开发一款儿童游戏、一个to-do list应用还是一个学习测试app而所有不同。

2.应用程序的目标是什么?对app而言,有一个清晰的目标非常重要,而理解是什么因素促使用户使用app是界定应用程序目的的一部分。

3.你的应用要解决用户什么样的问题?一款app应当解决用户的单个问题,而不是为多个不同的问题提供解决方案。如果你发现你的应用程序正试图解决不相关的问题,那你可以能要考虑开发多个app了。

4.你的应用程序包含什么内容?考虑你的应用程序为用户提供什么内容,以及用户如何与之进行交互。通过用户界面设计对app呈现的内容类型进行补充。

在应用程序开发之初,app的概念并不需要多吸引人,也不需要是一个完整的概念,但可帮你厘清将要去往何方以及到达目的地所需的东西。

设计用户界面

在你有了app概念之后,创建一个成功应用程序的下一步就是设计一个优秀的用户界面。用户需要以最简单的方式与app进行交互。设计界面的时候要始终考虑到用户,并使界面保持高效、清晰以及简单直接。

在用户界面设计过程中,最大的挑战可能是把你的概念落实到设计当中,并实现该设计。为了简化这个过程,你可以使用storyboards。 Storyboards可以让你通过使用图形界面一步完成界面的设计与实现。你可以准确知晓当前正在创建的一切,对哪部分运行正常与否获得即时反馈,并对界面进行即时可视化的改变。

使用storyboard创建用户界面,你就是在与views打交道,View就是用来向用户展示内容的。在Tutorial: Basics中你开始在storyboard场景中使用单个视图为ToDoList app创建用户界面。如果你要开发更为复杂的app,那你将使用更多场景和视图来创建用户界面。

在Tutorial: Storyboards中,你将通过使用几个不同视图来展示不同类型的内容,从而为ToDoList app创建用户界面。你可以在“Designing a User Interface”中学习更多关于使用views和storyboards来设计和创建用户界面。

定义交互

如果没有逻辑支撑,一个界面并没有很大用处。创建界面后,你得通过代码来定义用户与界面的交互,并在界面上对用户的操作做出反馈。

在考虑为应用添加行为之前,理解iOS app是事件驱动编程非常重要。在事件驱动编程中,app的工作流由事件:系统事件或者用户操作来决定。用户在界面上执行操作会在app中触发事件。这些事件会执行app的逻辑并进行数据处理,然后app对用户操作的响应会反馈到界面上。

当定义用户与界面的交互时,你要把事件驱动编程牢记在心。因为用户在控制着何时执行app代码的特定部分,而不是开发者,你想要确定用户可以执行哪个操作,以及对这些操做给予什么样的反馈。

你在视图控制器中定义大部分事件响应逻辑。你可以在“Defining the Interaction”中学会更多关于使用视图控制器的内容。之后,你将会在Tutorial: Storyboards中,把这些概念应用于为ToDoList app添加功能和交互。

执行行为

在定义完用户可在app中执行的操作后,你需要通过代码实现这些行为。

为iOS app写代码,其实很多时候你是在与Objective-C编程语言打交道。你将在第三个模块学习更多关于Objective-C的内容,不过现在你需要了解一些关于该语言的基本词汇术语。Objective-C是在C语言的基础上进行了扩充,并提供了面向对象的性能和dynamic runtime。你会在Objective-C中看到很多熟悉的元素,比如primitive types (int, float, and so on), structures, functions, pointers以及control flow constructs (while, if…else, and for statements).你也可以访问标准的C库例程,比如stdlib.h和stdio.h中的那些声明。

对象是app的建筑模块

当你创建iOS app时,你大部分时间都花在了使用对象上。

对象用相关行为来封装数据。你可以把应用程序当做一个包含相互连接的对象的大系统,这些对象相互沟通以解决某个特定问题,比如展示可视化的界面,响应用户的输入,或者存储信息。你可以使用多个不同类型的对象来创建应用程序,从界面元素(比如按钮和标签),到数据对象(比如字符串和数组)。

类是对象的蓝图

类是对任何特定类型对象的行为和共同属性的描述。

多个以相同方式根据相同蓝图构建的building在结构上是完全相同的,类的每个实例和该类的其他实例共享相同的属性和行为。你可以编写自己的类,或者使用已经为你定义好的框架类。

你通过创建某个特定类的实例来创建对象。你可以通过可接受的默认值进行分配和初始化。当指定一个对象时,你要为对象留出足够的内存,并把所有实例变量设置为0。

Initialization设置一个对象的初始化状态–也就是说,它的实例变量和属性–至合理的值,并返回对象。初始化的目的是返回一个可用的对象。你需要指定和初始化一个对象,以便可以使用它。

Objective-C中的一个基本概念是类的继承,一个类继承了其父类的行为。当一个类继承自另一个类,那么子类继承了父类定义的所有行为和属性。子类可以定义自己额外的行为和属性,或者覆写父类的行为。所以你可以扩展类的行为,而无需复制类现有的行为。

对象通过信息进行通信

对象运行时通过互发信息进行交互。在Objective-C术语中,一个对象通过调用该对象上的方法来向另一个对象发送信息。

虽然有多个方法可在Objective-C对象之间发送信息,但目前最常用的方法是使用方括号的基本语法。如果你有一个XYZPerson类对象somePerson,你可以像下边这样给它发送sayHello信息。

下图左边是消息的接收者somePerson。右边sayHello是调用接收者的方法的名称。换句话说,当执行以上代码,somePerson将会接收到sayHello信息。

320140318113501Protocol定义消息契约protocol定义了一组在特定情况下的预期对象行为。protocol采用编程接口形式,一个任何类都可以选择实现的形式。使用protocol,两个通过继承关系较远的类能相互通信以完成某个特定的目标,比如解析XML代码或者复制对象。
420140318113513
为其他类提供有用行为的类可为匿名发送该行为声明编程接口。任何其他类可以选择采用protocol,利用行为实现一个或多个该协议的方法。合并数据在执行了应用行为后,你可以创建一个数据模型以支持app的界面。一款应用的数据模型定义了你在app中维持数据的方式。数据模型可以从对象的基本字典变成复杂的数据库。

你的应用程序的数据模型应该反映app的内容和目的。界面和数据之间应该有一个清晰的相关性,即便用户并不会直接与数据进行交互。

一个好的数据模型非常有利于为app创建一个坚实的基础。也让创建一个可扩展的应用变得更加简单,改善应用功能,并对应用特性做出更改。你将会在“Incorporating the Data”中学到更多关于定义数据模型的内容。

使用正确的资源

设计模式是解决应用程序中常见问题的最佳实践。使用设计模式可帮你明确数据模型的结构,以及其与app其他部分之间的交互。若理解并使用正确的设计模式,你就可以更加简单高效地创建应用。你将会在“Using Design Patterns”中学到更多关于设计模式的内容。

当你开始实现你的模型时,记住你无需从零实现每一步,已有大量框架为你构建自己的应用提供了既有的功能。例如Foundation框架包含了代表基本数据类型的类–比如字符串和数字–以及储存其他对象的集合类。可能的话,推荐你使用既有的框架类–或者他们的子类来添加应用的功能–而不是视图重新实现它们的功能,这样你就可以创建出一款高效的实用的精细的应用程序。你将在“Working with Foundation”中学习到更多关于Foundation框架的知识。

通常,你会编写自定义类作为数据模型的一部分。编写自定义类可以让你掌控如何组织应用的内部结构。你将在“Writing a Custom Class”中学会更多关于编写自定义类的知识。

合并真实数据

当首次测试数据模型时,你可能会想要使用静态或者伪造的数据。这种方法你不用担心要提供真实的数据,直到模型装配和连接正确。在定义好的数据模型正常工作后,你就可以把真实数据置于应用中。该指南剩余的部分可以帮你遍历这些步骤中的每一个细节。随着你在“App Development Process”中的学习,你会在该教程中学会必要的概念并运用到实践中。

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部