2

iOS 摸鱼周报 #66 | Shazam 迎来问世 20 周年

 2 years ago
source link: https://zhangferry.com/2022/08/25/iOSWeeklyLearning_66/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

iOS 摸鱼周报 #66 | Shazam 迎来问世 20 周年

moyu_weekly_cover.jpeg
  • 本期话题:Shazam 迎来问世 20 周年
  • 本周学习:将 NSImage 转换为 PNG的方法;在 macOS 中找到以前最前沿的应用程序
  • 内容推荐:iOS 基础应用和优化内容推荐
  • 摸一下鱼:微软开源表情符大全,软件快捷键速查资源,以及可以制作猫咪插画的网站资源

Shazam 迎来问世 20 周年

@远恒之义:Shazam 是一款歌曲识别 App,适用于所有的 Apple 设备上。你可以使用 Shazam 快速查找几乎任何歌曲,识别 App 中播放或者通过耳机播放的音乐,也能通过快捷指令和控制中心使用 Shazam 识别歌曲,同时可以在 Apple Music 中打开已识别的歌曲,更多实用技巧可查看 Shazam 使用手册

控制中心使用 Shazam 识别歌曲

2018 年 9 月 Shazam 加入了 Apple 家庭,在 WWDC21 中 Apple 推出了 ShazamKit。借助 ShazamKit,可以为你的 App 增加音频识别功能。将音乐与 Shazam 庞大乐库中的数百万首歌曲进行匹配,或者使用视频和播客等来源中的音频创建你自己的自定义乐库,帮助用户轻松识别任何预录制的音频。

以下是 Shazam 20 年来历史上的重要时刻与里程碑事件。

  • 2002 年 8 月:Shazam 作为一项短信服务在英国推出。当时,用户需要在电话上拨打“2580”,然后将听筒对准音源。不久后,他们会收到一条短信,获悉歌曲名称与艺人姓名。
  • 2008 年 7 月:Shazam app 在全新的 App Store 上发布。2008 年 10 月,Shazam 发布 Android 版本。
  • 2015 年 4 月:Shazam app 在第一代 Apple Watch 上发布。
  • 2018 年 9 月:Shazam 加入 Apple 家庭。
  • 2021 年 6 月:Shazam 月度识别次数首次超过 10 亿次。
  • 2022 年 5 月:Shazam app 总安装次数超过 20 亿次。
  • 2022 年 8 月:Shazam 庆祝 20 年音乐发现之旅,且突破 700 亿次歌曲识别。

App 和 app 内购买项目即将实行税率和价格调整

@远恒之义:从本周开始,加纳和土耳其 App Store 的 App 及 App 内购买项目 (自动续期订阅除外) 的价格将有所提高。加纳的价格提升将包含 12.5% 的新增值税和 6% 的附加税。此外,如果你在 App Store Connect 中选择了适当的税收类别,爱沙尼亚的电子出版物的收益会进行调整,增值税从 9% 下调至 5%。

整理编辑:FBY 展菲

如何将 NSImage 转换为 PNG

首先创建 NSBitmapImageRep 尺寸,并在上面绘制 NSImageNSBitmapImageRep 需要专门构建,不是直接使用 NSBitmapImageRep(data:) 初始化,NSBitmapImageRep(cgImage:) 可以避免一些分辨率问题。

extension NSImage {
    func pngData(
        size: CGSize,
        imageInterpolation: NSImageInterpolation = .high
    ) -> Data? {
        guard let bitmap = NSBitmapImageRep(
            bitmapDataPlanes: nil,
            pixelsWide: Int(size.width),
            pixelsHigh: Int(size.height),
            bitsPerSample: 8,
            samplesPerPixel: 4,
            hasAlpha: true,
            isPlanar: false,
            colorSpaceName: .deviceRGB,
            bitmapFormat: [],
            bytesPerRow: 0,
            bitsPerPixel: 0
        ) else {
            return nil
        }

        bitmap.size = size
        NSGraphicsContext.saveGraphicsState()
        NSGraphicsContext.current = NSGraphicsContext(bitmapImageRep: bitmap)
        NSGraphicsContext.current?.imageInterpolation = imageInterpolation
        draw(
            in: NSRect(origin: .zero, size: size),
            from: .zero,
            operation: .copy,
            fraction: 1.0
        )
        NSGraphicsContext.restoreGraphicsState()

        return bitmap.representation(using: .png, properties: [:])
    }
}

来源:如何将 NSImage 转换为 PNG - Swift 社区

如何在 macOS 中找到以前最前沿的应用程序

监听 didActivateApplicationNotification 并过滤结果获取希望找到的应用程序。

