Sam Shi
banner
samuelshi.com
Sam Shi
@samuelshi.com
he/him/his
Shortcuts @ Apple
Percussion Educator
The theme of my week has been “dealing with the consequences of my own actions”

Past me didn’t think enough about future me when setting up the syllabus and final project requirements 🙃
May 7, 2025 at 1:42 AM
Especially considering how many screenshots & screen recordings I take for my class! Wow!
April 25, 2025 at 9:59 PM
Em dashes rule! I’ve been using them a lot lately, but unfortunately I don’t like how they look—I really wish there were some spaces around that bad boy. Oh well 🤷‍♂️
April 21, 2025 at 12:40 PM
🫡
March 9, 2025 at 5:26 AM
For future reference, if you want to have multiple Buttons/NavigationLinks in a Form/List row, you can use .buttonStyle(.plain) on one or all of them!

This disables the default whole-row tap target behavior (which causes this funky stuff)
March 9, 2025 at 2:20 AM
Nice! I played around with an AudioKit metronome app early last year and it was no joke. Where’d you get your sound assets?
March 3, 2025 at 10:00 PM
But they’re SO good
March 3, 2025 at 7:13 PM
I’ve tried having accessibility considerations as a final project requirement, but it was a losing battle. People tended to put off final projects so long that they ended up cramming and forgetting about accessibility :(
February 3, 2025 at 1:48 PM
When I have time to talk about accessibility + SwiftUI, it’s usually just a brief introduction to the basic modifiers – accessibiltyLabel, accessibilityRepresentation, etc. Again, mostly to show them that they exist and give them a rough idea of what they do

There’s definitely room for growth here
February 3, 2025 at 1:48 PM
I also like to do an activity where we identify permanent and temporary impairments of different kinds – ex: broken arm

The goal there is to convince them that accessibility matters and that it affects everybody at some point in their life.
February 3, 2025 at 1:48 PM
The thesis of that tour is just showing them that people have other needs from them - rather than trying to tackle the large and amorphous task of “how to make an app accessible”
February 3, 2025 at 1:48 PM
I always also like to do an “accessibility tour”. I think most folks haven’t really thought about all of the other ways people interact with their devices – Switch Control, VoiceOver, etc. So I like to show videos of people doing so
February 3, 2025 at 1:48 PM
From day one I talk about using the built-in FontStyles and Colors with accessibility as a key motivator (dynamic type, light/dark mode, increase contrast, etc)

I think this kind of plants the seed of accessibility considerations
February 3, 2025 at 1:48 PM
It can be hard to squeeze such a large topic in. I often take a high level approach – trying to expose them to other ways ppl use iPhones and convince them that accessibility matters
February 3, 2025 at 1:48 PM
If you'd like, you can check out the course content at comp433.notion.site. It's all written for the 80 students enrolled in my course, but you can totally follow along from elsewhere. Let me know if you do!

That's all I have for now. Hope you enjoyed the update :)
UNC COMP 433
Course homepage for UNC's COMP 433 course taught by Sam Shi.
comp433.notion.site
January 18, 2025 at 2:27 AM
Next week, they'll be working on a project to do a static recreation of the Spotify "Now Playing" screen. This is an incredibly fun project that I've had students do before. Here's my reference screenshot and SwiftUI implementation for Childish Gambino's "Redbone" :)
January 18, 2025 at 2:27 AM
Today, since everyone had finished setting up their development environments, we were able to do our first "lab" session!

Students came to class and followed detailed instructions to recreat some UI from Messages and Apple TV – aiming for a perfect recreation. It was a ton of fun!
January 18, 2025 at 2:27 AM
In the next couple of classes, we talked about how to use HStack & VStack to arrange views, built a simple mental model for how view modifiers work, and talked about some common SwiftUI views and how to use them (Text, Image, Color, Shape, etc)
January 18, 2025 at 2:27 AM
On FDOC (first day of class), we covered the standard course logistics, like all classes.

But, rather than stopping there, I like to end the first day by showing students how easy and fast SwiftUI is with a recreation of the Instagram UI with hardcoded data. It's always a ton of fun!
January 18, 2025 at 2:27 AM