iOS移动开发-每日轻松一记第8期-(转)提高iOS开发效率的方法和工具

提高iOS开发效率的方法和工具-版权归作者所有,个人只是转载和收藏

2015-07-17 14:00编辑:suiling分类:iOS开发来源:__weak_Point的博客

1316855

iOS开发工具效率

招聘信息:

WEB前端

白盒测试

PHP工程师

测试工程师

网站营运专员

Android 开发工程师

C++服务端程序员

iOS开发工程师

U3D场景建模师、U3D角色建模师

APP推广

游戏开发Unity3D客户端程序员

作者:@__weak_Point授权本站转载。

介绍

这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具。

IDE

首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时在使用AppCode等其他的IDE,在这里我主要介绍Xcode中提升开发效率的方法。

1.善用快捷键

快捷键是开发中必不可少的,当你善于使用快捷键的时候,十指在键盘上飞舞,那画面太美,我不敢想象。

常用快捷键操作

2.常用代码片段

开发中有一些常用的代码,可以放到代码片段中,然后下次你就可以使用快捷方法来使用这些代码了,给大家看下我的Xcode中部分代码片段:

偷懒小技巧

3.Xcode插件

我想插件是Xcode必不可少的把

那些不能错过的Xcode插件

除此之外,我自己还经常用到的插件有:

1.快速Add #import

2.查看项目的’TODO’,’FIXME’等

在此强烈推荐给大家。

你可能想,如果没有我要用的插件怎么办?少年,这个时候就要自己动手丰衣足食了,我想你可以看看这个Xcode6插件开发入门

4.注释

注释的作用就不多说了,而且现在公司都要求代码必须有注释。

之前一直在用喵神onevcat开源的VVDocumenter-Xcode.

但是后来觉得这种注释会有这样一个问题:一个注释多三行

1

2

3

4/**

*  顶部公告btn

*/

@property (nonatomic, strong) UIButton *topAnnouncementBtn;

接口用这种方法会简单明了,但是属性的话,总感觉.h文件好多东西(其实没几个属性啊??????)

后来换成这样:

1

2/**顶部公告btn */

@property (nonatomic, strong) UIButton *topAnnouncementBtn;

还是多一行,再后来换成这样:

1

@property (nonatomic, strong) UIButton *topAnnouncementBtn;// 顶部公告btn

但是这种方式,在你使用这个属性的时候,是不会有注释提示的。没有就没有把,遇见不明大意的属性,到时候再跳到.h 文件 看一眼。(“呸,你怎么这么容易就妥协了!!!”,我当时应该在心里暗暗骂自己的)

之后某天在微博上看到芳仔小脚印的博客我是如何收拾代码的中介绍她是这样注释属性的:

1

UIButton *btnSend;/**< 发送按钮 */

试用了一下,很方便。之后一直用这种方法做属性注释,在这里分享给大家。

感谢芳仔小脚印的分享。

网络数据相关

1.调试接口

少年,你还在写方法调试接口吗?如果是,那你一定需要下面这2个了哈:

DHC在线调试接口,支持HTTP和HTTPS呦。

Postman一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。(感谢叶孤城___提醒)

2.JSON数据编辑

废话不多说,直接上图:

JSON Editor Online

JSON格式化工具(感谢iOS程序犭袁提供)

UI相关

1.距离

不行!说的是20px!差1px,2px,5px,10px,都不算20px!

遇到有像素眼的设计师,想哭的心情总是有。但是他们可能有时候会忘记标X、Y,或者就是宽高,下面是我司UI给的一张图:

魂淡,说好的X,Y呢?

然后我最开始是这样做的

可是总会有辣么一点误差,而且费眼。。。后来我偶然听一个产品朋友说他们在用马克鳗标图,它有免费和收费2个版本,免费版本可以使用基本功能,感觉还不错。

今天喵神onevcat在微博发了一个测量的工具:Pixel Winch,试了一下,比马克鳗好使。

