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 😇
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 😇
Day 75 #100DaysOfSwiftUI
✅ Making previous apps accessible
🔑 takeaways:
👉 Making apps accessible isn’t that hard, just do it!
New Apple Watch lineup in a nutshell. https://xcancel.com/escoen/status/1567567510571991044
One of my favorite things to do after an #AppleEvent is browsing the new product websites.
Always so many delightful details to discover ✨
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
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:
Is there a similar course to #100DaysOfSwiftUI but for #React or #Typescript?
Really like this format and I learn quite well with it 👨💻
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
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)
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
TIL that you can use @microsoft's 3d emojis completely for free!
Here's the Figma link: https://www.figma.com/community/file/1138254942249677742 https://xcancel.com/UARRR/status/1566048230282039297
Show thread (2 posts)
Quick lil #Xcode tip:
Hit enter on autocompleted closures to enter into trailing closure mode quickly 👇
Day 70 #100DaysOfSwiftUI
✅ Built the BucketList project (part I)
🔑 takeaways:
👉 Add example data to types
👉 You can use optional variables to toggle sheets
👉 Set default state values with initializer and _variableName
Really like working with maps so far!
Show thread (2 posts)
One side benefit of learning Swift is that I FINALLY understand, why people love Typescript.
Took quite a while 😂
Day 69 #100DaysOfSwiftUI
✅ Further intro to the BucketList project
🔑 takeaways:
👉 MapKit integrates natively into SwiftUI (and is quite pleasant to use)
👉 You can add FaceID pretty easily as well (needs permission)
Was surprised that this didn't need some UIKit-hacks 😮💨
Today, I'm taking a break from #100DaysOfSwiftUI
But I wanted to share one of the best iOS-related YouTube channels out there: The one by @StewartLynch
Really nice teaching-style, already learned a lot!
Day 68 #100DaysOfSwiftUI
✅ Overview of the BucketList project
🔑 takeaways:
👉 If structs confirm to comparable protocol, they are sorteable
👉 You can save data directly to the documents directory
👉 Use enums to show different states of UI
Day 67 #100DaysOfSwiftUI
✅ Added some additional features on my own
Explored some more CIFilter options, there are surprisingly many!
Also learned that you can just disable views by checking if an optional is empty.
Yesterday, instead of completing the next day of #100DaysOfSwiftUI, I did something even more exciting.
I created my own lil app, a minimal Tichu counter 🃏
Pretty simple right now but if anyone wants to try it out, let me know :)
Uno #008
School has started and you're looking for a suitable notetaking app for students?
@rem_note is all you'll ever wish for: Easy to use interface based on nested bullet points and even better: The ability to easily create flashcards right from your notes to practice.
Show thread (2 posts)
Day 66 #100DaysOfSwiftUI
✅ Built the Instafilter project (part II)
Two things that bug me right now is that the gray background can be bigger than the image itself and that there is no success message (maybe these are going to be tomorrow's challenges 🤔).
Day 65 #100DaysOfSwiftUI
✅ Built the Instafilter project (part I)
🔑 takeaways:
👉 You can place optional views in UI
This day was a real blessing compared to yesterday 😂
But it's great to see how fast I can already build UIs by now!
Day 64 #100DaysOfSwiftUI
✅ Final introduction to the Instafilter project
🔑 takeaways:
👉 Use coordinator to create delegates (bridge to SwiftUI), which is pretty complicated
👉 Edit info of target for certain operations
👉 Saving an image also requires UIKit
Day 63 #100DaysOfSwiftUI
✅ Further introduction to the Instafilter project
🔑 takeaways:
👉 CoreImage is the image manipulation framework (quite hard to get it to work though)
👉 You have to use UIKit sometimes inside of SwiftUI, which is possible (e.g. the photo picker)
So true, I feel like getting distracted can also be a very good way to get inspired.
Both extremes are not healthy: Productivity obsession vs. always being distracted. https://xcancel.com/linuz90/status/1562379235020656642
Day 62 #100DaysOfSwiftUI
✅ Overview of the Instafilter project
🔑 takeaways:
👉 .onChange() is the best way to react to state changes
👉 .confirmationDialog() is an alert with multiple buttons
Funny that I've only learned about .onChange() yesterday 🤓
Day 61 #100DaysOfSwiftUI
✅ Added CoreData to the personal CRM app
Took me two days to implement the CoreData functionality, but it was so worth it – I learned a ton!
Here are the most noteworthy things 👇
Show thread (5 posts)
Didn't finish today's challenge for #100DaysOfSwiftUI, was way harder than I thought so far.
Will continue tomorrow ✌️
Day 60 #100DaysOfSwiftUI
✅ Created a personal CRM app
This app was not that hard UI-wise, but quite a challenge to get all the data stuff correctly.
Definitely not perfect, but solid I think :)
Read on for a few behind the scenes 👇
Show thread (6 posts)
Day 59 #100DaysOfSwiftUI
✅ Deep dive into CoreData (part III)
Extended the FilteredListView a bit and made it more versatile.
I especially liked the use of enums to ensure that only valid predicates are entered.
Below is my code, if anyone is interested 🤓
Day 58 #100DaysOfSwiftUI
✅ Deep dive into CoreData (part II)
🔑 takeaways:
👉 Use NSPredicate to filter query
👉 Make FetchRequests in subview (with SQL-like syntax)
👉 CoreData relationships
These were some fun but also complex topics today, was great :)
Day 57 #100DaysOfSwiftUI
✅ Deep dive into CoreData (part I)
🔑 takeaways:
👉 .self refers to the whole object → computes hash value
👉 Create a NSManagedObject subclass to handle optionality in one central place
👉 Check if changes were made to the moc
👉 NSMergePolicy
Day 56 #100DaysOfSwiftUI
✅ Added some additional features on my own
This challenge wasn't that hard, but I got to reuse some concepts from previous lessons. Especially working with dates and unwrapping optionals with if let.
Day 55 #100DaysOfSwiftUI
✅ Built the Bookworm project (part II)
🔑 takeaways:
👉 Sort data in FetchRequest with a SortDescriptor
👉 Place ToolbarItems in different locations
👉 You can also use dismiss to go back to the last screen
Want to learn SwiftUI the visual way – for free?
I just stumbled upon this great resource by @BigMtnStudio. 💯% worth downloading!
Uno #007
Are you a student or someone who struggles to focus for a long time? Then you should definitely try a pomodoro timer!
The best app I found for this is @stayinsession by @philipyoungg.
Great design, great UX – really love all the thoughtful details.
Show thread (2 posts)
Day 54 #100DaysOfSwiftUI
✅ Built the Bookworm project (part I)
🔑 takeaways:
👉 Use constant bindings in previews
👉 Must use nil coalescing when displaying data from CoreData
Really like the rating view with the stars, my first proper reusable component!
Day 53 #100DaysOfSwiftUI
✅ Overview of the Bookworm project
🔑 takeaways:
👉 @ Binding for changing values in other views
👉 TextEditor for multiline text fields
👉 Intro to CoreData
I feel like with some CoreData skills, I'll finally be able to create my own real apps 🥳
Show thread (2 posts)
Day 52 #100DaysOfSwiftUI
✅ Added some additional features on my own
Like in the Moonshot project, I mainly got to refactor some of the code.
And I learned how valuable it is to create a “wrapper class”, which is much easier to make conform to the Codable protocol:
Things I ❤️ about building apps for : The lil details that work automagically.
E.g. the stepper component allows you to long-press a button to change the variable faster. After five iterations, the counter increases in speed.
Awesome!
Day 51 #100DaysOfSwiftUI
✅ Built the Cupcake Corner project (part II)
🔑 takeaways:
👉 You can create multiple class initialisers
👉 Codable, URLRequest and URLSession are a powerful combo
👉 Place async function call in button inside Task
👉 ! for force unwrapping
Great quote from todays lesson in #100DaysOfSwiftUI from @twostraws.
This is exactly the kind of design I'll try to implement in my apps.
Day 50 #100DaysOfSwiftUI
✅ Built the Cupcake Corner project (part I)
🔑 takeaways:
👉 Save data like types as static arrays in class
👉 Use indices property to get the indices of array
👉 Toggle view
👉 Put validations in data not view (computed property)