How and when did you get into programming? And into iOS?
I used to work at an agency in more of a creative conceptual role, where I was working together with developers as well as clients to figure out what we should be making for them. I was the annoying designer that would always question the developers about why their estimates were so high when I found a StackOverflow post that was the exact solution - right? After a while I got sick of having to rely on other people to try out the ideas I had so I took an Objective-C project I had done design work on, and converted it into Swift 2 by just going through it file by file. Two weeks later I had it working in Swift, and from there I just kept going!
So that was your absolutely first programming experience?
I tried to create websites with Adobe Flash in high school. I remember trying to make a website for this racing game as part of a competition for a gaming magazine. I felt super fancy with action script stuff, but looking back I had no clue what I was doing.
I also liked to make my own RPGs with RPGMaker 2000. Until it crashed my dads computer one day..
What was the journey like from converting the project to Swift all the way to Soosee?
I tried a lot of different side projects that mostly amounted to nothing as i bit of more than i could chew until i would get stuck and just abandon a project. But every time it became a bit easier to make something worthwhile and eventually i started making things for my own personal use, which lowered the complexity of my apps. At WWDC 2019 i saw a session about the text recognition apis and i tweaked that code slightly so it could recognize the wot ‘oranges’ in Dutch. My girlfriend at the time was allergic to oranges so i wanted to make an app to help her out. More than half a year later i got stuck at home due to COVID and i decided to revisit the project to see if it would also be helpful for people with other allergies. The response blew me away, so i dedicated a few months to launching the app in June, just before WWDC 2020.
Do you remember what was most challenging leading up to first version of Soosee?
When I started working on Soosee I had to first find my way around some of the complex parts of the sample project I was using. There was a lot of coordinate stuff going on related to transforming the camera coordinates to actual text coordinates. After I got the hang of that I needed to find a way to let the app recognize multiple words at the same time, across different languages as well.
SwiftUI was still really new (this was in the iOS 13 days), and there was very little information about app architecture, and passing data back and forth. The EnvironmentObjects kept giving me difficulties as well, where for some users the app was crashing because the EnvironmentObject was empty, even though there were no codepaths that could lead to that. I ended up rewriting a ton of code in late 2020, and switched to iOS 14 only partly to help solve some of those early issues.
How did you approach the initial launch? Was it a immediate success?
I posted about Soosee on a few Facebook groups for people with allergies and got a really positive responses. Then on a random Friday I posted an early work in progress video on LinkedIn, which blew up to get more than half a million views. I got a few thousand beta testers out of that early exposure, which helped me build a mailing list. Around launch I also reached out to the editorial teams on the App Store and the app was featured early on. This helped create some buzz around the app which led to a nice launch all around 🙂
Wow, LinkedIn of all places.. Did you have large “network” there? Would you recommend LinkedIn to other indie devs to promote apps?
not really though, just my random connections, and I hardly use it for anything other than posting my own stuff. I don’t think it’s a reliable way to get your app out there and I think I just got lucky 🙂
How did you go about managing the mailing list? Did you use some specialized service?
When i noticed the app was getting some traction i quickly build a simple website hosted on GitHub pages with a link to a Google forms sheet where people could leave their email. Then I later imported them into a service called MailerLite, which provides great tools for sending out emails like this.
Were you sending like a "progress update" emails or just major milestones like App Store release and similar?
I only sent out emails around major events such as the App Store release (initially only in The Netherlands and Belgium and then two weeks later internationally). I did send some updates later but they weren’t really worth it. I then transitioned over to using Instagram for more community engagement as that matched me better.
Let's change topic... What is your secret for rapid app development? 😁 Your apps Unmute and Bakery went from scratch to App Store in less than a day, right?
Through the years I’ve gotten good at building out the sloppy foundations for an idea very quickly by reusing code and concepts from previous projects I’ve worked on. I noticed that if I overcomplicate my initial version, I’d spend way too much time perfecting everything which would make me lose motivation to keep working on it. What I do now when I get an idea for an app is to think through in my head how I can make the simplest possible version. Then, when all the dots are connected in my head, all I have to do is just type it out. This leads to more refactoring down the line, but it also helps me validate ideas before I spent too much time on them. With Unmute I was in a hackathon so I had a fixed time limit to work on it, and I had already created a lot of the text-to-speech code in the month prior for another project. For Bakery I purposefully didn’t focus on UI just so I could test out the initial idea for the app. In both cases I ended up updating the app multiple times in the week after launch to work out some of the kinks or add the missing features.
Yea, this is what I am trying to do as well with new ideas. To quickly get the core stuff working and validate it is doable. But I am not as fast as you 😁 Do you try to structure the code and keep it at least somewhat clean at this phase or that comes later?
to be honest, it also doesn’t come later haha. I hardly use any architecture patterns in a consistent way. I tend to refactor views into smaller components every now and then when I’m going through the code, but other than that i try to keep it simple: Managers that are observable objects for handling all the model stuff Views with a ton of small subviews per screen, which i sometimes reuse but just as easily just duplicate code with small changes as it’s often not worth the hassle of making a view completely reusable. A ton of utility files with handle little shortcuts
😃 I mean, we aren’t building complex enterprise systems right.. I am trying to keep my code reasonably clean but don’t sweat architecture too much.
i wish i had the disciple sometimes, but it feel it takes my out of my flow
You mentioned previously trying quite a few projects before Soosee, is this still the case? Or are all your projects those that are public?
I’ve got some projects that i never finished, but that i might reuse at some point in the future. A lot of things that were complicated to build in the past now get easier and easier so sometimes it’s better for me to wait and let Apple solve the hard stuff 😜 right now my time is shared between Soosee, Navi, Bakery, Fork Ranger and some of my own little apps. With the focus switching every week or so.
So in a given week you usually work on a single project, assuming there isn’t urgent problem elsewhere? How do you manage the tasks? Do you use something like Trello or some to-do app?
I usually work on 2 or 3 at the same time, but try to update at least one of the apps every week. I have a big notion board where
I list all the tasks, but in practice I just have a feature in my head and build it out as I go
I’m quite erratic in how I work, so long roadmaps are not very suitable for me
I have a sense that thanks to your apps you have explored some of the less known iOS frameworks and APIs.. Are there some you wish people would know about more or even use more?
yeah i really like browsing through api documentation to get inspiration for new possibilities. Areas that I think are interesting for people to try out more are:
Vision, which makes it really easy to create apps that respond to stuff you see around you. This doesn’t have to be complex, you can make a simple app that looks for a specific object, or that does something useful when pointed at text.
SpeechRecognizer and SpeechSynthesizer for doing more with your voice or to let your device speak things that are happening. It’s an easy way to play with some audio AR concepts.
And the improved soundAnalysis framework is interesting to let your phone respond to stuff happening around you
Yeah! Exploring documentation is great, even if you aren’t looking for new app idea. It can help later knowing what is possible. I really want to play with Vision but so far my experiments weren't that successful apart from document scanning 😃
What about ARKit? Is it something you would like to play with?
I tried some stuff with ARKit around the launch of the iPhone 12 Pro with LiDAR. I wanted to be able to control my HomeKit appliances by just pointing my phone at them and then a little button would appear on top of the light. I was disappointed with the quality of the tracking with LiDAR, especially the room building where my app wasn’t able to immediately recognize the room it was in. I should go back to it again at some point, but found it difficult to find good documentation and tutorials about stuff like RealityKit. I think it will be really cool to work with in the future once it’s more fleshed out.
You have a magic wand... and can change one thing about iOS development. What?
I wish that Apple would have short videos and sample code for every API 😃 It would just be the engineer who worked on that specific variable or function and they would just give a 5 minute explanation of how it can be used. These videos would then be visible in a very quick way on the Apple Developer Documentation site, similar to TikTok or Instagram, where it would be fun to just browse new APIs to discover the possibilities.
That would certainly make some of the non-essential APIs much more approachable!
Thanks for much for talking the time to chat about the many things you do! Do you want to give someone or something a shoutout?
Thanks for the fun chat! Let’s keep it going after this 😉 And if the reader is is into iOS development, be sure to check out Bakery on the Mac App Store as it will help you on your journey of shipping your app to the store!