In any case, for making quick apps to solve some small pain points for you or to make quick prototypes to test an idea, I think AI coding is great for that.
In any case, for making quick apps to solve some small pain points for you or to make quick prototypes to test an idea, I think AI coding is great for that.
I'm still finding the balance on how to use AI responsibly, how much should I care of the quality of code (is it necessary to obsess as much on it anymore?) and make it a tool that enhances my skills, rather than just a crutch.
I vibe coded a HealthKit app that uses SwiftCharts to present the data and it even exports a bigger version of the data on a report image.
This took me 30 min, and I did a lot of refinements as I was testing the app.
I've been doing that manually. Of course as a developer I created a note of making an app that helps me do that, but as a random side project idea, it never gets built.
Well, it was a perfect use case of AI for me.
Every week, I want to keep track of my efforts to lose weight. Then I tend to take screenshots of the health app, crop them an unite them to put in a notion document where I do my weekly retrospective.
In many ways I feel "I'm behind" when it comes to AI development.
Building apps with AI and crafting apps feel like opposites approach to app development.
Now, I've been starting learning more about AI and trying it out and **one use case I like very much: prototyping and building personal apps.**
It's been a while in my head, but now it's finally out!
craftingswift.dev
This will be my portfolio website + blog
The site is currently being built, but I will share more content besides only using video form.
#developer #apple #iOS #macOS #youtuber
π£ Chronia 1.1 is out!
In this release, Iβve added the ability to pause and resume work sessions. You can also create and add tags to your sessions, which will help you map your process and identify areas for optimization in your projects.
Check it out! apps.apple.com/app/chronia-...
#macOS
Xcode has something similar in the device selector. It's a great UI pattern IMO. I wish to see it more often in macOS app
I'm surprised this is not a native control on macOS, but for the new Tag feature of Chronia, I wanted to quickly filter/select a tag for a work session, then if the tag is not found, offer to create it in the same UI.
#macOS #ui #ux
If you haven't check the video yet, here is the link www.youtube.com/watch?v=I7lU...
Soon I will announce the update to Chronia, together with something else π
In my latest video: Recreating Slackβs iOS Navigation Bar in SwiftUI. I was testing a new feature coming to soon to Chronia. Tags.
Simple, but allows me to summarize the work on my videos to get a better breakdown of the work I put on a video
#macOS #app #timeTracking
π£ New video out!
This time, I replicate the navigation bar styling in Slack for iOS using only SwiftUI APIs. I break down the problem and solve it step by step.
The code is in the video description.
Check it out!
www.youtube.com/watch?v=I7lU...
#swift #swiftui #navigationbar #ios26
It's been many years since I set aside time to tweak my terminal.
I keep using zsh / tmux / neovim and my dot files have been the same for quite a while.
What are the newest popular tools used for this?
#cli #developer
Using @Observable is great, but it has one small caveat. The initializer of the @Observable objects will be called multiple times, even with @State
@nilcoalescing.com's excellent article covers that topic in more detail.
#iOS #swiftUi
nilcoalescing.com/blog/Initial...
I try to always be productive on my side projects, YouTube and my apps.
For that my approach is to work each day a bit.
I use my Mac App Chronia to keep tract of that work and see how it builds up in time.
These are the things I worked on last week.
#sideprojects #productivity #timetracking
I recently watched π Antoine van der Lee 's talk about going indie at SwiftLeeds
Good work habits, using different hats and persistence are great traits for any developer, check it out!
#developer #carrer #indie
www.youtube.com/watch?v=Teas...
In the SATS app we were struggling with that. We have started moving towards SPM packages for modules, that helps a lot.
I share our learnings on the topic on my YouTube video, where I apply the same principles on how to break down a big app into SPM packages.
www.youtube.com/watch?v=IjoX...
One of the most frustrating things of iOS development are compilation times for big projects.
Previews take forever to update, recompiling the app for the simulator too.
#spm #ios
@danijelavrzan.com hi, when it comes to CFP for conferences, how much weights the fact that you ask for plane tickets and hotel, vs saying that your company pays for them?
I've seen that question in a bunch of CFP. I'm not sure how much of an impact is for getting selected into a conference
Itβs great that is focused on Apple Development. I totally recommend it!
#BuildInPublic #AppleDevelopment #iosdevelopment #productdesign #appmarketing #bookrecommendation
P.S. as reference, I got 247 highlights from this book, way higher than normal.
As developers we tend to focus mostly on Code, so itβs useful to look at the other aspects of app development.
The book touches on gathering ideas, evaluating the most likely to succeed, make a plan for validation and development and how to successfully ship an app.
I just finished the book βEverything but the codeβ by Paul Hudson and itβs a MUST read for iOS developers.
It has tons of great advice about selling apps on the App Store, but explains very well how building products is not just about the code itself.
twostraws.gumroad.com/l/everything...
π₯ Designing and Developing Widgets on iOS looks simple, but it's not quite like that.
In my video I share the challenges and solutions for a widget for a side project.
www.youtube.com/watch?v=511O...
#SwiftUI #WidgetKit #iOSDev #UIDesign #AppleDev
Useful for example:
- To see only the changes in a branch `git difftool $(git merge-base main HEAD)...HEAD `
- To see the commit logs from a branch `git log --oneline $(git merge-base main HEAD)...HEAD
Today I learned about a git command I missed many times.
```
$ git merge-base commitA commitB
```
It will find the most recent common ancestor between those two commits.
I made a time-tracking app for myself and ended up shipping it.
Chronia is simple, private, and subscription-free.
Intro price: $2.99 (normally $9.99) until the end of the month.
apps.apple.com/no/app/chron...
In practice, my solution was toΒ wipe the CloudKit zone and start freshΒ (yes, I shouldβve exported the data firstβ¦ I forgot π
).Lesson learned.#iOS
#SwiftData #CloudKit #Sync #Apple
What I learned:
CloudKit uses theΒ fully qualified model nameΒ (ModuleName + ModelName) as part of its identity for syncing.
So even though the models looked the same, moving them to a different module effectively changed their identity
In theory, I could have handled this with a proper migration.
I made some changes in development and syncing suddenly stopped working in production (post deploy).The change?
I moved my SwiftData models from the app target into anΒ SPM package.
While debugging, I tried promoting my CloudKit schema to production again β but CloudKit showedΒ no schema changes. π€