Leo Dion (host): Welcome to another episode, empower Apps. I'm your host, Leo Dion. Today I'm joined once again by Josh Holtz. Josh, thank you so much for coming on. Josh Holtz (guest): Thanks for having me again. Leo Dion (host): I will see you in person in a few weeks and we'll be talking about that, but we'll get started talking 29 days. I'll let you go ahead and introduce. Josh Holtz (guest): All right. I'm Josh Holtz. I've been the lead retainer of Fastlane since 2018.
Core contributor since 2015. Revenue Cat is my full-time day job right now. I work on mostly things related to Apple App Store, Google Play. It might be SDKs, it might be APIs front end, whatever it our team needs. And then I'm also hosting a Swift and iOS conference called Dish Dish Swift in 29 days. I also work on Indie Dev Monday, which is a newsletter for indie devs. And then I also have some indie apps.
Not everything always takes equal priority all the time, but I switch off here and there. Cause that does sound like a Leo Dion (host): lot. Yeah, it does. It does a bit. Yeah. So you're, I want to talk a little bit, we got a lot of stuff to talk about today, but I wanted to start off by talking about.
Fastlane and we talked about this a few months ago, but you, there's been some stuff on Twitter about it, but just like, how does the maintaining work and like, how is it funded and that kind of stuff, because there's some questions about whether there's other ways that can. Maintain and flexible. Cause I know I'll just start off saying Fastlane's. Awesome. I love it. So it's like pretty much the only way to do CI with getting an app in an app store.
Yeah. How what's like the future of Fastlane when it comes to main maintenance and funding and all that stuff? Josh Holtz (guest): Yeah. So I'll give a little bit background history first on like Fastlane's ownership and that kind of stuff. I guess going back to 2015, Felix started Fastlane back in it was actually probably like 2014. But it was open source, just his it got big popular, it got acquired by Twitter. And then under the fabric arm of Twitter and then Google.
Fabric for like fire based stuff and Fastlane came with it. So Google took control in 2017, I believe and did a, had a whole team around it. Did a like huge, amazing version of it version two, which kind of combined all the different tools into one major tool. So that was super awesome. At that time, fast, Fastlane and Google was also working on a CI product, which is actually somewhat open source still. It's archived on the Fastlane GitHub org.
But at that time most of the team was working on the ci, so I was brought in as a part-time contractor to do the maintenance of the actual like tool. So I did part-time maintaining through Google from 2018 to 2020. My contracting gig ended after two years because Google policy stuff. So I actually ended up becoming a Google vendor for a year and a half and worked on Fastlane full. But then I changed to work at Revenue Cat about a year ago or so.
Just cause it was getting hard to deal with getting that vendor relationship. It was becoming quite difficult to deal with. And I want something a little more stable. So I'm still lead maintainer but I'm not working on it full-time. F and getting funded by Google anymore. But I was the only one getting funded directly since I was working on it full-time. We do have a pretty awesome core team. But all of their time is donated has been by themselves for the past five years or so.
But also my time in the past year and a half has also been just out of my free time as. There isn't really, hasn't been in the past a good funding setup for it. Just because Google was, did have their own team to support it, and then it was going through contracting to me. But there really hasn't been like any sort of like public donation towards it just because Google does own it. So the current status right now is there are a bunch of maintainers.
I'm still maintaining it but there's just no one full-time getting paid to support it. Leo Dion (host): So there's I know there's been talk about some full like mobile open source foundation and things like that. What's the story with that then, as a possible way to, to fund. Josh Holtz (guest): Yeah. Yeah. So there's a, so we've been, I've been trying a few ways.
One way it would've been to open like an open collective for it which is like GitHub sponsors, but a little bit easier to split among bigger teams. And I think Google does support donating to that. So that was one of my options if Google wanted to donate to that, and then we could split that among our core team. But then Google theoretically not theoretically, Google still owns all the IP and get repositories and stuff.
But another option is, which is what Google's working on, which is super amazing, is donating Fastlane to the mobile native foundation. Okay. This is a open source foundation specifically set up for mobile stuff. Hence the name created, I think it was created by Keith Smiley, who works at Lyft. It's been around for quite a few years. There's a handful of projects in it. A bunch of different people are involved with.
I think there's 50 different organizations and I've been trying to get fast line in it for a while. It's really hard because there's no like huge proponent inside of Google right now to push that along. So this is something that like I've been wanting to do for probably about a year and a half, two. But thankfully Peter Steinberger, about a month or two ago made some Twitter noise about about it, like the, just our general maintenance speed right now and stuff, which is totally true.
Like things have slowed down. It's just because nobody is working on it full-time. So he made some noise, which I wasn't ready for, but. Absolutely loved it because it's what we needed to get it going. So after he made some noise he opened a discussion on the mobile native foundation, GitHub org. And yeah, we actually got someone from Google or two on there that actually said Hey, like there's actually moving inside. It's going along. It's getting in the. Approval phases.
And there's just a lot of legal and PR involved with it, even though ideally it should just be like here's the code, here's the domain. That's pretty much all involved. But there is just a lot of like enterprise stuff that is involved. So it is gonna be a slow moving process. But I don't think it's moving as slow as what I actually expected. We actually heard movement within five days. Nice. Which Twitter noise happened on a Saturday. We heard about stuff. There was a holiday on Monday.
I think we actually heard movement on Tuesday or Wednesday. So considering like Google size, like that seemed like incredible speed to me. What so that's kinda the state right now. We're in just a waiting phase of getting it all approved and then hoping that it actually does get approved and then transferring stuff. Leo Dion (host): What would you in, in, in the best scenario, what would you like to see done? With Fastlane? Assuming everything moves smoothly.
Josh Holtz (guest): Yeah, so everything would get donated to mobile native Foundation which actually is a sub foundation of the Lennox Foundation. Okay. So it has that foundation's whole support, donation system, all of that kind of stuff. So ideally we would have a bunch of different companies who use it, support it donate to it. We get this nice little fund. It actually doesn't need to. A lot. But that would give our whole core team time to actually put aside and. Do stuff.
So like we could probably pay somebody part-time, three quarters time for the entire year to help maintenance issues, triage, keep things going. If some big change happened, we could probably ramp up to one and a half people for a bit to try and crunch new app store connect API changes or Google changes of some sort. So it would just give us a little bit more stability. Or I guess not really stability but like a constant amount of time actually being put on it.
And like our core team actually being rewarded is not the right word but paid for their time. Rewarded for their time. Yeah. Because right now Yeah, cuz yeah. Yeah. Which it should be Cause it's a tool that's pretty much industry standard for CI mobile stuff. Yeah. And like it. And like I would still do stuff, but I don't want it to be just me. I don't scale well. Like I still wanna be lead. I don't necessarily need to be doing all the work all the time. Money does not need to go to me.
I want to go to my team that actually can scale and just help improve all the parts Leo Dion (host): of it. Yeah. That's awesome. Was there anything else you wanted to mention about Fast? Josh Holtz (guest): I think that's probably the biggest news right now. We definitely aren't releasing as as quickly as we need to right now.
But luckily like most things have been like stable June until tomorrow, because I just said this, things are gonna I was just gonna say June, but since we are mostly using. Yeah, but since we are mainly using the App Store Connect API now for almost all of our things like thing like the Apple side of things don't break as often unless you're using Apple id. And then there was a month ago where you got locked outta your account, but that was a whole thing.
But like we, we definitely have a huge backlog of things we want to approve on. There's a lot of issues and prs that are still coming in that we need to triage. And once, once we can actually dedicate more of our team's time, we can go through those a lot. And if anybody who's listening to this does want to help things move along, the money from like our users is not really the issue. But if people do wanna help contribute, pull requests are huge. Look at issues that you might be able to solve.
Like we definitely appreciate every contribution that comes through. Even if you're not like a Ruby expert or anything like that, create the pr. We will still help like. Fix it, add commits to it and make sure it gets merged in. But just having somebody who can help with that PR and test it themselves because there's so many different use cases and things to set up. Yeah, I bet. Yeah, like just reviewing a PR isn't really just code.
We pretty much have to test every single pr even though we do have unit tests, a lot of things are more like integration level where we do it to make sure like that service does work correctly and all these different build configurations, get the, this project set up the right way. So having people. Commit pr. So who can also test those? Makes things move a lot closer. Awesome. So that's a good way to contribute if you're a developer.
Leo Dion (host): I never thought about testing, but yeah, that makes total sense. If you wanna test out a pr, that would be a, that would be a great way to help. Josh Holtz (guest): Yeah. There have been some that are like 10 lines of code, but in order to like, to test it, you have to. Get a Catalyst app built for Mac and then have that get submitted to the app store and wait for the beta to get approved.
And then you can do a thing like that might be an extreme example, but there are times where like I, I had to test something after it got approved for a test flight release, which requires it to do its processing and stuff. So some tests may take up to 30 minutes and then when you have other life stuff going on, you're like, I'm just gonna start this. And then it's two days later. So like some of those testings does it gets Leo Dion (host): hard.
Yeah. Yeah. There are those of us who don't just do iOS apps, who have Mac and watch apps. So I totally got it. I totally get it. So one thing I wanted to talk about is a little app you've been working on that Involves kid stuff. PlayPen. You want to Yeah, I wanna, I've been interested in that, not only as a parent and a developer, but just like how guided access works and things like that. You wanna talk a little bit about the app and how that adventure has gone?
Josh Holtz (guest): Yeah, for sure. Yeah. So the app is currently in a little hiatus while I'm doing Dish Dish stuff, cuz that takes priority. But I've been wanting to create like a kids app for some time just cuz I. Two kids now. One is my son's a little over two, my daughter is six. And like I don't want to give them like screen time all the time because that's apparently bad or something like that. But they are gonna take control of your phone.
You're gonna be in a car somewhere and like you just need time to sell them down or you're in airport or restaurant and you just need to distract them a little bit. So I was like, I wanna create a kids. I have to just see that experience cuz all of my apps have been developer focused and it's cool, but I want something a little bit more. But I also wanted to create a Apple Watch app as well. Like I've never done that before, so I was waiting for the right time to create one.
And then I was at Dub last year and it hit me like, oh, I can combine a kids app and a Apple Watch app and solved two birds with one stone. The problem that came from this was we were driving a lot to the l to my mother-in-law's house last summer. And my son couldn't really keep himself too occupied for the whole time. So we'd l hand him our phone, he'd watch Sesame Street or something on YouTube, but as soon as it ended, he. Freaking out as I would too.
And the phone did have guided access mode on, so he couldn't hit next or back or anything like that. Yeah, he could just hold the phone and be fine. But it was usually stuck where he was and it was just this repetitive process of reaching back, grabbing the phone from him, unlocking it, going to the next one or un pausing or something like that, and handing it back. And I'm like, it'd be cool if we could just like remotely control what he's seeing on this locked phone.
Okay. And then like I was driving like one hand on the wheel and I. I have a watch on my wrist, like I can give him the phone, just toss the phone backwards behind me and then I can control everything from here. So what PlayPen is it's essentially this app that has like little mini apps in it, which is YouTube is the big one that I use. You can. Oh, you can choose photos on your phone to watch, or I have this little soundboard that he can tap.
But it's these small activities that you can give to your kid, lock the phone, and you can actually remotely control what is actually on the phone from your. Okay, a watch. So if he wants, if he's in the mood for Sesame Street, I can just tap my watch. That'll start playing. If he wants to do the soundboard, tap my watch, that'll start playing for him. If he wants to watch a different YouTube, like Dino Train or Blippy or something like that, I can do that all from my watch.
And like he's happy because he is watching or playing with whatever he wants to. I'm happy because he's happy, and then the phone's happy because it is locked and it it's not he's not going in and deleting apps calling 9 1 1 or whatever kids do on the phone. So it's his fun little parent utility that I created that I thought was just for me. But it turned out that a lot of people actually also liked it as well.
And my end goal is to have a whole bunch of different activities for them to do, just. YouTube, maybe little games, learning things, soundboards. Nothing that is like super complex to make or for a kid to use that is, they're gonna just be drawn in for the entire time. Cuz springtime is bad. But just that little like PlayPen time for when you're a parent and you need that little break. Break. Leo Dion (host): Yes. I'm quite familiar with that. Do you okay, so couple of questions.
First, I guess first Dad questions. How do you lock down what they can watch on YouTube? Josh Holtz (guest): So the I'm actually using an iOS library I think it's called YouTube Player or something like that. So I actually make use of that. So it's actually not through the YouTube app. Everything is through the PlayPen app. Okay. And this YouTube player. I think just ends up launching YouTube in a web view. Yeah. And then the YouTube API Leo Dion (host): built around that.
The YouTube player API is totally JavaScript based, so Yeah, you have to do a web view right now. Yeah. Oh Josh Holtz (guest): Yeah. And it actually works out pretty well. Cause you can do playlists, you can make it untouchable. You can go back and forth. Thanks. It does do a pretty good job. There are times where it may. It may end up like not loading properly, so you just have to restart the view or the YouTube player thing, whatever it is.
Okay. So yeah, I'm not really locking down into other apps. I wish I could because then I could go between like HBO Go Great and Netflix, but I'm pretty much only locked into what I can. Display in my, Leo Dion (host): so basically you set up, do you like, set up a bunch of playlists? Oh, this is my bluey playlist, this is my cocoa melon playlist. Exactly. And then you have an Josh Holtz (guest): interface not cocoa melon, cuz coco melon drives me crazy.
But Miss Rachel Rachel, Sesame Street, Blippy, Dino Train Leo Dion (host): accidentally ran into Coco Mellon last week, and I've always avoided it, and then I have like my six month old was just like absolutely enthralled by it. So unfortunately that's an issue. Yeah. Josh Holtz (guest): It accidentally came on and my son just glued to the tv. I'm just like, Nope, nope. Yeah. We got a, we gotta ban this from my, Leo Dion (host): What else was I gonna say?
Oh, so the developer question is, I assume you're using, watch connectivity, I guess to talk to the phone or, okay. Yes. Correct. How is that experience and how is the whole I'm curious, as somebody who's built watch apps, what's the experience with that and building the watch app overall? And testing it. It Josh Holtz (guest): actually wasn't as bad as I thought it was going to be. Okay. I didn't expect to use watch connectivity.
I thought I could just use like the shared preferences that were shared over like an app group. But it turns out that the watch app does not get those. Okay. So that was that was heartbreaking cuz that just seemed easy. Cause then if that worked, then I could actually make it work. Not just from watch to phone, but iPad to watch. A little bit easier with just one system. That didn't work out.
So I'm using watch connectivity, which means it on right now, it only goes from to the watch phone to the watch. I'm actually not bad cause I'm not actually sending there's not a ton of back and forth really. There's one huge object that gets passed to the. That, that, that shows all the activities, all the options that you can choose from, and then you really just press a button on the watch. It sends like an ID over and then the app listens for that and then just changes what's on screen.
I've had personally, I've had very little connectivity issues between the watch watching the phone, but I'm not doing like a lot of streaming back and forth. Yeah. I'm sure if there's a lot of streaming, a lot of. Other requests that depended on other requests, like it would probably turn into a disaster. But as the way it stands right now, it's really just like when the app loads, it sends one giant payload over of all the things DO'S data, or do you, you just tap Leo Dion (host): on the watch.
Do you send message dictionary or send message data? Oh, Josh Holtz (guest): man. Probably dic. I think it's probably dictionary. Usually it's dictionary. Yeah, that's a thing. Or I make it a codeable and just send over the string. Okay. I'm not real. I'm not really sure which one I'm doing. It's been a while since I looked to get code.
Right now it just works the way it is, but Yeah, there was some playing around trying to figure out like what format to do and all that kind of stuff, but whatever one, I chose it, it seems. Leo Dion (host): That's awesome. That's awesome. So that's something you'll probably finish up after what we'll talk about next, right? I assume Hopefully.
What are you gonna do though if you're not finished by June and then you see there's a ton of stuff you can be doing with it for iOS 17 and watch OS 10 and stuff. Are you gonna be Josh Holtz (guest): like then it's gonna get. Ben's gonna get released in September and Eric, it's gonna require people to use the new iOS. Okay. So that's if's some stuff's. The good thing is, I, the good thing is I don't have any users right now.
Yeah. And it is something that I made for myself, so I really don't care like what the minimum version is. If I can go back a version without losing too much, great. I get a bigger customer base. If I have to go up to The new version that's not released yet. I really don't care because I don't have any users. So that makes total sense. That's the best part about being a developer and also worse about.
Worst part is I can make stuff for myself and I use it and I, I'm not really looking for the big customer base at the Leo Dion (host): moment. Yeah. Yeah. It makes total sense. Before we get into pizza, what's the developer experience with Guided Access?
Because I know, so my experience with Guided Access is the same, where it's I'll, when we do screen time, it's like I put on guided access and I put it on some app that they want to, or game that they want to use, and then I give them an iOS device. That's like my dad experience with it, but I don't know as far as development, how guided Access works. What does it give you? What does it tell you? Josh Holtz (guest): So I wish there was more.
I'm hoping for some more guided access things to be available for the next iOS version. Yeah. But if it's not like I have a decent workaround and explanation for the users. So the worst part about guided access is mainly to get it using. Like the way that most people probably use it is you go to accessibility and turn it on to your, like triple tap of the home thing or power button, whatever. Yeah. Power button to enable it for the current app.
Yeah. But the best way to do it, and I also provide something for this in the app is there's a shortcut action to start it. Oh, okay. So what I do is I actually have. A play pen shortcut where you can choose where there's a, an option to choose the activity that you want to open the app up to. So it could be a YouTube playlist that you could choose the sound board. So you can choose one of those and code that into the shortcut itself. Okay. Or you can have it prompt you with options.
And then after that, there's a builtin shortcut action to. Guided access mode which is the easiest way to do it. So I actually have a shortcut on my home screen that I just single tap loads, PlayPen get guided access mode starts. And I actually set the volume to 30%. So it gets into this nice state of not too loud for him, but he can hear it. This screen's locked and YouTube is up, and I just toss my phone towards him and. It's the phone's in the perfect state. Got it. Access is on, it's locked.
And then I can control stuff through my, through. Apple Watch app. That's awesome. I would love if there was a way to, like in the app itself to enable it. There actually is an API for enabling guided access mode programmatically, but it requires like the enterprise mbm Oh, permission. That makes sense. So like the technology is there but just not for public use.
Do you so it would be nice if there was like a an entitlement that you could gain for your app that, that, like just your guided access, get this guided access mode. Do you remember the Leo Dion (host): drama from like a couple years ago about MDM and like para apps? There Josh Holtz (guest): was like, there used to be a whole, I did a little bit of MDM back in 2015 there.
There used to Leo Dion (host): be like a whole bunch of apps, parent apps where you can control your kid's iPhone and I think like Apple was like, no, you can't do this. You can't use the mdm. That's probably, yeah. So that there's like that backstory cuz I totally remember that we had people like, oh, you should use this app for your kids so you can control their iPhone and yeah, that's what they all did. They all used MDM stuff to like basically do it.
And Apple was like, no, you can't do Josh Holtz (guest): that. That seems like way over-engineering though. I it, yeah, it is. Remember it is. I that set up. I had MDM set up for for a startup once where we had iPads and bars and stuff like, so we had to use MDM to deploy new versions and all that kind of stuff. And it was a headache. I would not like it made, it makes sense on a business level. I don't want to do it on a parent level, like that's, I'm already short on time.
I don't wanna, I don't. Deal with MD and stuff. Yeah, but I'm hoping that maybe they release this maybe as an entitlement that you could do for your app. It, it requests a permission to like, Hey, let me control this kind of thing. Yeah. So apps just don't do it automatically, but, Leo Dion (host): I have that'd be it. I so yeah, I have. My six month old is my youngest and I'm my oldest. I have a teenager now.
And now we're like starting to dip our toes into figuring out okay, like how do they do their own device? And that's when we start looking at like screen time. So I had, I actually bought recently a family Mac. I've never had a family Mac. All my Macs have been for work. Okay. And like we set up an Apple ID so they, they can log in and screen time on the Mac. So I'm like starting to dip my toes into how to like, restrict the phone and stuff. And we're like this case we're not the yet. I'm not.
Yeah, I know. Oh, and it's Yeah, we're okay. But I don't wanna get too much on the show on a personal sidebar, but we're I've been trying to avoid buying any iOS device for them for as long as possible, but now it's like we got broken Kindles and broken MP3 players and it's man, if there's only device that can do all that for them, and it's oh, but I don't want to do it. I don't want to do it. I don't want to.
It's like we got a high schooler who might text message us for rides until she can drive and anyway, so yeah, I'm really interested in this whole space and I feel like, yeah, Apple's kind of, it'll be nice if in June they really expand that stuff. But we'll see. Yeah. Josh Holtz (guest): Yeah. Crossing my fingers that yeah, that, that happens.
And then I can punt the release of this until September and then bump them in iOS version to whatever iOS version The next one is, I forget what number we're on, but that's 17. Leo Dion (host): 17, yeah. S 17 and 10, or that's what, oh, yeah, because I've been looking at rumors and stuff cool. So should we talk. Yes. Next time can we talk about pizza? Let's talk about pizza. Next topic. Let's go. Josh Holtz (guest): Yes, please. Leo Dion (host): Please. Why?
Why the heck are you doing this, Josh? You're not supposed to be doing this too. You already have a full plate. You can't have pizza on your plate too. Josh Holtz (guest): I like self-inflicted pain. There's just something fun about. There's just something fun about causing myself issues and then trying to solve them. Leo Dion (host): So that's Josh Holtz (guest): that's why I do what I mean. Leo Dion (host): I'm, this is awesome.
I'm super excited about Dish Dish Swift, are you, is the sh is it sold out or can people still buy tickets? Josh Holtz (guest): That is, people can still buy tickets? It is, we are nearing full. So by the Leo Dion (host): time we release this episode, it's, this might be sold out. Unfortunately, Josh Holtz (guest): it might be sold out, but there, yeah, it's, I need to do some counts again and get like final numbers with everything that we're putting into the room.
I did not expect the the number of tickets to be sold that we actually had I got a space that was big enough for I think 300 people. And like classroom styles, seats, so like tables, chairs, set up. So you can have your computer there. I was gonna be happy with 125 attendees. That was my goal. 125. Great. Like we have a lot of space, like we can split the room for like meals and conference and no, we're at. Including speakers.
We're nearing like two 50 right now, and that's not including like sponsors and that kind of stuff. So we're pretty much nearing capacity which is amazing. Yeah. If this happens for a future Dish Dish version, I'm gonna have to maybe get a bigger space. But this is way, much, way more than what I could have asked for the first year. Leo Dion (host): Yeah, like what's been the experience getting this conference, putting it together yeah, this is great.
Josh Holtz (guest): It's. Like planning a wedding? Yeah. For the most part. So like you, you get a venue, you plan food. You, the only main difference is like sponsors speakers and sponsors for the most part. Yeah. And I did have swag at my wedding, so I guess they're that's not that's still the same. But it was like yeah, it's. It's pretty much in the realm of planning a really big wedding which me and my wife did plan like four, four years ago. So it was, it's been, it's pretty close to that.
The good thing is my wife is actually helping me with this so like she's doing a lot of the venue, vendor kind of part of it. And then I'm doing like speaker, sponsor we've been teaming up on swag. So it would definitely not have been possible if she wasn't helping me. It probably could have been cause I would've maybe had to find somebody else. But working with her, like in our same house has just made this like an amazingly. Thing to do since we started it in September.
Or Leo Dion (host): The kids are helping too, I assume. Josh Holtz (guest): They're not so what? So no. No. They I have amazing kids, so like they, they're actually like super wellbe behaved most of the time, thankfully. So like, whenever we have to do something deepish related, like they make it super easy to do just hand and play pen. Yeah. They're not exactly but yeah, they're they're not really like contributing anything major. But yeah it's been a fun, fun process.
A little bit stressful times with like AV vendors Oh, yeah. And changing prices on us. So that's probably been the most stressful thing is the AV vendor. But besides that it's gone pretty smooth. Finding a, like picking the venue we wanted in Chicago. Was actually tough because Chicago is pretty, pretty widespread. Yeah, that's true. It's a pretty wide city and it, I would've loved to have it downtown Chicago, like next to the lake, but like for a first year conference, that's expensive.
Probably. Won the price. Just I couldn't do it. We didn't really have any starting budget from previous years, so it was all like, we were like personally backing it. When we like picked a location. But I also want it to be easy to travel to, like from people that were flying in. Yeah. So I want to be closer to the airport, but there's no, there's not like a ton of cool places to do it close to the airport cause it's pretty suburban.
Okay. But the place that we picked is actually it is a hotel that's close to the airport, but it is like an, a nicer, bigger hotel. Does have a great place to host the conference. They have. Shuttle going back and forth between the airport. Okay. 24 7. And it's about two miles from the airport. It's close to the train station, and people are taking the train, either like from the city or to the city if they want to go ex explore that. It's by like an intersection of three different freeways.
So if you're coming from the north, coming from the west, coming from the. It's easy to get to. So the, like the location was mainly Fort travel, making it easier for our attendees to fly in and just be at the venue and then they can travel downtown if they want because the train is right there. It was hard because there's so different places, but also we were, it's hard because we were very limited with what we were looking for in terms of like price and location.
Travel Ease. Leo Dion (host): What? Oh, what's a topic? Speaker, or what's a thing that you really want to plug about this conference that you think is something people are gonna be really interested in? Josh Holtz (guest): I think the indie dev specific day is unique. Yes. I've been talking with some people for years it'd be cool to have an indie dev. But the hard part, indie dev conference is like it there, the Indev community probably feels pretty small.
And it it'd be hard to get people just to come for like that kind of conference. But the cool thing about our community is like a lot of the iOS and Swift devs, do indie dev on the side, there might not be full-time indie devs. That's not the right. But they're like, it doesn't need to be like a pretty good lap of Indie and iOS and Swift. So I was, when planning this conference, most conferences start off with a workshop of some sort, like a Swift workshop or something like that.
But I was like we already have two days of Swift. Like maybe we can do an indie specific day on the front side, make it a little more like indie, business focused indie journey and maybe. Inspire more indie devs get indies together to finally meet in, in one place. So I was like, we'll just do a half day of it. Yeah. Like night, like four, four or five talks, indie focused. And I think a lot of my initial attendees were indie devs.
That was a thing that actually drew a lot of the initial sales because it. Unique. So I think that's something that in future Dish Dishes, if we keep doing 'em, if we become if we don't lose money on this thing, which I don't think we will, projections show like. At least some small profit to go to our n Dish Dish v2. But I think this indie day is probably gonna stay cuz like it is our unique Yeah.
Leo Dion (host): I mean I remember release notes like that was a great indie conference in Indianapolis, Chicago. I went to those. So it's nice to see something like that back again. For folks like us. Yeah, I agree. I'm really looking forward to that as somebody who's tried to be an indie dev to Josh Holtz (guest): try to get same, I think my indie dev experience is not very net positive. I probably spent more money on stuff than I've made, but I don't care cuz.
It's fun and I think I'm gonna learn from this whole process as well. So I have a lot of Leo Dion (host): GitHub repos, so I have that day. I don't, yes, I don't have, I don't have stuff in the app store, but I have a lot of GitHub repos yeah, I'm looking forward to being there. We're gonna be driving up from Michigan me and a few of the kids and. I don't think Nice. I don't think I announced it in the last episode, but I it will be, it'll be a week long conference, as I think I've told you.
I conference travel. Yeah. Tra World, world Tour. I want to do that. I wanted to call it the Empower Apps World Tour. So I will be attending Dish Dish, Dish Dish Swift, and then I will be flying to Italy to speak at Swift Heroes, which I am really looking forward to speaking at. Josh Holtz (guest): Congratulations, by the way. Leo Dion (host): Thank you. That's awesome. Thank you.
So yeah, and then of course the month after that I'm planning, I am planning to actually go to dub up yeah, we'll see about that. Yeah I'm excited. Busy month. Yeah, A month after. A month after Italy yeah. Yeah. A lot going on. Is there anything else you wanna talk about when it comes to Dish Dish? Swift Josh Holtz (guest): I just wanna thank all of the, like attendees and everybody who has hyped the event because I never thought like I would host a conference.
I never thought it would be, it would I don't wanna say it's successful yet because the conference actually hasn't happened yet, but at our current stage, it actually feels like it's on the path to be successful. With, we got an amazing set of 20 speakers coming from us Canada, internationally. Which is cool. We have two coming from England, one from Austria, one from Germany. Oof. I think hopefully that's all right. And then I guess two, three from Canada, which I guess is international.
But when I'm in Chicago, it feels like we're part of the same country-ish. But in terms of attendees, yeah, we have I think 200, almost 210 tickets sold, which is insane. At the last number we checked, there were people coming from eight 18 different countries, which is also crazy. We have people coming from Japan, India, Australia, and then a bunch in Europe. That's amazing. So that's. That's insane. There's a little bit of pressure there with people coming from that far to to this conference.
I wanna make sure that it holds up. We also have a lot of local Chicago ones coming people that I haven't met before. So even though like they're close by it'll be cool to actually see them. But yeah, like then, and then just thank our sponsors. Like our sponsors have been amazing. It definitely wouldn't have been possible without sponsors. Hosting a conference in the United States is not cheap especially in Chicago. The sponsors are probably the ones that are really making this happen.
I'll just throw 'em out here quick, if that's okay. Revenue Cat is the Super Supreme sponsor. Supreme. Supreme. I didn't actually ask them to, yeah. I didn't actually ask them to sponsor. I was just like, Hey, I'm gonna throw a conference in or in April, may. Is that. Just because like work schedule stuff and the time involved, they're like, yeah but also can we sponsor? I'm like, oh, okay, that's cool. Of course. But that wasn't my initial goal.
I just wanted like approval in my work schedule to throw a conference. But our Supreme sponsors then we have, I'm gonna see if I can do 'em all off the top of my head. We have Code Magic One Signal Runway, emerge Ionic. One second and Century. Those are our supreme sponsors. They'll all be there to talk to at the event. We also have two topping sponsors which would be app figures and stream. This is good. And then we have the single slight sponsors. Our happy scale, which is in indie app.
And then Michigan Labs, which is a like a consulting company in, I think there's Detroit. Yeah. Definitely in Michigan, but I think Detroit. I think that's all of our sponsors. Hopefully. I didn't miss any of them. I did that off top of my head, but like without them event would not be possible. So super thankful that I was able to connect with them. It'll I'm excited for all of them to actually be there, talk to them, thank them. Because without them, Dish Dish would not have happened.
For sure. Leo Dion (host): Awesome. Yeah, I'm really looking forward to it. Before we close out, I have one more question to ask you. It's an uncomfortable question. Yes. Yeah. Yeah. We might have people who just, I love these. Let's go. It's people might unsubscribe after I ask this question. They might be very offended. Trigger warning. There's rumor on the street that you are starting to, like Kotlin what's, yeah. What's wrong with you? Josh Holtz (guest): No, what's just give backstory.
I'm not like a pure Swifty Leo Dion (host): Obviously you do Ruby for Fastlane, so that makes sense. Josh Holtz (guest): Yeah my programming history, I started off with visual basic five, and then doing web stuff like basic JavaScript, html, css. I did Java. I've been doing Java since 2005. What, six. That's a lot of, that's a lot of years. Ruby since 2009, 2008. And then objective C, 2000, 2010, 2011, and then Swift in 2015. So Swift is actually not like my longest language, obviously.
No, it hasn't been around. Yeah, it is new, but yeah, but like I'm not a language purist. Most people surprise if I say this, I might get some hate. I don't actually love. Oh, interesting. I like building things. Okay. I like building things. And code is, coding's the easiest way for me to do it. So I don't hate, I don't hate coding. I'm just not like code doesn't necessarily need to be the. The best, the prettiest, the most efficient way of doing things. I just wanna make things and have fun.
So total sidebar, but like Leo Dion (host): Swift. Like I definitely see this divide amongst developers of people like, you don't hate code, right? But that's not your passion. Whereas there's people who like are really into building apps and people who are into like, really. Writing code and I totally get it. And like I, I almost took you as probably more of the developer type, but like it's inter, it makes sense if you're into indie apps that you're more into building things.
Josh Holtz (guest): Yeah, I wish I could get into code, like helping commit to like Swift and add things and improve there, but like that stuff is just like way outta my. Oh, Leo Dion (host): also I, my languages, I just, my languages don't interrupt. Don't overlap with yours at all. I didn't never, I did very little Java in very little Ruby. So those are two languages I never invested time in. Whereas I've done C#, php, JavaScript type script. Josh Holtz (guest): The php.
Yep. Yeah, I think C Sharp's, the only like dot net's the only one I really haven't. I did consulting for 10 years, so pretty much everything came my way. I just didn't do.net because didn't run on Max for most of the time. Yeah. Yeah. I don't think so. So yes. I guess going back to your question is like Swift and iOS and Apple is definitely like the realm where I live in, I'm a user. Those are the things. I build for myself. I love the Swift iOS community.
But for work we've been working on the Android version or the next SDK of our Android version since I've been working on it since December. We released it last week and Kotlin is the language that we use for that. So I've been doing pretty much Kotlin on my full-time job since. And like I've dabbled in it. I've known I've been able to do like java level Kotlin stuff pretty much if statements. Okay. In Prince. Okay. That's pretty much it. But that's where I started off.
But I've gotten into doing a bunch of different things like like pretty much I don't wanna say advanced Kotlin, but like more Kotlin style things. And it's actually a really fun language. It definitely doesn't feel like as heavy as Java. It has a little Swift feel to it a little bit, but I feel like it goes down a different path. There's just a lot more to it than what I ever expected.
And in terms of like data structures and like different, like helper methods that are built into things, there's a lot of things that just ma they just are super easy to do. Naming is super weird. I had this I had this method that I wrote, I changed some filters and some maps together, like functional programming. See if I can find this method.
Yeah. Yeah. Just like stuff that I would do in Swift that would make sense, like a filter and then a map, and then there was a first in there maybe, or something like that. And this, and then Android studio corrected me to use this method called f. First, first map? No. Or not? No. It was like the weirdest method name, but it made my cogo from like this people who are podcasting can't see it, but it like cut my lines of code down to like half wow. To like three lines or something like that.
So it was, it's really cool helper function that combined a bunch of stuff. The naming is absolutely horrid, but. It's fun to write Android Studio after you use it for a couple months is actually a pretty nice ide. Like I'm, I've been happy with it. And that's not saying that I'm gonna go like ditch Swift and write Kotlin or hand Android apps in my free time.
But it's been a lot more enjoyable than What I've thought it would be, and if somebody is looking to get into something new, experiment with something new, Kotlin I feel is a fun thing to do. I'm definitely not. What are Leo Dion (host): the three things that you wish Xcode or Swift would have that the whole Google Android ecosystem has that you're like, I wish we had that. Josh Holtz (guest): The, Ooh, that is a, that's a great question. I feel so or why is that hard to answer, android studio.
Yeah. So Android studio. When you go into it, it's just, it feels. Bloated feeling with all of these tools and things like that. You have these like side panels that can pop out. Okay. But so when you first go into it, you like, it's super intimidating and it just feels, it feels gross. It doesn't have this nice like u user experience feel to it. Like Xcode is like nice and clean.
But like the tools that are built into Android studio, there are a ton there and they're actually like super easy to use and powerful. The. Profiler is like just connects to any existing app that is up there. You can view work requests super easily. You don't have to do anything. It sounds like they have Leo Dion (host): instruments in the Android studio, Josh Holtz (guest): proxy related instrument. Yeah. Instruments just feel more natural built into. Emulator and ide.
So that's a nice thing that's super easy to use. Log Cat which is the like the, I think the OS log level type of stuff. Maybe if you're coming from Swift, like that's super easy to use. Logging, filtering seeing what's getting logged is just easy. But like the things that, that. More complicated is there. The Android emulators are just a little bit slower leggy feeling. Okay?
There's so many of them that you have to do so many different Android versions of those that you install, like six different, six different ones. Testing subscriptions in the emulator is also tough because there's no like StoreKit testing. There is code, so you have to actually go through and have a Google account. So there are things that definitely aren't fun, but there are things like more from like a code standpoint, like tooling, profiling, that kind of stuff that that, that is built in.
That does make it a little bit easier to do than what Xcode offer. Leo Dion (host): Okay. Interesting. Was there anything else you wanted to mention about your Android experience? Josh Holtz (guest): I've been teasing a Dish Dish Kotlin, it's probably not gonna happen. But I just kinda I just kinda like trolling. Yeah. But like it is a fun language. I'm just not tied into the Android community.
So hosting a conference like that is, would be, it's Leo Dion (host): like 80, 80% of hosting at conferences, having the network for it. So Yeah, that would make sense. Josh Holtz (guest): Yeah, exactly. Yeah. But no yeah, I'm not, I'm definitely still going back to doing Swift io. Full-time after this. But Kotlin, is definitely fun. If you are in indie looking to go cross platform, like you're gonna have fun. It is gonna be a slow process.
There's a bit of a learning curve, but it does feel similar enough to Swift, but it's not. So you're gonna get stuck trying to do if lets and guards those don't exist. But It's it's definitely a fun experience that I think most people, if you are indie or just mobile dev, give it a Leo Dion (host): shot. It's fine. Anything else you wanna talk about before we close out? Josh Holtz (guest): I don't think so. This is awesome. Leo Dion (host): I'm really glad to have you on.
I think I tapped everything. I think so. I think so. Yeah. This is fun. Josh, where can people find you online? Josh Holtz (guest): So Twitter @joshdholtz, Mastodon @ [email protected] GitHub. Also @joshgholtz. If you wanna see my GitHub, commit history of stuff. And there's joshholtz.com. That one doesn't have the the D so that, that's weird. That's the only place that's different. Indie Dev Monday, Twitter Mastodon. That's mainly where you can find me. Indev Monday downtown.
We'll have all the links in the show notes, which I've been mean is throw an issue. Yes. Indie Dev Monday is going through a small hiatus as well. I need to actually post that, but I'm just waiting through like Dish Dishes over. I have some traveling I'm doing after that, so it'll probably pick back up in summer. But yeah that's where you can find me. I'm not too hard to find. Awesome. Leo Dion (host): Josh. I will see you in less than a month. Yeah. 29 days. That's right.
Yes. Thank you so much. Thank you very much for, This is great. Thank you. People can find me on Twitter @leogdion. My Mastodon is @[email protected] if you're watching this on YouTube, please and subscribe. I'd really appreciate it. If you're listening to this on a podcast player, please take some time to gimme a review. If there's something you wanna talk about or if there's something you want to hear about, let me know. Please DM me or on whatever platform you prefer. That's it for me.
I hope everybody has a good week and we'll talk to you in two weeks. Bye everyone.