Creator of Streaks and Full-Time Indie iOS Dev: A Top Dev Interview With Quentin Zervaas
Check out our interview with full-time indie iOS developer Quentin Zervaas: the creator of Streaks, and Apple App Design Award winner! By Adam Rush.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
Creator of Streaks and Full-Time Indie iOS Dev: A Top Dev Interview With Quentin Zervaas
15 mins
Welcome to another installment of our Top App Dev Interview series!
Each interview in this series focuses on a successful mobile app or developer and the path they took to get where they are today. Today’s special guest is Quentin Zervaas.
Quentin is one of the few indie developers still left standing in our community. He’s also an Apple Design Award winner, which is something we all aspire to. So, we’re really keen to hear how he’s found success as a full-time indie iOS app developer.
Quentin is the Founder and creator of the Streaks app and is a hot developer in Australia running CocoaHeads Adelaide.
Indie Developer
Going full-time indie developer can be a struggle for many developers. Can you tell me how you became successful as a full-time indie developer?
It is hard. I’ve actually been self-employed for most of my professional career. It actually began while I was doing some freelancing out of hours, then the company I was working for shut down. I didn’t actively make the decision to quit a full-time steady income, so I can imagine that would be extremely difficult for most people.
To become successful is really just a matter of persistence: you keep trying things, many will fail, eventually, some things succeed. These things won’t last forever either, then it’s on to the next thing.
The best piece of advice somebody gave me while I was working on something that was going quite well: “This won’t be your last business”. He was right.
You should always be on the lookout for new opportunities. Starting new things doesn’t necessarily mean abandoning current things. You’ll know when the time is right. I have a bunch of prototype apps I build – ideas or potential businesses I explore while working on my main apps. Most of them go nowhere. It’s just a matter of trying and failing.
Can you tell me what a typical day looks like for you?
- 6:30: Wake up
- 6:30 – 7:00: Read Twitter / Email / Hacker News
- 7:00: Drive to the office
- 7:30 – 5:00: Jump between lots of different projects. Mostly depending on what is pressing or what I’m motivated to work on. This changes often though, depending on what comes up.
In the evening I try to detach from it all, but this doesn’t really work – I often keep an eye on emails & Twitter. Which is maybe a bit sad, but I like it!
I work in an office away from home. I’ve worked from home in the past, but I personally don’t really like it, as it’s hard to detach yourself from “non-work”. I wake up pretty early, mainly to beat traffic.
What I’m working on really changes depending on the time of year. For instance, right now I’m getting my app updates ready for iOS 11 and adding new features using new iOS 11 features. This results in a lot of coding, a lot of uploading builds to TestFlight, handling feedback from testers.
Since I try and translate my apps into as many languages as possible, I spend a lot of time managing the translations and localisations in the app. This involves dealing with translation services, testing in foreign languages, all that kind of stuff.
On that note your app supports many languages. Can you tell me how you localized the app and how you thoroughly tested this?
I use a service called I Can Localize to actually translate the text. You can pretty much just upload your Localizable.strings file, it’ll import all of the strings, then assign them to translators. Once complete, you can download a separate Localizable.string file for each language. I have a workflow where I can automate downloading and merging the translations back into my projects.
I highly recommend translating apps as much as possible. One of the great things about doing so is that it forces you to think about the structure and design of your app early on. For me, adding a new sentence to 25 languages can be quite expensive, so my first thought would be “is there an easier way to explain this”, such as making the functionality more obvious, or using an image instead of text to explain things.
The translation service provides a review service, since some strings may not make sense in a given context. For this, I upload screenshots.
The best thing you can do to test your translations is to use the iOS UI testing along with Fastlane’s Snapshot. Once set up, I can generate a screenshot for every screen, device, and language and then review them myself for layout issues, or upload them for the translators to review. If you have 20 screens, 5 devices (e.g. iPhone X, 8 Plus, 8, SE, iPad), 25 languages, this could be thousands of screenshots, so you need to automate this. Plus you can generate your iTunes Connect screenshots, then automate their upload with Fastlane’s Deliver.
What tools do you use for your day to day business?
- Xcode – Build your iOS / watchOS / tvOS apps
- Visual Studio Editor – General purpose text editor
- Photoshop/Sketch – I do most of my graphics editing here, but there are things I’m unable to do well. For example, I find foreign language support (such as Arabic or Thai) is really difficult to do, or even things like using SVG files.
- Tweetbot – We get a ton of a customer feedback and interaction for our apps on Twitter
- FastMail – This is a great email service if you’re trying to avoid Gmail
- I Can Localize/Google Translate – Excellent translation service
- PhpStorm – For building web sites / APIs / backend services
- Fastlane – Tools like Snapshot and Deliver are huge time savers for building screenshots and interacting with iTunes Connect.
- CocoaPods – External open-source libraries that easily integrate with your Xcode projects