Happy Monday, everyone!

We made it to Issue #42! Thank you to everyone who read last week’s issue ❤️


📆 Today I’m featuring Filip Nemecek and Simon Stovring.

Filip is the creator of SwitchBuddy and #iOSChats. SwitchBuddy makes it easier to transfer screenshot and videos from your Nintendo Switch console to your mobile device. #iOSChats is an informal interview series with members of the iOS community. #iOSChats is a really great read and fun way to be introduced to other members in the iOS community. It's actually how I got introduced to Filip and how I discovered Switchbuddy! SwitchBuddy is such a great companion app for the Nintendo Switch! I've taken a lot of screenshots on my Switch and I've always struggled to pull them all off. I would attempt to share them to Twitter or Facebook and delete the post but... that was a terrible solution 😅 SwitchBuddy super charges Nintendo's mobile transfer by allowing you to save your photos to the iOS Photos app or to iCloud. I quickly transferred over 40 photos in the first few minutes to iCloud 🤯 I feel so relieved to not have them just stuck on my Switch. SwitchBuddy is a must if you are a Nintendo Switch user! Check it out today 💪

Simon is the creator of Scriptable, Data Jar, and Jayson. Scriptable is an automation tool that enables you to write scripts that integrate with native features on iOS such as files, calendars, documents and much more. It has an extensive support for widgets that enables you to write your own widgets using JavaScript. Data Jar is a data store designed to be used with Shortcuts.

I'm not even sure where to begin with Scriptable 😱 I've been a huge fan of Scriptable and Simon's from day one of using it. I think I've mentioned my love for Shortcuts before but there having been times where Shortcuts hasn't been flexible enough for the processing I wanted to do. Well.. enter Scriptable! I can pass data from Shortcuts (like App Store Connect API responses from ConnectKit and) and forward them into my Shortcuts script for easier processing. But that was just how I got started using Scriptable 😇

I took noticed that Scriptable could also produce custom widgets and discovered that I could save data to be used in Shortcuts with Data Jar. I ended up making my own little healthy living log where I kept historical record of days I exercise and stretch. After that I made a Shortcut and widget that could keep track and alert me when new versions of the App Store Connect API were pushed. And now...

I'm sharing my official Indie Dev Monday Scriptable widget 🥳 This is a widget that (in it's default form) will show the latest Indie Dev Monday issue. When tapped it will open up the latest issue in the web browser. It can be configured with the text parameter set to "indie" to show a random spotlighted indie rotating every few hours. When tapped it will load this indie's issue in the web browser. I've been wanting this for so long but didn't want to make and maintain and Indie Dev Monday app. I'm so happy that all of this was easy to create and easy to share with Scriptable!

You can get the script either from the Scriptable gallery or in this gist



ANYWAY... Scriptable and Data Jar are amazing and allow for an endless possibilities without needing to create your own individual app. I highly recommend checking Scriptable if you are and aren't a developer. There are plenty of examples, guides, and docs to get you going!

👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.


Indie Devs

Filip Nemecek

Pardubice, Czech Republic

iOS Developer and creator of SwitchyBuddy and #iOSChats

Simon Stovring

Denmark

iOS Developer at Lunar and creator of Scriptable, Data Jar, and Jayson


Filip Nemecek

Q&A

1) What is your name? Where do you live?

Hi 👋 I am Filip Němeček and I live in Pardubice, Czech Republic.

2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?

I got my first introduction into programming at University, unfortunately it started with C and then there was a lot of Java. During the first months there I discovered C# which was awesome compared to the other languages I had an experience with. I started building some Windows desktop apps but quickly moved to Windows Phone. That was (if I remember correctly) around 2013 to 2015. During that time I also got part time job which introduced me to ASP.NET framework for building websites and even SharePoint a bit. I switched to Mac in 2017 and slowly got into iOS development. After graduating in 2019, I started my main job as an iOS developer. It is mostly working on a client projects with a couple of in-house ones.

My other interest is Django (Python web framework) which allows me to build web projects and possibly API for my apps should I ever need it. I am also involved in a small SaaS business that actually makes some money each month.

Outside of tech I really like to read, mostly non-fiction books. I am fascinated by insights and ideas these provide. I read anything from stuff about biology & evolution to economics, psychology, philosophy, business stories and even accessible math and physics. I also enjoy walks which are nice to clear up the head a bit and provide opportunity to listen to podcasts. And I really cannot wait for coffee shops to open 😬

