Sam Shi's Avatar

Sam Shi

@samuelshi.com

he/him/his Shortcuts @ Apple Percussion Educator

62
Followers
78
Following
30
Posts
31.08.2023
Joined
Posts Following

Latest posts by Sam Shi @samuelshi.com

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 🙃

07.05.2025 01:42 👍 0 🔁 0 💬 0 📌 0

Summertime cycling in North Carolina means wearing sunglasses in the dark to keep the constant swarm of gnats out of my eyes 🤢

03.05.2025 00:41 👍 0 🔁 0 💬 0 📌 0

My former students never cease to amaze me. In the past couple of months, several have landed some REALLY cool iOS roles—Apple, PayPal, GoFundMe, Walmart, GameChanger, and more 🤯

So honored to have been a part of their journeys :)

26.04.2025 01:23 👍 1 🔁 0 💬 0 📌 0

Especially considering how many screenshots & screen recordings I take for my class! Wow!

25.04.2025 21:59 👍 0 🔁 0 💬 0 📌 0

I finally hopped on the CleanShot X train and—oh my god! How have I lived without this?

25.04.2025 21:59 👍 0 🔁 0 💬 1 📌 0

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 🤷‍♂️

21.04.2025 12:40 👍 1 🔁 0 💬 1 📌 0
Email inviting Sam to the in-person event at WWDC 2025

Email inviting Sam to the in-person event at WWDC 2025

:)

05.04.2025 01:18 👍 3 🔁 0 💬 0 📌 0

I want to convince my students that quality & organization of their code matters. So, we're taking a look at quite a controversial pattern in the iOS world – MVVM 🫣

Figuring out how to teach this is pretty tough 💀. The specifics of code organization is often so arbitrary and subjective 😅

17.03.2025 22:20 👍 1 🔁 0 💬 0 📌 0

🫡

09.03.2025 05:26 👍 0 🔁 0 💬 0 📌 0

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)

09.03.2025 02:20 👍 2 🔁 0 💬 1 📌 0

Nice! I played around with an AudioKit metronome app early last year and it was no joke. Where’d you get your sound assets?

03.03.2025 22:00 👍 0 🔁 0 💬 1 📌 0

But they’re SO good

03.03.2025 19:13 👍 0 🔁 0 💬 1 📌 0

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 :(

03.02.2025 13:48 👍 0 🔁 0 💬 0 📌 0

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

03.02.2025 13:48 👍 0 🔁 0 💬 1 📌 0

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.

03.02.2025 13:48 👍 0 🔁 0 💬 1 📌 0

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”

03.02.2025 13:48 👍 0 🔁 0 💬 1 📌 0

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

03.02.2025 13:48 👍 0 🔁 0 💬 1 📌 0

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

03.02.2025 13:48 👍 0 🔁 0 💬 1 📌 0

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

03.02.2025 13:48 👍 0 🔁 0 💬 1 📌 0
Screenshot of Weather.app showing the weather in Moncure, NC. With temperatures of 19° and 61° in the same week.

Screenshot of Weather.app showing the weather in Moncure, NC. With temperatures of 19° and 61° in the same week.

Oh North Carolina… could you please pick a season…?

22.01.2025 00:37 👍 2 🔁 0 💬 0 📌 0
Preview
UNC COMP 433 Course homepage for UNC's COMP 433 course taught by Sam Shi.

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 :)

18.01.2025 02:26 👍 2 🔁 0 💬 0 📌 0
A screenshot of the Spotify Now Playing screen showing Childish Gambino's Redbone

A screenshot of the Spotify Now Playing screen showing Childish Gambino's Redbone

A SwiftUI recreation of Spotify's Now Playing screen

A SwiftUI recreation of Spotify's Now Playing screen

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" :)

18.01.2025 02:26 👍 1 🔁 0 💬 1 📌 0
A SwiftUI recreation of the Messages conversation preview.
- Sender: Sam Shi
- Time: 4:33 PM
- Message: $5 wings at Four Corners tonight? I don't think there's a game so it should be too busy

A SwiftUI recreation of the Messages conversation preview. - Sender: Sam Shi - Time: 4:33 PM - Message: $5 wings at Four Corners tonight? I don't think there's a game so it should be too busy

A SwiftUI recreation of the Apple TV episode preview UI. Displaying metadata about Silo Season 1 Episode 1

A SwiftUI recreation of the Apple TV episode preview UI. Displaying metadata about Silo Season 1 Episode 1

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!

18.01.2025 02:26 👍 1 🔁 0 💬 1 📌 0
A screenshot of a presentation slide showing an mis-ordered set of view modifiers on the right and a view with a series of concentric backgrounds in the colors of the rainbow on the right.

A screenshot of a presentation slide showing an mis-ordered set of view modifiers on the right and a view with a series of concentric backgrounds in the colors of the rainbow on the right.

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)

18.01.2025 02:26 👍 1 🔁 0 💬 1 📌 0
A screenshot of an Instagram recreation built with SwiftUI. Showing the UNC Computer Science Instagram feed

A screenshot of an Instagram recreation built with SwiftUI. Showing the UNC Computer Science Instagram feed

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!

18.01.2025 02:26 👍 2 🔁 0 💬 1 📌 0

First two weeks of class are done!

So far we've covered the fundamentals of displaying, arranging, and styling views with SwiftUI. Next week – using @State and Button to create interactive apps!

Check the thread for a more detailed breakdown of what we've done so far and what's next 🙂

18.01.2025 02:26 👍 2 🔁 0 💬 1 📌 0
An orange 3d printed Swift logo, a silver 3d printed Apple “hello”, and a succulent in a line on a wooden shelf.

An orange 3d printed Swift logo, a silver 3d printed Apple “hello”, and a succulent in a line on a wooden shelf.

One of my TAs just dropped these 3d printed goodies off for my office 🥹

07.01.2025 16:02 👍 3 🔁 0 💬 1 📌 0
Post image

Being able to see (and interact with!) iPhone notifications on my Mac has made these pesky 2FA pushes a lot less annoying :)

07.01.2025 03:42 👍 0 🔁 0 💬 0 📌 0

Me too :) We’re making it happen though

31.12.2024 23:00 👍 0 🔁 0 💬 0 📌 0

M.S. Computer Science? ✅
Teach a university course on iOS? ⏰

I’m beyond excited to share that I’ll be returning to UNC to teach my own, custom-built course on iOS dev :)

This will be a wild ride, but I’m stoked to share my passion for Swift and SwiftUI with my students. Stay tuned for updates!

31.12.2024 22:51 👍 7 🔁 0 💬 1 📌 0