这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub Swift 项目 集合。
维基百科官方开源的 iOS 客户端。维基百科是一本线上的百科全书,这是它的 iOS 客户端,支持搜索资料、热门文章、保存文章、多语言、夜间阅读等功能。
轻松实现丝滑动画的 Swift 库。用于 iOS 和 macOS 的动画引擎库,可以轻松创建流畅、感觉很棒的动画。它没有外部依赖,可以很容易地引入进基于 UIKit、SwiftUI 或 AppKit 的项目。
if panGestureRecognizer.state == .ended { // Create a spring with some bounciness. `response` affects the animation's duration. let animatedSpring = Spring(dampingRatio: 0.68, response: 0.80) // Get the gesture's lift-off velocity, and pass it into the Wave animation. let gestureVelocity = panGestureRecognizer.velocity(in: view) Wave.animate(withSpring: animatedSpring, gestureVelocity: gestureVelocity) { // Update animatable properties on the view's `animator` property, _not_ the view itself. pipView.animator.center = pipViewDestination // Some target CGPoint that you calculate. pipView.animator.scale = CGPoint(x: 1.1, y: 1.1) } }
用键盘代替鼠标的 macOS 应用。它可以让用户实现仅通过键盘操作苹果电脑,支持两种操作模式。
- 激活模式:将屏幕上可点击的位置,映射成键盘按键
- 滚动模式:使用 HJKL 按键,可完成区域滚动
将网站变成 Mac 桌面壁纸。这是一款适用于 macOS 的桌面壁纸应用,支持将多种网站设置为壁纸,这些网站并不局限于图片网站,还可以是新闻、气象等站点。
3D 魔方单词消消乐游戏。这是一款用 Swift 编写的 iOS 游戏,玩家可以选择 3D 立方体上的字母组成英文单词,如果一个字母被使用 3 次,该字母立方体就会消失,显示下面更多的字母。支持限时、无限、多人三种游戏模式,以及每日挑战和全球排行榜。
用于对 Swift 代码片段进行基准测试的库。该项目是谷歌开源的用来测试 Swift 代码片段性能的库。
import Benchmark benchmark("add string reserved capacity") { var x: String = "" x.reserveCapacity(2000) for _ in 1...1000 { x += "hi" } } Benchmark.main()
适用于 macOS 的 TinyPNG 第三方客户端。TinyPNG 是一个提供免费图像压缩服务的网站,该项目是其第三方 macOS 客户端,可以让你无需打开浏览器、无需手动下载图片,仅通过简单的拖拽就能完成对 JPEG、PNG 图片的压缩。
控制 macOS 外接显示器的工具。一款 macOS 多显示器控制工具,有了它就能够在菜单栏或使用快捷键,轻松地控制外接显示器的音量、亮度、对比度。
一个非常灵活的 iOS 消息库。用 Swift 编写的消息组件,它可以将消息灵活地显示在屏幕顶部、底部、中央,还提供了几款好看的布局和主题,拿来即用十分方便。
// 例化一个消息视图 let view = MessageView.viewFromNib(layout: .cardView) // 带有警告样式的主题消息元素 view.configureTheme(.warning) // 增加阴影 view.configureDropShadow() // 设置消息标题、正文和图标 let iconText = ["🤔", "😳", "🙄", "😶"].randomElement()! view.configureContent(title: "Warning", body: "Consider yourself warned.", iconText: iconText) // 增加卡片周围的外部边距 view.layoutMarginAdditions = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20) // 显示消息 SwiftMessages.show(view: view)