2.图片压缩

我们UI就不太注重图片的大小,尼玛,有一次给的图片有4M多,害我自己还得压缩一遍

tinypng,保质压缩,我感觉还不错,推荐给我们UI和后台,他们用过之后都说好

tinypng批量压缩图片脚本配套使用更佳。(感谢newbee_nAn提供)

3.AppIcon

AppIcon只需要UI提供一张1024*1024的图就可以了,具体的icon可以用Prepo生成

两地办公

假设这么一种情况:公司用的是SVN,公司一台公司电脑,家里一台自己电脑,有时候可能想回来后接着敲代码,怎么办?

再假设这么一种情况:公司用的是SVN,产品想实现一种效果,但是你又不确定能不能写出来,所以你可能会纠结要不要在公司项目上改动,怎么办?

如果有上述两种烦恼,那么Github 和 Bitbucket 是您的首选,具体选哪个,这里有一篇对比文章:GitHub vs. Bitbucket 不只是功能不同.

Github

Github上好的开源项目太多,一个一个的star,太慢了,怎么破?

1

language:Objective-C stars:>900

这个其实就是Github的Advanced search功能:

小伙伴们切记啊,star后并不代表你就掌握了,只有真正深入了解后才是自己的。

另外Github Advanced Search 可以用来寻找小伙伴哦——Github Advanced Search猎头大法.



我热爱开源,更喜爱那些花费宝贵的业余时间来创造奇迹的开发者们,感谢他们将自己辛苦劳动的成果无偿分享给大家。开源作者和贡献者们,你们太了不起了,感谢你们所付出的一切。

鉴于我是收集不全会死星人,这里我根据个人喜好选取了一些iOS的开源库。这些项目的顺序完全随机,每个都棒到爆。绝大多数支持CocoaPods,所以将它们添加到你的Xcode项目中只是小事一桩。

在本文末尾你可以找到一个长文慎入版本——一个只包含题目与项目链接的简单列表。如果你觉得这篇文章有用的话,请把它分享给其他做iOS开发的小伙伴们,好酒也怕巷子深。

1. DZNEmptyDataSet

DZNEmptyDataSet算是一个很标准的iOS内建方式,适合用来处理空的table view和collection view。默认情况下,如果你的table view为空,屏幕就为空,这样一来用户体验并不理想。

使用这个库,你只需遵守一些协议,iOS就会自动将collection view处理完善,并将用户消息以合适美观的方式显示出来。每个iOS项目都可以自动处理,不用再一一费神。

2. PDTSimpleCalendar

你的应用需要一个简单美观且正常运行的日历组件吗?现在有了——PDTSimpleCalendar也许可以算是iOS最棒的日历组件了。你可以在各个方面对它进行定制,无论是运行逻辑还是外观方面。

3. MagicalRecord

们都说:Core

Data简洁易用。他们又说:很棒很好用噢。哈?真的吗,苹果?添加到各个项目中的大量样板数据完全不符合简洁而易用的标准。更别提添加、移除和更新那一

大堆的entities、保存context、按不同环境创建不同的Core Data堆栈等等。当然,我很喜欢Core

Data,但是苹果真的可以把它更好地简化一下——使用MagicalRecord方式。

MagicalRecord就像是给Core Data提供了一层外包装,隐藏掉所有不相关的东西。如果你曾经使用过active record模式(比如Ruby on Rails),你就知道了。倾情推荐,在应用中使用Core Data的童鞋们可一定要试试。

4. Chameleon

如果你已经看到这里了,我猜你更有可能是个程序猿,而不是设计狮。这里有个东东很适合你。

Chameleon是一个iOS的色彩框架。它运用现代化flat color将UIColor扩展地非常美观。我们还可以通过它运用自定义颜色创建调色板。它还有很多功用,请浏览readme。如果你想要应用美观的话,一定要把这个库加到项目里。

5. Alamofire

Alamofire是一个简洁的网络库,用Swift语言编写。你是否曾经使用过AFNetworking呢?Alamofire是它的小弟。更年轻更时尚,当然(AFNetworking是用Objective-C编写的)。

如果你需要进行网络的相关工作,诸如下载、上传与获取JSONs等等的话,Alamofire正是你所需要的。GitHub上8000人次推荐,一定不会错。

6. TextFieldEffects

你不觉得标准的UITextField有些枯燥么?我也这样想——来认识一下TextFieldEffects吧!废话不多说,只要看几个例子:

是啊,都是些简单的dropin控制器。你甚至可以在storyboard中使用IBDesignables。

不幸地是:这个库不支持CocoaPods(如果你来自未来,而这一情况什么时候会改变的话,一定要在Twitter上告诉我),但是它支持Carthage。你只管从GitHub上下载项目,把它放入你的workspace就行了。

7. GPUImage

你曾经写过照相机应用吗?如果没有的话,很快你一定会遇到这个库的。

GPUImage为我们提供了一个GPU加速的照相机效果(同时支持照片与视频),而且处理速度飞快。在App Store中,使用这个库的应用数以百计。我有一个应用也用到了GPUImage。 它在GitHub上获得了8869个star,而且还在增长。

8. iRate

想要在App Store中获得更多评论的最佳方式是什么?想要回答这个问题,我缺乏切实数据,但如果必须猜一下的话,我会建议问问用户。也许这样做有点老套——大多开发者现在都有创建定制的应用内置alert。

但是如果你没有时间,或者不想从头实现的话,最好用一下iRata。这个就是iRata——一个小型库——你可以把它放入项目中,把问卷调查什么的都忘记吧,iRate会在恰当的时候为你解决这个问题。

9. GameCenterManager

无论你喜不喜欢单例模式,管理一个GameCenter都比我们已知的其他相反模式要好很多。(你的游戏只有一个GameCenter,对吗?)

说实话,在iOS上管理GameCenter vanilla并不算难,但是有了这个库会更简单也更快。好上加好不是更好么。

我在我一个游戏中用到了这个,体验很好。

10. PKRevealController 2

这个要注意,真的很棒!是我最喜爱的iOS控件之一。PKRevealController是一个可以滑动的侧边栏菜单(可向左、向右或者同时向两侧),只需手指轻轻一点(或者按一下按钮,但是这样滑动时不够炫酷)。

我试过一些可以提供这类控制的其他库,而PKRevealController是最棒的。安装简便,高度定制且对手势识别良好。可以当做一个标准控件用在iOS SDK中。

11. SlackTextViewController

你曾经用过Slack iOS应用吗?如果你在较大的软件公司工作,也许会用过。对那些没用过的人呢?—?Slack令人激动。用到Slack的应用也是这样,尤其是用作极佳、定制的文本输入控制时。这时你有了一个现成可用在应用中的代码。

自适应文本区域?试一下。

手势识别、自动填充、多媒体合并?试一下。

快速drop-in解决方案?试一下。

其他还想要什么?

12. RETableViewManager

RETableViewManager可以帮助你进行动态创建与管理table views。它给我们提供了预定义cells(bool类型、文本、日期等等——请看下面的截图),但是你还可以创建自定义views,并与默认视图一同使用。

左侧截图显得非常古板!在storyboard中没有这个库的时候,你能做的就是这些了,但是有时候代码比可视化编辑器要好。

13. PermissionScope

用这个库可以在询问用户前,就告知用户所需的系统权限,为用户带来更好的体验。接受度更高—>更多活跃用户->更高的留存率->数据更好->下载率更高。墙裂推荐pod。

14. SVProgressHUD

这张图片在正常加载,无需等待太久或者刷新页面。这正是SVProgressHUD在你的应用中的表现。如果你需要定制化的等待提示器,这个就是了(也许是最好的)。

15. FontAwesomeKit

Font Awesome很棒,有了它你可以很容易地给项目加字体,使用方式繁多。

