Wow, style-observer is featured very prominently on today’s issue of #JavascriptWeekly!
javascriptweekly.com/issues/723
Thanks for the shoutout folks (for Color.js too!), @d12n.me and I are very humbled!
@d12n.me.bsky.social
Apprentice Software Engineer under @lea.verou.me • Teacher • Microsoft Certified Expert & Trainer
Wow, style-observer is featured very prominently on today’s issue of #JavascriptWeekly!
javascriptweekly.com/issues/723
Thanks for the shoutout folks (for Color.js too!), @d12n.me and I are very humbled!
🚀 🆕 style-observer: A robust solution for observing CSS property changes in JS.
Developed with @d12n.me’s help over the last month.
Made possible by the pioneering work of @bram.us, Artem Godin, @janeori.propjockey.io and many others!
Blog post: lea.verou.me/blog/2025/st...
Docs: observe.style
Brilliant talk by @wwwalkerrun. Can't recommend it more for those who are interested in development apps for iOS and Android with @NativeScript!
Nathan, all NativeScript community would appreciate if you can give us more such tasty content. Thank you! 🙏🏻
📣 A couple of days ago @karger challenged me to build the Wordle Game with @mavoweb. Since I like challenges, now we have another app showcasing awesome Mavo features. 😅
It takes ~70 lines of HTML.
Play with it and tell us what you think:
#MadeWithMavo
Wow! That was an amazing journey. Thank you, @twostraws, from the bottom of my heart for the incredible work you did by developing this course: it's exceptionally thought, professionally designed, and remarkably delivered. You are THE Teacher!
#100DaysOfSwiftUI is officially ✅!
On day 98 of #100DaysOfSwiftUI, we finished building the wonderful SnowSeeker app. I learned a ton! Here are some highlights:
✓ with .horizontalSizeClass and .dynamicTypeSize we can make our app look good on every device regardless of its size
👇🧵
On day 97 of #100DaysOfSwiftUI, we started building our app.
I solidified the knowledge I already had and also learned how to force the stacked navigation view style on iPhones.
The declarative nature of SwiftUI plus elements of functional programming really shines together.😍
After taking some time to reflect a bit on projects 16–18 (day 95 of #100DaysOfSwiftUI), I'm back on track
On day 96 we began working on our last big project. While getting ready for it:
✓ I learned how to work with side by side views in SwiftUI
👇🧵
On day 93 of #100DaysOfSwiftUI,
✓ we learned how to position SwiftUI views, either absolutely or relatively, and recalled why the order of modifiers matters.
✓ We deep-dived into different coordinates the GeometryReader provides (global, local, and named).
👇
On day 92 of #100DaysOfSwiftUI, I learned:
✓ how layout and alignment work in SwiftUI
✓ how to work with alignment guides and create a custom one.
I'm glad we have technique projects in this course—they help understand the “magic” of SwiftUI. 🤫 It's not magic. 😉
On day 90 of #100DaysOfSwiftUI, we finished building the Flashzilla app. We added haptics to some actions, improved the app's a11ty, fixed some bugs, and let users add/remove and load/save their deck of flashcards.
I'm looking forward to some more challenges to solve tomorrow.
On day 89 of #100DaysOfSwiftUI, we colored our cards as user swipes and made the UI accessible for users with color blindness, added a counting down timer that stops when the app is inactive, improved the app logic and UX.
I'm gaining a lot of crucial knowledge building the app!
On day 88 of #100DaysOfSwiftUI, we began building the UI of our app: we designed a stack of cards that can be dragged by a user. While being dragged, cards are being rotated, offset, and disappear (or move back to the stack). I'm impressed with how little code it demands! 😍
17.01.2022 18:05 — 👍 0 🔁 0 💬 0 📌 0On day 87 of #100DaysOfSwiftUI, I learned how to:
✓ work with timer: create, connect to it, receive values it publishes with .onRecive, and react to them
✓ react to an app's state changes: when it's active, inactive, or in the background
👇
On days 86 of #100DaysOfSwiftUI, I learned:
✓ what gestures SwiftUI supports and how to work with them (perform actions depending on a state of a gesture, prioritize gestures, tell SwiftUI that gestures trigger simultaneously or in sequence)
👇
On day 84 of #100DaysOfSwiftUI, we added:
✓ the ability to store and load data with UserDefaults and performed small refactoring to make the code more professional and error-proof
✓ a context menu to a QR code and learned how to show, update, and save it effectively.
👇
On day 83 of #100DaysOfSwiftUI, I learned how to:
✓ generate a QR code using the CoreImage framework (specifically the qrCodeGenerator() filter). I was surprised to know that, in case of an error, we can fall back to an empty image simply by writing UIImage(). 🤯
👇
On day 82 of #100DaysOfSwiftUI, we began putting the new techniques into action. We built the tab bar that shares the same data across all its tabs using EnvironmentObject. TIL how to dynamically filter a SwiftUI list using the filter() method and a computed property. FP 🚀
11.01.2022 10:38 — 👍 0 🔁 0 💬 0 📌 0On day 81 of #100DaysOfSwiftUI, I learned how to:
✓ create context menus (what limitations they have and why)
✓ work with local notifications: request permission and schedule notification
✓ add packages (dependencies) in Xcode.
All the required techniques for the project ✅.
Since I'm a bit off track (and luckily have some free time), I decided to complete days 79 & 80 of #100DaysOfSwiftUI in one shot. TIL:
✓ how to create tabs with TabView and tabItem() and programmatically control them
1/3
On day 76 of #100DaysOfSwiftUI, I worked heavily with VoiceOver on iPhone to make the Cupcake Corner, iExpense, and Moonshot apps fully accessible. A valuable experience, I must say.
That was the last day tagged with “New.” So I can take a break and work on my project. 😊
On day 75 of #100DaysOfSwiftUI, I fixed some accessibility issues in the previously built projects: Guess the Flag, Word Scramble, and Bookworm.
It's amazing how little we should do to make our apps accessible to a much bigger number of people!
Day 74 of #100DaysOfSwiftUI. New technique project dedicated to a11y. From my pov, the toughest topic. I'm amazed how much effort Apple does in this direction (it's enough to look at the API they provide). Hats off. I also understand why so many folks fail with it. It is hard!
24.12.2021 16:25 — 👍 0 🔁 0 💬 0 📌 0Because of my business trip, I could work through the challenges for the Bucket List app, not yesterday but today. And now I can confirm that day 73 of #100DaysOfSwiftUI is officially closed: all the challenges are done and the final test is passed. 🥳
24.12.2021 15:11 — 👍 0 🔁 0 💬 0 📌 0I was hoping Paul would explain to us the MVVM design pattern. And he did. And of course, in an easy-to-follow and approachable way. It happened on day 72 of #100DaysOfSwiftUI. Yay!
That was a wonderful last day when we work on the BucketList project. The challenges are to come.
On day 71 of #100DaysOfSwiftUI, I learned how to fetch data from Wikipedia and present them to a user in a friendly way.
I was surprised to know that we can use “+” to add text views together to apply different kinds of formatting to them, for example. 🤯 Awesome! 😎
My main takeaways from day 70 of #100DaysOfSwiftUI:
— add a static example property with sample data to custom types;
— write your optimized comparison functions in Equatable structs if needed;
1/3
Day 69 of #100DaysOfSwiftUI was quite brief. However, it was full of new concepts (like other days). It introduced two new iOS frameworks: MapKit and LocalAuthentication. I was waiting for a day when Paul teach us to use Touch ID and Face ID with SwiftUI. And it happened. Yay! 🥳
19.12.2021 13:40 — 👍 0 🔁 0 💬 0 📌 0As Paul said, day 68 of #100DaysOfSwiftUI was easy.🥳
I learned how to:
– make custom types conform to the Comparable protocol;
– write data to the documents directory (I also wrote an extension for FileManager to be able to load and decode data);
– switch view states with enums.
On day 65 of #100DaysOfSwiftUI, we began to bring the Instafilter app to live by putting into practice all the technical aspects we covered in the previous days:
– we built our basic UI,
– let the user pick an image from their photo library,
– and applied the sepia filter to it.