IOS高级工程师成长之路 -- 技巧篇《提高iOS开发效率的方法
1.善用快捷键
快捷键是开发中必不可少的,当你善于使用快捷键的时候,十指在键盘上飞舞,那画面太美,我不敢想象
-
Shift + Command + O 弹出快速查找文件窗口(这个是字母O,Markdown O之后很像数字0 ),Shift +Commond + 0 是快速打开官方文档的快捷键。
-
Shift + Comand + j 定位到文件所在目录,经常配合上面那条快捷键。
-
Control + Command + 上\下 切换 .m 和.h。
-
Command + t 新建一个Tab,这个很实用,我平时一般都会建3,4个Tab,关闭Tab 可以用 Command + w。
-
如果你不习惯开多个Tab,习惯开多个Xcode窗口,可以用Command + ` 来互相切换。
-
Control + Command + e 可以批量修改光标所在位置的变量,像这样
-
Shift + Command + f 打开全局搜索,当然你可以连续按住Command键连续按两次 4,也会聚焦到全局搜索,全局搜索这里要说一下,搜索Xcode 不仅仅是支持text匹配,最常用的可以加个 Any 正则,就可以搜出如图中的这种,等等。
-
Command + f 在类中搜索 ,enter 匹配下一个 Shift + enter 匹配上一个。
-
Command + 上\下\左\右 光标切换到类首,类尾,行首,行尾。
alt + 左\右 光标左右移动一个单词。
-
Command + delete 删除光标到行首的内容,同理alt + delete 删除光标前的一个单词,另外可以先切换到到行尾 用Command + delete删除一整行内容。
-
同理 Command + Shift 和 Command + alt加方向键就可以选中一整行或者多行了。
-
选中一段代码 Control + i 会自动缩进。
-
Command + \ 当前行加断点,alt + Command + \,新建一个symbolic breakpoint。
-
Command + n新建文件 ,Shift + Command + n 新建工程
-
alt + Command + 左\右 折叠\显示当前块,Shift + alt + Command + 左\右 折叠\显示当前文件中的块。
-
Control + Command + [ 上移,如果没有选中,默认上移当前行,Control + Command + ] 下移。
-
Command + ] 向右缩进,支持多行,Command + [ 向左缩进。
-
Shift + Command + k product 清理,Command + r Run,Command + b 编译。
-
还有一个重要的快捷键,☝️,Control + Command + p 快捷导入,像这样,
Xcode 窗体相关
Shift + Command + Y 隐藏 \ 显示 console 区,但是我建议显示console区 用 Shift + Command + C,会直接聚焦效果。
Command + k console清屏。
Control + 1 这个应该很多工程师都没用过,当然点击小图标也可以。
-
Control + 6 查看当前类的方法列表,这里建议用 pragma mark 来合理分块,相关扩展阅读可以看这里的代码规范建议
-
Command + 1,2,3,4,5,6,7,8,9 切换左边窗体,Command + 0 显示 \ 隐藏左边窗体。
-
alt + Command + 0 显示 \ 隐藏右边窗体,同理alt + Command + 1,2等也可以切换
-
Command + , 弹出 Perferences ,可以用 Command + w 隐藏
其他
还有一个多行编辑,有的时候也会用到,需要借助Sublime Text, 快捷键是 Shift + Command + L,退出多行编辑也是Shift + Command + L
Shift + Command +3 全屏截图,Shift + Command + 4 自选区域截图,Shift + Command + 4 + 空格 截图某一个窗体。
Command + F3 快捷查看桌面。
Control + Command + 空格 弹出表情输入框。
2.常用代码片段
开发中有一些常用的代码,可以放到代码片段中,然后下次你就可以使用快捷方法来使用这些代码了,给大家看下我的Xcode中部分代码片段:
APP
Injection
这款好像之前我分享过,就是一个可以让你改动代码不需要重新运行就能见到神奇效果的app。有一点不好,那就是oc的get方法无法注入。
SimSim
可以快速访问模拟器里的沙盒
Charles
抓包工具,这个不用多说,coder都应该知道的。
Doxygen
文档生成器,当然也有很多,比如appledoc
,但是Doxygen
是图形化,用过几次,实际上对我们并没啥太大作用(可能大公司更需要吧)。
Postman
接口测试工具,一个Google chrome的插件
hopper
反编译,玩逆向的都知道,不过笔者也只是连这款软件的门都没入。
JSONExport
这款真的很给力,根据JSON格式自动生成class model
,支持oc,swift,Java,等多种语言
SQLPro Studio
访问数据库的图形化,笔者感觉这款软件在mac上比较好用,至少我个人觉得。
reveal
这款ui调试神器就不需要过多解释了吧。
NSLogger
这款也不错,在项目里导入框架,然后项目里用NSLogger
框架的api输出日志可以在电脑上打开NSLogger
app来进行查看。可以当做留一个后门查看日志并盗取数据来做点坏事(以前不开森的时候,我做过,然后把别人的数据给收藏了那么一丢丢),笔者也很久没用了,具体使用参考地址:https://github.com/fpillet/NSLogger
三方库
UIViewController+Swizzled
这个我想大家都知道吧,就是可以在控制台打印出controller的层级,虽然用lldb也可以做到(我之前文章貌似写过)。
MLeaksFinder
检测内存泄露的,虽然有局限性,但基本满足需求啦。
NSDictionary-NilSafe
这东西顾名思义,但目测感觉没啥太大用处。
NSLogger
搭配上面NSLogger的app使用
结尾
比较有用的目前感觉就这几个三方库的,后期会不定维护和更新,下面贴出我最近项目的pod三方库(部分三方库是手动导入的,就不贴出来了),看有木有读者需要的资源。
pod 'ReactiveCocoa','~>2.5'
pod 'SDWebImage','~>3.8.0'
# pod 'FDStackView'
pod 'IQKeyboardManager'
pod 'AFNetworking'
pod 'MJRefresh'
pod 'UIViewController+Swizzled'
pod 'DZNEmptyDataSet'
pod 'MJExtension'
pod 'JDStatusBarNotification'
# pod 'MBProgressHUD'
pod 'Masonry'
pod 'SDCycleScrollView'
pod 'NJKWebViewProgress'
pod 'MLeaksFinder'
pod 'QRCodeReaderViewController'
# pod 'TZImagePickerController'
pod 'DACircularProgress'
pod 'INTULocationManager'
pod 'APAddressBook'
pod 'JGActionSheet'
pod 'Bugly'
pod 'TSMessages', :git => 'https://github.com/KrauseFx/TSMessages.git'
# pod 'TSMessages'
# pod 'HexColors'
pod 'NSDictionary-NilSafe'
pod 'FDFullscreenPopGesture'
# pod 'JCAlertController'
#swift
pod 'SnapKit'
-------------------- 持续更新 ---------------