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 这个参数了,岂不美哉?

阅读更多

小技巧:让任何类型遵循 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 新功能
WWDC 23 Swift Student Challenge

WWDC 23 Swift Student Challenge

有幸在高中就参与过 WWDC 20 的 SSC,可惜当时课余时间并不充裕导致作品的质量并不理想,

如今,再战 WWDC 23 SSC 😋

阅读更多
Swift Charts 入门 —— 认识各种标记

Swift Charts 入门 —— 认识各种标记

最近在学习和使用 WWDC 22 上全新的 Swift Charts,

Swift Charts 使用 SwiftUI 的声明式语法,用于在 SwiftUI 中构建可视化图表,便于数据的可视化分析。

本期博客将专注于 Swift Charts 的标记和符号。

阅读更多