工欲善其事,必先利其器(长期更新)

在我为期不长的iOS开发过程中,在浏览众多论坛和博客时,发现几乎处处都能发现关于辅助开发的工具——Mac应用和XCode插件。

今天就来提笔写一写,我所使用的辅助开发工具。

Mac应用篇

Dash——官方文档查看工具。

利用Dash可以便捷的下载和查看苹果所有的官方文档(iOS7,OC,Swift等)。

工欲善其事,必先利其器(长期更新)_第1张图片
72228953-B693-4AC3-AF6B-C461A9A6F689.png
工欲善其事,必先利其器(长期更新)_第2张图片
74E494F8-5DBF-407F-98A4-2EEF3CAFBC0F.png

在Dash中也可下载其他语言的的官方文档,甚至可以下载Cocoapods里面支持的各类XCode插件的相关文档,以及在里面可以实时/离线的访问StackOverflow。

工欲善其事,必先利其器(长期更新)_第3张图片
97AA8548-153E-46B0-B9E3-D526E44DCF59.png
工欲善其事,必先利其器(长期更新)_第4张图片
DE80B207-9781-442F-BF30-5EF85F1E9CD9.png
工欲善其事,必先利其器(长期更新)_第5张图片
B4EE8D5A-F197-4916-A011-7EC4C39749A3.png

除此之外,它还能被集成进XCode,作为XCode的插件使用。

工欲善其事,必先利其器(长期更新)_第6张图片
1FD055A9-1962-435E-BDCE-A52D17B5BD54.png

进入下载页面,点击上图中的1,再点击2,即可进入github中下载Dash插件然后进行安装。

使用方法:

1.gif

优点:便捷下载各类文档,可合并到XCode中使用。(并不仅限于iOS开发)
缺点:免费使用情况下,每一次切换文档会有8秒的延时,并且应用必须处于最上层,才会计时。

工欲善其事,必先利其器(长期更新)_第7张图片
78871A9D-1EB3-403F-AC9D-1D06C579DB58.png

Reveal——UI界面调试工具

使用Reveal,可以在应用运行时查看和修改UI界面,清楚的了解当前界面上UI的层级关系。

工欲善其事,必先利其器(长期更新)_第8张图片
C33349DB-7839-4280-B08D-6C281DA30723.png

使用展示:

111.gif

安装Reveal后,我使用的是不修改Xcode工程就加载使用Reveal的方法。

  • 在终端中新建一个.lldbinit文件,位置是~/.lldbinit,这是一个启动LLDB时都会调用的文件。(命令是:vim ~./lldbinit)
    在.lldbinit文件中键入如下内容
    command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);
    command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);
    command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
    command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
  • 保存并退出.lldbinit文件。(在vim的命令行模式键入:wq)

上面四行代码,实质是命名了四个别名命令。
reveal_load_sim 为模拟器加载reveal调用用的动态链接库
reveal_load_dev 为模拟器加载reveal调用用的动态链接库
reveal_start 启动reveal调试功能
reveal_stop 关闭reveal调试功能

注:上述加载命令,必须保证reveal这个应用是位于你的Applications文件夹中的。


工欲善其事,必先利其器(长期更新)_第9张图片
308658DE-7B97-494B-A581-2D659B248208.png
  • 打开你想要进行界面调试的工程,在Appdelegate.m文件中- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions上述方法体内
  1. 设置一个断点
  2. 右击该断点,选择"Edit Brearkpoint"
  3. 单击"Action"选项卡右端的"+"号按钮,输入"reveal_load_sim"
  4. 如法炮制,再点击一次“+”号按钮,输入"reveal_start"
  5. 勾选“Option”上的“Automatically continue after evalating”选项。

上述表明,在LLDB调试器运行时,在断点处执行reveal_load_sim和reveal_start,则是在应用编译运行时,自定导入加载Reveal,进行界面调试

工欲善其事,必先利其器(长期更新)_第10张图片
01E85D93-9C6B-486E-85B5-2B52D22887C9.png

演示操作:

222.gif

注:在模拟器中切换页面后,需要点击reveal右上的“刷新”按钮,才会更新reveal中的界面和模拟器中的同步。

优点:实时查看和修改自己的UI界面。
缺点:未知(由于接触reveal时间擅浅,望各路英雄好汉指点~)

你可能感兴趣的:(工欲善其事,必先利其器(长期更新))