Sourcehunt - Swift版- 2017年3月

    Josh Marchello
    分享

    在Swift月的延续中,这次Sourcehunt充满了Swift的美好。我们将向您展示用于操作字符串的包,创建可重用的样式,显示用户头像,并将FontAwesome的惊人之处带到iOS。我们还获得了一个包,用于像boss一样解析JSON,并为您的下一个(或第一个!)蒸汽应用程序。我说过它都在斯威夫特!

    ArtSabintsev /吉他【350★】

    这个包受到JavaScript的Voca库的启发,使处理字符串变得非常容易。方法中添加了一些有用的方法字符串类,它允许您执行从更改大小写到添加填充的任何操作。

    假设我有一个应用程序,它接受用户的文件名作为输入。我要确保文件名中没有任何空格或大写的单词。感谢吉他,我可以很容易地做到这一点。

    var文件名=“Deathstar Plans.pdf”如果文件名isAlphanumeric文件名=文件名snakeCased小写的打印文件名// -> deathstar_plans.pdf

    这个库可以做的事情还有很多,还有一些特性尚未实现。所以无论你是需要做一些字符串魔术或只是想帮忙,看看没有比吉他更进一步!


    psharanda / Atributika【70★】

    我们继续讲弦,这是Atributika。假设你在写一个社交应用,你的用户可以在他们帖子的任何地方添加标签。您希望对这些标签进行样式设置,使它们从其余文本中脱颖而出。Atributika让这变得简单。它允许你为你的字符串定义样式规则。下面我为标签创建了一个样式规则:

    myString=“维德今天告诉我他是我爸爸!”我完全吓坏了!# # shouldastayedondagoba”混淆formattedText=myStringstyleHashtags风格foregroundColor颜色蓝色的字体systemFontofSize15attributedString

    这就产生了这个:

    Atributika标签文本

    Atributika还可以解析自定义HTML标记,允许您轻松地设置文本样式,并在整个应用程序中重用样式。下面是使用Atributika定义一些自定义样式的示例:

    e=风格字体italicSystemFontofSize14霍奇金淋巴瘤=风格写成backgroundColor颜色绿色

    在这里,我可以使用我的样式来生成一个充满智慧的带属性字符串:

    myString="Do, or Do notThere is no try."风格标签e霍奇金淋巴瘤attributedString

    看起来是这样的:

    Atributika风格的文本

    更好地利用这个库功能的一种方法是在一个服务对象中定义所有样式。这个对象可以用作传递字符串的带属性字符串工厂。这允许你将所有的样式保存在一个地方,并在整个应用程序中使用它们。


    ayushn21 / AvatarImageView【173★】

    这个包在处理社交应用程序时特别有用。AvatarImageView提供了一个特殊的UIImageView用于显示用户头像。如果用户没有图片,则AvatarImageView显示用户的首字母。所需要的只是一个符合AvatarImageViewDataSource协议,像这样:

    结构体MyUserAvatarImageViewDataSourcevar的名字=“Han Solo”

    该对象可以指定几个选项,如图像、特定的首字母、背景颜色等。

    可选的,你也可以包括一个配置,比如头像的形状,如下所示:

    结构体AvatarConfigAvatarImageViewConfigurationvar形状形状=广场

    然后你可以喂AvatarImageView您的数据源和配置如下:

    myAvatar?配置=AvatarConfigmyAvatar?数据源=MyUser

    就这样,你就有了一个头像!

    AvatarImageView正在运行

    它可能看起来并不多,但这个包消除了从丢失的图像中返回,获得首字母,重塑图像等的需要…


    charles-oder / FontAwesomeSwift(1)★)

    这个很棒的库带来了FontAwesome的很棒到你的下一个很棒的swift项目!(我已经说够厉害了吗?)如果你不熟悉FontAwesome,我建议你去看看。它是一组矢量图形和CSS,允许您像显示文本一样显示和自定义图标。虽然最初的fontaweesome主要用于web,但这个软件包为iOS, WatchOS, MacOS等带来了同样的简单性和自定义……

    API很简单:创建一个FASIcon对象,样式,并把它放在你想要的地方。您可以转换您的FASIcon成一个用户界面图像NSAttributedString也这里有几个例子。

    首先,我将从FontAwesome图标中创建一个大的UIImage:

    myImageView?图像=FASFontAwesomeuserCircleIcon大小32颜色颜色用户界面颜色蓝色的图像

    接下来,为了好玩,我将创建一个带属性的字符串,其中混合了一些图标

    首页NSAttributedString=FASFontAwesomehomeIcon大小17attributedString无线网络NSAttributedString=FASFontAwesomewifiIcon大小17颜色颜色用户界面颜色绿色attributedStringmyStringNSMutableAttributedString=NSMutableAttributedStringmyString附加首页myString附加NSAttributedString字符串“是哪里?”属性myString附加无线网络myString附加NSAttributedString字符串“自动连接。”属性myLabel?attributedText=myString

    这就是最终结果!

    FontAwesomeSwift in Action

    尽管它的名字,这个包实际上支持几个不同的图标包,如材质,离子,以及更多。你甚至可以用你自己的图标来扩展它!


    nodes-ios /蛇【70★】

    接下来是一个非常完善和高效的JSON解析器,称为Serpent。这个包装真的很酷。它不仅速度极快(他们有数据证明这一点),而且创造者努力使它非常容易使用。

    假设我有一个结构体形状的:

    结构体的发烧友var的名字=“FN93847”varfavoriteColor=“白色”varshootingRangeScore=“2/457”

    我想拉一些突击队员从一个API。我必须做的第一件事是教Serpent我的数据看起来是什么样子,以及我想如何解析或序列化它。要做到这一点,我的结构体必须实现可序列化的协议,它与Serpent捆绑在一起。本协议要求数据映射方式如下:

    扩展的发烧友可序列化的初始化字典NSDictionary?的名字< ==自我字典“名称”favoriteColor< ==自我字典“favorite_color”shootingRangeScore< ==自我字典“shooting_range_score”函数encodableRepresentation->NSCodingdict=称为unaryoperationsdict“名称”< ==的名字dict“favorite_color”< ==favoriteColordict“shooting_range_score”< ==shootingRangeScore返回dict

    现在,这只是三个属性。为更大的结构编写所有这些代码将是乏味和耗时的。值得庆幸的是,Serpent背后的团队编写了一个名为Model Boiler的小型Mac应用程序,可以为您生成这些代码。要使用它,复制您的结构体到系统剪贴板并点击cmd + 6 +选项.这将为您的剪贴板填充所有生成的代码结构体.然后你可以把它粘贴到你想要的地方,如果必要的话可以做任何调整。


    stormpath /旋转栅门【95★】

    最后,如果你是一个使用Vapor的服务器端敏捷者,你会发现Turnstile特别有趣。Stormpath的人写它是为了管理Vapor应用中的用户身份验证。它使用几个对象来跟踪应用程序中的当前用户,并确保他们经过身份验证。它还提供了在内存中存储用户凭据的对象。如果希望将凭据存储在其他地方,可以编写名为领域这样做

    Turnstile还方便通过Facebook和谷歌等第三方登录。它是一个由理解身份验证的人编写的健壮的库。


    每一个这些伟大的软件包都非常有用,所以走出去,给他们一些爱。更好的是,深入研究他们的源代码并提交一些pr。无论你是在寻找一些新的工具还是一个新的项目来贡献,你都有一个很棒的列表。如果你发现了其他很棒的库,想要分享,请使用#sourcehunt和#swift标签告诉我们!

    Baidu