3) Have you ever considered yourself an indie developer?

Yea, I would say so. Maybe not like 100% indie developer as this is not something I do full time.

4) What got you started/interested in creating your own applications outside of your “normal” job?

Mainly so I could create something useful (basically from nothing) and to create missing features for my phone. It is also an opportunity to have total creative control over entire project and just experiment and try new things. Also I guess I just enjoy creating way more than consuming.

5) How do you balance your time between friends/family, work, hobbies, and indie dev?

I would say quite well. Mainly because my side apps are not big and save for very rare bug that needs immediate attention I don’t feel any pressure. So it is more like like when I feel like working on my apps that’s when the work happens.

6) #iOSChats - I first wanted to thanks for having me on #iOSChats a few months ago! I loved that chat format for the interview. It was a really fun experience 😊 When and where did you get the idea to have an interview site and format like that?

That’s really nice to hear (again :-)). So for the idea.. This is a bit strange but I was reading a book basically about why some ideas stick and some are quickly forgotten and there was this one anecdote about one local US newspaper that was incredibly popular in its hometown and the reason was that the writers were 100% focused on local news. And somehow when reading this I got the idea for iOS Chat 😬😆 I wanted to do interviews in text form because I am not that great English speaker and since chatting via Twitter DM or email is pretty async, it does not require any scheduling. That was mid February. I asked a couple of folks privately on Twitter and based on the very positive feedback I got started working on other aspect. Like the types of questions and similar.

And while thinking how to make it stand out at least a bit visually I hit on the idea to mimick the bubbles interface from chats app. It actually turned to be pretty easy to build (for CSS people: It is basically a lot of floats).

7) SwitchBuddy - Congrats on your launch of SwitchBuddy! 🥳 I was super excited when you teased about it on Twitter. It’s so great to see it out and live in the App Store? I had no idea the Switch allowed for a transfer of photos to a smart phone. I’ve been sharing them to my Twitter and then deleting the tweets 😛 What’s the origin story behind SwitchBuddy? What made you want to make this process easier and what were your initial goals?

Thanks! I think the sharing to smartphone is relatively new feature, maybe a few months old. Couple of months back my girlfriend started playing Animal Crossing and she wanted to save some screenshots to her phone. So one Saturday (early April) I was explaning to her the entire process and I was like.. why is this so complicated?! And I thought I could make an app to improve the workflow, so I turned on my MacBook and started working on a crude prototype. The initial goal was to just get the screenshots to display in the app without going though too many hoops.

8) SwitchBuddy - I’m not exactly sure how SwitchBuddy actually pulls the photos off of the Switch but I can imagine you had to do a lot of testing. What was the hardest part about making SwitchBuddy? What was one fun thing you learned along the way?

Initially I knew that if the iPhone is connected to the Switch’s WiFi, then I can download the same website the Switch uses to let you save the screenshots. So I sent source code of the site to my Mac and started digging around. Eventually I found out that there is actually a JSON file available that the website uses to load the data. So I didn’t have to go through the website and could get just the JSON.

There was a lot of testing regarding the overall experience and stability. The first version scanned the second QR code with website address, but I discovered that I can actually scan the first one and connect to Switch directly from SwitchBuddy with prompting the user to connect to the WiFi. This sometimes takes a lot of time, so there is a lot of networking stuff going on to correctly connect to console and to also detect if it’s no longer available.

I think seeing the JavaScript source code from Switch website was quite funny, because it looks like something quickly thrown together using JavaScript of 10 years ago.

9) SwitchBuddy - Sharing to an iCloud Drive folder is so great! This means that not only can I save photos to my phone but I will also get them on my iPad and Mac 😁 I had a huge Animal Crossing party from last year where I took a lot of screenshots. I was finally able to get them all off in a matter of one minute with SwitchBuddy. Not really a question but have this 🏆 for helping me get these photos off before they were lost!

Thanks! I don’t like the idea of having screenshots mixed with my photos, so that was the main reason to include this. Since I have built iCloud Drive export to my older document scanner app, this was pretty straightforward to add.

10) SwitchBuddy - Not really a SwitchBuddy question but I assume that you made this because you play a lot of Switch games where you take screenshots 😇 My Switch library is pretty stale at the moment. What are some of your favorite Switch games that you’ve been playing? I need some suggestions!

