Making steady progress, albeit a little slower than I wanted. Work and life got in the way, but that’s ok. I’m coding this application for me, to satisfy a need for an app that doesn’t exist quite like I want it or need it.
So, where am I in this? I went deep into learning SwiftUI and a few other things to write apps on the Apple ecosystem. It was, and still is, frustrating. SwiftUI seems to be still an experiment, and not quite fully baked yet. Basic stuff like setting focus on elements of a UI are not there yet, forcing me to have to find clever hacks, but hacks nonetheless, to solve those issues. It’s tedious in some way, and awesome in other ways, since it’s forcing me to have to deal with my own impatience.
Now I’m stuck trying to figure out file management for the app. Apple’s sandboxed security model is a good protection to have generally speaking, but it makes it incredibly hard to code simple file read / write functions. This gets even harder since I want iOS to be able to get to the same file via a sync service (like Syncthing for example). File management on iOS and inter-app file sharing is not a beautiful thing. Ideally I would be able to work on my Mac, saving my data automatically in a directory of my choosing, or the default Application Support directory. If I chose to save it in a directory I chose, then I those files can be synced, making the data available also on my iPhone. And anything I change on my iPhone would be reflected on the data, which can be then synced back to the app on my Mac. Easier said than done.
Sure I can use iCloud for this, but I’m trying to keep this platform agnostic and be able to work on data via a native app on many platforms. Also, as part of the rules I set for myself, I want to keep the data private, not relying on any cloud service to hold the data. It should all be local and available offline
I think I have found a solution, I managed to do this very easily and cleanly using Go, but I don’t know how I will implement it on iOS or on a Mac using SwiftUI.
One thing I need to mention is that I purposely am staying away from frameworks like Electron or React Native since I don’t want to be dependent on their packages and they are resource hungry monsters (and their apps don’t quite look exactly like a native app. I’m trying to keep the app for each platform native and lightweight, so they run even when the systems are strained or old. The only way, really, to do this is to go native, purely.
In any case, challenges that are fun but hard to implement right, specially for someone that has had no prior experience writing for macOS or Windows.
- Finalize writing / reading data to and from files
- Provide a way to export data to files so I can export all the data already in the app
- Stress test the app once this is done to make sure it uses little rousources
- Code the proper navigation on the app via keybaord, so I can use it without the mouse
- Finish coding the search function
Next 2-3 weeks will be interesting.