Show older

Day 10 of , learning about classes. No major surprises, besides the fact that Swift classes have deinitialisers in addition to initialisers — methods that are called when an instance of a class is about to be destroyed.

Day 11 of , learning about protocols and extensions. Fun stuff.

Day 12 of , learning about optionals, unwrapping, guard clauses, and the like. More and more I feel like Swift is a much more complex language than, for example, Ruby. Or maybe it's more full-featured?

Day 13 of : first of three days of reviews. I feel like I have a solid understanding of the foundations of Swift now, and I'm looking forward to starting on an app project in a couple of days. I feel quite positive about this course, I have to say!

Day 14 of , second day of three days of reviews. Feel like I could've skipped this because I understand a lot of this stuff from other programming languages already, but decided to trust the process.

Day 15 of : third and last day of reviews. Classes, structs, closures, yadda yadda. Starting a smol project tomorrow!

Took two days off! day 16: actually building little bits of UIs now, and learning how to managing state. So far, pretty simple, pretty straightforward, pretty pleasant.

Day 17 of : Actually built a small app, in real American fashion it's for splitting tips 🤪

I like the declarative aspect of SwiftUI, reminds me of Nix!

day 18, wrapping up the WeSplit project with a little bit of custom coding. This took like 10 minutes, so today is a short exercise, but tomorrow is a challenge day, and I'm looking forward to that!

day 19: a challenge today, build a conversion app from scratch. Not too hard, but fun to do!

, day 20: Learning a few more UI building blocks such as stacks, images/gradients, buttons and alerts. It's coming together nicely.

Got too excited and did day 21 of on the same day 😅 A simple flag-guessing game, a little rough around the edges still. I'm getting a bit impatient with the tutorial and can't wait to get on with building a real project.

Day 22 of , tiny improvements to the flag guessing game from yesterday and that's it... Starting to realise that maybe finishing these 100 days won't give me *all* the knowledge I need to build the slightly complex app idea that I have, but let's see.

Day 23 of : Learning a bit more about the underlying workings of SwiftUI views. Feeling a bit uncomfortable with the number of times I'm being told "but we don't really need to know what happens there" in this tutorial 🤔

Day 24 of , feeling that I'm starting to be a little bit bored with the tutorial. The urge to build real things is getting stronger. Have an idea for a small macOS app now as well...

Today was all about reviewing the internal working of views, and applying some of that to existing projects.

Forgot to post yesterday: Day 25 of , built a small rock-paper-scissors game to consolidates the concepts I've learned previously.

In parallel thinking and fleshing out my app idea a bit more... can't wait to get on with it.

Day 26 of : two slightly exciting things today — the discovery that SwiftUI code builds just as well for macOS as for iOS (that's cool!), and the first step in using machine learning with the Create ML app. I've never done any machine learning before and this is an exciting new step for me!

Day 27 of : 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 , happy Christmas everyone. Bits and pieces of tweaking of yesterday's app today, nothing too exciting. Taking it slow.

Day 29 of , 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 : 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 : 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 : 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 : more animation stuff, including writing custom transitions, drag events, etc. Fun fun.

Day 34 of (skipped a day yesterday). Challenge day, the task was to add animation to the flag guessing game from a earlier.

Day 35 of 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 . 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 : Experimenting with some slightly more advanced UI patterns today, such as showing and dismissing views in sheets, and editing lists.

Day 37 of : Building on yesterday's UI patterns to implement a little expense tracking app that persists data between runs.

Day 38 of : Refining yesterday's app a little bit. Conditional formatting for amounts, Edit mode, input validation 👏

Day 39 of : Playing around with more UI patterns, NavigationView and NavigationLink.

Day 40 of : 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 : 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 43 of : Learning basics of drawing with paths, shapes, and borders/insets.

Day 44 of (skipped a day yesterday): further learnings about drawings and animation, including some use of Metal.

Day 46 of : Challenge day for the drawing stuff. Made a psychedelic nightmare rectangle app.

Day 47 of : 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 (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:

· · Web · 1 · 0 · 1

Day 48 of : 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 : Learning about making HTTP requests, and validating forms/disabling controls.

Day 50 of (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 : 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 : challenge day for the previously built cupcake app; some improved error handling and refactoring.

Day 53 of (skipped a day yesterday): Learned about modelling, accessing, and saving data using CoreData.

Day 54 of : continued working with CoreData, and now also building custom UI elements — in this case star rating representations.

Day 55 of : Some refinement to the book manager app today, including sorting by title, deleting books, and a detail view with some pictures.

Day 56 of : Challenge day for the book manager app, with some very minor, rather unexciting improvements.

Day 58 of : Even more CoreData stuff, including entity relationships. Quite similar to the other ORM I'm familiar with, Active Record.

Day 59 of : 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 : 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 : Learning more SwiftUI internals and a new UI element, the action sheet.

Day 63 of : Learning about UIKit and how to bridge between it and SwiftUI.

Day 64 of : More UIKit and bridging and language/framework archaeology today. Also learned to ask permission to access the user's photo library.

Day 64 of : 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 : Added a bunch of other filters to this CoreImage filtering app.

Day 67 of : 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 : Gearing up for building a new app. Learning about a few fun things such as method overloading, module extensions, etc.

Show newer

@liaizon Oh I didn't know about Bookwyrm, looks great! This app is an exercise in a SwiftUI course, but if it can actually be useful — why not!

Sign in to participate in the conversation

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.