These days I am playing mostly Animal Crossing to just chill out, with some Mario Kart. For local-coop Boomerang Fu is a fun little game. Captain Toad: Treasure Tracker was my first Switch game and I enjoyed it a lot. I can also recommend indies like The Last Campfire, A Short Hike, Sayonara Wild Hearts and Part Time UFO (although this quickly gets frustrating 😃). Lastly I plan to dive into Sea of Solitude, but can’t give recommendation yet.

11) #iOSChats and SwitchBuddy - What’s next?! Do you have anything else you are working on for #iOSChats or SwitchBuddy that you can share with us?

When it comes to SwitchBuddy I have to say I am pretty happy with it. I would love to make the process even smoother but I am limited by what Switch offers. I hope to create better icon for it though and maybe if it is really popular to create themes based on the available Joy-Con colors. Of course if ever Nintendo decides to update the way screenshots are shared I will update SwitchBuddy to take advantage of that.

As for iOS Chat - I plan to continue with the interviews indefinitely, although the pace is now slower than what it was after launch. Inspired by Indie Dev Monday I would like to add the map to show where folks are located.

Beyond that I would like to grow iOS Feeds because I feel like it provides a lot of value to the community. Ideas include automated newsletter (i.e. each month get the most popular posts) and page for newcomers to iOS dev world which would tell people where to start - this would likely by crowdsourced via public GitHub repo or something similar to cover different learning approaches people use.

Plus I am working on somewhat larger project which is aimed at other developers and should help when getting attention of the press. It is in a early stage, so I don’t want to announce anything specific yet. Basically because I don’t want to promise something that may not see the light of the day. However if someone wants to know more, I am happy to talk via email or DM.

12) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?

Honestly since I don’t have grand ambitions regarding my apps I would say there weren’t any especially hard parts. However when I first released an app I was pretty disappointed with the download numbers. I used to create apps for Windows Phone and these had much more downloads than I currently get.

13) Is there anything else you’d like to tell the indie dev community about you?

I am always happy to chat with fellow devs and help others. Either via DMs, emails or HackingWithSwift forums where I am pretty active. This applies mostly to UIKit and Swift itself since I haven’t spend that much time with SwiftUI yet. I would say the Compositional Layout and Diffable Data Sources are almost like my specialities since I have been using these a lot in the past months. I have also advised a couple of folks regarding building websites and backends for mobile app. So feel free to get in touch if you think I could be of help.

And lastly if there is an interesting person I should chat as part of the #iOSChat let me know!

14) Do you have any other indie devs that readers should follow / lookout for?

I think the past issues of Indie Dev Monday are great place to start! Apart from that I would recommend people check out Onne van Dijk who created app that uses Machine Learning to zoom in and move between panels for comics. I just think that this is great example where ML can make a big difference.

And thanks to Donny Wals who spotlights other people’s work each Monday with his morning tweet.


Simon Stovring

Q&A

1) What is your name? Where do you live?

My name’s Simon Støvring. I live in Denmark but I’m currently in the middle of moving across the country, so even though Denmark is small it feels a bit like living in two different places.

2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?

I have a Master’s in Software Engineering and have been programming since I was just a little kid. When I was born my father had a repair shop where he repaired computers, game consoles, and other things, so I was born into the world of IT.

I got the iPhone 3GS when it was released in 2009 and bought my first MacBook Pro shortly after. Ever since then I’ve been in love with Apple’s ecosystem and have foxed on developing software for iOS and macOS, mostly the former though.

I’ve been working at an agency for five years but recently got a job at Lunar, a new challenger bank that’s operating in the Nordic countries.

I’ve recently gotten into homebrewing and have been brewing beers. I’ve mostly been brewing IPAs, partly because I like the taste and partly because I get to try out a lot of different hops.

3) Have you ever considered yourself an indie developer?

Yes and no. I’ve always had a full-time job next to my projects like Scriptable, Jayson, and Data Jar. So I’m not a full-time indie developer but I like to say that I’m doing indie development, meaning that a lot of my spare time is put into my projects and I feel like I’m mostly running those like any other indie developer are running their projects.

4) What got you started/interested in creating your own applications outside of your “normal” job?

I’ve been programming since I was a little kid but only really started writing “serious” applications when I got my iPhone 3GS and MacBook Pro back in 2009. When I got my iPhone 3GS, the thought of building software that you could manipulate with touch input was extremely intriguing to me and I knew that I had to build something for the iPhone.

