Day 37 of #100DaysOfSwiftUI: Building on yesterday's UI patterns to implement a little expense tracking app that persists data between runs.
Day 38 of #100DaysOfSwiftUI: Refining yesterday's app a little bit. Conditional formatting for amounts, Edit mode, input validation 👏
Day 39 of #100DaysOfSwiftUI: Playing around with more UI patterns, NavigationView and NavigationLink.
Day 40 of #100DaysOfSwiftUI: Finished the Apollo missions app, with more custom views building. Not super exciting UI bits, but I feel like I have a better idea of what it actually takes to build a "full" app. Nice.
Day 42 of #100DaysOfSwiftUI: Challenge day for the Moonshot app, added a switch to show crew names instead of launch dates on the main list; launch dates on the Mission view, and other missions an astronaut participated in in the astronaut view.
Day 44 of #100DaysOfSwiftUI (skipped a day yesterday): further learnings about drawings and animation, including some use of Metal.
Day 46 of #100DaysOfSwiftUI: Challenge day for the drawing stuff. Made a psychedelic nightmare rectangle app.
Day 47 of #100DaysOfSwiftUI: a consolidation day that will likely take me several days to work through. I'm building a habits-tracking app, and I would like to push it a little beyond a simple exercise and build something that's actually useful to me.
Day 47 of #100DaysOfSwiftUI (day 2). Scrapped the habits-tracking app recommended by the course and decided to build a simple pomodoro timer for macOS instead. Will give it a couple more days. It's not much, but it's a start:
Day 48 of #100DaysOfSwiftUI: decided to keep working on my little pomodoro app as I progress through the course: 1-2 pomodoros on the app, 1-2 pomodoros on the course. Today's coursework is to watch a depressing video about the state of Swift and Apple ecosystems 😬
Day 49 of #100DaysOfSwiftUI: Learning about making HTTP requests, and validating forms/disabling controls.
Day 50 of #100DaysOfSwiftUI (made it half way through!): Building a small ordering app, keeping track of state by passing a class instance around between views.
Day 51 of #100DaysOfSwiftUI: adding networking bits to the ordering app from yesterday, encoding a class to JSON and POSTing it to a server/decoding a response.
Day 52 of #100DaysOfSwiftUI: challenge day for the previously built cupcake app; some improved error handling and refactoring.
Day 53 of #100DaysOfSwiftUI (skipped a day yesterday): Learned about modelling, accessing, and saving data using CoreData.
Day 54 of #100DaysOfSwiftUI: continued working with CoreData, and now also building custom UI elements — in this case star rating representations.
Day 55 of #100DaysOfSwiftUI: Some refinement to the book manager app today, including sorting by title, deleting books, and a detail view with some pictures.
Day 56 of #100DaysOfSwiftUI: Challenge day for the book manager app, with some very minor, rather unexciting improvements.
Day 58 of #100DaysOfSwiftUI: Even more CoreData stuff, including entity relationships. Quite similar to the other ORM I'm familiar with, Active Record.
Day 59 of #100DaysOfSwiftUI: Feeling a bit slow these days so it took me two days to do the challenge day for the CoreData project. Looking forward to moving on to something else tomorrow.
Day 60 and Day 61 of #100DaysOfSwiftUI: The consolidation challenge project is to build an app loading a JSON URL, parse it into CoreData-backed objects, establish relationships, and then display them.
I'm very familiar with these patterns from my webdev work, so I'm just going to skip these, especially as my time is limited these days. Moving on to the next project tomorrow.
Day 62 of #100DaysOfSwiftUI: Learning more SwiftUI internals and a new UI element, the action sheet.
Day 64 of #100DaysOfSwiftUI: Playing around with CoreImage filters, which are super slow in the iOS simulator (on x86 anyway!)
Uh it seems like I forgot to post about a day somewhere? That last toot was Day 65, and this is Day 66 of #100DaysOfSwiftUI: Added a bunch of other filters to this CoreImage filtering app.
Day 67 of #100DaysOfSwiftUI: Challenge day for the CoreImage app I built yesterday. I'm not at all interested in messing around with CoreImage APIs at this point, so I will skip it for today!
Day 68 of #100DaysOfSwiftUI: Gearing up for building a new app. Learning about a few fun things such as method overloading, module extensions, etc.
Day 70 of #100DaysOfSwiftUI: More MapKit fun, adding locations to a map and starting to build UI to add notes for each. Getting more comfortable with going back and forth between UIKit and SwiftUI.
Day 71 of #100DaysOfSwiftUI: Fetching a list of nearby places of interest for each marker from the Wikipedia API
Day 72 of #100DaysOfSwiftUI: writing encrypted JSON of location points to disk, reloading on app relaunch, protecting with FaceID.
Day 74 of #100DaysOfSwiftUI: learning about accessibility features and in particular the incredibly powerful VoiceOver feature.
Day 75 of #100DaysOfSwiftUI: Improved accessibility of some previously built apps using VoiceOver. (Dang I'm not being very consistent with this lately, need to get back on track. Only 25 days left after all!)
Day 76 of #100DaysOfSwiftUI: Wrapping up the study of VoiceOver. Overall impressions: what a powerful, easy to use, smartly designed system. My only request would be for the iOS simulator to support it, instead of having to use a real device.
Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.