对iOS开发的一些认识
从事iOS工作这么久了,我觉得对它的认识也越来越深刻。尤其是越发明白自己从事的工作属于“客户端开发”、“软件工程”分类中。
我更喜欢“客户端开发”这个词语,相对“前端开发”而言。因为前者更能充分说明面向的群体是客户,iOS开发也正是为客户使用为目的进行的开发。
之前看到这句话--服务器解决的是“有不有”的问题,客户端解决的是“好不好看的”的问题。
确实让我怀疑了自己的工作性质和意义。难道我从事的工作就是这样的花拳绣腿?装点门面?
直到后面一些事实的联想,给了我一些新的启发。那就是-----
PC时代的到来不正是因为微软的可视化操作界面带动的节奏吗?
如果只是命令行的操作,编程技术人员之类的还好,普通群众可不愿意这样干。后面微软出现了可视化的操作系统。。。主要解决了如下几个场景:
1、服务器的确解决了数据有还是没有的问题。但是客户为了获取到数据还需要使用命令行编程操作,客户肯定不愿意。可视化操作系统中,客户简单到只需要点击一个按钮就能获取到数据。
2、数据是获取到了,然后一堆数据,就算是JSON、XML格式,又怎样,客户想直观的看到数据随时间的变化情况,看一堆数据肯定是不行的。可视化操作系统中,客户看到的是数据可视化,将数据图形化展示。不然股市K线图都没法看。
3、不可能一直都是服务器给出数据,客户也是需要跟服务器有个数据交互的。但是怎么输入数据呢?面对黑色背景的命令行操作?一是输着输着客户都不知道输到哪了,之前输完的数据也很难直观的看到。二来,客户并不是编程的技术人员,在输入源上如何控制有效输入?比如,只让用户输入0到9这10个整数中的一个。可视化操作系统中,提供给客户的是一个有着0到9这10个按钮的View作为输入源,提供给客户的交互控制在一个有效也高效的操作方式中。
说到这里,所以我更喜欢“客户端开发”这个词了。
然后再来说下“软件工程”这个词。
想着我可是数学系的高材生,数学分析、数论、图论、高等代数、几何、离散数学等等。在计算机学科上,数据结构和常用算法上,想当初我学得可带劲了。然而,现在从事iOS开发这么久以来,这些东西都用上了吗?用上了,更准确的说间接的(潜移默化效果)一直在使用,直接的话,很少使用。有时候我在自己思考问题的时候采用离散数学的方法。但是直接用在iOS的平时开发中的机会比较少。说到这里,我突然想到为什么程序员自嘲自己是码农了,自嘲自己是搬砖的。需要什么功能,直接百度、GitHub上搜索、开源框架的搞起。。。为什么会这样,为什么不静下心来自己写功能、自己写框架?我想这就是为什么iOS开发是属于软件开发范畴的原因了。
其实,说到底,自己写?自己造轮子?然后你就认为自己在底层编程了?有成就感了?不不不!
就比如说,我们iOS程序开发,是“面向对象”编程的。面向哪个对象?面向Apple SDK这个对象。Apple SDK的存在不就是让你快速开发一个软件而存在的吗?Apple SDK的存在意味着我所从事的就是软件工程。
软件工程从业者不是研究人员!
软件工程从业者不是研究人员!
软件工程从业者不是研究人员!
我们始终要坚持自己的目的-----快速的完成客户端软件工程。
~暂时这么多。
对iOS开发的一些认识的更多相关文章
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- iOS开发之再探多线程编程:Grand Central Dispatch详解
Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- iOS开发系列文章(持续更新……)
iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- iOS开发系列--通知与消息机制
概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...
- iOS开发系列--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...
随机推荐
- finally语句块一定会被执行吗
finally语句块一定会被执行吗? 答案: 不一定 1. 发生异常的代码必须在try 代码块中,才有可能被执行 public class MyTest { public static void ma ...
- 【PAT甲级】1082 Read Number in Chinese (25 分)
题意: 输入一个九位整数,输出它的汉字读法(用拼音表示). trick: 字符串数组""其实会输出一个空格,而不是什么都不输出,导致测试点0和4格式错误. AAAAAccepted ...
- 【PAT甲级】1077 Kuchiguse (20 分)(cin.ignore()吃掉输入n以后的回车接着用getine(cin,s[i])输入N行字符串)
题意: 输入一个正整数N(<=100),接着输入N行字符串.输出N行字符串的最长公共后缀,否则输出nai. AAAAAccepted code: #include<bits/stdc++. ...
- 洛谷 P1043 数字游戏(区间dp)
题目链接:https://www.luogu.com.cn/problem/P1043 这道题与石子合并很类似,都是把一个环强制改成一个链,然后在链上做区间dp 要初始化出1~2n的前缀和,方便在O( ...
- selenium+python实现自动化登录
工作需要实现一个微博自动登录的操作,在网上差了一些资料,决定使用selenium+python实现 selenium 是一个web的自动化测试工具,主流一般配合java或者python使用,我这里使用 ...
- U2000解决备份:服务器不可达、FTP/TFTP/SFTP IP地址与网管地址不一致
只需要将一下几点设置到位这些问题基本解决: 设置->网元软件管理->FTP设置 如果你的U2000服务器和OLT都在一个内网,那么就IP1和IP2就都输入U2000服务器的内网IP,否则按 ...
- PTA的Python练习题(十四)
第4章-10 最大公约数和最小公倍数 m,n=map(int,input().split()) min=0 a=b=0 if m >n: min=m else: min=n for i in r ...
- 转发-【分享】思科无线控制器HA模式升级
思科无线控制器HA模式下升级文档 当前使用版本:8.0.120.0 计划升级版本:8.2.151.0 其他工具: TFTP Server: 3CDaemon 远程登录:SecureCRT ...
- 【PAT甲级】1045 Favorite Color Stripe (30 分)(DP)
题意: 输入一个正整数N(<=200),代表颜色总数,接下来输入一个正整数M(<=200),代表喜爱的颜色数量,接着输入M个正整数表示喜爱颜色的编号(同一颜色不会出现两次),接下来输入一个 ...
- iPhone代工商,谁敢要求苹果赔偿损失?
据外国媒体报道,苹果的首席设计师已准备离职,有相关评论称:库克已经不在把硬件设计放到第一位,整个团队都巧妙地遭遇降级.相信熟悉苹果组织的人都知道,他们一切的核心都是围绕"硬件设计" ...