When I got the iPhone I had just attended my first ever music festival (and I’ve been visiting that festival every year since then, except in these COVID-19 times, of course). The only way to keep track of when and where each artist was playing was using a paper pamphlet that I would get lost all the time.

I decided to build an electronic version of this pamphlet as my first ever iOS app. It showed the list of artists and where/when they were playing. The festival bought the app and I maintained it for three years and even build an Android version of it at one point.

So in short I got started developing apps because I found the platform intriguing and just had a look at which of my everyday problems (big and small) I could solve with apps. The love for the platform and the desire to solve my problems using software is still what’s driving me today.

5) How do you balance your time between friends/family, work, hobbies, and indie dev?

I have a traditional nine-to-five development job and develop my projects in my spare time. Balancing those two is fairly straightforward.

Balancing working on my projects, friends/family, and other hobbies is more difficult. Doing design, development, and support on 2-3 apps consumes a lot of time but luckily all of this is one of my hobbies, and I’m very lucky to have a girlfriend and friends who are extremely supportive and encouraging.

Typically I will work at my job for eight hours a day and then do 1-4 hours of work on my projects in the evening and on the weekend. It’s also important for me to have time for other hobbies on the weekend, like building LEGO, playing on my Nintendo Switch, and brewing beers. Most of my friends also work with software, and when hanging out with them we’ll often hack a bit on our spare time projects over a cup of coffee or a beer.

A lot of time goes into my spare time projects and to avoid burnouts, I’ll sometimes pull the plug on them for a week and just spent my evenings playing video games, watching TV, and hanging out with my girlfriend. That typically happens 2-3 times a year.

6) Scriptable - I’m just going to come out and say it… I’m so deeply madly in love with Scriptable 🥰 As most people know, I have a huge problem with starting new projects when I have some mildly interesting idea. Scriptable has helped me decrease my number of unnecessary new projects 😛 It’s like the perfect amount of powerful and simple that allows me to experiment and automate the problems I have. So… what is the story behind Scriptable? Did it start off as an experiment or was your end goal to make a super awesome and powerful development environment for Shortcuts and widgets?

Thanks for the kind words! I’m so happy to hear that you like the app.

When the Workflow app was originally launched, I got completely blown away. It was (and still is!) so cool. It was something new that we had never really seen before on iOS. It changed my view on what can be done on the iPhone and iPad.

However, even though Workflow’s building blocks made programming approachable for many people, I would sometimes feel a bit limited by it. As someone who’s been programming with traditional programming languages for years, some things are easier to write in code. Some tasks, like manipulating a set of data, may require several steps in Shortcuts but can sometimes be done with just a few lines of code. That inspired me o build Scriptable.

I started working on Scriptable in February 2018 and at WWDC that year Apple relaunched Workflow as Shortcuts and introduced custom intents API that power third-party Shortcuts actions. That immediately set the direction for Scriptable and took a huge burden off my shoulders. I would no longer have to compete with Workflow when launching Scriptable. Using the custom intent APIs, I could turn Scriptable into a companion app for Shortcuts.

7) Scriptable - That first question was really long so lets make this one shorter 😇 What have been some of the favorite Scriptable scripts you’ve created? What have been some of your favorites from your users?

There are so many scripts to choose from, especially when looking at all the amazing scripts users have created.

My all-time favorite script has to be my script for showing today’s pollen count. I can ask Siri “What’s today’s pollen count?” and Siri will reply with pollen count for grass and show a table of pollen counts for other pollen types. I’m allergic to a handful of different pollen types, so the script comes in handy every day during the summer. Not only that, but it was also the first real script I ever created in Scriptable.

The Scriptable users have created many impressive scripts and it’s difficult to highlight just one. Many of them can be found either in Scriptable’s gallery or in the forum. One example of a cool script is mzeryck’s Transparent and Blurred Widgets script. By taking a screenshot of your Home screen, the script creates backgrounds for the new iOS 14 widgets that make them look transparent or have the frosted glass look. The script can be found in Scriptable’s gallery.

8) Scriptable - I’m a pretty heavy Scriptable user and I’m happy to say I don’t think I’ve ever run into any issues 🙌 I can’t see making an app without issues that run arbitrary code integrated bound to Apple’s internal libraries being easy 😛 What has it been like making an app so resilient? Are there any limitations you put on users or the app to keep it as issue free as possible?

