# Looking for some feedback on a SwiftUI Tutorial

**URL:** <https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307>\
**Category:** Show & Tell\
**Tags:** swiftui, swift\
**Created:** [7 April 2025 02:49 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307 "2025-04-07T02:49:31Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [7 April 2025 02:49 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/1 "2025-04-07T02:49:31Z")

</div>

This is my first SwiftUI tutorial and first tutorial in over a decade, I’m looking for some feedback before I make it public.

> **[SwiftUI Markdown Editor Tutorial - Ohanaware.com](https://ohanaware.com/swift/markdowneditor_tutorial.html)**
>
> Crash course in SwiftUI development, aimed at users of other tools

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [7 April 2025 03:26 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/2 "2025-04-07T03:26:51Z")

</div>

Cool !  
I’ll give this a thorough run through tomorrow

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [7 April 2025 03:29 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/3 "2025-04-07T03:29:35Z")

</div>

> [@npalardy](#):
>
> I’ll give this a thorough run through tomorrow

Thank you Norman. I appreciate it.

---

<div class="post-metadata">

**Author:** ![DaveS](https://ifnotnil.com/user_avatar/ifnotnil.com/daves/32/79_2.png) [@DaveS](https://ifnotnil.com/u/DaveS)\
**Post date:** [7 April 2025 04:37 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/4 "2025-04-07T04:37:48Z")

</div>

I’ll take a look as well, but may not be until Tue

---

<div class="post-metadata">

**Author:** ![Torsten\_B](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@Torsten\_B](https://ifnotnil.com/u/Torsten_B)\
**Post date:** [7 April 2025 05:23 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/5 "2025-04-07T05:23:59Z")

</div>

Looks like a detailed and very well-written piece! Unfortunately I don’t have the time now to read it in detail and do a code-along but will do. Thanks @samRowlands for this excellent contribution!

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [7 April 2025 05:58 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/6 "2025-04-07T05:58:30Z")

</div>

> [@DaveS](#):
>
> I’ll take a look as well, but may not be until Tue

Thank you Dave, I appreciate you taking the time.

> [@Torsten\_B](#):
>
> Looks like a detailed and very well-written piece! Unfortunately I don’t have the time now to read it in detail and do a code-along but will do. Thanks @samRowlands for this excellent contribution!

Thank you Torsten, I hope it lives up to your expectation 🙂

---

<div class="post-metadata">

**Author:** ![TomasJ](https://ifnotnil.com/user_avatar/ifnotnil.com/tomasj/32/4998_2.png) [@TomasJ](https://ifnotnil.com/u/TomasJ)\
**Post date:** [7 April 2025 07:00 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/7 "2025-04-07T07:00:19Z")

</div>

well structured, even optically. Clear steps, easy to follow. With publishing date and program versions (very good many are missing this!), ready to publish!

Some hints:

1. When showing sourcecode, please do not make this with images. When somebody is reading, he/she might use your tutorial alongside XCode, expecting to copy & paste. And make it universal please. In the 4th chapter for example you are using prper text for your code, switching then back again to images.

2. The screenshots, esp those showing whole screen, might be too small. Would it not be better to make them larger or at least clickable to see them in preview?

3. When using APIs, commands or functions, use referencing links to documentation.

4. Use a Git-Repo, then your tutorial can grow and adopt over time. Even if you are alone the one, who will maintain this. Static websites (even in some kind of cms) will become outdated in some years. I recommend [codeberg.org](http://codeberg.org) as alternative to Microsoft GitHub.

---

<div class="post-metadata">

**Author:** ![markus](https://ifnotnil.com/letter_avatar_proxy/v4/letter/m/b782af/32.png) [@markus](https://ifnotnil.com/u/markus)\
**Post date:** [7 April 2025 08:35 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/8 "2025-04-07T08:35:40Z")

</div>

so cool! Thank You!

I will follow that tutorial during the next few days.

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [7 April 2025 22:34 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/9 "2025-04-07T22:34:21Z")

</div>

Using macOS 14.7.4 (Sonoma) with Xcode 16.2

- SOME previews do not work quite right but everything seems to work more or less as intended

- images could be larger as they are quite small and makes following along tougher

- some text, in dark mode, is white on white  

in step 3 does LocalizedStringKey _only_ work on newer macOS version to render the markdown ? I’m not seeing it do that here BUT thats OK if its just not a thing in this old version of macOS

Got as far as starting step 5 today

---

<div class="post-metadata">

**Author:** ![DrScott](https://ifnotnil.com/user_avatar/ifnotnil.com/drscott/32/1465_2.png) [@DrScott](https://ifnotnil.com/u/DrScott)\
**Post date:** [8 April 2025 02:05 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/10 "2025-04-08T02:05:10Z")

</div>

I’ll try to go through the tutorial as soon as my migraine eases off a bit. Thanks for posting it. I’ve been doing only iPad Swift/SwiftUI programming so far, so it’s helpful to see a macOS SwiftUI example.

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [8 April 2025 03:44 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/11 "2025-04-08T03:44:28Z")

</div>

> [@TomasJ](#):
>
> well structured, even optically. Clear steps, easy to follow. With publishing date and program versions (very good many are missing this!), ready to publish!

Thank you Tomas.

> [@TomasJ](#):
>
> When showing sourcecode, please do not make this with images

I am only using images to show what the completed changes should look like, but I can type these out as source code, it’ll just take a while.

> [@TomasJ](#):
>
> The screenshots, esp those showing whole screen, might be too small

I hear you and Norman made the same comment, so I’ll look into redoing them at a larger size.

> [@TomasJ](#):
>
> When using APIs, commands or functions, use referencing links to documentation.

That can take a long time, especially for the longer blocks of code. I’ll have a think how to do this efficiently.

> [@TomasJ](#):
>
> Use a Git-Repo, then your tutorial can grow and adopt over time

I haven’t thought anything about the future of this tutorial, nor am I set-up for using git or any other code sharing service. It’s something I’ll consider for the future.

> [@markus](#):
>
> so cool! Thank You!

You’re welcome, I hope that it helps.

> [@npalardy](#):
>
> SOME previews do not work quite right but everything seems to work more or less as intended

I have found that some previews don’t look 100% as they do when the application actually runs.

> [@npalardy](#):
>
> images could be larger as they are quite small

Noted, I’ll look at redoing the screen shots (I didn’t keep the original images) at a larger size.

> [@npalardy](#):
>
> some text, in dark mode, is white on white

Now that’s really bad, I’ll fix the CSS.

> [@npalardy](#):
>
> in step 3 does LocalizedStringKey _only_ work on newer macOS version to render the markdown ? I’m not seeing it do that here BUT thats OK if its just not a thing in this old version of macOS

hmm… I developed this on Ventura with Xcode 15, so the LocalizedStringKey should work on ~10.19~ I mean macOS 14. I did a quick test with macOS Sequoia and it worked there. I tried to see if I could find out if it is a bug or not in macOS 14, but I couldn’t. Maybe you could post your code and I’ll see if I can spot anything, Xcode should warn you if something isn’t right.

> [@npalardy](#):
>
> Got as far as starting step 5 today

You’re not far from completing it 🙂

> [@DrScott](#):
>
> I’ll try to go through the tutorial as soon as my migraine eases off a bit. Thanks for posting it. I’ve been doing only iPad Swift/SwiftUI programming so far, so it’s helpful to see a macOS SwiftUI example.

I hope that your migraine eases, I can sympathize what its like. I did think about including a section on adapting the code so it could be run on an iPad, but I’ve not tried it yet and don’t have any working iPads left.

---

<div class="post-metadata">

**Author:** ![TomasJ](https://ifnotnil.com/user_avatar/ifnotnil.com/tomasj/32/4998_2.png) [@TomasJ](https://ifnotnil.com/u/TomasJ)\
**Post date:** [8 April 2025 05:30 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/12 "2025-04-08T05:30:49Z")

</div>

> [@samRowlands](#):
>
> I haven’t thought anything about the future of this tutorial, nor am I set-up for using git or any other code sharing service. It’s something I’ll consider for the future.

It would be nice to consider this, 'cause else all your effort and hard work would be for the moment and not interesting anymore in, lets say, 3 years. May I ask for whom you are making this tutorial?

> [@samRowlands](#):
>
> That can take a long time, especially for the longer blocks of code. I’ll have a think how to do this efficiently.

Yes, that’s hard work. It brings your tutorial closer to the common scientific standard. You do not need to link everything. Markdown offers footnotes. In my blogs I am mainly using footnotes rather direct links.

Here’s an example: [Enroute in practice](https://blog.jakobs.systems/en/blog/20250125-enroute-flightplanning/)

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [8 April 2025 06:31 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/13 "2025-04-08T06:31:42Z")

</div>

I’ve started updating, but ran out of time, so I only got as far as chapter 4.

- Larger screenshots.
- Dark mode support in the code.
- Replaced screenshots of completed code with actual code.

> [@TomasJ](#):
>
> May I ask for whom you are making this tutorial?

I’m making it because I wished for a tutorial like it (especially covering more than just placing an AppKit control into a SwiftUI view), at the same time, it’s meant for people who use other tools and are interested in developing for the Mac (which includes a number of Xojo’s customers). In the case of Xojo developers I wanted to demonstrate how easy it is to get standard macOS functionality that Xojo pretends doesn’t exist, such as ScrollViews, Customizable Toolbars, icons in menus, automatic menus, window restoration, window tabbing, document versions.

There is more functionality that I could demonstrate, but it would require a different kind of application that the one I show how to build.

---

<div class="post-metadata">

**Author:** ![Emile](https://ifnotnil.com/letter_avatar_proxy/v4/letter/e/58956e/32.png) [@Emile](https://ifnotnil.com/u/Emile)\
**Post date:** [8 April 2025 07:03 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/14 "2025-04-08T07:03:06Z")

</div>

> [@TomasJ](#):
>
> When showing sourcecode, please do not make this with images. When somebody is reading, he/she might use your tutorial alongside XCode, expecting to copy & paste. And make it universal please. In the 4th chapter for example you are using prper text for your code, switching then back again to images.

Use LiveText…

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [9 April 2025 04:34 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/15 "2025-04-09T04:34:33Z")

</div>

I’ve about done with the replacing the code overview screenshots with actual code that be copied and pasted.

@npalardy I don’t know why I didn’t think of this yesterday, but if you’re still having trouble with the LocalizedStringKey, try downloading the completed project from the tutorial page and running that. If it still doesn’t display the text then I think it’s a bug and potentially with that version of the macOS.

```auto
This is some **bold** text, while this is *italic* and this is ~strikethrough~

```

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [9 April 2025 13:54 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/16 "2025-04-09T13:54:54Z")

</div>

No idea what changed but it is working  
Didnt even need to download the completed example

Onwards !

Oh and thanks for the revised things  
Makes it a lot more readable

---

<div class="post-metadata">

**Author:** ![Tim](https://ifnotnil.com/user_avatar/ifnotnil.com/tim/32/13_2.png) [@Tim](https://ifnotnil.com/u/Tim)\
**Post date:** [9 April 2025 14:23 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/17 "2025-04-09T14:23:46Z")

</div>

All I did was skim. Was it supposed to make Swift look easy? I did not get that feeling.

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [10 April 2025 03:48 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/18 "2025-04-10T03:48:56Z")

</div>

> [@npalardy](#):
>
> No idea what changed but it is working  
> Didnt even need to download the completed example

That’s good, thanks for sticking with the tutorial, I hope that you’re enjoying it.

> [@npalardy](#):
>
> Oh and thanks for the revised things  
> Makes it a lot more readable

I’m pleased to hear it. Thanks for taking your time to try this tutorial and to share your feedback with me, I really appreciate it.

> [@Tim](#):
>
> All I did was skim. Was it supposed to make Swift look easy? I did not get that feeling.

Maybe I ramp it up too quickly? In the first 3 chapters you get a lot for not much effort, but I then cover some more advanced topics which can take a bit more code and understanding.

---

<div class="post-metadata">

**Author:** ![Tim](https://ifnotnil.com/user_avatar/ifnotnil.com/tim/32/13_2.png) [@Tim](https://ifnotnil.com/u/Tim)\
**Post date:** [10 April 2025 13:14 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/19 "2025-04-10T13:14:52Z")

</div>

Gotcha, so there’s a lot I already missed.

---

<div class="post-metadata">

**Author:** ![samRowlands](https://ifnotnil.com/user_avatar/ifnotnil.com/samrowlands/32/121_2.png) [@samRowlands](https://ifnotnil.com/u/samRowlands)\
**Post date:** [12 April 2025 01:23 UTC](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307/20 "2025-04-12T01:23:03Z")

</div>

> [@Tim](#):
>
> Gotcha, so there’s a lot I already missed.

If you’ve got a spare few minutes, I’d suggest trying the first 3 chapters.

[Next page](https://ifnotnil.com/t/looking-for-some-feedback-on-a-swiftui-tutorial/4307.md?page=2)
