I started off with some general puttering around. Still deciding what direction I want to take things.
I decided I might like to have a package to share some common stuff between apps. So I made SamKit. To start off with I added a class with some helpers to get app info—like version and build—and a View that I use to show the version info in my settings views. I have never made my own Swift library before, so a couple things I learned:
You need to make things public, including the init of a View.
You can load a local library, not just from GitHub.
The package needs to be added under Frameworks, Libraries, and Embedded Content.
After that I did a little experiment with share sheets. SwiftUI has ShareLink now, which is quite nice. However, it appears there is no way to know if the share was successful or not. So I dug a bit more into using UIActivityViewController.completionWithItemsHandler. At first, the completion handler was never getting called. Turns out I forgot to remove the old ShareLink and call my new function instead 🤦🏻♂️. Classic. Then, it wasn’t getting presented. I was getting the root view controller, but it was already presenting a sheet. So I needed to get the presentedViewController from that. After that, it worked beautifully.
I meant to work on Lightbulbs today, but then I started having an existential crisis of sorts. I’ve long struggled with working on projects in a sustainable way. But now I’m struggling with motivation. How do I make something that I want to keep working on even if it is no longer just for me and my interests, workflows, perspectives, etc. change. I feel like I start a lot of things to try and fix a problem I have, but then my problem works itself out in some other way.
Like with Simple Embeds, I was really excited about it in the beginning, people started using it, I put a lot of time into it, then I pretty much stopped using Obsidian. People are still asking for things and reporting bugs and stuff, but I have a really hard time making myself work on it. Feels like a chore.
I’m trying to figure out how to either make myself want to work on things like that, or probably even better, figure out how to prevent getting into that situation in the first place.
That’s what’s going through my head right now. I think it still all comes back to how to build things sustainably.
I’ve heard advice for indie devs to make app that solves a problem you have. I’m having trouble with that. I get excited, start going, but it seems like my problems change or go away before I finish the app and I lose interest. Have I just not found the right problem to solve?
Lightbulbs is intended to be an app for collecting ideas. But I think I got too caught up on implementing the UI that it’s headed towards becoming a generic list app. Everyone has a place that they can put ideas. So I think I want to change the focus from collecting ideas to coming up with ideas. The app will help come up with an idea, record it, and then put it wherever you want. Maybe it’s a bad idea…but I think it’s simpler. Eventually, I think I could bring back all the collecting, favoriting, and other features.
So, gonna start over. Again.
I don’t think everything I’ve done so far will go to waste. There is plenty that can be reused.
With everything going on with Twitter, I’m trying to figure out what I’m going to do. I’ve been thinking about what I get from Twitter. I mostly lurk, using it to stay in the loop on programming stuff, but I also have those 3 or 4 people that I interact with regularly. Once or twice I’ve used it somewhat successfully to promote some things I’m working on.
Really, a lot of my usage can be replaced with blogs and newsletters. Over the last few months, I’ve been subscribing to more and more feeds, but not newsletters. I think I’ll try a couple newsletters. One nice thing about Twitter is that there’s opportunity to be exposed to articles, comments, sources, etc. from a wide variety of people. In theory a good blog or newsletter could also do that?
Discord is another alternative people have been throwing around. I’m active(ish) in two Discord servers. One is just a small group of friends, and the other is for Club MacStories members. Both are fun and engaging, but not very noisy. I belong to a couple larger ones, but find them too large for me to keep up with and contribute, so I ignore them. I like the smaller more focused ones.
And then there is Mastodon. I created a Mastodon account like many others this past week, but it honestly feels like a fad. Lots of people joined, but not really anyone is engaging with it. Maybe I’ll be wrong. I haven’t used it enough to talk intelligently about it, but I’ll say it doesn’t quite feel like it has the same draw that Twitter does. But maybe that will change. I’m currently crossposting from Twitter to Mastodon and keeping my eye on it. So who knows.
Unoriginally, I’m thinking I’ll stick on Twitter until it becomes unbearable. But I’m going to keep shifting more to following blogs and newsletters.
I follow quite a few indie devs on Twitter, and my fear is that the conversations they have out in the open on Twitter will move to private or much harder to find channels. I’ve learned a lot from seeing those conversations, and it would be a shame if they stopped happening in a place others could see them.
So I’ve got a bug. You select a collection and then add a new idea. Problem is, new idea does not show up. And I have no idea why. The value changes, but the View does not update. The first view does, but none of the others. The Views are in a TabView. Maybe that has something to do with it? I’ve tried making the View as simple as just showing the count of ideas. Nothing. I’ve tried the ol’ add an id to the view and change it every time it updates. Again, nothing. I’m going to have to try and make a minimal reproducible example. Guess I’ll try that tomorrow. It’s just so strange—the fetch request updates, but the View seems to refuse to recognize the change. I like using @FetchRequest, but I’m afraid I’m going to need to refactor everything to avoid using it.
Added a simple empty state to collections. Tap the button to add a new idea. Easy!
Fixed a Bug With editMode
Settings view
The settings view has a section that lets you reorder collections. I was using .environment(\.editMode, .constant(.active)) to make that section look like it could be interacted with1. Before iOS 16, this would disable all buttons in the rest of the View, including navigation links. Not useful. This was fixed in iOS 16! Then iOS 16.1 came out. Broken again…so time to work around. Luckily, the onMove modifier still works without setting edit mode2. So I added the icons myself.
Still have a bug with add new collections. I translate the current collection to an index to get/store a bunch of state to make some animations work. Still getting some errors with that.
There might’ve been another reason, but I can’t remember. So hopefully not.↩︎
Maybe this would not have worked in iOS 16 and this fixed that? I could go back and check, but…↩︎