Day 27 of #100DaysOfSwiftUI: used the machine learning data I generated yesterday in a simple app. Tell it when you want to wake up, how much sleep you want to get, and how much coffee you drink, and it will tell you what time you need to sleep, based on the CSV file I fed it yesterday. Pretty neat.
Day 28 of #100DaysOfSwiftUI, happy Christmas everyone. Bits and pieces of tweaking of yesterday's app today, nothing too exciting. Taking it slow.
Day 29 of #100DaysOfSwiftUI, getting ready for another project, learning about internals of Swift string management, and the weird features that come with needing to retain Objective C compatibility. Kind of a 🤷🏻♀️ day.
Day 30 of #100DaysOfSwiftUI: building another simple app, a word scramble game (use letters from a word to make more words). One interesting aspect of this is that it uses the system spellcheck service to check if a word is a valid English word or not.
Day 31 of #100DaysOfSwiftUI: challenge day adding 3 little features to yesterday's app.
- Add a button to reset the game
- Refuse words that are either shorter than 3 letters, or the word provided by the game
- Keep score. 1 point for each word, 2 extra points for words 6 letters or longer, 1 extra point for 4 letters or longer.
Fun stuff, but ready to move on to the next project!
Day 32 of #100DaysOfSwiftUI: learning about animations. I have to say the animation facilities in SwiftUI are really quite impressive, and if you know how to work with CSS animations, the SwiftUI way is really easy to grasp. Good stuff.
Day 33 of #100DaysOfSwiftUI: more animation stuff, including writing custom transitions, drag events, etc. Fun fun.
Day 34 of #100DaysOfSwiftUI (skipped a day yesterday). Challenge day, the task was to add animation to the flag guessing game from a earlier.
Day 35 of #100DaysOfSwiftUI is taking me a while: it's a challenge day involving building an app for practicing multiplication tables. I'm trying some fancier things this time, including splitting things into multiple views. Expecting to be finished tomorrow.
Finally finished Day 35 of #100DaysOfSwiftUI. Just got the logic part of the app down, might come back later to make it pretty and more full-featured. Want to move on to the next project for now.
Day 36 of #100DaysOfSwiftUI: Experimenting with some slightly more advanced UI patterns today, such as showing and dismissing views in sheets, and editing lists.
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 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.
Day 77 of #100DaysOfSwiftUI is a review day and once again I'm skipping the challenge task because I'm up to my neck in other projects haha
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.