回答一个合格的IOS开发工程师应具备哪些条件

回答一个合格的IOS开发工程师应具备哪些条件,第1张

一、Objective-C

C语言是iOS开发的语言基础,而Objective-C是iOS开发的标准语言,也是为众多iphone开发工程师所公认的标准,所以必须要掌握。内容包括以下这些:

(1)Objective-C语言基础;

(2)library,framework的制作;

(3)Runtime编程;

(4)LLVM原理和调优。

二、 *** 作系统

*** 作系统使计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。所以,必须对ISO *** 作系统很熟悉才行。包括以下方面的内容:

(1)iOS内存管理和调优;

(2)iOS的文件系统和沙盒机制;

(3)iOS多线程编程(Thread,GCD,NSOperation);

(4)iOS网络和服务器编程(NSURLConnection,NSURLSession);

(5)iOS系统的各种安全机制。

三、网络编程

网络编程是学习iOS开发必须掌握的编程技巧,涉及到Htpps、Socket编程等;在这一部分处理的规范程度,直接影响到苹果AppStore的审核。

(1)iOS网络发送机制调整和优化(NSURLSession);

(2)Socket编程;

(3)网络传输中的各种保障;

(4)对传输协议的调整优化。

四、数据库&持久化方案

数据库持久化就是把数据保存到可永久保存的存储设备中,持久化的主要应用是将内存中的数据存储在关系型的数据库中。

(1)常规持久化方案(Keychain,NSUserDefaults,Sqlite,CoreData);

(2)数据库的使用和设计(Sqlite);

(3)数据结构优化,Sql调优。

五、图形图像编程

iOS开发过程中,大部分的APP都是采用多视图设计来完成的。所以要熟悉一些图像的绘制:

(1)UIKit,CoreAnimation和CoreText的绘制;

(2)CoreGraphics,Quartz2D,MediaPlayer,AVFoundation;

(3)OpenGLES,GLKit,SpriteKit,SceneKit,Metal。

六、数据结构&算法

懂得基本的算法:

(1)基本的算法和数据结构(排序搜索算法,数组,队列);

(2)较复杂数据结构的灵活应用(二叉树,图等);

(3)复杂的专项算法(图像识别算法,拓扑定位等)。

七、业务能力

作为一名优秀或者说是及格的iOS程序员,必须要有一定的将功能需求转化并实现的业务能力:

(1)一般性业务功能需求分析及实现;

(2)重要业务模块的需求分析及实现;

(3)中小规模产品的架构,系统设计和实现;

(4)大规模产品或产品线的架构,系统设计和实现;

(5)平台级产品的架构,系统设计和实现。

八、安全方案

另外,还需要提供对数据安全方面有利的方案:

(1)本地数据存储安全(Keychain);

(2)授权和身份验证;

(3)传输安全(对称,非对称,SSL);

(4)App代码安全。

九、专业素质

作为一名iOS工程师,需要具备一定专业素质,包括:

(1)团队协作能力。软件开发要求开发参与者间有一定默契度,从事自己工作之余为其他同伴创造条件;

(2)沟通能力。能清晰的把你对项目的理解、开发中的问题等转达给同事和用户;

(3)强烈的好奇心和学习精神。IOS软件开发的变化和创新几乎是每时每刻的,优秀的程序员要适应和主动迎合行业变化的大环境;

(4)冷静、细心。及时发现问题和判断对策。

一般的数据量很小的项目,没必要使用数据库,如果只是保存写用户信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。

对于sqlite和coredata,只是两种不同的存储方法,一种是小型轻量级sqlite数据库,所有移动设备经常用到的,还有一种是苹果针对ios *** 作系统开发的coredata数据存储,可以说是各有优缺点,一般如果数据库要非常多的表格互相关联最后查询一条结果那么采用sqlite,如果存储一些有规律的数据那么就会采用coredata,没有哪个更好的说法,只能说这两种都各有千秋,而我听前辈们说,coredata只是苹果对sqlite的又一次封装而已,方便 *** 作但也局限 *** 作。

iOS开发包含的内容有:语言:objective-c,swift,设计模式:mvc,数据库:sqlite coredata(一套api), *** 作系统:mac库:太多了,ASI,AFN,FMDB这种大多数都会用到 github一搜一大把,很多不用自己写,多人协作:svn,git,经常要用github git是必须会的,其他通用知识:http,socket等等,至于工具,一上来整这么多没意义,你得会做点东西才用得上工具是不是。有需求就会去分析去找解决方案。比如你发现xcode的文件结构是虚拟的,建了文件夹磁盘上没有,很不好管理,那你就会去找解决方法,然后发现synx就可以解决这个问题。工具是这样搜索,用起来的。iOS开发者有价值的工具集 前人也是总结了不少。然后一般写iOS的UI有三种方式。xib,Storyboard以及代码创建。我觉得代码是效率最高也最厉害的;关于iPad和iPhone如果要适配的话是不大好的,最好设计两种UI。不同意,代码确实是最厉害的,但不是效率最高的,对个人而言,autolayout sizeclass绝对是storyboard更有效率,点两下的事情代码几十行(当然基本都是自动补全,我还是嫌多),适配问题有了sizeclass也只需要一套UI了。但为什么说个人而言,因为企业一般因为团队协作问题不喜欢用storyboard,容易发生冲突,所以代码,IB都得会,什么适合用什么。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10829499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存