Issue #18 - Frederik Riedel and Prasanna Gopalakrishnan
Happy Monday, everyone!
We made it to the 18th issue! Thank you to everyone who read last week’s issue ❤️
📆 Today I’m featuring Frederik Riedel and Prasanna Gopalakrishnan.
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
Indie Devs
Frederik Riedel
Q&A
1) What is your name? Where do you live?
Frederik Riedel Berlin, Germany
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
My name is Frederik Riedel, and making apps is my main job. I studied Software Engineering in Stuttgart, Germany. I love climbing, hiking, and making & listening to music (Techno, Ghetto Techno, Dub Techno, Break Beat). And I love working on my own projects, my apps.
3) Have you ever considered yourself an indie developer?
No. I see myself as inventor who uses software to build solutions for problems that I face, and the platform of the AppStore to distribute my inventions with other people who might find them useful as well.
4) What got you started/interested in creating your own applications outside of your “normal” job?
I never had a “normal“ job so far (besides maybe my internship at Apple was the most “normal” job so far…). I started developing apps in high-school when I was 14. My first device to code for was the Texas Instruments TI-84 Plus, a graphics calculator. This really built up my desire to build tools that are actually useful and which I can always bring with me. Besides that I had an iPod Touch 2g with iPhoneOS 3 in my pocket, waiting for my desire to discover a whole new world of software development possibilities, APIs, sensors, and speed (compared to the TI-84 Plus).
I installed Xcode for the first time in 2010, but had to give up because it was so frustrating to learn. I had no idea what object oriented programming was, and the weird connections between code and the Interface Builder didn’t really make sense for me on the first tries. So after some frustrating hours I uninstalled Xcode again. A couple of months later I did the same again. And uninstalled it again. Until, after one more year it finally made “click” and I started to understand the basic concepts. I still had no idea what object oriented programming was, but at least I was able to make use of some UIButtons, UITableViews (all in one UIView, because I didn’t understand the concept of UIViewControllers back then…)…and so my first App was born: iRedstone, which is still on the AppStore almost ten years later.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
This is indeed not easy. Sometimes I am working on such exciting new projects that I cannot stop. Even on the weekends. But I also discovered that it is important to take breaks, and actually relax and do something else in-between. That boosts new creativity and gives me more energy long-term. Working on apps is my hobby, but also my profession: It heavily depends on the app that I‘m working on if I would specify this as work or as hobby.
My life structure has changed a lot since the beginning of this year, since Covid-19 started. Now that we‘re staying home more anyway I thought I might use that time to publish some more apps this year, some bigger ones, some smaller ones: Together with Eva-Charlotte Vonhof I created ACNH Pocket Wiki, updated Processing for iOS, QuickScreen, Redpoint and iRedstone, published one sec and Homie…and there‘s still more to come this year.
In the end, you can see quite often I combine personal interests and hobbies with making a new app. And I think that’s the best way to bring up the energy necessary to finish those projects: Sometimes I need to go to the climbing gym to verify that a new algorithm in Redpoint is working properly. And at this point I really can’t tell the difference anymore between work and hobby.
6) Homie - First of all… I love the name “Homie” ❤ I created a really bad home automation app years ago called “Homeboy” 😝 I knew I had to get you on Indie Dev Monday. I can probably guess why you picked “Homie” but did you have any other name option you were considering?
Homie was actually the first name that came to my mind, and I sticked with it. Even the Xcode project is named “Homie”, so I really never considered changing it.
7) Homie - What was your inspiration for Homie? Was an experiment that you wanted to try making? Did you know exactly what you wanted to accomplish with it?
Homie is an app that I wanted to make for a couple of years. I don’t like the Home app on macOS at all. It‘s very complicated and slow to use, especially if you just want to turn on the light, or change the scene quickly. I already attempted to build Homie in 2019 with the Mac Catalyst technology, which basically allows to run iOS apps on macOS: So my thought was: I can use the HomeKit framework on iOS, so I should be able to use it on macOS through Catalyst. But somehow, Apple decided to not make HomeKit available on Catalyst back then.
So I was very excited when Apple announced at WWDC this year that the HomeKit framework will come to macOS via Catalyst with Big Sur. Even though I discovered some more technical problems on the way, regarding embedding a Catalyst app in the Menu Bar and embedding auto-lauch functionality in a Catalyst app. This summer I was really busy to glue all parts of Homie together using Objective-C and Swift.
8) Homie - I have never experimented with any of the HomeKit APIs before. Was this your first time using the HomeKit framework? What were your experiences like? Have any fun stories? 😊
The HomeKit framework is actually very nice to use as a developer: once you have user-permission you get access to Homes, Rooms, Scenes, and Accessories in a well-structured manner. The actual difficult part comes in when bridging HomeKit functionality over to AppKit: The HomeKit framework is only available via Catalyst, but a Catalyst app cannot be a Menu Bar app. Thats why my app contains an AppKit-component for which I had to re-write many HomeKit functionalities.
9) Homie - I know this is a relatively small future but I think it’s huge! I love that you have a “Suggest missing trigger…” option in the automation setup. It’s very reassuring as a user to see that. It makes us feel good that our input is appreciated. Not really a question but take this 🏆
That‘s how I develop apps: they are never finished. And I want to give my users an easy way to decide what should be added next! I love the iterative approach when developing software. I try to finish a first prototype as quickly as possible, so I can already bring this into the hands of some users. And then improve the product based on their feedback, and based on my own experience.
10) Homie - Follow up on the previous question! Homie was the first app I installed on my Big Sur instance. The menu bar app and settings screen look so nice compared to Catalina 😍 I’ve had it for one day and I’m a fan so far. How have you been liking Big Sur? How has it been developing an app for Big Sur?
Over the summer I had Big Sur installed on a second partition where I would always switch to for development. I already liked it a lot and was sad whenever I had to switch back to Catalina. A couple of weeks before the release I decided to install Big Sur on my main partition as well, so I could actually use Homie in my every-day life before releasing it.
In general, developing Apps for Big Sur has changed a lot compared to a couple of years ago. We now have Catalyst and SwiftUI which allow to use frameworks coming from iOS (most importantly UIKit and HomeKit for this app). As an iOS developer, I really enjoy this. For example, the differences between AppKit (the traditional macOS UI framework) and UIKit (the iOS UI framework) are sometimes significant and frustrating for me. But now I was able to cover big parts of the UI using UIKit, with which I am way more familiar.
11) Homie - What’s next for Homie?! Do you have any future features that you have planned that you can share?
There‘s a lot on my list. The first goal is to increase compatibility with existing HomeKit devices such as blinds, thermostats, and door locks.
Then, I‘m gonna add additional convenience functionality such as turning all lights off in a specific room, adding custom icons for scenes, accessories, or rooms, and adding more keyboard shortcuts (e.g. to open the menu bar app itself). And finally, iterating on the UI to make it more similar to the new Big Sur control center, and maybe even add widgets.
As you can see, that’s already a long list. But the app seems to get great feedback and users are passionate about the features, so that motivates me a lot to continue on that path.
12) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?
The hardest part for me is definitely to decide what to focus on next. I‘ve created so many apps so far with hundreds of thousands to millions of users, and all of my apps require attention to add new features and release updates. Deciding what’s important for the next week is always hard. I want to do everything at once, but that doesn’t always work. On the other hand that’s also the biggest luxury I have: to be able to decide when, where, if, and how I want to “work” – work that doesn’t feel like work.
13) Is there anything else you’d like to tell the indie dev community about you?
I‘m always up for app collabs! If you like something in particular that I‘m doing in my apps, feel free to get in touch :)
14) Do you have any other indie devs that readers should follow / lookout for?
- Klemens Strasser: Subwords and Asymmetric, @klemensstrasser
- Bruno Philipe: Kodex and Mastonaut, @BrunoPhilipe
- Johannes Erschbamer: Thirstic and NetSnips, @ersjoh
- Leo Mehlig: Structured, @leoMehlig
- Curtis Herbert: Slopes, @parrots
- Martin Jr Powlette: PlayOff, @MartinJr150
- Perjan Duro: MoneyCoach, @PerjanDuro
- Yannik Spreen: School Night
Prasanna Gopalakrishnan
Q&A
1) What is your name? Where do you live?
My name is Prasanna Gopalakrishnan. I live in beautiful Melbourne. We have just come out of extremely strict isolation for 12 weeks. Thankfully we are down to zero cases for about 2 weeks in our state (Victoria) and can enjoy the spring and head out for a bit of ☀️
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I had been doing web development for about 6 years when iPhone SDK first launched in 2008 (that was also the year iPhone first came to Australia). I knew immediately this is what I wanted to do, and started learning Objective-C and iPhone development using the wonderful Stanford course.
I first made a little app that calculates cab fares for various cities to dip my toe into iOS development. As one of the early apps, it got a lot of traction fairly quickly. I also became a full-time iOS developer working for a couple of agencies for the next 2 years. Buoyed by the nominal success of the cab fare app, I started working on what felt like every iOS developer was also working on - a Dropbox based Markdown text editor - WriteUp.
Around 2012, we had our first child and I started working for one of the largest iOS teams in Melbourne (realestate.com.au). After a few years of juggling all of it, I took a bit of a break from indie development to focus on our baby and the new job.
Then, last year, I started playing around with SwiftUI to get my head around it. The experience with SwiftUI was so good, and creating UI so fun that it brought back my itch to start working on my side projects. Currently, I am juggling being a Tech Lead at realestate.com.au, 2 kids and working on Horizon.
Over the last few months, I’ve also been having a lot of fun making a series of videos of my daughter teaching Swift programming using Swift Playgrounds! Outside of tech, I love reading and playing cricket.
3) Have you ever considered yourself an indie developer?
I used to when I was making WriteUp. WriteUp had thousands of users and one of the favourite things about the experience was - getting feedback from users on an app they were relying so heavily upon.
In the last few years, that has fallen by the wayside. But, starting to make Horizon and sharing the experience on Twitter certainly is bringing that back. The whole iOS indie development community is incredible, and that certainly helps.
4) What got you started/interested in creating your own applications outside of your “normal” job?
To be frank, I only started making apps to learn iOS development. But, once I released my first app, a switch flipped in my head. To make a product that people love is such a fulfilling experience and I feel like it’s a superpower.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
Balancing time is probably the one thing that’s been a tiny bit easier in 2020! With no commute to work, there’s a little bit extra time to spend with family (not so much with friends because of COVID). Most of my free time is spent with my children and helping them with their chores. I try to spend at least an hour after the kids are asleep on my side projects.
6) Horizon - Congrats on your launch of Horizon this past week! I have such a hard time with making habits so I love the habit tracker app space 😊 What was the inspiration behind Horizon? Did you have any goals or features that you wanted to implement that you didn’t see in any other habit trackers?
Thank you! I had 2 goals with Horizon. I wanted to make an app that my wife and I can use collaboratively to track the habits and routines of ourselves and of our daughter. At the start of the quarantine, like many parents, we found ourselves getting used to working from home, plus managing our daughter’s school activities and all her chores. So, this became an important problem to solve. I knew if I could make an app that actually solves the problem for us, there would be other people who would want this problem solved. This is also a feature I didn’t see in any other habit trackers.
Secondly, I wanted to make a non-trivial app using SwiftUI. This is a technology we are going to be using for the next ten to fifteen years. And so, I wanted to spend the time to understand the paradigm behind it. I have been keenly following along content from folks like PointFree (if you have any interest in SwiftUI, their series of videos on Composable architecture is amazing) to understand how to architect an app that makes composition and testing a first-class citizen with SwiftUI.
7) Horizon - Being able to track groups collaboratively is such a cool feature. I’m definitely better at finishing tasks when I have a little peer pressure. Was peer pressure the driver behind this feature? 😈 Or did were the initial thoughts this would be used with family and housemates?
My initial thoughts were around tracking collaboratively between family and housemates. But, I think competing is a natural next step from there. I have been thinking about it for the last few weeks now, and hope to add some of those features soon.
8) Horizon - It looks like Horizon uses a custom backend for the collaboration feature. I used to do a lot of backend development so I’m always a little bit curious about what people use these days 🤷♂️ What is powering the custom backend and what was your experience like with it? 😎 (if you don’t mind answering). Have you done a lot of backend development in the past?
In Horizon, I decided to use Firebase Firestore as the “backend”. It’s more a remote NoSQL database than a backend. But, it provides a compelling set of features - Authentication, solid support for security rules and with Cloud Functions taking actions like sending an email when an account is shared is fairly straight forward.
Also, Firestore natively supports listening to queries. So, you describe your queries in code, and any changes are notified throughout the lifetime of the app, so changes are reflected in the UI realtime. This works really well with Combine as it allows for streams of data over time.
9) Horizon - I’m so bad at making my own app icons so I love appreciating app icons from others. And Horizon’s icons are 😍 How many iterations of icons did you go through? What were the thoughts behind the mosaic style “H”?
Thank you, I especially appreciate comments about my design, because it takes a lot of trial and error for me to get to something I really like. I decided on the name Horizon just before releasing the first public beta and had a different icon for the first few weeks of the beta period.
And then, I had this idea of Github style check-ins to represent habits being checked off. I created a quick mockup and shared it with a few friends. Feedback for this design was great. So, I used it in the next public beta. As an added bonus, it is really straight forward to make alternate icons with this design.
10) Horizon - I remember seeing Horizon on https://airport.community a while back! What were your experiences like with Airport? Were you able to get a good set of beta testers to give feedback before your release?
I have created side projects for nearly a decade now. I think there is something special about this community right now. There is a lot of creators sharing their progress as they are making progress on social media. And the support these creators are getting from other indie devs is heartwarming. Also, folks like you are an amazing support. airport.community is such a great culmination of this idea. I think it had launched only a month or so before my first public beta, and the timing could not have been better.
11) Horizon - I seriously can’t have enough home screens for all of the pretty widgets that everyone is making 😝 I’m trying to do the date math too when you started working on Horizon. It seems like it might have been right around WWDC20 when widgets were announced. Were widgets one of the main reasons you wanted to make Horizon? Or was it just a fun bonus? 😊
I had started working on Horizon a little before WWDC. So, widgets are definitely a fun bonus 🙂
12) Horizon - What’s next?! Do you have any future features that you can share with us? 🙃
I have this goal of making Horizon a great iOS and macOS citizen. Widgets, given their huge popularity, made a lot of sense right now. But, I have goals of adding Shortcuts support, watch app, accessibility improvements and Sign in with Apple support in the next few updates.
Other than these, “Competitions” like you mentioned are another area I am interested in, but it needs more thinking. Also, some way for Horizon to “coach” a user to follow through and make them form and keep their habits. This was one of my initial ideas when I started working on this idea.
13) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?
To me, the fun part has always been the whole product development area. Coming up with potential problem others are having and trying to solve it is exciting and fun.
On the other hand, I struggle with sharing what I am working on. I tend to work on a problem by myself while getting feedback from a close set of friends. Inspired by some of the indie devs sharing their initial ideas on Twitter, I have started sharing more with Horizon, but I still have a long way to go.
I love how developers like Jordan Morgan (@jordanmorgan10), Shihab (@JPEGuin), Malin Sundberg (@malinsundberg) share their progress. It always inspires me to work on my side projects.
14) Do you have any other indie devs that readers should follow / lookout for?
In addition to the folks I have already mentioned, people should follow Jacqui (@TheGingerPixel). I used to work with Jacqui. She is an amazing developer and has created some amazing apps, and is working on some great new apps right now.
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 😜