My app journey: the beginning
- Posted on: January 14, 2025
Part 1: WHY????
So, I've always had this dream of making my own app. I want it to be an iOS app specifically because: A) Thats the phone I currently use. B) They're usually prettier than their Android counterparts. C) The first programming language I've ever learned was Swift, but I quickly migrated to JavaScript to find a job and remember close to nothing of Swift now. So this is a greta opportunity to freshen-up.
"Yeah, sure" – I hear you say – "but why a mobile app?".
"I don't know!" – I reply – "Why do people jump out of planes? It's just something I always wanted to do, okay?"
I keep asking myself why that is and I came up with a million rationalisations. I thought that maybe it's because I've done the WebDev™ thing, now I want to try something else. I thought that maybe it's because I want to build something that's tailored to me and that a mobile app is a better fit for that. I thought about how I feel that mobile apps are somehow more "intimate" than desktop ones because you take them everywhere*1. They're your quick note, they're the toilet distraction, they're the tasks you offload from your brain, they're the memories of happy moments... they're more a part of you because a lot of them exist for you to put pieces of you and your life in them. And this project is the externalisation of a piece of me.
Now, you can take this romantic paragraph as an answer if you want, but, frankly, the actual answer is: "because I want to". 🙂
Part 2: WTF are you doing?
Glad you asked! I'm not sure...
It will be aimed at productivity. Probably a Task Manager*2 . What I want is an app that helps my brain function in a way I'm more satisfied with. I have ADHD and it can sometimes be very tricky to navigate life. I definitely need the basic "GTD Capture/Organise" part of a TM. I'd appreciate the "streaks" and "fancy graphs" bit from Habit Trackers since splitting my brain's checkboxes between multiple apps has not been helpful (au contraire, it has only helped things to be more easily forgotten). It'd also be cool if I could have calendar integration since the same "out of sight out of mind" principle that condemns some of my checkboxes to eternal limbo applies to calendar events as well. 🤔
So what do I need it to do:
- everyday show me my calendar events and my tasks marked for today
- pressing on a calendar event, opens that event in the calendar
- tasks should have both a start and a due date
- there should be a quick action for "reschedule to tomorrow" (slide over, on-press menu or something)
- tasks should have a "notes" field and URI/URLs should be recognised and clickable
- tags and grouping by tags should be allowed
- there should be at least 2 views: today and a basket of "not-today" items
- you should be able to filter those views by tag
- you should be able to save those filters for quick access later
- it must feel nice to use
- sync should be optional for the privacy-minded and a buy-in for the sake of my dog's treats.
- recurring items should have a (optional?) tracker showing how often they are completed. Pretty graphs are welcome. Percentages and trends (AKA: "am I doing more or less of it lately"*3) are a must.
Now to "how" I intend to do it:
- it should be coded in Swift. Maybe using Skip.tools so I can easily port it to Android?
- I will code at least once a week, ideally for 2h
- in the beginning, I will at least take one Swift online lesson per week
- I will use tickets to define my goals and keep them in the project repo
Let's get to it!
Useful Resources
Footnotes
*1 - whether you should it's another discussion entirely! *2 - cue the web devs' laughter *3- TODO: define "lately"