应用程序开发流程

1、IOS开发需要思考的问题

  用户是谁?不同应用程序的内容和用户体验大不相同,这取决于想要编写的是什么应用程序,它可能是儿童游戏,也可能是待办事项列表应用程序,又或者是测试自己学习成果的应用程序。

  应用程序的用途是什么?赋予应用程序一个明确的用途十分重要。了解激发用户使用应用程序的动因是界定用途的一个出发点。

  应用程序尝试解决什么问题?应用程序应该完美解决单个问题,而不是尝试解决多个截然不同的问题。如果发现应用程序尝试解决不相关的问题,那么最好考虑编写多个应用程序。

  应用程序要呈现什么内容?考虑应用程序将向用户呈现的内容类型,以及用户与应用程序的互动方式,然后设计与之相称的用户界面。

刚开始开发应用程序时,不必定义完美或完整的应用程序概念。但有了概念之后,便会明确自己的开发目标和实现方法。

2、设计用户界面

  构建用户界面最大的挑战可能在于将概念转化为设计并实现该设计。可以使用串联图来简化这个过程。串联图使用图形环境来一步设计并实现界面。构建界面时,可以完全看到构建的内容,马上获得相关界面能否正常工作的反馈,并立即以可视化方式对界面进行更改。

  主要是在串联图中进行界面的设计和调试。

3、定义交互

  没有逻辑的支持,用户界面的功能便会很有限。创建界面后,可以通过编写代码以响应界面中的用户操作来定义用户与他们所看到内容的交互方式。

  在考虑为界面添加行为之前,了解 iOS 应用程序是基于事件驱动编程这一点很重要。在事件驱动编程中,应用程序的流程由事件决定:系统事件或用户操作。用户在界面中执行的操作会触发应用程序中的事件。这些事件会促使执行应用程序的逻辑并处理其数据。应用程序对用户操作的响应则会如实地反映在界面中。

  请从事件驱动编程的角度来定义用户与界面的交互方式。因为是用户而非开发者控制着何时执行应用程序的某部分代码。想要确认用户可以执行哪些操作以及如何响应这些操作。

4、实现行为 

  定义了用户可以在应用程序中执行的操作后,可以编写代码来实现行为。

  为 iOS 应用程序编写代码时,大多数时间都要用到 Objective-C 程序设计语言

  Objective-C 源于 C 程序设计语言,它提供了面向对象的功能以及动态运行时。它包含您熟悉的所有元素,例如基本类型(intfloat等)、结构、函数、指针以及流程控制结构(whileif...else 以及 for 语句)。还可以访问标准 C 库例程,例如在 stdlib.h 和 stdio.h 中声明的那些例程。

其他

常见的事件类型有三种:

  • 触碰和拖移事件。用户通过触碰或者拖移与控制交互时,发生的就是触碰和拖移事件。触碰事件分几个阶段。例如,当用户初次用手指触碰按钮,就会触发 Touch Down Inside 事件;如果用户手指拖离按钮,则会触发相应的拖移事件。当用户的手指抬离按钮但仍停留按钮边缘的范围内,就会发送 Touch Up Inside。如果用户在抬起手指前,手指已经拖离了按钮(实际上是取消了触碰),就会触发 Touch Up Outside 事件。

  • 编辑事件。用户编辑文本栏,发生的是编辑事件。

  • 值更改事件。用户对控制进行操控,从而导致控制产生一系列不同的值,发生的是值更改事件。

自适应窗口

使用 Auto Layout 放置文本栏

  1. 在项目导航器中,选择 Main.storyboard

  2. 在串联图中,选择文本栏。

  3. 在画布上,按住 Control 键从文本栏拖向场景顶部,直到文本栏四周皆为空白区域。此区域为文本栏的父视图。

    停止拖移操作时,其位置将出现一个快捷菜单。

  4. 从快捷菜单中选取“Top Space to Top Layout Guide”。

    在文本栏顶部和导航栏之间,将创建一个间距约束。

    如果出现了其他菜单(比如带有“Leading Space to Container”菜单项),则表示您没有垂直地拖到屏幕顶部。Xcode 会根据您拖移的方向来判断您打算生成哪一类约束,并根据拖移的起始点和结束点来判断约束要关联哪些对象。您可以继续尝试不同的拖移方向,以便了解有哪些约束可用。

  5. 尝试完之后,请按住 Control 键从文本栏向右拖移到父视图,以便创建“Trailing Space to Container”约束。

  6. 按住 Control 键从文本栏向左拖移到其父视图,以便创建“Leading Space to Container”约束。

