Dominik Hofer
Dominik Hofer

Day 15 #100DaysOfSwiftUI

βœ… Review day

Done with the fundamentals of Swift. Now onto learning SwiftUI, I am very excited!

Dominik Hofer
Dominik Hofer

My new favorite shortcut in @framer: ⌘ + K

Creating components, publishing, and more – straight from your Keyboard.

Love seeing more and more apps adapt this UX pattern πŸ™Œ

Dominik Hofer
Dominik Hofer

Day 13 #100DaysOfSwiftUI

βœ… Protocols
βœ… Extensions
βœ… Checkpoint 8

πŸ”‘ takeaways:
πŸ‘‰ Protocols are like a blueprint for different types
πŸ‘‰ With extensions, you can extend the functionality of types
πŸ‘‰ Protocol extensions are possible

Can you spot the easter egg? 🐰

Dominik Hofer
Dominik Hofer

Writing is the best tool to understand yourself better.

Try out journaling for some time and you'll see great benefits!

Dominik Hofer
Dominik Hofer

Day 14* #100DaysOfSwiftUI

βœ… Optionals
βœ… Nil coalescing
βœ… Checkpoint 9*

πŸ”‘ takeaways:
πŸ‘‰ Optionals are for when there might data
πŸ‘‰ They have to be unwrapped: Either with if let, guard let, or nil coalescing

Today's checkpoint was a simple one-liner. Felt kinda smart πŸ€“

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

Day 12 #100DaysOfSwiftUI

βœ… Classes
βœ… Inheritance
βœ… Checkpoint 7

πŸ”‘ takeaways:
πŸ‘‰ Classes don't have a memberwise initializer
πŸ‘‰ All instances point to the same data
πŸ‘‰ You can override methods
πŸ‘‰ Call super.init() inside child class

The furry checkpoint πŸˆπŸ•

Dominik Hofer
Dominik Hofer

Swift (with SwiftUI) feels like an ideal language to learn for beginners.

  1. You quickly get your first results
  2. Things look great out of the box
  3. There are many great and free resources like #100DaysofSwiftUI
  4. The playgrounds app enables everyone to learn it
Dominik Hofer
Dominik Hofer

Day 11 #100DaysOfSwiftUI

βœ… Access control
βœ… Static props & methods
βœ… Checkpoint 6

πŸ”‘ takeaways:
πŸ‘‰ Restrict property access with private keyword
πŸ‘‰ Static props/methods can be used for global data or examples

Slowly, Swift really starts to click for me πŸ™Œ
Checkpoint πŸ‘‡

Dominik Hofer
Dominik Hofer

We live in a time full of opportunities: The permissionless area.

But how should you leverage them?

@jackbutcher has created what is probably the most comprehensive guide to answer this question.

Here are my 5 key takeaways & opinions on β€œThe Permissionless Apprentice” πŸ‘‡

Show thread (11 posts)
Dominik Hofer
Dominik Hofer

My favorite @AliAbdaal quote:

β€œEverything is figureauteable.”

Perfectly sums up the mindset I try to cultivate.

Dominik Hofer
Dominik Hofer

Day 10 #100DaysOfSwiftUI

βœ… Structs
βœ… Computed properties
βœ… Property observers

πŸ”‘ takeaways:
πŸ‘‰ With structs, you can create custom types
πŸ‘‰ Computed properties work like in Vue.js
πŸ‘‰ You can create custom initializers (must provide values for all properties)

Show thread (2 posts)
Dominik Hofer
Dominik Hofer

With the launch of my personal website, I also want to start a bi-weekly newsletter. Nothing too fancy, just a way to send some updates.

What tool should I use?
⟑ @SubstackInc
⟑ @TwitterWrite (Revue)
⟑ @ConvertKit

Any tips/experiences?

Dominik Hofer
Dominik Hofer

Day 9 #100DaysOfSwiftUI

βœ… Closures
βœ… Passing functions
βœ… Checkpoint 5

πŸ”‘ takeaways:
πŸ‘‰ Closures are a special type of function
πŸ‘‰ Trailing closure syntax is handy when you pass a function to a function

Not sure if I solved today's challenge correctly, my brain hurts…

Dominik Hofer
Dominik Hofer

Discovered a handy feature in Xcode by accident:

When holding down CMD, you can click on a variable and refactor it.

See example below πŸ‘‡

Dominik Hofer
Dominik Hofer

One simple trick I learned in therapy:

If you're unsure what your gut feeling is (because you tend to overthink things), simply flip a coin. πŸͺ™

The answer you hope for shortly before the coin hits your hand is usually the right one.

Dominik Hofer
Dominik Hofer

Day 8 #100DaysOfSwiftUI

βœ… Default values
βœ… Throwing functions
βœ… Checkpoint 4

πŸ”‘ takeaways:
πŸ‘‰ = defaultvalue
πŸ‘‰ There is an error Swift type
πŸ‘‰ throws keyword before return type
πŸ‘‰ do try catch keywords

Trickier challenge today, but managed to solve it πŸ™Œ

Dominik Hofer
Dominik Hofer

One of my goals is to buy my next iPhone with money I made from creating iOS apps.

That would surely be an amazing feeling. Still a long way to go but you gotta have dreams πŸ˜‡

Dominik Hofer
Dominik Hofer

Day 7 #100DaysOfSwiftUI

βœ… Functions
βœ… Params
βœ… Return

πŸ”‘ takeaways:
πŸ‘‰ Params are named, type annotated and can have an alias
πŸ‘‰ Return value is annotated with -> Type
πŸ‘‰ Use Tuples to return multiple values (they have a fixed size)
πŸ‘‰ Tuples can be destructed

Dominik Hofer
Dominik Hofer

The best product ideas always come from scratching your own itch.

Nobody is better at solving your own problems than yourself.

Dominik Hofer
Dominik Hofer

The @webflow newsletter is one of my favorite resources to learn about new tools & beautiful sites.

Always looking forward to the next issue πŸ™Œ

Dominik Hofer
Dominik Hofer

Day 6 #100DaysOfSwiftUI

βœ… Loops
βœ… Checkpoint 3

πŸ”‘ takeaways:
πŸ‘‰ Ranges are a unique data type (... and ..<)
πŸ‘‰ Int.random(in: x) for random number
πŸ‘‰ continue & break to exit loops

The challenge was a classic code problem. Below is my solution for β€œFizzBuzz” πŸ‘‡

Follow

RSS Feeds