Happy Monday, everyone!
We made it to Issue #123! Thank you to everyone who read last week’s issue ❤️
I’m pretty excited about today’s issue! Today’s issue features an indie developer that lives just a few miles from me in the next town over. I was so excited when I found out that another indie developer lives so close to me that I had to meet them for the next day 🙂 I loved getting to know this person in real life and I wanted to share their story and app with all of you!
Deep Dish Swift is a brand new conference being held in Chicago April 30th to May 2nd in 2023. The conference aims to bring togethe Swift and iOS developers of all experience levels and backgrounds in an inclusive environment to share knowledge and experience from a diverse set of speakers. The first day is focused on indie development and and the next two are focused on Swift and iOS!
Today’s Spotlighted Indie Devs
📆 Today I’m featuring Aaron Trickey.
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
1) What is your name? Where do you live?
I’m Aaron Trickey, living in the suburbs of Chicago, USA.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
My tech interests are pretty broad. I first learned programming as a kid in the ’80s on our family’s Commodore 64 (and other 8-bit machines of the day). I got my degree in physics, but then went on to work in software instead. Since then, I’ve been lucky enough to work on a variety of cool things, from embedded C to large-scale telecom network management applications in Java, and have had a chance to manage teams and help in a small startup.
When the first iPhone came out, my wife bought one right away, and I bought my first Mac soon after. I picked up iOS development as soon as they opened the SDK, but never had the combination of free time and good ideas to ship something in those early days. Finally, a few years ago, I decided to try my hand at full-time indie development, starting with a Mac app, so this is my main job, for now.
Outside of tech, I’d say family and travel, and especially travel with family! We have amazing adult kids now, and when pandemics aren’t in our way, love to go places.
3) Have you ever considered yourself an indie developer?
Yes! I think sometimes it’s easy to feel like an imposter. But if you’re creating something and putting it out there, without the safety net and anonymity of a big company, then you’re an indie creator, and you deserve the title.
4) What got you started/interested in creating your own applications outside of your “normal” job?
I’ve always liked having side projects, and always been interested in releasing my own apps. But I’d never really released much. In 2015 I released my little iPhone programming app, PixelNote (still there!), and years ago I put out a few open source tools for Linux (and Unix) users. So when I decided to do TimeStory, I didn’t even try to work on it part time.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
Right now, life is pretty easy to manage, with my kids moved out, my indie work full-time, and my wife in a good job she enjoys!
6) TimeStory - TimeStory is such a great app! I was actually in the market for an event timeline app for Deep Dish Swift (the Swift conference that I started) and it looks like TimeStory might be a great fit for that 😊 When did I start working on TimeStory and what was the motivation behind starting it?
I started working on TimeStory in January 2019, though I’d been playing with the idea for years. Both my wife Hemi and I have had to create quite a few timelines in our careers. Sometimes this would be in a project-management app, but that tends to (a) assume a higher level of structure, like a project outline and resources, and (b) have restrictions on timeline layout (like one event per row) and limited styling abilities. So for quick, informal, or presentational timelines, people often just fall back on drawing them in a spreadsheet or presentation app. But those documents can be painful to build, format, maintain, and get information from.
I wanted to split the difference. A free-form, drag-and-drop app, borrowing more from drawing tools than project-management tools, with rich styling options, which was still a real timeline app with the ability to work with dates. I wanted you to be able to build a complete timeline without ever typing a date into a form. And I really wanted it to be a purely native, document-based Mac app, with no signups, so you can attach a timeline to an email or put it into a shared folder. (There are some great Web-based apps out there, too.)
I also wanted the same tool to be suitable for capturing other kinds of timelines; in particular, histories.
From day one, Hemi has been my primary tester and the other half of my design loop. She started using it as soon as it was usable, and has contributed so much to the design. I’ve done all the coding, but there’s no way this app would be as good without her work.
7) TimeStory - It seems like TimeStory can be used to almost plan anything! I especially love that one of the examples is for “The Exploration of Mars” 😁 Do you have any other examples of what some of your customers have used TimeStory for? I’m sure there probably have been some uses of it that I would have never thought of 😇
The best part of putting something out in the world is when people use it in surprising ways! Aside from the expected business and history uses, I’ve also heard from others including:
- People capturing personal life histories to share with their families
- A therapist drawing timelines of major events in his clients’ lives to help in sessions
- Lawyers using it as a lightweight way to map out cases
- Writers using it to sketch out fiction or nonfiction timelines
8) TimeStory - TimeStory’s docs are so amazing 🤯 There is so much that TimeStory can do and I would love to make sure that I utilize everything. Example projects and tutorials are great but the docs show everything which is great! What decisions did you have when deciding how to show/teach users about all the features? Do you have any thoughts on choosing between in-app documentations and website documentation?
I’m a fan of good documentation, so thank you! Particularly for productivity apps which open on a blank canvas and a mix of features, I think it’s important to explain the intent of everything. I try to make sure the table of contents reflects the major things you can do in the app, and that each page explains behavior and usage across different areas of the UI, rather than just listing features and repeating the menu bar.
I’m also a fan of in-app documentation, usable offline, so I made that a goal from the beginning (though I also put a copy on the website). This wasn’t super easy; Apple’s own documentation for their help format is woefully out of date, not covering the features of the current Help Viewer app like sidebar support, and one gets the feeling that they don’t really care much about in-app help any more. But there are a few great resources out there, and with enough trial and error it still works pretty well. I develop and version my own Markdown-ish source format along with the code, and treat documentation issues just like code issues. In 3.0, in fact, I wrote a new help compiler tool which processes those sources into HTML, cross-checking things like menu items against the app; I plan on open sourcing that at some point.
9) TimeStory - I love TimeStory’s app icon 😍 Making an app icon is hard but I knew exactly what TimeStory did just by looking at the app icon which I think makes it perfect! Did you make the icon yourself? Did you have any other app icon ideas that you were toying with?
Thanks! I did design the app icon myself, just a little, stylized timeline, which was the only idea I had that I thought worked. When Apple changed their icon guidelines with Big Sur, I took advantage of the change and new fixed shape to redo it with a little more color and texture, so I think it got a bit nicer. (I do miss the variety and shapes of many of the classic Mac icon designs, though!)
10) TimeStory - Dealing with dates is probably my least favorite part about programming and TimeStory is all about that 🙈 What’s been the hardest thing about building TimeStory and is it dates? What has been the most fun?
Performance, I think, often falls under either the “hardest” or “most fun” part of dealing with dates. The code which lays out your timeline along the X axis needs to call a lot of calendar math functions, and a lot of localized date formatting functions, and often many times during an animated scale change. I’ve spent a lot of time in Instruments, loading files with tens of thousands of events, and I always feel I could speed it up.
Another interesting early challenge was just adapting Apple’s date routines in Foundation to this app. Timelines in this app are created in terms of days, not points in time, and are thus timezone-independent. But most functions for adding, comparing, and formatting dates need you to pick an instant within the day (the Date type in Swift) and a specific timezone anyway, leading to some early bugs.
I could write much more here, but a few more examples: I do sometimes hear from users handling BCE dates, which I initially didn’t test much with; I designed the app around infinite scroll along the time axis, but realized that Foundation’s date math breaks down around 4700 BCE; I’ve needed to dig up undocumented aspects of the calendaring library, like when it marks the Julian/Gregorian transition. None of these affect the typical project-planning user, but all of them are important to somebody.
11) TimeStory - What’s next?! Do you have any future features that you can share with us?
The next big thing, I hope, will be a native version for iPad. I’ve always wanted this, and always felt that it would be a good fit, and have had prototype iPad code as part of my test builds since very early on. But I also want to make sure it’s a good iPad app, without sacrificing the Mac app’s Mac-ness, so while they will share a lot of code, it still needs a lot of UI design. (And Apple keeps changing the definition of good iPad design out from under me, every single WWDC it seems!) I’m not close enough to promise a release date yet, though.
Along the way, I’ll still be chipping away at my backlog, especially on things which would make the shared-with-iPad code more solid; there will be a couple more Mac-only releases before then.
12) What’s been the hardest part of being an indie dev? What is the most fun part of being an indie dev?
Most fun part of being an indie dev: Hearing from customers! I love the process of working over time on something that people use and find useful more than I really enjoy the coding itself. And it’s great to have that direct feedback cycle, even for bugs. When working inside a company, you get a lot more support, but you can also sometimes feel isolated from what your users actually want.
Hardest part: Knowing what to do each day, to build the right thing and then sell it! Sometimes you have to spend a couple months working on something before you can even validate the idea. And I’m kind of an online introvert, so I really don’t get out there and talk about it enough…
13) Is there anything else you’d like to tell the indie dev community about you?
Not really! Always happy to hear from people; find my contact info, and very infrequent blog, at https://casualprogrammer.com/.
14) Do you have any other indie devs that readers should follow / lookout for?
I enjoy following other indie Mac or Mac+iOS devs who blog and podcast. It’s great to come across a technical deep dive, and fun to hear a slice of “what did you do (right or wrong) this week” to remind us that we’re all playing the same game. I’ll throw out a few names of the many I regularly follow: Michael Tsai’s irreplaceable blog, Daniel Jalkut and Manton Reece on their blogs and on the Core Inituition podcast, Steve Troughton-Smith’s blog, John Sundell and Gui Rambo via their articles/blogs and on their Stacktrace podcast, and Steve Scott and John Fox on their iDeveloper podcast.
Newly Released and Updated Indie Apps
Here are some newly released and newly updated apps from this past week! If you would like to possibly see your app in this list, please submit your app to the look at me form 👀
Thank you to everybody who made it to this footer! You either spent the time to read or took the effort to scroll 😊
Make sure to visit https://indiedevmonday.com/subscribe to get an email of future issues!
And go to Twitter and give @IndieDevMonday a follow… or multiple follows if you manage more than one Twitter account 😜