That’s very kind of you to say! I’m sure there are plenty of issues but I’m happy if most users don’t see them 🙊

My approach is generally to put as few restrictions on the APIs as possible. I prefer to proxy APIs directly from JavaScript to Apple’s APIs. That means some APIs can be a bit dangerous to use. For example, a script that deletes a batch of files won’t ask for a confirmation before deleting the files. If the developer finds that necessary they’ll need to write the confirmation into the script, possibly using Scriptable’s Alert API. I think that’s one of the things users like about Scriptable; people can build scripts without the app being in the way.

9) Scriptable - The Scriptable examples and docs in app are sooooo 🔥 I think Scriptable might be the one thing that I’ve never Googled for anything 🙃 I can get everything I need from the example scripts or from looking at the easily searchable docs. First, take this 🏆 for saving my browsers from having 20 more tabs than what they already do. Second, did you always plan to have the documentation directly in the app? I can see myself having a long debate about putting it on the web (easier for me to update) instead of in app (easier for users to use). Did you have a similar thought when creating the docs?

Thanks a lot! I knew from the very beginning that I wanted to have the documentation available offline in the app. It was a requirement that users could write and run their scripts even if the device is offline. It wasn’t until months after the initial release that I put the documentation online.

A fun fact about Scriptable’s documentation is that it’s all generated from the Swift source code using a homemade tool that’s built on top of JP Simard’s SourceKitten.

10) Data Jar - I could keep asking so many more questions but it’s time for Data Jar! Data Jar is an amazing app that pairs well with Shortcuts and Scriptable. I use Data Jar in my exercise tracker Shortcut and Scriptable. What is the story behind Data Jar’s creation? Where in the timeline of Scriptable was Data Jar created? Did you intent for them to be used together?

After I released Scriptable, I built Jayson, a simple JSON document editor. The was built to make it easy for developers to browse JSON when building Shortcuts, apps, websites, and more.

Several users wrote me that they store data from Shortcuts in JSON documents and they use Jayson to browse their databases. That got me thinking that maybe it was possible to build a dedicated database for Shortcuts.

Data Jar was meant to be used with any app that integrates with Shortcuts including Scriptable. It was important to me that it wasn’t designed specifically for Scriptable but provided generic Shortcuts actions that work with any third-party app that integrates with Shortcuts.

11) Scriptable and Data Jar - What’s next for Scriptable and Data jar?! Do you have any fun future features that you can share with us?

I have spent the past six months or so working on a performant text editor with syntax highlighting. It will most likely be released as a separate app but the plan is to integrate it into Scriptable and Jayson to provide a more performant text editor with a couple of new features like search and replace.

During the winter I started working on Catalyst versions of Scriptable and Data Jar, and I prototyped an API for developing Apple Watch complications with Scriptable. I hope to find some time to progress on those projects soon.

At this point, we’re so close to WWDC that I’ll most likely wait and see what new features iOS/iPadOS 15 brings before deciding on what I’ll tackle next 😃

I love building developer tools! It’s so rewarding to build tools that others then use to build their things with. Often people build things with the tools that I didn’t even think were possible.

I’m not sure when my love for building developer tools started. It must have been after I released Scriptable and started getting in touch with developers who had a lot of great ideas for new APIs. It’s such a heartwarming community ☺️

13) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?

When working on a new app or feature there’s typically a “honeymoon phase” where tackling the new problems is fun and exciting. I find that the hardest part of indie development comes after that phase. That’s when it’s time to put in the last 10% of work that tends to take 90% of the time. This involves polishing the product, testing, bug fixing, writing documentation, preparing marketing material, and more. I find that it’s more motivating to do these things when doing them on a team rather than alone as an indie developer. On the other hand, it’s also one of the cool things about indie development. You get to be hands-on with everything and that can feel very rewarding.

14) Is there anything else you’d like to tell the indie dev community about you?

We’ve covered a lot of different things, so I don’t think I’ve got anything else 😄

15) Do you have any other indie devs that readers should follow / lookout for?

There are many great indie developers to follow! I enjoy following developers who take you “behind the scenes” as they’re building the app and involve users in the process. Some of those are Aaron Pearce (@aaron_pearce), Joe Hribar (@joehribar, Becky Hansmeyer (@bhansmeyer), Malin Sundberg (@malinsundberg), John Millard (@johntwolives), and Nghia Tran (@_nghiatran).


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 😜