运行就可以看到效果,旋转屏幕,文本栏会自动跟着方法缩小。

IOS应用程序开发流程的更多相关文章

  1. 2021 年 iOS 应用程序开发七种最佳语言

    移动应用程序现在几乎是每个在线业务的必备品.最新的 StatCounter 数据显示,多达56% 的在线连接是通过移动设备建立的,这使它们高于平板电脑和计算机.更重要的是,同一个消息来源说,其中27% ...

  2. 从C#到Objective-C,循序渐进学习苹果开发(5)--利用XCode来进行IOS的程序开发

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.前面几篇随笔主要介绍C#和O ...

  3. iOS越狱程序开发

    iOS越狱程序开发http://www.docin.com/p-760246852.html

  4. 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET

    小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...

  5. 利用XCode来进行IOS的程序开发

    利用XCode来进行IOS的程序开发 本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换 ...

  6. flask实战-留言板-Web程序开发流程

    Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...

  7. YARN应用程序开发流程(类似于MapReduce On Yarn)本内容版权归(小象学院所有)

    MapReduce On Yarn和MapReduce程序区别 MapReduce On Yarn(由专业人员开发)1 为MapReduce作业运行在YARN上提供一个通用的运行时环境2 需要与Yar ...

  8. 微信小程序开发流程

    2017年1月9日,张小龙在2017微信公开课Pro上发布的小程序正式上线,一夜之间,小程序可谓家喻户晓,但通过接下来的几个月的观察,微信小程序并没有想象中的那么火爆.进入4月以来,微信小程序团队进行 ...

  9. 商业版微信小程序开发流程

    一.产品阶段 ①功能规划思维导图——产品经理了解清楚整个项目需求,产出清晰明确的功能需求说明. ②需求报价预算——产品经理确定好功能需求后,输出整个项目开发的报价方案. ③组建技术开发团队——初步确认 ...

随机推荐

  1. Spring Boot 的配置文件application.properties

    Spring Boot 中的application.properties 是一个全局的配置文件,放在src/main/resources 目录下或者类路径的/config下. 作为全局配置文件的app ...

  2. C基础的练习集及测试答案(提高题)

    提高题:1.编写程序,随机生成一个1~10内的数,让对方猜3次.如果3次内能猜中则输出“恭喜你”:若3次内猜不中则输出正确答案.C语言中提供生成随机数的函数rand()用法:①所需头文件:#inclu ...

  3. js中(break,continue,return)的区别

    break 一般用于跳出整个循环(for,while) continue  跳出本次循环,进入下一次循环 return 只能出现在函数体内,一旦执行return,后面的代码将不会执行,经常用retur ...

  4. 新建framework的bundle资源 图片资源被编译成了ttf后缀 解決

    设置combine_hidpi_images为no

  5. Python风格规范-FYI

    Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...

  6. for循环语句中的先后执行顺序

    for(int i=0;i<10;i++){ cout<<i; } 分析程序运行结果:for(cout<<"a";cout<<" ...

  7. AFN post的数据编码格式问题

    想到写任何关于AFN的东西其实我是拒绝的,因为自己这也是第一次用,毕竟AFN现在是最为流行的网络框架了,害怕自己理解的有误,所以不敢造次! 先在这里大致讲解一下过程吧,后期发现了再更正(主要是想让看官 ...

  8. oc字符串截取 数组字典运用

    #define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS_ ...

  9. React 服务端渲染最佳解决方案

    最近在开发一个服务端渲染工具,通过一篇小文大致介绍下服务端渲染,和服务端渲染的方式方法.在此文后面有两中服务端渲染方式的构思,根据你对服务端渲染的利弊权衡,你会选择哪一种服务端渲染方式呢? 什么是服务 ...

  10. node基础

    javascript window gulp ---- 前端工程构建工具 webpack ---- 前端工程构建工具 java Python php:后台 本地电脑,服务器 node 本地或服务端运行 ...