iOS学习和开发全攻略
C语言:《The C Programming Language》
Objective-C:《Programming in Objective-C》、《Objective-C Programming The Big Nerd Ranch Guide》、《Learn Objective-C on the Mac》、《Objective-C Fundamentals》
iOS开发入门:《iOS Programming The Big Nerd Ranch Guide》、《Beginning iOS7 Development Exploring the iOS SDK》、《iOS7 Programming Pushing the Limits》
iOS开发进阶:《The Core iOS Developer’s Cookbook》、《Programming iOS7》《More iPhone Development with Objective-C》、《Pro Objective-C Design Patterns for iOS》、《Professional iOS Programming》
其他专题:《iOS Game Programming Cookbook》、《iOS and OS X Network Programming Cookbook》
阅读博客和好的参考书
博客名称网址说明
看WWDC视频和官方文档
如果你想尽早了解Apple推出的新知识和新技术,最好的选择可能就是观看WWDC的视频。可以在iPhone或iPad的App Store中搜索WWDC并安装该App,这样就可以查找和观看WWDC的视频,苹果官方的一手资料肯定是靠谱的选择,但是你的网络一定要给力才行。苹果的官方文档也是非常高质量的,对于不熟悉的API,一定是通过阅读官方文档来了解它们的用法,可以安装一个叫Dash的文档整合工具,这样阅读文档会更加方便。
看Github上的源代码
交流和分享
实践实践再实践
代码是写出来的,每次在完成代码的功能以后,最后对代码再进行一些思考和若干轮的重构,让代码变得更优质,在这个过程中也可以总结和沉淀出一些东西,这些经验积累下来,变成可以复用的东西,可以在今后的开发中避免"重复的发明轮子"。
Objective-C面试重点难点
运行时特性
协议
类别
类扩展
引用计数原则
Block语法
消息转发机制
Swift
函数
闭包
属性
类和结构体
元组
可空类型
泛型
协议/扩展
运算符重载
开发经验分享
使用向前引用声明减少在头文件中引入其他头文件
用枚举常量和类型常量取代用#define定义常量
用枚举常量表示状态、选项、状态码等课列选项
在对象内部尽量直接访问实例变量而不是属性
用类族的方式隐藏实现细节
提供一个可以被其他初始化方法调用的初始化方法
尽量使用不可变对象
通过委托与数据源协议进行对象间通信
将类的实现代码分散到便于管理的数个类别中
用弱引用破除循环引用问题
通过dispatch_once来执行只需运行一次的线程安全代码
用容器的枚举方法替代for循环
从Apple公司得到一份开发者证书才能够将应用装入开发用的设备,已注册的iOS开发者再支付一定的费用(个人版$99,企业版$299)之后都可以得到由Apple公司签发的开发者证书。Xcode会使用证书为代码签名,使之能够在设备上运行。
应用图标
设备应用图标尺寸
iPhone/iPod touch (iOS 7)120*120(@2x)
iPhone/iPod touch (iOS 8)5757
114144(@2x)
iPad(iOS 7及之前版本)7272
144144(@2x)
启动图片
设备启动图片尺寸(竖屏/横屏)
iPhone/iPod touch(不支持Retina显示屏)320480/480320
iPhone/iPod touch(支持Retina显示屏,3.5英寸)640960/960640
iPhone/iPod touch(支持Retina显示屏,4英寸)6401136/1136640
iPad(不支持Retina显示屏)7681024/1024768
iPad(支持Retina显示屏)15362048/20481536
C
Objective-C
Swift
HTML + CSS + JavaScript
Charles/Wireshark(网络抓包工具)
SQLBrowser/SQLiteManager/Datum(数据库工具)
AppIcon/IconKit/Image2IconTool(图标工具)
Dash(文档工具)
DiffMerge/Beyond Compare(文件比较)
Haroopad/GitBook Editor(Markdown工具)
Lantern(翻墙)
Snip(截图)
Sketch/Briefs/PHPHub/Axure(界面原型)
Reveal(界面调试)
SSToolKit(用户界面)
Instruments(Xcode自带)
LICEcap(GIF录制)
iWebInspector(手机Web调试工具)
PonyDebugger(网络调试工具)
UnArchiver
xScope/MarkMan(测试屏幕布局)
ImageOptim(图片优化)
CocoaPods(依赖管理)/HomeBrew
XMind/MindNode(思维导图)
nomad(命令行工具集)
GitHub/SourceTree(Git版本控制)
CornerStone(SVN版本控制)
Kiwi/(单元测试)
Crashlytics(崩溃报告工具/bugly/bughd)
移动统计工具(Flurry/bugly)
Alcatraz(Xcode插件管理工具)
App分发(蒲公英/bugly)
其他:数码测色计、appledoc、xctool
云服务(云存储):BMOB/LeanCloud[网易]/七牛
面向对象原则
设计模式
MVC/MVVM
SDWebImage/YYWebImage(异步图片下载)
ONOXML/KissXML(XML解析)
MJExtension/YYModel/JSONModel(JSON解析)
动画(pop/popping/Spring)
FMDB(数据库)
XMPP(环信、融云)
地图(百度、高德、搜狗)
AsyncSocket(异步套接字)
推送(百度、极光、友盟)
语音识别(讯飞)
影音(StreamingKit/FreeStreamer/DOUAudioStreamer)
支付(支付宝、微信、Apple Pay、内购)
短信和通讯录(原生)
滤镜(GPUImage/FXBlurView)
二维码(原生)
ShareSDK/Umeng(分享)
下拉刷新(MJRefresh/)
图文混排(YYKit)
键盘(IQKeyboardManager)
图片浏览器(MMPhotoBrowser)
进度提示(MBProgessHUD/KVNProgress)
缓存(YYCache/TMCache)
React Native
动态局部更新(JSPatch[JavaScript]/Wax[Lua])
游戏引擎(SpriteKit/Cocos2D-X)
KSImageNamed:帮助输入[UIImage imageNamed:]中的资源名的插件,通过自动弹出的上下文菜单可以选择图片资源名称而不是自行输入,同时还可以在左侧预览该图片。
XVim:在Xcode的编辑窗口中开启vim模式,这对于用惯了vim的开发者来说无疑是非常方便的,因为可以通过全键盘操作实现光标移动,代码的复制粘贴等等。
FuzzyAutocomplete:模糊自动补全功能插件,Xcode自带的代码补全只能在前面的所有字母输入正确的情况提供补全功能。
XToDo:查找项目中所有带TODO、???、!!!等标记的地方,这样可以防止遗忘掉需要做的事情或者是代码中还存在bug的地方。
VVDocumenter:自动生成文档注释的工具。
ClangFormat:自动调整代码风格的工具。
ColorSense:UIColor颜色输入辅助工具,在编写UIColor代码时,可以实时预览设定的颜色。
XcodeBoost:包含多个辅助修改代码的小功能,例如自动将.m文件中方法的定义暴露到对应的.h文件中;直接输入正则表达式进行查找等。
SCXcodeSwitchExpander:自动在switch的case中填写枚举值的插件。
EsJsonFormat:
RTImageAssets: