选择第三方库的简短指南(入门)

开源库对我们开发人员来说是个福音,但这不是什么大新闻。 如果选择得当,它们可以节省我们的时间和精力。 我们不必太在意实现细节,维护和功能。 取而代之的是,我们为我们提供了一个简单易用的API,该API可以使我们轻松地到达所需位置。 我不必自己编写QR码扫描仪,而且我敢肯定,再也不会写网络库了。

但是,在为项目选择库时有许多注意事项。 选择维护不善的设备迟早会适得其反。 现在,假设您要实现一个库,并且发现可以根据需要进行自定义的库。

让我们转到Github并导航到您选择的库。
选择开放源代码库时,需要注意以下几点。

该库是否支持依赖项管理器?

依赖管理器使我们的工作变得更加轻松,我什至不记得编码在他们出现之前是怎样的。 在iO上,我最喜欢的是Cocoapods,但迦太基也获得了极大的关注。 不要忘了苹果自己的Swift Package Manager,这肯定会在不久的将来成为现实。 在这里我不会详细介绍它们的工作原理,但是您应该使用它们,相信我。 它们为您处理了很多难题,例如将依赖项集成到您的应用程序中,使它们易于更新,仅举几例。

因此,请确保支持您选择的依赖项管理器。

什么时候是对该仓库的最后一次提交?

一段时间未更新的回购可能不是您的首选。 通常,超过6个月的提交使我感到怀疑,超过1年或更多年的提交实际上使该回购失去资格。 如今,对于iOS来说,这一点尤为重要,因为Swift的发展非常迅速,并且会定期对API进行重大更改。 可能是该库的维护不完善,您需要根据自己的需要来保持它的最新状态。 最后,您可能会更好地寻找替代方案或自己编写替代方案。

话虽如此:除了主服务器,最好检查仓库中的其他分支。 许多开发人员准备将其库与单独分支上即将推出的SDK版本兼容。 一旦发布了新版本,它们将被合并,并且在此之前可以在您的项目中明确使用。

图书馆有几颗星?

如果回购中有大量的星星(和叉子),则通常可以很好地指示其背后有一个庞大的社区。 很难说出“多少”是多少,但现在我要说大约600+。 让我强调一点,我并不是说星数较少的图书馆可能不是最合适的! 我要说的是,数百颗甚至数千颗恒星几乎可以保证这个lib发挥出色,并且在那里有人在乎。 快速发现错误并通过修复做出贡献的人。 有兴趣在自己的项目中不断更新该库的人们。 因此,根据经验:星星越多,您的决定就越有前瞻性。

图书馆有几期?

Github问题追踪器是一件方便的事情。 它使您对所有者和社区对图书馆的贡献有一个很好的了解。 让我们看看Alamofire的问题跟踪器,它是Swift中优雅的网络库。

问题通常以三种形式出现:错误,问题或功能请求。 让我们专注于错误和问题:

有一长串未解决的错误 ,其中一些可以追溯到几个月甚至几年? 查看详细信息视图:这些错误对您来说是否有效? 项目成员有什么回应吗? 如果没有,我将决定不使用该库。

是否有很多问题标记为问题 ? 即使它们似乎是关于非常基本的东西? 这可能暗示此lib没有足够的文档记录或使用起来很复杂。 但是,如果快速而又经常地回答问题,那么在仅解决文档问题就无法解决问题时,也可以寻求帮助。

这也导致了下一个问题:

图书馆是否有充分的文献资料?

自述文件是每个Github存储库的登陆页面,第一印象。 你怎么看? 它使您对库是什么以及如何使用它有一个很好的了解吗? 它是“用爱”做成的吗?

它具有API文档和示例吗? 这些都是应该容易发现的东西。 如果没有内联文档,则应该有一个链接。 较复杂的库可能会有一个额外的文档文件夹,有些还具有Wiki页面和/或网站。 文档越好,寻找答案的机会就越少。

代码是什么样的?

让我们转到您选择的库的源代码所在的文件夹。 如果是一件复杂的事情:是否有许多文件和类具有单一职责? 好! 选择一个班级。 它结构合理,不是10.000行压倒性的代码吗? 评论得好吗? 不管实现细节是什么,您都知道应该做什么吗? 完美,看起来像一个编写良好的库!

用户界面是什么样的?

好吧,那可能就是我。 而且主要针对具有UI相关内容的库,但是-我需要屏幕截图! 看起来不错吗? 它适合我的应用风格吗? 我可以自定义它,以便在我的应用程序中不会出错吗? 是否涉及运动设计? 给我看一个视频! 在自述文件中使用屏幕截图或gif展示您的应用不是什么大问题,以使您对外观有所了解。 我再说一次,我从来没有尝试过没有截图的UI库。

这里的最后一件事:确保所有库都支持您的应用程序应在其上运行的最旧的iOS版本。 当您的应用程序需要支持iOS 8时,请勿使用仅iOS 9+的库。

奖金提示

在Github上关注您最喜欢的开发人员 ,您会在时间轴上看到他们喜欢的存储库。 相信我,我已经找到了很多很棒的图书馆libraries

另外,我鼓励您不时在Github上查看趋势回购 。 您可以按语言和时间段进行过滤。 另一种寻找很棒的东西和灵感的方法。

一般而言:跟随,阅读和倾听。 社区就是这样运作的