Category: XCode14

  • Moonshot Challenges

    Another few coding challenges at the end of a tutorial app in the 100 Days of SwiftUI course. The app is a sort of information app – composed of navigation views going down into more detail about the Apollo space missions. The most exciting revelation for me was how straightforward it is to pull JSON…

  • iExpense Feedback

    I finally got around to looking at Paul’s solutions for the iExpense challenges. Use the user’s preferred currency, rather than always using US dollars. Same approach as me, .currency(code: Locale.current.currency?.identifier ?? “USD”) except that he does the work in a local variable which is a bit neater. Since it appears in two places – the…

  • SwiftLint

    I was watching a Tim Ruscica video about the things that highly effective developers do, and it called to mind a book I read years ago called Code Complete. It is the only book I ever owned that I immediately purchased the new edition when it came out. It was about the meta stuff around…

  • Testing, testing

    I have unit testing in my list of goals, and if I’m going to throw this space trimming macOS utility up on the web, now might be a good time to figure out how to add unit tests to a project, how to write them, and how to run them. XCode is well set up…

  • Where’s My App?

    The iOS apps I’ve been making, can only run in the simulator or on my tethered device (which I haven’t actually tried yet), but the MacOS app I made today, in theory could be zipped up and distributed to the world from my website. At the very least, I wanted to drop it into my…

  • Customizing the default About dialog for MacOS apps

    The default Xcode MacOS targeted app has a built in “About” dialog called up from the “About <app name>” menu item in the Mac menu bar. It wasn’t immediately clear to me how to customise this, but after digging through some MacOS apps on GitHub, here’s the answer. When you app is being built, it…

  • CodeTrimmer – First MacOS App

    I was listening to the StackTrace app this morning (episode 169 – “Choosing What Bugs to Ship”) and one of the ideas discussed was taking the time to automate some of your development processes, partially to save time, but also because if you make a process simple and quick, you’ll be more likely to do…

  • Design Challenge

    So, I’ve been working on translating the UI design created by the external designer into SwiftUI, and have done all of the easy bits: The rounded rectangles for things like the question display/number input are just ZStacks of roundedrects filled, then stroked: Something I have learned in the process is the .offset modifer. This is…

  • iExpense Challenges

    Day 38 is three challenges on the iExpense app – a simple expense tracking app that uses UseDefaults for storing it’s data. Locale Use the user’s preferred currency, rather than always using US dollars. One of the joys of modern programming (as opposed to mid-1990’s programming) is the ability of the internet to give you…

  • Times Tables -Day 35 Challenge

    The challenge for Day 35 of 100 Days of Swift UI was to create a simple times tables drilling app. I’ve met all the requirements, so I’ll move on, but I am struck by how ugly it is. Making better looking apps needs to be added to my goals. Especially since this app is intended…