First Tweet from my new iPhone 14 Pro ✨
iOS font sizes cheat sheet: https://xcancel.com/dominikhofer_/status/1583031232396345344/photo/1
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()
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
By the way, I recently started a more creative/photography-focused Insta account (link in next Tweet).
Feel free to follow me over there for more visual content :)
Show thread (2 posts)
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 :)
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)
Let's get Andrew to 1k likes 🙌 https://xcancel.com/aheze0/status/1580723469204934656
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:
Like physical exercise, mental activities also need a warm-up. https://xcancel.com/morgencalendar/status/1580555669178290178
10 life principles to live by:
Show thread (13 posts)
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!
I just love simple but clever ideas like this.
Beautifully executed 👏 https://xcancel.com/graceongrid/status/1576348432926912513
Just discovered a great alternative to finsweet's attributes:
Webflow tools by @RefokusAgency
Some really great stuff there!
👇
Show thread (2 posts)
I need some help from a Webflow pro regarding the editor:
https://discourse.webflow.com/t/not-able-to-edit-image-in-editor/218504
Has anyone else experienced this and can help point me in the right direction?
Thanks 🙏
cc @cedric_design @eklipsedev @bypratikraj
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…
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.”
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)
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 👏
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
Day 89 #100DaysOfSwiftUI
✅ Building the Flashzilla project (II)
🔑 takeaways:
👉 .background modifier
👇
Show thread (5 posts)
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
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
If #Xcode doesn't seem to recognize your connected iPhone, try this command in your terminal after disconnecting the device and quitting the program 👇
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 🤔
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 🤓).
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 :)
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 🫶
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…
And there it is, I've finally made my first $ (well, actually it's even two) on the internet!
What a feeling 🙌
(@rungxanh1995 is responsible for this if you want to leave some nice comments 😉)
Show thread (2 posts)
Since there were some requests to publish my wallpapers:
Introducing blurli:
minimal – beautiful – blurry af
Blurry and noisy wallpapers for desktop and mobile – carefully crafted and curated by hand.
Get them here: http://hoferdo.link/blurli
Thanks for your support ❤️
Show thread (2 posts)
Sunday funsies:
Made some of my @Spotify playlists public and designed dreamy artworks for them (inspo: @FonsMans).
Enjoy!!
Awesome reference app for anyone learning SwiftUI! https://xcancel.com/SwiftDev_UI/status/1573822304890527744
Lil reminder that disliking the things you've created in the past is a sign of growth.
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.
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!
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!
A number to keep in mind 👇 https://xcancel.com/yannicklu/status/1573303483457048577
.@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)
DALL-E 2 is great, but writing good prompts can feel like art as well.
I've discovered this awesome presentation which helped me learn a lot about writing prompts for various styles 👇