NSWorkspace.shared.notificationCenter
    .publisher(for: NSWorkspace.didActivateApplicationNotification)
    .sink(receiveValue: { [weak self] note in
        guard
            let app = note.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication,
            app.bundleIdentifier != Bundle.main.bundleIdentifier
        else { return }
        
        self?.frontMostApp = app
    })
    .store(in: &bag)

来源:如何在 macOS 中找到以前最前沿的应用程序 - Swift 社区

整理编辑:Mim0sa

1、从响应式编程到 Combine 实践 -- 来自:字节跳动技术团队

@Mim0sa:来自字节跳动技术团队的 Combine 实践记录,文章从浅到深讲解了响应式编程的特点、选择 Combine 的理由以及具体实践。也介绍了 Combine 中的三个关键概念,事件发布/操作变形/订阅使用,也提及了一些常见错误等,很适合不是特别了解响应式编程的同学。

2、不改一行业务代码,飞书 iOS 低端机启动优化实践 -- 来自:字节跳动技术团队

@Mim0sa:低端机启动优化实践,文章讨论了在低端机的情况下,会在启动时有哪些特点,介绍了在 GCD queue 上发现的问题和优化方案。

3、RunLoop的实际使用 -- 来自:搜狐技术产品

@Mim0sa:来自搜狐技术产品的一篇比较基础的 RunLoop 文章,从线程保活开始介绍了 RunLoop 在实际开发中的使用,然后介绍了卡顿监测和 Crash 防护中的高阶使用。

4、iOS下锁的独白 -- 来自:搜狐技术产品

@Mim0sa:来自搜狐技术产品的一篇关于锁的文章,介绍了 iOS 中的锁有哪一些,以及如何使用。文章中的代码和注释清晰明了,归纳的也很全。

5、Avoiding race conditions in Swift -- 来自:Mostafa Abdellateef

@Mim0sa:一篇关于如何避免竞争的文章,文章内容比较简单,但是观点很深入,探讨了在软件的设计中去避免资源的竞争,靠的不是一味的使用各种锁、栅栏,而是精良的设计。文中举的例子生动易懂且随文的图片制作精良。

6、How do 3D transforms of iOS views work under the hood? -- 来自:Alex Lee

@Mim0sa:本文主要介绍了 3D transforms 的各种变化是怎么得来的,配有手绘介绍图,但需要一点点数学知识才可以读懂。

整理编辑:东坡肘子

  1. 微软开源表情符 —— Fluent Emoji:微软开源了 1800 多个表情符(持续增加中),在 Github 和 Figma 社区中均可获取。表情符提供了多种样式( 3D、彩色、平面、高度比 )和六种肤色。新表情符已经被用于 Teams 的最新版本之中了。
微软开源表情符
  1. Shortcuts.design - 快捷键大全:汇总整理了一些热门的设计、开发、效率工具的快捷键。提供了查询功能,对于跨平台产品分别提供了 Mac 和 Windows 的不同键位清单。
快捷键大全
  1. Evil.js:不知道上周是否有小伙伴因它而影响了摸鱼的时间。目前 Github 和 NPM 均已对其进行了删除。此次事件已经引发了有关投毒与反投毒的热烈讨论。
Evil.js
  1. 猫咪插画制作:东京一家设计公司推出的网站,通过捏脸的方式制作个性猫咪插画。目前可用的选项不多,仍无法做到准确传神。可以持续关注它的后续演变。
猫咪插画制作
  1. 将微信删除了,为什么还占用大量的空间:微信的删除操作只是不向你显示标记删除的记录了,记录仍然保存在你的设备中。B 站 up 主玄离199 通过视频告诉你微信中不能清理的“其他空间到底存了什么”。up 主还制作了另一条视频探讨关于微信在手机上存了什么,要怎么清理。
将微信删除了,为什么还占用大量的空间

iOS 摸鱼周报,主要分享开发过程中遇到的经验教训、优质的博客、高质量的学习资料、实用的开发工具等。周报仓库在这里:https://github.com/zhangferry/iOSWeeklyLearning ,如果你有好的的内容推荐可以通过 issue 的方式进行提交。另外也可以申请成为我们的常驻编辑,一起维护这份周报。另可关注公众号:iOS成长之路,后台点击进群交流,联系我们,获取更多内容。

iOS 摸鱼周报 #65 | 什么是精准测试

iOS 摸鱼周报 #64 | 与 App Store 专家会面交流

iOS 摸鱼周报 #63 | Apple 企业家培训营已开放申请

iOS 摸鱼周报 #62 | Live Activity 上线 Beta 版

WechatIMG384.jpeg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK