Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e6eed26

Browse files
New Packages Announcement (#96)
New blog post
1 parent 7b6a5b3 commit e6eed26

File tree

5 files changed

+59
-3
lines changed

5 files changed

+59
-3
lines changed

‎components/pages/blog/post/index.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@ const BlogPost = ({ frontmatter, markdownBody, author }) => {
4545
} Blog`;
4646
const description = frontmatter.description ?? frontmatter.subhead;
4747

48-
console.log(frontmatter);
49-
console.log(markdownBody);
50-
5148
return (
5249
<Section gutter={false}>
5350
<Head>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: "Introducing New Packages: WelcomeWindow and AboutWindow"
3+
headline: "Introducing New Packages: WelcomeWindow and AboutWindow"
4+
subhead: "We're excited to introduce two new SwiftUI packages to help you build amazing macOS apps."
5+
description: "We're excited to introduce two new SwiftUI packages to help you build amazing macOS apps: WelcomeWindow and AboutWindow."
6+
date: 2025年07月07日
7+
category: update
8+
author: thecoolwinter
9+
image: /blog-assets/2025-07-03-header.png
10+
---
11+
12+
## Introduction
13+
14+
As we build CodeEdit, a natively-built code editor for macOS, we want to share our work with the community. All of our work is open source, and we aim to build our components so they’re reusable, not just in our own app, but in your apps as well. Today we’re introducing two packages that we think will benefit the greater Swift and macOS development community!
15+
16+
Recently [George Tchelidze](https://x.com/x33025) reached out to us with interest in a few of our UI components to see if he could split them out into their own packages to be reused in his own project, Circuit Pro. We’re excited to say that after collaborating with George over the last few months he’s been able to create two packages based on existing components in CodeEdit that we’re both happy with. We’ve integrated both packages into CodeEdit already, replacing the old implementation with the same open source package you can use today.
17+
18+
Let me introduce you to these two new packages.
19+
20+
## WelcomeWindow
21+
22+
One of the first things you'll see when opening CodeEdit is our welcome window. It greets you each time you open CodeEdit if a recently opened project or file is not restored. The welcome window gives the user an intuitive launchpad to start a project or open a recent project.
23+
24+
It’s packaged as a SwiftUI scene with flexible customization options to style the presented actions for your own application. The example app in the repository provides a good introduction to some of the customizations.
25+
26+
![](https://github.com/user-attachments/assets/ee2fc36a-e4ec-4cb3-bd39-f61fc6f3e8fc)
27+
28+
A common feature of document-based apps is a recent projects list. The WelcomeWindow package provides an easy API for registering recent project files, that makes it easy to integrate with `NSDocument` or however you may handle files in your app. Recent projects are automatically added to the WelcomeWindow’s recents list.
29+
30+
## AboutWindow
31+
32+
A core principle of designing macOS apps is inspiring delight where it makes sense. One of the places we decided it made sense was our About Window. This window can be entirely forgotten on some Mac apps, not necessarily losing out on features but missing out on an opportunity to add some delight to an otherwise utilitarian component of every Mac app.
33+
34+
Our new AboutWindow package lets you take advantage of the care we have put into our own about window. For our project, being open source, we feature our amazing contributors and maintainers right in the app. CodeEdit also has a list of library attributions and a link to our license. The AboutWindow package has been built to allow you to include whatever information you think is relevant to your users.
35+
36+
<img class="wide" style="max-height: 50vh" src="https://github.com/user-attachments/assets/0f9a0c7e-dbc1-4dab-b756-cf930cec60aa" />
37+
38+
It comes with some smooth animations as well, continuing a commitment to thoughtful and meaningful delight in design. These animations are built using SwiftUI's `matchedGeometryEffect` so your components can make use of the same header-fade-and-move transition exactly like the built-in transitions.
39+
40+
<figure>
41+
<video class="wide ratio-16-9" autoplay playsinline muted loop controls preload="metadata">
42+
<source src="/blog-assets/2025-07-03-example-app-wide.mp4" type="video/mp4">
43+
</video>
44+
</figure>
45+
46+
## Commitment to community
47+
48+
Publishing these packages continues our commitment to raising the bar for native macOS applications, and the entire Swift community. Our hope is that these are helpful tools for Swift developers as they create new applications, or are looking to quick drop in an improved about window.
49+
50+
If you would like a new feature, find a bug, or want to improve these packages in any other way, come be a part of this and contribute!
51+
52+
A huge shoutout to [George](https://x.com/x33025) for the work to get these packages split from CodeEdit into reusable SwiftUI components. This was no small feat, and his dedication has made these tools available to the entire Swift community. We're excited to see what you build with them!

‎next.config.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ const nextConfig = {
4040
use: 'raw-loader',
4141
});
4242

43+
44+
config.module.rules.push({
45+
test: /\.mp4$/,
46+
use: "file-loader?name=videos/[name].[ext]"
47+
});
48+
49+
4350
// Ignore XML files in the public directory
4451
config.module.rules.push({
4552
test: /\.xml$/,
Binary file not shown.
5.07 MB
Loading[フレーム]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /