Dominik Hofer
Dominik Hofer

Day 86 #100DaysOfSwiftUI

βœ… Overview of the Flashzilla project (I)

πŸ”‘ takeaways:
πŸ‘‰ Child's gesture has priority by default
πŸ‘‰ Gestures can be sequenced
πŸ‘‰ CoreHaptics for complex vibrations
πŸ‘‰ .allowsHitTesting() & .contentShape()

Also, I created something … interesting πŸ€”

Dominik Hofer
Dominik Hofer

Government websites are usually a hot mess.

One positive example though is https://www.ch.ch/en. It provides simple answers to frequently asked questions for Swiss citizens.

Great UX, available in 5(!) languages and built with modern technologies (spotted Nuxt πŸ€“).

Dominik Hofer
Dominik Hofer

Day 85 #100DaysOfSwiftUI

βœ… Added some additional features on my own

Also, there was a rewrite of the save and load functionality.

The awesome thing is, by now I already have built a library of code snippets, so I used one from the BucketList project for this feature :)

Dominik Hofer
Dominik Hofer

Day 84 #100DaysOfSwiftUI

βœ… Building the HotProspects project (III)

πŸ”‘ takeaways:
πŸ‘‰ Encapsulate your code (getters & setters)
πŸ‘‰ Make properties & methods private if possible

Refactoring and making your code better is just 🫢

Dominik Hofer
Dominik Hofer

Day 83 #100DaysOfSwiftUI

βœ… Building the HotProspects project (II)

πŸ”‘ takeaways:
πŸ‘‰ .textContentType for better autocompletion
πŸ‘‰ There is a built-in QR code generator

This QR code part sparked an idea in me – maybe I'll explore it further…

Dominik Hofer
Dominik Hofer

Day 82 #100DaysOfSwiftUI

βœ… Building the HotProspects project (I)

πŸ”‘ takeaways:
πŸ‘‰ Customizable view with enums
πŸ‘‰ Reminder: Mark ObservableObject classes as @ MainActor
πŸ‘‰ Dynamically filter data with computed property

I enjoy these kinds of days just building layouts.

Dominik Hofer
Dominik Hofer

Day 81 #100DaysOfSwiftUI

βœ… Overview of the HotProspects project (III)

πŸ”‘ takeaways:
πŸ‘‰ .contextMenu modifier for secondary actions
πŸ‘‰ .swipeActions on list items for further actions
πŸ‘‰ Two types of notifications: Remote & local

Great UX is already built in!

Dominik Hofer
Dominik Hofer

Did you know that there is a more convenient way to add the frame modifier you need in #Xcode14?

Just type .frame + the abbreviations of the properties you need (e.g. w for width, wh for width and height, …) and let autocomplete do the work for you!

Dominik Hofer
Dominik Hofer

.@thatsfinsweet has many great Webflow products that I love to use (available for free!).

But my absolute favorite is Attributes: Whenever I need something that's not possible in Webflow, chances are that there is an attribute that exactly solves my problem.

Feels like magic ✨

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 80 #100DaysOfSwiftUI

βœ… Overview of the HotProspects project (II)

πŸ”‘ takeaways:
πŸ‘‰ objectWillChange is for manually publishing changes from classes
πŸ‘‰ Use .result on a Task to simplify code (returns either return type or error)
πŸ‘‰ SwiftUI automatically interpolates images

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 79 #100DaysOfSwiftUI

βœ… Overview of the HotProspects project (I)

πŸ”‘ takeaways:
πŸ‘‰ @ EnvironmentObject makes data accessible to child views, use it with .environmentObject modifier
πŸ‘‰ TabView is a parent view for your whole app, it uses the .tabItem modifier

Dominik Hofer
Dominik Hofer

The new default SwiftUI view now features an icon.

Spotting this little change is a great reminder of how far I've already come on my #100DaysOfSwiftUI journey!

Dominik Hofer
Dominik Hofer

Uno #011

If you are a dev, you probably use the terminal pretty often. The best one in my opinion is Hyper by @vercel.

Built with HTML, CSS & JS and therefore easily extensible with plugins and customizable with gorgeous themes.

Here's mine, love the clean look:

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 78 #100DaysOfSwiftUI

βœ… Extended personal CRM app with location feature

Learned how to use the TabView view and also finally understood what .constant() is for πŸ€“

Dominik Hofer
Dominik Hofer

Day 77 #100DaysOfSwiftUI

βœ… Built a little personal CRM app

Finally got around to finishing this one. The UI part wasn't that hard (although it isn't anything fancy).

But saving the image was harder than I thought. Luckily, I found a helpful Github repo πŸ€“

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Uno #010

As you probably know, I'm currently learning SwiftUI and getting into iOS dev. And if I like one thing in particular, it's the great community around the topic.

A great resource to discover apps made by fellow indie hackers is @AppAirport. I love exploring them!

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 76 #100DaysOfSwiftUI

βœ… Did some a11y reviews on my own

Pretty much consisted of spotting the issue (the hardest part) and then hiding elements and/or providing declarative labels.

Also scored 12/12 on the review test, which made me quite proud πŸ˜‡

Dominik Hofer
Dominik Hofer

One of my favorite things to do after an #AppleEvent is browsing the new product websites.

Always so many delightful details to discover ✨

Dominik Hofer
Dominik Hofer

Day 74 #100DaysOfSwiftUI

βœ… Intro to a11y

πŸ”‘ takeaways:
πŸ‘‰ Use labels to describe content
πŸ‘‰ Decorative images
πŸ‘‰ Hide unimportant elements to VoiceOver users
πŸ‘‰ .accessibilityElement()
πŸ‘‰ use .accessibilityAdjustableAction to give VoiceOver users custom actions

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 73 #100DaysOfSwiftUI

βœ… Added some additional features on my own

Another project done πŸ₯³

The main task here was to refactor the EditView to conform to MVVM. I found the initialization in the view itself quite interesting:

Dominik Hofer
Dominik Hofer

Is there a similar course to #100DaysOfSwiftUI but for #React or #Typescript?

Really like this format and I learn quite well with it πŸ‘¨β€πŸ’»

Dominik Hofer
Dominik Hofer

Day 72 #100DaysOfSwiftUI

βœ… Built the BucketList project (part III)

πŸ”‘ takeaways:
πŸ‘‰ ViewModel is a software architecture pattern (create view extension)
πŸ‘‰ View should only be responsible for displaying data
πŸ‘‰ Use private(set) in ViewModel
πŸ‘‰ You can encrypt data on save

Dominik Hofer
Dominik Hofer

Uno #009

The one app you probably use the most every day is your browser. Why not give it an upgrade?

The best new browser on the market is, without a doubt, Arc by @browsercompany.

Clean design and many great features you won't find elsewhere 🀩

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 71 #100DaysOfSwiftUI

βœ… Built the BucketList project (part II)

πŸ”‘ takeaways:
πŸ‘‰ + Text() to combine texts
πŸ‘‰ Outsource as much cleanup work as possible to the data struct
πŸ‘‰ Reminder that nil coalescing is so useful

Follow

RSS Feeds