Say Hello to MegaX

有的时候会有很多想法和点子,开了很多的项目,发现很多代码都是重复的,比如每个项目中我都会创建一个 if-else 的 View Modifier、BlurView 这些,最近我对于 CameraView 的使用也更加频繁了。

So, why not create a framework that gathers everything we will need in our development proccess?

Sure. We can.

阅读更多
写更少的 SwiftUI 代码 —— Namespace

写更少的 SwiftUI 代码 —— Namespace

你是否写过这样的代码:DetailView(namespace: namespace, isSource: selected == nil)

或者这样的:DetailView(namespace: Namespace().wrappedValue, isSource: false)

这基本上是每一次写 Hero 动画时必不可少的两个参数。

如果还有更复杂的需求,一个 View 可能会有更多的参数需要传递。

其实,很久之前我就在想,如果把 Namespace 以环境变量的方式注入,那么就可以不用再写 namespace 这个参数了,岂不美哉?

阅读更多

2023 暑假总结

今天是 9 月 9 日,距离我大二开学还有 9 天,现在该是总结的时候了。

计划很美好,现实很骨感。

放假前计划在将近 3 个月的假期中去参与实习,但是由于各方面的原因没能达成,算是一点遗憾。

但是换个角度来看,这也留给我更多的可自由支配的时间去研究些很有意思的东西。

我对这个暑假的评价是:相对充实。

暑假中做的项目们

1. Apple  Internal

2. Apple SSC 2024 参赛项目

3. MarkdownView

  • Customizable foreground style in #21
  • Add font group protocol in #22
  • Unleash the power of Block Directive in #23
  • AnyImageDisplayable & AnyBlockDirectiveDisplayable are now available.
  • Fix malloc: double free for ptr crashes
  • Add rendering mode for MarkdownView

4. Always Animating Widget

  • 打包 XCFramework
  • 支持 iOS / macOS Native
  • 完美支持任何场景下的旋转 / 平移
  • 由 Swift Package 封装

该项目还为我带来了一些收益,挣了一些生活费哈哈 😆

5. SwiftUI Cross-Over

  • Find platform specific views / view controllers.
  • Attach customizations that SwiftUI not supported but UIKit / AppKit supported.
  • Highly readable API Design

6. HSSHacker

High School Sport Hacker

我独立开发的,用于高校体育跑步打卡的 macOS APP 😁

  • 适配 SwiftUI 5 MapKit
  • 修改整体布局,UI 换新

7. 图像水印技术

  • 隐水印:像素读取,CGContext
  • 盲水印:傅立叶变换,Accelerate 框架

小技巧:让任何类型遵循 Equatable

写 Swift 的同学们应该都不陌生 Equatable 吧。

让一个类型遵循 Equatable 需要提供一个静态函数 ==,在某些情况下,我们无法直接通过计算或者直接比较属性值来返回是否相等时,我们又该如何处理呢?

阅读更多

试试新框架 — TipKit

今年 WWDC 新增了不少的框架,这篇博客专注于研究 TipKit

Important

In macOS 14 Beta 4, TipKit projects don’t build in Simulator or for macOS due to macro “could not be found” errors. A workaround for this issue is available in Xcode release notes.

阅读更多

用 SwiftUI 做个终端

最近用 SwiftUI 做了一个 Terminal 终端,挺有意思的,分享下实现思路。

效果大概是这样:

阅读更多
在 SwiftUI 中实现页面的方向锁定

在 SwiftUI 中实现页面的方向锁定

在许多情况下,我们希望某一个视图能够锁定在一个特定的方向下,例如:相机页面等

本文将分享一种我自己捣腾出来的一种实现方式以及背后的逻辑。

本文仅适用于 iOS

阅读更多
Swift Data 的初步探索

Swift Data 的初步探索

朋友们好,一周的考试结束了,我回来继续更新了,感觉考的不错,暑假里争取多更新一些。

今天的主题是 Swift Data – Core Data 的 Swift 化封装。

本文为 Meet Swift Data 的学习笔记。

阅读更多
SwiftUI 新功能

用 Apple Script 打开任务栏菜单

(本文大部分为 ChatGPT 生成)

如果你是一个苹果电脑的用户,你可能已经习惯了使用任务栏菜单来快速地打开应用程序和执行其他的任务。但是,有时候你可能会感到很繁琐,因为每次打开任务栏菜单都需要通过鼠标点击来完成。但是,你可能不知道的是,你可以使用Apple Script来打开任务栏菜单,并以更快的方式访问它。

Apple Script 是一种编程语言,它可以用来自动化和控制Mac电脑中的各种操作。使用Apple Script,你可以编写脚本来执行各种任务,包括打开应用程序、发送电子邮件、自动化工作流程等等。

阅读更多