一.编程语言
- Swift
- Objective-C
- C++/C
- JavaScript
二.操作系统
- Mac OSX
- iOS
- watchOS
- tvOS
- Linux常用命令
三.开发工具
- IDE :
1)Xcode
2)AppCode
- 调试工具:
1)Charles——是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。
2)Wireshark——是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
3)Reveal——UI调试神器,用来查看任意UI布局较方便。
4)Instruments—— 一个工具集,为我们提供了强大的程序性能分析及测试能力。常用到的几种:CPU 性能测试、图形性能测试、内存性能测试。
- 插件:
1)Alcatraz—— 插件管理工具。
2)VVDocument—— 是一个自动生成代码注释的工具,可以方便地将函数的参数名和返回值提取出来。
3)XVim —— 一个Xcode的Vim插件,可以在Xcode的编辑窗口中开启vim模式。vim模式最大的好处是可以全键盘操作,可以方便地移动光标,一级复制丶粘帖代码.XVim对于Xcode的分栏模式也有很好的支持。
5)FuzzyAutocompletePlugin —— 使用模糊的方式来进行代码自动补全。
6)KSImageNamed -Xcode —— 当你输入[UIImage imageNamed]时.会自动弹出上下文菜单,供你选择你需要输入的图片资源名称,另外在选择图片资源时,还可以在左侧预览该资源。
7)DerivedDataExterminator—— 一个清除Xcode缓存目录的插件。
8)OMColorSense—— 是一个UIColor颜色输入辅助工具,可以帮助你在编写UIColor代码时,实时浏览相应的颜色。
- 辅助工具:
1)xScope —— 设计者工具,包括∶量度距离和角度的标尺、不同大小画面的屏幕、放大镜、精确垂直和水平标记辅助线、精确阔度, 高度和原来排成直线标记框架、找寻画面上全符合位置的交叉点。
2)ImageOptim——图片压缩工具。
3)MarkMan ——设计稿添加标注。
4)Dash——Dash 是一个免费且开源的 API 文档浏览器,能让你的 iPad 和 iPhone 在脱机的情况下即时访问超过 150 个 API 文档集。你甚至可以生成自己的文档集或请求引用文档集。
5)Deploymate——可以帮你找出你在工程中不可用、不赞成使用、已废弃的API。
6)FauxPas—— 它不仅可以有效检测Xcode项目中所有元素存在的潜在问题,还可以找出常见的错误、隐藏的bug、不良实践以及可维护性和代码风格问题,通过查找资源文件的错误,从而确保文件名参数的相关纠正效果。
7)PaintCode ——可以把绘制的矢量UI自动转化为适用于iOS/OS X的Objective-C代码。
- 命令行工具:
1)xcodebuild——通过命令行打包。
2)xcode-select ——更改默认xcode。
3)nomad
4)xctool——替换xcodebuild。
5)fastlane ——自动打包。
- 持续集成:
1)Jenkins——持续的软件版本发布/测试项目;监控外部调用执行的工作。
2)Travis CI——开源持续集成构建项目。
3)Bot
四.开发基础
- UI控件
- Storyboard & Xib
- Core Data & Sqlite
- Core Graphics ——绘图框架
- Animation ——动画效果
- Block & GCD
- Test Case编写——测试用例
- Framework
- Autolayout
- 手势识别,重力感应
五.开发进阶
引用计数
Runtime
Runloop
对象模型
Hybrid ——混合开发
沙盒机制
AVFoundation
Core Text
逆向与安全:
1)class dump——反编译ipa包
2)IDA Pro——交互式反汇编器专业版
3)Hopper——反汇编工具
4)Class Guard ——有效的隐藏绝大多数的类、协议、方法、属性和实例变量名
六.设计模式
- MVC
- MVVM
- 通知
- 代理
- KVO
- 工厂模式
- 命令模式
七.函数式编程
ReactiveCocoa——RAC,是一个在KVO的基础上建立Objective-C的框架,函数式响应式框架,提供了组合和转化数据流的API。将iOS中的Action、Delegate、Target、KVO、Block,NSNotification统一共同的消息传递机制进行事件处理,属性变化,回调响应。
RxSwift
八.开源项目
AFNetworking & Alamofire(swift数据请求)
Masonry
SDWebImage
SwiftyJSON——swift中处理json数据
JSPatch ——热更新
React Native
九.包管理
CocoaPods
Carthage
Swift Package Manager
十.第三方服务
- 崩溃收集:
1)Bugly—— 腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。
2)Crashlytics—— 专门为移动应用开者发提供的保存和分析应用崩溃信息的工具。Crashlytics 不会漏掉任何应用崩溃信息。在发生崩溃后,用户再次进入APP 并联网情况下,日志自动上传。
3)BugHD——iOS开发中很好用的崩溃分析工具,它可以统计出开发中和发布后应用中的详细崩溃信息,崩溃出现在什么地方,什么时候,崩溃了多少次等等。
- 数据统计:
1)Google Analytics——是一个收集数据并将其分析整理成实用报告的平台,通过向每个网页插入JS跟踪代码来跟踪用户行为。这些用户信息相关的数据将会被处理后传入Google Analytics(无法修改),并在Google Analytics中生成分析报告。
2)友盟
3)MTA——腾讯移动分析是腾讯数据云,腾讯大数据战略的核心产品,提供app应用的移动统计分析,支持android/iOS平台,实现用户画像、数据可视化、数据挖掘、渠道效果分析等综合数据服务。
4)Flurry—— Flurry是一个免费为手机应用开发者对自己的应用进行统计的服务,Flurry提供了一个非常好用 的LogEvent函数, 我们可以把自己感兴趣的事件都记录下来,这样就可以对用户的行为做一个分析了。
5)AppAnnie—— App Annie是应用分析和应用市场数据的行业标准,提供操作简便的平台,助您拓展应用业务。
- 应用分发:
1)TestFlight —— TestFlight 是苹果官方的发布测试版的软件。
2)蒲公英 —— 蒲公英app内测分发平台(pgyer.com)提供免费的苹果ios|安卓android应用app内测分发托管|ios企业签名|ios企业账号。
3)FIR —— fir.im 为开发者提供测试应用极速发布,应用崩溃实时分析、用户反馈收集等一系列开发测试效率工具服务,帮助开发者将更多精力放在产品的开发与应用的优化上。
十一.App打包上传与审核
- Apple Developer 官网
- itunes Connect 官网
- IAP
- 加急审核申请
- 打包脚本