16. SnapKit

喜欢自动布局吗?当然喜欢!至少在storyboard中创建时会喜欢。 在代码中纯手工创建约束灰常痛苦,但幸运的是我们有了SnapKit,在board中用上它,你可以简单直观地编写约束了。

17. MGSwipeTableCell

这是另一个常见于很多应用中的UI组件,苹果应该考虑在标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的最佳描述,也是最好的。

这只是其中三个动画类型,还有更多变化,请查看readme。

18. Quick

用于Swift中的单元测试(也可用于Objective-C),与Xcode整合在一起。如果你是Objective-C的粉丝,我建议用Specta代替这个,但是对Swift使用者来说,Quick是最佳选择。

19. IAPHelper

应用内付费给我们提供了很多样本代码,而这个库丢掉了那些代码,将金钱交易相关的大多通用任务做了简单的封装。

20. ReactiveCocoa

好吧,这是个小怪物。

ReactiveCocoa并不像列表中其他库一样,它不是小型的drop-in项目。ReactiveCocoa给我们带来了一个迥异的编程风格与结构,它是基于信号与数据流的。首先你需要忘掉已知的一切,才能理解它的工作方式。很有难度,但是价值不斐。

在这里教ReactiveCocoa有点不合适,但是如果你感兴趣的话,我会提供一些好源:

Getting Started with ReactiveCocoa

Mattt Thompson:ReactiveCocoa

ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2

注意:对我们iOS开发社区的朋友来说,这会是一个稍微有些技术含量的活儿。

21. SwiftyJSON

使Swift的JSON解析变得简单。

22. Spring

使动画在简单性、可链接性与声明性方面有所提高。

23. FontBlaster

载入定制字体时更简单。

24. TAPromotee

交叉推广应用是你可以免费实现的最佳市场推广策略之一。使用这个库做起来非常简单,不用都不可能——将TAPromotee加入你的podfile中,免费配置与享受更多下载吧。

25. Concorde

你在应用中载入了一堆jpeg吗?有了Concorde,你可以用更好的方式来解决,这是一个很大的进步。

26. KeychainAccess

管理Keychain接入的小助手。

27. iOS-charts

最后一个,但绝不是最不重要的——iOS图表库!非常有用而且美观,这里我无需赘言。向下看,你就知道用它可以做什么了。

没错,一切都变成了drop-in组件了(也许是“code-in组件)。

不幸的是,它还不支持CocoaPods,所以你得手动把它拽到你的Xcode workspace里面去。

超长慎入列表:

DZNEmptyDataSet(UI,空表格视图解算器)

PDTSimpleCalendar(UI,drop-in日历组件)

MagicalRecord(实施活跃记录模式的Core      Data助手)

Chameleon(UI,色彩框架)

Alamofire(Swift 网络)

TextFieldEffects(UI,自定义外观的文本区域)

GPUImage(快速图片处理)

iRate(获取用户评价)

GameCenterManager(快速管理游戏中心)

PKRevealController(UI,滑动侧边栏菜单)

SlackTextViewController(UI,高度可定制的自定义文本区域)

RETableViewManager(自动以代码创建表格视图)

PermissionScope(UI,预询问用户系统权限的友好体验)

SVProgressHUD(UI,自定义等待进度条)

FontAwesomeKit(快速添加Awesome字体)

SnapKit(在代码中快速自动布局)

MGSwipeTableCell(UI,可滑动的表格视图cell)

Quick(Swift单元测试框架)

IAPHelper(应用内购买助手封装)

ReactiveCocoa(FRP框架)

SwiftyJSON(Swift JSON库)

Spring(动画框架)

FontBlaster(在应用中快速载入个性化字体)

TAPromotee(使用drop-in视图交叉推广应用)

Concorde(下载解码渐进式jpeg)

KeychainAccess(简便管理keychain)

iOS-charts(美观的图表库)

推荐阅读更多精彩内容