随着市场门槛的提高,越来越多的初级iOS开发者担心找不到工作,可是下面这些技术,你是否都掌握了呢?笔者浏览了一下近期iOS招聘薪资在15K以上职位的技术要求,总结如下,供自己和大家参考。
1、对iOS的内存分配机制有深入了解,对MRC/ARC有深入了解(面试常问的基本知识点)
与内存管理相关的知识点有:
(1)MRC/ARC
MRC/ARC的基本原理和基础知识可参考:http://www.jianshu.com/p/48665652e4e4
http://www.jianshu.com/p/b87f66fd3a15
(2)block循环引用
关于block循环引用的文章有很多,都大同小异,此处列出一篇:
http://www.jianshu.com/p/53cedd7bafa4
(3)strong/weak/copy/assign的使用和区别
相关文章:http://www.jianshu.com/p/c16467bbedc1 http://www.jianshu.com/p/a29a0bdd5da8
(4)如何检查对象有没有释放?(经验)
如果项目工程不大,我们很少手动调用delloc方法,在该方法中判断对象有没有释放。当一个控制器的代码达到几千甚至上万行时,为了保险起见,程序员在开发过程中会主动调用delloc方法,判断对象的释放情况。
2、熟悉iOS多线程编程,熟练掌握GCD/NSOperation(框架)
关于开启多线的常用方法中,最常用的也就是GCD和NSOperation。
GCD基本知识点:http://www.jianshu.com/p/2d57c72016c6
NSOperation基本知识点:
http://www.jianshu.com/p/408ebcd3c32e
相关的框架:
SDWebImage:http://www.jianshu.com/p/be9a0a088feb
3 熟悉Socket网络编程和HTTP协议,熟悉TCP/IP协议
Socket编程:http://www.mamicode.com/info-detail-877996.html
http://www.jianshu.com/p/6b64d8ac62e3
ipv6的问题:http://www.jianshu.com/p/a6bab07c4062
4、熟练掌握iOS常用的调试工具
Instruments工具调试:http://www.jianshu.com/p/8de6ca0614c3
UI界面调试:http://www.jianshu.com/p/62e53e2fb6be
5 熟悉iOS的数据存储方式
http://www.jianshu.com/p/14fd706b632d
偏好设置和属性列表:http://www.jianshu.com/p/e9a9844e5207
SQLite:http://www.jianshu.com/p/ab1e66f347a0
6.熟悉Html/JavaScript,熟悉React-Native
随着跨平台等技术的发展,掌握这些技术无疑会给自己加分。
Html/JavaScript的使用:http://www.jianshu.com/p/4790c8a0317e
React-Native:
http://www.jianshu.com/p/7313be095d48
http://www.jianshu.com/p/9211f42d5c25;
7 精通Swift编程语言
Swift作为iOS开发的新语言,能会肯定是最好的。Swift与OC的区别主要在语法上,了解了Swift语法,在熟悉OC的基础上可以很快上手Swift。
语法:http://www.jianshu.com/p/5b7ee55b9cd9
8 熟悉CoreAnimation
随着app用户界面的精细化和多彩化,很多产品中都包含了丰富的动画效果。熟练掌握CoreAnimation无疑使自己的技术更全面。相关知识可参考:
http://www.jianshu.com/p/ee531b8d4089
9 熟练编写Xcode下的单元测试,了解Xcode下的自动化测试
一些项目结构复杂的工程都趋向于实现自动化测试,从而减少测试人员的工作量。了解自动化测试的相关知识,能让你在激烈的竞争中脱颖而出。
简书链接:http://www.jianshu.com/p/c54f0cc08c20
10 熟悉App的证书申请、测试打包以及store上发布的整个流程
作为一个专业的iOS开发人员,必须对项目从无到有、从打包到发布的流程都相当熟悉。
iOS 10.2 XCode 8.2 证书申请 远程推送 打包上架:http://www.jianshu.com/p/f8d60cc9b8e7
11 熟悉SVN/GIT版本控制工具,有团队协作经验
伴随着多人团队开发的发展,熟练使用版本控制工具相当重要。由于git管理较SVN更为方便和强大,git的使用越来越广泛。
git命令学习:http://www.jianshu.com/p/7e2b0de68ed6
SVN相关知识:http://www.jianshu.com/p/66f085556fb2
12 熟练掌握第三方登录、分享、支付、地图、推送的集成过程
这些实用技术都是app中常用的,因此相关知识点的掌握是必须的。
友盟第三方登录和分享:http://www.jianshu.com/p/432470d721e8
支付集成:http://www.jianshu.com/p/4a6232d8294b
百度地图:http://www.jianshu.com/p/3c8e06755686
推送:http://www.jianshu.com/p/4b947569a548