Dominik Hofer
Dominik Hofer

Anyone else having great @framer testimonials all over the timeline?

(And doubting once again whether one should go down this or the Webflow rabbit hole…)

Help pls.

Dominik Hofer
Dominik Hofer

Day 100 #100DaysOfSwiftUI

Last day, challenge finished. Scored 89% on the final exam which is great, but I definitely didn't recognize all questions anymore haha πŸ™ˆ Shows, how far I've come since the start in summer.

Thanks to @twostraws for kicking off my iOS dev journey!

Dominik Hofer
Dominik Hofer

Day 99 #100DaysOfSwiftUI

βœ… Added some additional features on my own

Last official day and last challenge. And fortunately, I could solve it without a problem.

The collection of snippets I've built over the course of the challenge proves itself useful again πŸ™Œ

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 98 #100DaysOfSwiftUI

βœ… Building the SnowSeeker project (II)

πŸ”‘ takeaways:
πŸ‘‰ Use groups as top-level views in subviews to make them β€œdynamic”
πŸ‘‰ .dynamicTypeSize()
πŸ‘‰ Debug view hierarchy

Last official day, tomorrow is the last challenge and then we're already at day 100!

Dominik Hofer
Dominik Hofer

Day 97 #100DaysOfSwiftUI

βœ… Building the SnowSeeker project (I)

πŸ”‘ takeaways:
πŸ‘‰ Primary & secondary screens (just add a 2nd view to NavigationView)
πŸ‘‰ .joined() or format: to format an array of strings

Great to see how easy you can make an app usable on different screens 🀩

Dominik Hofer
Dominik Hofer

Day 96 #100DaysOfSwiftUI

βœ… Overview of the last project (SnowSeeker)

πŸ”‘ takeaways:
πŸ‘‰ Adaptive layout
πŸ‘‰ Can use sheets & alerts with optionals
πŸ‘‰ Groups are like divs
πŸ‘‰ Use .horizontalSizeClass to adjust view based on screen
πŸ‘‰ .searchable()

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Which platforms to use if you like to create:

Shortform videos β†’ Instagram, Tiktok
Longform videos β†’ Youtube, Instagram
Photos β†’ Instagram, Pinterest, Unsplash
Design β†’ Instagram, Twitter, Dribbble
Coding/Building in public β†’ Twitter
Writing β†’ Twitter, Blog, Newsletter

Dominik Hofer
Dominik Hofer

Day 95 #100DaysOfSwiftUI

βœ… Made a lil random number generator (dice roller)

Nothing too fancy, but I got to reuse some of the code from yesterday for the color interpolation :)

Dominik Hofer
Dominik Hofer

Day 91 #100DaysOfSwiftUI

βœ… Some more GeometryReader action

Rows now fade up when they get to the top, get smaller, and the hue changes based on the vertical position.

Was very fun to work on (and visually pleasing πŸ€“)

Helix pt. II (interesting code in next Tweet) πŸ‘‡

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 93 #100DaysOfSwiftUI

βœ… GeometryReader time

πŸ”‘ takeaways:
πŸ‘‰ Absolute & relative positioning (.position & .offset)
πŸ‘‰ GeometryReader reads the available space (expands)
πŸ‘‰ Global and local (relative) coordinates
πŸ‘‰ Sometimes, multiple GRs are required

Fancy helix alert:

Dominik Hofer
Dominik Hofer

Day 92 #100DaysOfSwiftUI

βœ… Learned how SwiftUI layouts work

πŸ”‘ takeaways:
πŸ‘‰ There are layout-neutral views/modifiers that ask their children for their size
πŸ‘‰ .alignmentGuide()
πŸ‘‰ Create custom alignment guides as enums

I can already feel that we're approaching day 100 fast!

Dominik Hofer
Dominik Hofer

Day 91 #100DaysOfSwiftUI

βœ… Added some additional features on my own

There were some slight improvements plus wrong-answered cards get added to the back of the queue. The last part is rather messy though, might have to revisit this part with a fresh mind…

Dominik Hofer
Dominik Hofer

From the @Codecademy data science path:

β€œIn the end, your human oversight and critical consideration of the data will have the biggest impact on data quality.”

Dominik Hofer
Dominik Hofer

Really not a fan of the whole Figma/Adobe bashing, BUT…

Why is @Adobe charging me 12.– if I choose to cancel my monthly subscription? This doesn't make sense to me at all and is bad CX practice (ironically, they create products that are supposed to help you design great CX)…

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

That's great UX:

@pixelmator Photo allows you to set a reminder before you get charged after the free trial.

Kudos, that makes me want to support you even more πŸ‘

Dominik Hofer
Dominik Hofer

Day 90 #100DaysOfSwiftUI

βœ… Building the Flashzilla project (III)

πŸ”‘ takeaways:
πŸ‘‰ prepare() haptic feedback generator
πŸ‘‰ Don’t use haptic feedback too much
πŸ‘‰ You can add a dismiss function to sheets

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 89 #100DaysOfSwiftUI

βœ… Building the Flashzilla project (II)

πŸ”‘ takeaways:
πŸ‘‰ .background modifier

  • Used some fancy ternary operators to change the background color of the cards. There is even an alternate UI for people who choose a specific color a11y setting.
Dominik Hofer
Dominik Hofer

Day 88 #100DaysOfSwiftUI

βœ… Building the Flashzilla project (I)

πŸ”‘ takeaways:
πŸ‘‰ RoundedRectangle with style .continuous creates a squircle
πŸ‘‰ You can init an array with repetition
πŸ‘‰ abs() for absolute number
πŸ‘‰ Pass closure to view to β€œaccess” parent view

Dominik Hofer
Dominik Hofer

Day 87 #100DaysOfSwiftUI

βœ… Overview of the Flashzilla project (II)

πŸ”‘ takeaways:
πŸ‘‰ Use .onReceive for publishers (like timers)
πŸ‘‰ scenePhase tracks the state of the app (active, inactive, background)
πŸ‘‰ You can access the a11y settings of the user via the environment

Dominik Hofer
Dominik Hofer

If #Xcode doesn't seem to recognize your connected iPhone, try this command in your terminal after disconnecting the device and quitting the program πŸ‘‡

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…

Follow

RSS Feeds