Leo Dion (Host): welcome to another episode of empower apps.
I'm your host, Leo Dion.
Today I'm joined by
Casey Liss.
Casey, thank you so
much for coming on
the show.
Casey Liss (Guest): Thank you for having me.
I'm
very excited.
Leo Dion (Host): I'll let you go ahead and start by
introducing
yourself.
Casey Liss (Guest): Yeah.
So like, like you said, my name is Casey Liss.
I'm a podcaster, an app developer, occasionally a writer.
You might know me most recently from my new app Callsheet, which is,
I think, kind of what we're going to be talking about here today.
Think about it as a movie lookup app that actually respects you as a user.
You might know me from My podcast with my good friends Mark Arment and John
Syracusa, the Accidental Tech Podcast, or perhaps my other podcast with
Mike Hurley Analog over at RelayFM.
That's kind of my shtick, but I think we're here probably
to talk about Callsheet,
huh?
Leo Dion (Host): Yeah.
So I want to, well, hopefully we won't get into reviews of
products because I got all my new stuff
this week.
So I'll try to avoid gloating.
I'll try to avoid gloating that that's for your other show.
But today we'll talk about Callsheet.
So I, I kind of had thought about having you on when you
had peak of you and masquerade.
But then I, When I heard about Callsheet, I was like,
okay, this looks awesome.
I tried it out.
It's fantastic.
What, what do you think are some like lessons you learned
from the other two apps?
That you were able to build
upon when it
comes to
Callsheet?
Casey Liss (Guest): Yeah, I think that's a great question.
So the other apps the first one that, that I had released was an app called
Peek A View, and the very, very brief nickel tour of that is my, at the
time my daughter was two, she's now five, and we had just been to Disney
World, and she really liked flipping through pictures on our phones.
Which in and of itself is fine, but I was deeply worried that she was going
to find the delete button and then start deleting all the pictures on our phones.
And so it occurred to me, well, I'm a developer, I
know how to fix this problem.
So Peek A View
is basically a read only photo gallery and you can limit
what photos you're looking at.
So maybe if you had an album of like comps
you wanted to show to a client, you could hand the
client your phone, you know, engage guided access, which is an Apple thing.
And then the only thing they can do is look at these, you
know, five or ten pictures or
what have you.
And then Masquerade.
Kind of similar thing once my kids got to be about three or four years
old and they were no longer squishes and actual people I got more reluctant
about putting their faces, particularly on the internet, like it's one thing
to see a random toddler body, but you know, it's, it's a little different to
see their faces and I didn't want to be in a situation where they're looking
back on pictures I posted 10 years ago.
It's like, you know, early teenagers and they're saying, why did you do that dad?
Like, what's wrong with you?
Now, maybe that'll still happen, and they'll ask, why did you
put emoji over our faces?
But anyway, so the point of, the point of Masquerade is it uses Apple's,
you know, machine learning APIs to just quickly let you drop an emoji
on all the faces in a photograph.
And, and you can change which emoji it is, and so on and so forth.
So that's the nickel tour of those two apps.
And to answer your question, You know, what did I learn from them?
Some of the code actually was pulled directly from each of them.
Like a lot of my app store related implementation was it was at
least heavily ripped from and then built upon from Masquerade.
The settings in app settings, you know, has evolved over my apps and
gotten a little less ugly and a little more robust with each time.
But generally, I think just more experience with Swift UI.
Not as much Swift particularly, but Swift UI specifically.
I wouldn't say I'm the world's best Swift UI developer, but I've
gotten to the point that I'm, I can get most things done with only
mild amounts of hair pulling and googling and so on and so forth.
So, I I, you gotta walk before you can run, and, and, I don't know if you would
consider Callsheet me running or not in this already abused metaphor, but I like
to think Callsheet looks pretty decent.
And, you know, I didn't get too out of, Out of bounds on, you know, doing
weird SwiftUI things in Callsheet and, and if it wasn't for those other
two apps, I think I would have been in the deep end and it wouldn't look
near as good as, as it has ended up
looking.
Leo Dion (Host): Were the other
two apps SwiftUI?
Casey Liss (Guest): Mm hmm.
Yeah.
Oh, my, well, peak of view was most, I know it was like half and half.
It was story.
God, I haven't looked at that code in a while.
I think it was like half storyboards, half SwiftUI, if memory serves,
because this was, this was roughly 20,
19 that I had written in 2019, 2020, I think, something like that.
And so it was a bit of, a bit of UIKit and a bit of SwiftUI.
Masquerade is almost entirely SwiftUI.
And
Callsheet, I don't think there's any UIKit.
There was briefly during the beta period, and I don't think
there's any UIKit left in it.
Or if there is, it's so little, it's effectively none.
Leo Dion (Host): Are you, are you still actively
developing those
apps?
Casey Liss (Guest): I'm telling myself I am.
Whether or not I actually am is up for grabs.
So there's a couple of like minor bugs in each app that I, that I
need to look at and should fix.
And probably, if I'm honest with myself, should have fixed already.
But candidly, you know, as a single app developer, as an indie
app developer, I got to allocate my time the most appropriate way
and the most appropriate way.
And I would think generally to advocate to allocate my time is
to put it where the money is and the money is not in masquerade
and it is not in peak of view.
It's currently in Callsheet.
And so.
If I'm going to spend some time, I'm probably going to be spending it on
Callsheet, especially since I feel like, and I don't know, it makes
me feel really gross to kind of pat myself on the back, but I feel like
I have a kind of good thing going.
Like, Callsheet is not perfect, but I think it's pretty good, and it's,
I think, far and away the best of my three apps, and so I want to keep
that momentum going both for me and for my users and for, you know, them.
Any press that might have an eye on it or something like that.
And so I want to keep that ball rolling.
And it's hard to do that if I'm context switching all the time to these other
apps that, while I've certainly made money from them, it, it, it, it's
not an, it, it wasn't a ton of money.
And, I mean, I haven't made a ton of money from CallShe, but
I've made orders of magnitude more than I have from the other
two.
So, you know, you got to do what you got to do when
there's only one of you.
Leo Dion (Host): Why, why do you think it's your best app and I, I
mean, both Best app as far as like the craft of it, but also Best app
as far as the money coming in and press attention and everything else.
What do you think is, I mean, I can think of a few reasons
why Callsheet would but like, what do you think is the
secret to making call
Sheep more
successful than the other ones?
Casey Liss (Guest): Yeah, it's a great question.
I think it's a few things.
Peak of view.
I think while a good app is an extremely niche user base, like someone who is
often handing their phone to another person that they don't trust either
implicitly or explicitly that that is something that happens fairly
frequently, but maybe not enough that you're really going to find
an app to, to solve that problem.
With, with masquerade, I think that actually.
Maybe it's because I'm an old, but I think that could have a lot
more legs than it ended up having.
If you're someone who is concerned about privacy and that sort of
thing, and I'm 41, I, my early years are pre internet, and
you know, the high school ish time was when the internet was really
starting to become a real and proper thing, and by the time I went to
college in the early 2000s, you
know, the internet was for real but that being said You know,
photographs on the Internet.
That was still not as much of a thing that that makes me sound
older than I mean, but like social media, the way we think of it today
wasn't a thing like Facebook came out right after I graduated college.
And so sharing pictures on the
Internet wasn't as common.
And and so for me, having not grown up with my with my
likeness across the Internet.
Always.
It still feels a little like skeevy and weird to have photos.
Everywhere, and to put
somebody else's likeness on the internet without their permission, that seems
a little weird, but I think that
I'm part of a dying breed, and so I wonder if Masquerade is a relic of a
lost time.
Like, I do think it's a good app, but I don't know if it's a necessary app.
Now, contrast that with Callsheet.
So, Callsheet...
The, the guiding
idea behind it was, I am So sick and tired of the Internet Movie Database
app, the IMDB app, that's constantly nagging you to log in, it's constantly
trying to send you advertisements, or show you advertisements, it's
constantly auto playing videos, like, everything about that
experience is just trash, in my personal opinion, and I'm sure
the people who work on it are
very bright and very good, but when you have this massive corporate
overlord of Amazon, you have to, you know, do what
they tell you to do, and so,
Go
Leo Dion (Host): own owns
Casey Liss (Guest): Mm hmm.
Mm hmm.
Yeah, as far as I know.
Yeah, I'm
pretty
Leo Dion (Host): Oh, wow.
Okay,
Casey Liss (Guest): yep.
And so, you know, when Amazon
wants to make money off of it, you got to do what Amazon wants you to do.
And so, you know, when I sat down to write what became
Callsheet, I just wanted
something like IMDB that wasn't Awful to use.
And I think there's a lot of other people that use IMDb begrudgingly.
And now that there is any alternative,
that's like a cold glass of water in a very hot place.
You know what I mean?
And so I think that there's a pretty big audience of people who have also found
this pain and would love to fix it.
Now the things become a little squishy though when you have,
there's people who have this pain.
But they may not want to spend money on fixing it, and that's where
it becomes a little tough, right?
And that's where if I'm doing my job right, then I need to do everything
in my power to make sure that I am ha I have enough features and enough
good things to justify the cost.
And, and I think I do.
I, I really think the app is competitively priced, even
when competing with free.
But it's a tough sell.
I mean, anyth from free to anything is hard.
And that, that's the that's the big task for Callsheet.
Leo Dion (Host): Yeah, I'm about, I'm about the same age as you
and I have
six kids
Casey Liss (Guest): Six!
Oh my word, oh my
word.
My wife is one of five and I find that to be utterly bananas.
I can't imagine six.
Leo Dion (Host): But like, yeah, four of them are adopted.
So
privacy is definitely a concern.
Yeah.
So like with, with maker or
Casey Liss (Guest): Yeah, yeah.
Leo Dion (Host): yeah.
masquerade.
It's like, Yeah, that makes total sense.
And yeah, we had Josh Holtz on to talk about privacy.
Peekaboo?
What was it?
Playpen.
Playpen was his app.
Yeah, yeah, yeah.
And it's the same idea where you use guided access.
So like Peekaboo is like, yeah, I love that idea of...
I wish there were more apps that took advantage of guided access.
But...
Yeah, I mean, there's a lot of reasons why I could see why
call she is successful app.
And like, certainly IMDb makes it as, as easy as possible for you
to, to build an app that's useful.
Do you want to like explain like, what were some of the like issues
with IMDb and what you were trying, why you were trying to make an app
that like, I think you, you put it as like, that's actually nice to the
user and like a convenient, Yeah,
Casey Liss (Guest): Yeah, so for me it was both, it started in
a kind of negative way, I guess, which is just, I don't want to
see a prompt to log in, I don't want to be shown ads, I don't want to
be shown autoplaying video, I just want to be able to get in and get
out and look up what I want to look
up.
But then once I started building Callsheet, it occurred to me, You know,
there's ways I can actually make this kind of delightful, and some of the
things that I, that I started working on were things like, you know, being
able to hide spoilers and, you know, I've told the story a couple of times,
but it's, it's such a pivotal moment for me years ago, I think it was late 2019,
I was watching the, watching the HBO miniseries Watchmen, which is phenomenal
if you haven't seen it, couldn't, couldn't recommend it enough and no
spoilers, but one of the characters, well, a couple of the characters
really, but one of the characters in particular had a dual role and you
don't find about, find out about the characters Other role or I guess I can
it's kind of the actor's other role.
You don't find out about that until about halfway through the series and so
Early on in the series I was looking up this particular individual because I was
not familiar with their work at all or who they were at all And i'm scrolling
through imdb and I see and again no spoilers, but I see you know, mr.
Smith slash, you know Super agent man or whatever and I was like, whoa, whoa,
whoa, whoa I was not prepared for that.
I didn't want to know that.
No!
And so, so as I'm building Callsheet, it occurred to me.
I can fix this.
And so, one of my favorite features of Callsheet is, at least for TV shows,
as we sit right now, for TV shows, you can optionally hide spoilers.
Things like character names, episode counts, you know, what if your
favorite character on the show, what if they're only in one episode?
Well, I guess that character's about to get killed off, you
know, or whatever the case may be, or written off the show.
You can hide episode titles, episode thumbnails, I forget
what else there is, I feel like there's one or two other things.
But, the idea being you can hide all of this stuff, so that as you're
just casually browsing, you're not putting yourself in a position where
you're ruining a show for yourself.
And, like, you know, Watchmen wasn't ruined by this revelation
that I had, or this discovery that I had, but it definitely...
The reveal was worse because I already knew what was coming and I didn't
want to have that happen again.
And so the more I work with Callsheet, now that I've got like the standard,
the base level done, the more I work with it, the more I realize there are
little bits of surprise and delight that I can do that really can be fun.
And I'm working on currently.
Some of this is already out in the app store, some of it is not,
but one of, one of the things I'm working on is, I know I and
a lot of other people always want to know, well, how old was that
person when this was recorded or when, you know, when, when it was
released or whatever the case may be.
And so, as you scroll through movies or, or through a, or a person's,
you know, filmography, it'll show, well, you know, for the year 2022,
they were 40 or 41 years old.
For the year 2021, they were 39 or 40 years old, or whatever the case may be.
And, and that's already in the App Store.
And then what's coming in the App Store is, if you're looking at a movie,
you can see, you know, this actor plays, you know, Margot Robbie played
Barbie, and she's, I think, like, 33 years old at the time this movie was
released, or something like that.
And that's silly, and...
Maybe some people don't care, but a lot of people I know just find that
interesting information, and it's
also kind of
Leo Dion (Host): Yeah, totally.
Casey Liss (Guest): you know, how all the men in the movies are like 10 15
years older than all the women, but that's neither here nor there, and so,
you know, and so this is stuff that I can do to surprise and delight my users,
and now that Callsheet is out, and I'm, you know, Started and I think I've
got that base level done Like I said I can do a lot more than that more with
that and that I find to be incredibly riveting and incredibly fun for me too
Because it's so fun to have somebody, you know get on mastodon and toot at me,
you know Oh, I just saw such and such, you know, this I just saw this feature
and it oh my gosh I love it so much.
I can't believe I I I I you you did what I wanted and I didn't even know
I wanted it, which is a very apple thing And I haven't been I haven't
gotten a lot of those but the fact that i've gotten any I consider,
you know Personal victory i'm just pat myself in the back real quick.
So
Leo Dion (Host): Yeah, I love like the rabbit hole aspect of it, where it's
like, okay, okay, now I go here and then I find out, oh, this person was in this
movie, this movie has this actor, this had, oh, and just keep going and going.
That's what I love about it.
It has that like rabbit hole feel to it.
What were like the first initial
challenges you ran into when you started
developing
the app?
Casey Liss (Guest): You know, that's a good question.
There wasn't,
there wasn't that much.
There's, that's not a very satisfying answer, but I didn't have that
many like specific challenges.
I think the biggest thing was the, the information architecture.
Like, how do you represent.
An extremely wide and extremely deep bit of information, and that's a hard thing
to do, and I had a lot of help from my friend Ben McCarthy between themselves
and me, I think we landed in a pretty good spot, but it took a while to figure
out how do I want this app to look, and Ben has suggested to me some very, very,
just truly gorgeous reimplementations of what I've got, but It's hard because I
want to make sure that I'm not losing.
Speed in favor of pretty and not to say that Ben's designs are bad.
I'm not trying to say that at all.
In fact, I can't say enough how amazing
Ben's designs
are,
Leo Dion (Host): When you're saying design, are
you talking
architecture design or
Casey Liss (Guest): like visual design
So, so, you know, Ben, Ben, what if you read Jigger, you know, instead of
a poster on one side and information on the, on the beside it, what if
you do this, you know, and spin this around and, you know, move the
Jenga, move the Puzzle pieces around and so on and so forth and Ben's
designs are unquestionably gorgeous quite a bit better Looking than
what I have today and and Ben deeply influenced what's already there But
the but the thing the engineering trade off even in a design context is
how much do I favor?
beautiful over functional and I think where Ben and I landed, the way it
is now, is riding the line in a good way between beautiful and functional.
It's not, like, astonishingly gorgeous, but I think it's
a pretty decent looking app.
But it's also a fast app, and it's not, not only in terms of actual
performance, but in terms of, you know, I, I can find what I need
quickly, and I think that's, Incredibly important for an app like Callsheet,
which is all about looking things up and then getting out of your way.
And so I don't know if I made the best trade offs there, but
that's something that I'm always trying to tweak and make sure I'm
doing the best job I possibly can.
Leo Dion (Host): So we had talked about where you are pulling the
info from and you're using the movie
database.
Is that, is that the one that Plex uses for its info?
Okay.
How, I guess, how was it working with that API
and pulling data and stuff like
Casey Liss (Guest): so extremely great.
Asterisk.
The API is very, very good.
It's very well thought out.
I, I don't know if I, it's one of those things like as a developer,
I think the biggest compliment I can give another developer because
most developers are selfish jerks.
Hello.
But the biggest compliment I can give another developer is, wow, I would
have written it just like that, which
Leo Dion (Host): Okay.
Casey Liss (Guest): Which obviously is, you know, there's, there's some,
Leo Dion (Host): It makes sense.
It's
like what you
think it does.
Yeah.
Casey Liss (Guest): There's some negative reads of it.
You gave me the positive
read.
It's like, exactly.
It's intuitive.
Makes sense.
That's the,
that things are where I would expect them to be.
So on and so forth.
And, and the movie database API is mostly that where it becomes a
little tough though, is that the movie database has very strong
opinions about a handful of
things.
And sometimes that runs in contrast with what either I want or my users
want, so a couple of quick examples.
When I was working on just yesterday, in a movie, when you're looking at
a movie and scrolling through the cast or crew of a movie, I wanted
to show the ages of all the actors or all the crew members or whatever.
And there's no real easy way to do that.
There's no...
It's not like GraphQL, where you can just pluck things out of a schema
and say, I want this, and I want this, and I want that, and I want
that,
you know, the schema is the schema.
And so in order to make that work, what I have to do is, as one of these cells
is coming up on screen, I have to fire off a network request and get that that.
Cast member or crew member's birthday, which is
pulling in a crud load of other data I don't care about, but I need to
get that whole object, and then if it scrolls off the screen before I get
that response back, then I need to throw away that request and not care,
and you know that gets to be a fair bit of management that I have to do on
my end, and there's no mechanism for me to just say, I'm Hey, when you give
me the cast or give me the crew, can you throw in that birthday as well?
Like there's no mechanism.
There's no affordance for that, which is tough.
But the good news is, is
that.
The Movie Database API is so flippin fast that it actually
mostly doesn't matter.
It is phenomenally fast.
My, I've heard rumblings, this is not confirmed by anyone at the Movie
Database, but I've heard some rumblings that they're, and this is outside of
my comfort zone, but they're sitting, like, all of their stuff is sitting,
like, at CDNs, you know, and like, I guess, it, it, not only are the,
the, The assets there, but like, I guess a lot of the data is there.
And so my limited understanding is this stuff can just happen like darn
Leo Dion (Host): right, right, right,
Casey Liss (Guest): And I cannot say enough good things
about how fast this API is.
And generally speaking, it's well designed, you
know, things do make sense.
I wish it was a little bit more tweakable in certain ways here or there.
Another great example of this.
And it's a community
driven database, right?
So
the data isn't always perfect, but it's usually pretty
darn good.
But another thing is they take a hard line stance.
Like I'm not an anime person, but they take a hard line stance
that the original voice cast is the only cast that exists.
There are no other casts.
Leo Dion (Host): you can't find the American
dub for that
Miyazaki
Casey Liss (Guest): Exactly right.
There will be no others.
That is all you get.
Good day, sir.
And that's fine, and I understand it, especially because that data
can spider out and make their schema look awful real quick.
But that, that does not delight my users, right?
And it's, it's, selfishly it's nice to be able to say, Ah, my hands are tied.
Unselfishly, that's a really crummy response that I have to give my users
that look, I just I can't get to that data because the data doesn't exist.
And that's that's tough.
And there's only a couple of occasions.
I can't even think of any others off top my head.
But there's a couple of occasions where they take very hard line
stances on stuff like that.
And that's frustrating.
But
ultimately, the there they provide it.
An
incredibly robust API that has incredibly fast performance and
is really, really good, and their pricing is phenomenally good for
me, so I can't complain, but so much right and and as far as I can tell,
it seems like it's reasonably cheap.
To run, I guess this is, this is me, you know, making some assumptions here.
So I might be dead wrong, but from what I've gathered from talking to
other people in the community who are using this API, like they've
gotten kind of sniffs and hints that it doesn't cost them a lot to run it.
So everyone seems to be aligned, you know, for the most part, it's
just, there's a couple of things here and there that I, that I
wish were a little bit different.
Leo Dion (Host): When you say aligned, I
had flashbacks to the recording I did
with Christian so,
Did you look at I
guess, did you look at IMDB,
does
IMDB even have an
Casey Liss (Guest): I didn't think they did, to be honest with you, and
then I found out just like a month
ago that they actually do, but if memory serves, the pricing
is hilarious, and not, you know, speaking of Christian, not dissimilar
from Reddit's style pricing, I
think it was Reddit's much worse, because who isn't better, I'm sorry,
who's better, but, you know what I mean, I got that all backwards, you know
what I'm saying Reddit is the worst, is what I'm trying to say, but anyways the
pricing is not great, but I think it is potentially workable, but honestly,
The point of this app originally was to thumb my nose at IMDb,
and I'm past that at this point.
Like, at this point, I'm actually really enjoying the, the, the
experience of using the movie database.
And while I, I was, I'm struggling because I don't want to say
that I'm collaborating with them because that's not really accurate.
But there's a developer forum where I've posted questions and things like that.
And, like, the, and the CEO has gotten on because I think
they have a very small team.
I think the team is, you know, under 10 people, possibly under five, and
their CEO is come on and been like, Oh, yeah, I see what you're saying.
You know, can you go and upvote this Trello ticket, you know, or whatever,
to show me that you're interested in this and so on and so forth.
And, and so it's, it's been nice.
And it's delightful.
And it's, it's the antithesis, you know, I listened to and watched your
episode with Christian, which was great.
And it's the antithesis of poor Christians experience, which is
Too bad, because Christian's like 10 times nicer than I'll ever be,
but I guess Canadian, am I right?
But but no, it's, it's, it's been delightful working with
the Movie Database, and I hope that they're around forever.
Not only for selfish reasons, but like so much of the stuff that I use,
you, you had mentioned Plex earlier.
Like, I'm a, I'm a Plex superfan.
In fact, I'm a little surprised I wasn't wearing a Plex shirt today.
That would have been my style.
But but I'm a Plex superfan, and if The movie database goes away
that like that hurts plaques among many, many other people.
I really love this app channels which is like a TV DVR sort of app.
They use the movie database.
You know, the movie database powers.
A lot more of the media related internet than you would expect.
And so if they were to go under, there would be much
bigger problems than Callsheet.
And that gives me some amount of solace, but it's still worrisome,
especially after Twitter and
then Reddit.
Leo Dion (Host): Well, Movie Database sounds more like a Wikipedia situation
as opposed to like IMDb being more of a corporate entity, right?
So, I would think it would be around until hopefully,
God willing, somebody
doesn't buy them and screw them
over,
Casey Liss (Guest): well, and coincidentally, I found out about
three quarters of the way through the development of Callsheet
that they do have a corporate overlord, but you will never in
a million years guess who it is.
Leo Dion (Host): Should I,
you want me to
guess
Casey Liss (Guest): Please feel free.
Think about a, no, a washed up media company that somehow still exists.
Leo Dion (Host): AOL?
Casey Liss (Guest): A better hardware company.
Leo Dion (Host): Gateway?
Casey Liss (Guest): Getting better still, media hardware.
I'll give you one last shot.
Media hardware company, mostly washed up, nobody cares about
it except John Syracuse.
Leo Dion (Host): It's like
Magnavox
Casey Liss (Guest): No, you're getting warmer still.
TiVo TiVo owns the
movie
Leo Dion (Host): Oh,
Casey Liss (Guest): I found that
Leo Dion (Host): said Syracuse, I should have thought of
Casey Liss (Guest): exactly.
So
Leo Dion (Host): nobody owns TiVo?
TiVo?
owns
TiVo?
I
Casey Liss (Guest): as far as I know, I might have that wrong, but
as far as I
know, that is correct.
So yeah, So TiVo owns the movie database, which
gives me even more worry.
But,
that being said, I would
think, I would think and hope,
I'm knocking on wood, you can't really see it, but I would think and hope
that if If TiVo went under, that the movie database would spin itself out
and, you know, even if pricing had to change or something like that,
Leo Dion (Host): Is it.
open source?
Are any
parts of it open
source,
Casey Liss (Guest): not to my knowledge, no, I believe it's all closed source,
but I think that, you know, the two to ten people that work there hopefully
could reach an agreement with TiVo that
they could spin it out, you know, do their own
thing,
But yeah.
I, I heard that and I
was both somewhat relieved and deeply alarmed all at
the same time, we shall see,
Leo Dion (Host): So,
did you look at other alternatives like Rotten Tomatoes or you've
Common Sense Media on here and
Metacritic?
What did you end up finding out about those?
So Rotten Tomatoes obviously has
its
own problems as
we've
Casey Liss (Guest): yeah, yeah, we, that, yeah,
exactly.
So that, that, yeah, exactly right.
It's funny because I don't really care for these ratings websites.
Like, I don't really want to see anyone else's ratings.
I find it to be actually a net negative in my personal opinion.
And the
only
Leo Dion (Host): I
would say that about IMDB as well.
Like the ratings
on there are kind of like
garbage.
So
Yeah.
Casey Liss (Guest): Yeah.
And so for me, like I didn't even have
ratings in the first half of the Callsheet beta, but I expanded the
beta test to members of my other podcast, the accidental tech podcast.
So if you are a paid member of ATP, I would give you a link so you
could sign up for the test flight.
And then now that the test flight is, or that, that
stretch, the test flight is done.
So they have now all lost their access.
That was part of the deal.
So on and so forth.
Well, anyways, I bring all this up to say, I had a lot more testers
on this than I had any other app.
By an order of.
by several orders of magnitude.
And after hearing incessant complaining and moaning about the fact that I didn't
have ratings well, I call them, I call it a score in app because rating to
an American, you know, is PG, rated
R,
whatever the
Leo Dion (Host): Yeah, yeah, right,
right,
Casey Liss (Guest): we're saying the same thing.
Anyway, so I eventually added it to Callsheet because I was just,
the support burden alone was enough to say, you gotta add this.
And I did.
But I hate it, Leo.
I hate it so much.
And so, so anyway, so to answer your question, I've asked for
Rotten Tomatoes API access.
You know, it's one of
those like, Oh, our people will call your people.
But if you want, you can put your name in the hat.
I did that like two months ago when they ghosted me since common sense media.
I'm going to get these details wrong, but I think it was common sense
media that you can get API access, but your API tokens is limited to
something like five requests a minute.
or something like that.
So, in other words, it seems to be designed for you to grab data and
then cache it on your end, but that is not at all the way Callsheet is
designed, and I am not interested in joining the server business, and so
that's a
Leo Dion (Host): yeah.
I was about to say that, yeah.
now you end
up having to be running
your own
server, which,
yeah.
Casey Liss (Guest): No, no thank you and then Metacritic, or maybe
it was Metacritic that's, that's this way, and it was Common Sense
Media that's, yeah, I forget who is who, but I've, I've asked, I think
it was Metacritic IS for APIX, or no, they didn't, that's what it was.
Metacritic doesn't provide an API.
Common Sense Media's API usage limits are hilarious.
And Rotten Tomatoes, just, it goes into dev null.
And so, I don't think anyone has ever seen it.
So, so yes, I've looked into these things, and in a perfect world, as
much as I hate what I call score, but most people would call rating As much
as I hate it, I would prefer to have what is generally considered to be
the best, you know, available score.
Which, for most people, you know, recent news notwithstanding, that
would be Rotten Tomatoes, or if not Rotten Tomatoes, then Metacritic.
But Metacritic doesn't offer it, and Rotten Tomatoes
effectively doesn't offer it.
So, what's a guy to do?
And it's just, it's tough.
Well, and that thought crossed my mind.
That
thought
Leo Dion (Host): I feel like I've done that, I did that like 20 years ago in
college, just was like playing around
with Rotten Tomatoes when it was actually
cool,
And like,
Casey Liss (Guest): And I
Leo Dion (Host): up like, web scraping.
Casey Liss (Guest): I really thought about it and part of the, a large
part of the reason why I didn't do it was that their URLs are not
reliable, you know, it's not where it's like, you know, such and
such, you know, rottentomatoes.
com slash some identifier or rottentomatoes.
com slash the exact movie title.
It was
very, very, not literally random, but seemingly random.
And so because of that, I just didn't even want to go
down that road because I didn't think it would be
reliable.
And if it's not reliable, then what's the point?
Leo Dion (Host): we brought up Wikipedia.
Did you look if, well, you have mentioned in a
few releases
pulling info
from Wikipedia.
Casey Liss (Guest): Yeah, well, I don't pull it in from Wikipedia,
but one of the things, one of the affordances in Callsheet is this idea
of a quick access link or button, if you will, and so what I have
it set up for is to jump to trivia coincidentally on IMDb in a web view,
because I just am a sucker for trivia.
I think that's fascinating, but that's not everyone.
And so you can choose to have a quick link to Wikipedia, for
example And there's several others.
I forget what else parental guidance on IMDB.
What else do I have on there?
Forget what else there is.
But anyways all of them are always available whenever possible, but there's
one that's like kind of prominent and Wikipedia, the Wikipedia entry for any
given property is one of those things.
And that was, that was actually a perfect example of what
we were just talking about.
My initial very ignorant implementation of this was just
go to, you know, wikipedia.
org slash whatever whatever slash the title.
And that was all well and good.
But what happens with the little mermaid when there's a 1990,
whatever version and a 2023 version.
And it was because of somebody reached out to me on Mastodon and said, Hey,
if you go to wiki data, which is, you know, a sister project, if you will,
of Wikipedia, you can actually make an API request and get the exact correct
URL for the, for a particular property.
And I believe, I believe it was the movie database.
Also offers a Wikidata ID, so I go to the movie database, and I say,
okay, what's the Wikidata ID, then I go to Wikidata, and I say, okay, for
this given ID, what's the Wikipedia ID, and then I can go to Wikipedia,
and say, alright, load the Little Mermaid, you know, parenthesis, 1990,
whatever, parenthesis, rather than the Little Mermaid, and just cross
my fingers, and hope I got the right one so, so that stuff like that, you
know, again, surprise and delight, you know, both me and my users, you know,
now, now
I
Leo Dion (Host): going to say like, that's the fun stuff of being a
developer is being able to plug all that information and like connect stuff.
Yeah, yeah, exactly.
I was going to ask so we talked about you.
This is all SwiftUI.
Is it using the SwiftUI
app lifecycle or are
you using
app delegates?
Okay.
Casey Liss (Guest): No, well, there is an app delegate, but it's It's
implemented
using the
Swift UI.
Yeah, exactly.
And and that actually didn't even happen.
I don't recall what, what made me even add
an app delegate.
Maybe it was URL opening Callsheet by URL.
That
might've been what did it, but I didn't even have it for the longest
time because I didn't need it.
But yeah, it's Swift.
It's all Swift UI, Swift lifecycle, Swift UI lifecycle.
And that's been fine, to be honest with you.
There's been a couple of places where, because of my.
Internal architecture.
This just happened to me a couple weeks ago.
I forget what I was
working on.
I think it was something making more robust URL loading, but there
were some places where I need.
Oh, no, you know, or maybe it was the quick actions on the home
screen icon one way or another.
I needed a piece of data that was over here, but, you know, the app delegate's
over here, and like, never the two shall meet, and so on and so forth, and, you
know, this is when any, any Swift or iOS developer would normally reach for like
Notification Center, but I'm trying to be a good boy and not just, you know,
punt to Notification Center and I forget what I ended up doing, I think I ended
up having a singleton for other reasons that I could glom off of, and it didn't
make me feel like I needed to shower
immediately, so um, so I
consider that a
Leo Dion (Host): created your own singleton.
because you didn't want to use the notification
center
singleton.
That's fine.
Casey Liss (Guest): Okay, hush!
Nobody asked you!
No, it's very true, it's very true.
But no, generally speaking, SwiftUI has been fine.
I mean, I think the early party line that you can't use it in production,
I think at that point that was true.
I think that's long since been proven not accurate at all.
I think it's perfectly fine for production.
Leo Dion (Host): Do you, do you feel like do you feel
happy with targeting 16?
I guess for like test flight would make sense if you want
people to actually test it.
But, like, was there anything where, when, after dub dub, you
were just like, Oh, crap, I wish
we could do this, or I could have done
that if I
targeted 17.
Casey Liss (Guest): 100 percent it ended up being irrelevant because I
changed the information or the design.
I was gonna say information architecture, but the design Callsheet.
But early on in call for most of Callsheet, the search box
was at the top in a standard, you know, system search box.
It was completely out of the box, nothing interesting about it, but
it was at the top of the screen and similar to score slash ratings.
I was getting browbeat constantly.
Oh, what can it be at the bottom?
Can we please have it at the bottom?
And.
Eventually, I did move it to the bottom, but now the downside
of that is it's all custom.
It's not the system search box, which is a little bit of a bummer.
But, you know, it is what it is.
That being said when it was still at the top, I needed to know, because
of the way I architected the app, the visual architecture of the app,
I needed to know when the user tapped on and activated the search field,
you know, so I could change to show recent searches and so on and so forth.
And in SwiftUI, prior to iOS 17, It was a mountain of really ugly, really gross
UI kit code to figure that out, like truly awful code, the sort of code that
you you really wish you never wrote.
And I got a lot of help from my friend Guy Rambo and writing it.
And then when once you write it, it's giving you nightmares and night, right?
Well, In SwiftUI and iOS 17, there is a property where you can do, you know,
searchable and then blah, blah, blah, and you can provide it a
a binding that it will tell you whether or not it's activated.
So, it's like, all of this goes away immediately.
As it turns out, like I said, it all went away because I changed the way
I was doing things, but that alone was enough reason for me to almost
immediately go to iOS 17 just to get rid of all that gross, gross,
gross code that I hated writing.
And if I still had that code.
I haven't looked at my numbers recently in terms
of 16
versus 17, but I would probably be
moving sooner rather than later to, to iOS 17 just to get rid of all that.
I don't know.
Leo Dion (Host): I can't imagine your
numbers
have had to be pretty
high
Casey Liss (Guest): Let's see.
So I'm trying to look right now.
I don't have, it's not showing me percentages, but it looks like just.
off the eye, roughly a third on 16 and a third on 17, and
then a third of other stuff.
And so that's just looking quick off the cuff.
I might have that wrong, but based on the small amount of analytics I have,
that's about what it looks
like.
Leo Dion (Host): Yeah, yeah, yeah.
What made you decide, well, I have to ask, so
Casey Liss (Guest): Mm hmm.
Leo Dion (Host): you already did, well it sounds like
you already did Storkit, so.
that's probably why you stuck with that as opposed to going through like a
revenue cat or
something.
Casey Liss (Guest): Oh, so the bald spot that's been brewing because I'm
41 years old was probably made worse during the Storkit implementation
stuff.
Storkit
2, Storkit 2
is what I'm using.
I was using it for
Masquerade as well.
In general, Storkit 2 is pretty good.
The problem I have with Storkit 2 is that, and I understand why, but It's,
it's frustratingly can't think of the word I'm looking for, but it's very
minute in the way it surfaces data.
There's no, or at least not that I'm aware of, there's no real good,
here's one method to call that
gets you the holistic view of the world.
And I get why that is, but
I wish
Leo Dion (Host): It sounds like the opposite of the movie
database
Casey Liss (Guest): Kind of, yeah.
yeah.
Leo Dion (Host): gives you everything,
but now Apple
gives
you bits and
pieces
Casey Liss (Guest): Well, that's the thing,
right.
And it's, and I get it because, you know, what if, what if you have a.
A active subscription in a family plan, but somehow you also have an active
subscription in an individual plan.
Plus, you have a free trial that hasn't quite expired.
Like, the permutations that Apple has to deal with are kind
of bananas, bananas bananas.
And and so I get why it's so granular is the word I was looking for.
I get why it's so granular, but from a, from a, from a user of that
API's perspective, so as from a developer's perspective, that's,
that's leveraging these APIs.
Kind of stinks.
Like I just tell me what's the state of the world like do they or do they
not have paid access to the app?
That's all I care about and that doesn't really exist and my understanding is
that and I haven't really looked into revenue cat much But my understanding
of revenue cat is that it does
a much better job of giving you that holistic state of the world
and there was a time not too long before launch That I was like this
far away from saying I'm going to rip this all out and go to RevenueCat
because I just can't with this anymore.
I didn't end up going with RevenueCat partially because I'm cheap and I didn't
want to give them any of my money, which isn't to say that it's not deserved.
They deserve my money if I were to use it.
I just didn't want to give it to them.
And so, that, that, that's, and, and their pricing, as much as I'm joking
about, their pricing is actually extremely generous for someone like me.
It's not, I don't know if it's quite as generous for
like an Amazon, if you will.
But for somebody at my level, it's very, very generous.
I'm not even sure that I would have needed to pay them money.
But again, like I think I've spent too much time with Marco Arment and, and,
and, and Apple ecosystem in general.
And if I can own the whole widget, I'll own the whole damn widget.
And so I wrote it all for myself and in the grand scheme of
things, like I'm glad I did.
I think, from what I can tell, it works pretty well.
Ask me again in a year when renewals start happening, but it's, as far
as I can tell, it's working well.
But it was a slog.
And I think it was a slog because I didn't, in no small part, because
I didn't have my own expectations set appropriately, in that it's
up to me to micromanage all of these different moving parts.
And I can't just go to Apple, like I keep saying, and say,
Are they, are they registered?
Are they paid?
Or are they not?
That doesn't really exist.
Leo Dion (Host): Did you did you try using any of the user
testing stuff for subscriptions
at all?
Or,
Casey Liss (Guest): I did I tried using the
unit testing stuff, which is not exactly what you asked.
I tried using the unit testing stuff, and that went okay.
I forget what it was that caused problems, but it seemed
like it was only half baked.
Very well could be a user issue on my end.
Very, very well could be.
That being said, the StoreKit 2 testing where you can create a set of products
in your Xcode project and tweak those and, and so on and so forth, that is
just chef's kiss, like, wonderful.
Leo Dion (Host): Okay.
I, I'm jumping into Storkit 2 with my Mac app, and like, so I'm just
kind of curious how that experience is, and like, yeah, I'm worried
about, you said all the edge cases
of like, trials and family
subscriptions and all that
Casey Liss (Guest): It gets, it gets gross quick.
I mean, it's, it is surmountable, but it gets gross.
And actually like a super top secret, just the two of
us, nobody else is listening.
Right.
If you go, if you
Leo Dion (Host): I'll cut this out.
Casey Liss (Guest): no, it's, I'm just
kidding.
I'm just
kidding.
If you go to, if go to Callsheet or if you, excuse me, if you go to
Safari and do Callsheet colon slash slash subs, S U B S, it
will open up a read only view that shows my view of the world.
So like, if I ever have.
An issue where someone's like, dude, I've paid for this.
Why is it not registering, you know, that I've paid for it?
Then you can go to Callsheet colon slash slash subs, and it'll
show, you know, for all of the different products I have, here's
what store kit two is telling me.
Like, you know, you're registered, you're not registered, you'd
never purchased, and so on and so
forth.
And,
Leo Dion (Host): for the person,
it's the person
who's logged into
that
Casey Liss (Guest): right, it's, right, right.
right.
On their, on your own phone.
So if you're a Callsheet, know, user, you can try
this out just for grins and giggles, and see, see what, see what.
store
kid is
telling
Leo Dion (Host): view.
I love that.
Casey Liss (Guest): And this was an idea of my dear friend Jelly, who
writes the wonderful app, GifWrapped.
Jelly did something similar.
I forget where you find it in his app.
I don't think it's a secret, but it's hidden somewhere.
Well anyways, but he he had suggested to me you should do
this and I was like, no, I don't
Okay, fine, I think I should.
And so, I haven't actually needed it yet, knock on wood, once again, but
I'm really, really glad it's there, so if there's a problem, at least I have
some amount of view, you know, because I could have a person screenshot it,
and I believe, actually, if memory serves, you can also, like, copy a
really crummy text based view, or maybe it's an image, view of what
everything is, so that they could send that to me in, like, an email or
whatever.
It's, it's hideous.
But it doesn't matter.
It's just
something to give me a tool to help my users if they need that help.
Leo Dion (Host): Makes total sense.
Alright, so we talked about giving RevenueCat a cut and AppStore a
little bit.
Let's talk
about the fun
you had with getting
this
Casey Liss (Guest): Too soon!
No, it's, it was, it was, it was an adventure for sure.
Leo Dion (Host): you wanna kinda, I mean, I heard the
story on ATP, but I'll let you go ahead
and
explain
Casey Liss (Guest): Yeah, so, so I sent the app to AppReview
shortly before I was going on a week long vacation.
And I did that, the app was ready, but I was a couple of weeks
before when I wanted to launch.
But my theory was...
You know, I'm coming up on vacation, knowing me, all I'm going to think about
is work during this entire vacation.
Unless I can get
this through AppReview, if I can get it through AppReview once, generally
speaking, knock on wood, generally speaking, once you get it through
once, you know, short of something very unusual, it'll continue to
get approved, maybe you'll have an issue here or there, but generally
speaking, once you get over that first
big hurdle, then you're okay.
So I thought, okay, the week before I go, I'm going to send it to AppReview.
They'll approve it and then I'll be on vacation and know that even
if nothing else happens, I have a version that I could release to
the App Store when I'm back home.
I released it to the App Store and they, they looked at it overnight Eastern
time and they sent me a screenshot.
I'm, gosh, I should call up App Store Connect to make sure I'm telling the
story right, but the general gist of it was they sent a screenshot saying, well,
you have media playback in this app.
And that's not allowed because you don't have rights to
the things you're playing.
Okay?
And they sent me a screenshot of some anime show where, I don't think there
was even a play button on screen, but it was showing a list of, like, episodes.
And that was their justification for the fact that they could
play media on this app.
And I'm like, mm, no?
You can't even play a freakin trailer in the app.
What are you talking about?
Of course, I said this in a very polite and kind way but, you know, I was
like, What, what are you talking about?
That's not, that's not a thing.
And so, I feel like there was one other thing that they complained
about, and then they said, well, okay.
You can't use any Disney or Marvel or any, you know, media in any of this app,
especially your App Store screenshots.
Like, they sent me my own App Store screenshots as justification for this.
And I'm like...
What the hell do I do with this?
There's so many apps in the app store that are clearly using
Disney, Marvel, Pixar, all these different pieces of media, you know,
posters and images and whatnot.
Like, what am I supposed to do with this?
And so I sent them a response via app store connect.
And I was like, look what again, on a very polite way.
What?
Like,
How is this a thing?
You know, I, I can't, this app isn't possible without, I mean, I guess
strictly speaking it is, but it effectively is impossible without
using the media from, or without using the images from all these things.
What do you expect me to do?
And like, look, like Letterboxd, which is, you know, I've spoken
with their developers a couple times, they seem like incredibly
kind and wonderful people.
Letterboxd, the very first screenshot on your app store for the Letterboxd
app was like Infinity War or something like that, I forget what it was.
Like, are you serious with this?
And so, we go back and forth a couple times, and I'm
getting nowhere, and again, I'm being polite, although I'm getting...
Clearly,
my fuse is running out of fuse.
And so I said, you know, these interactions were
happening in near real time as
close as App Store Connect can get real time.
So I think to myself, all
right, here's what you do.
I sent them a message and said, hey, why don't you give me a call?
Let's just hash this out verbally.
We'll take care of it.
I'm sure it'll be fine.
You know, here, my number is, you know, 1 2 and just give me
a call and we'll talk about it.
And I thought, since we're going back and forth constantly about this, I'll
get a call in the next 10 minutes.
This
was like the Wednesday or Thursday before I leave for the beach.
They send a response back fairly quickly that says, Sure,
we would love to call you.
We'll talk to you sometime in the next three to five business days.
No!
We were just talking!
Like, no!
Call me now!
So, we go to the beach.
I think it was Monday or Tuesday.
I want to say it was Monday.
And I get a call.
Actually, I missed a call from Apple.
And this very kind gentleman, I believe his name was Richard,
leaves me a message and says, Hey, why don't you call me back?
A phone number, which was
critical.
Because you don't get, that's worth, that's worth its weight in gold.
But so Richard calls me and leaves a
message saying to call me back.
I miss the call, and then as I'm like figuring out, I'm saying to my
wife Erin, I'm like oh my god, oh my god, ah, ah, ah, ah, what do I do?
And then my phone rings, and it's him again.
We get on the phone, I'm like, look, I, I, I, I, I, I, I was like panting,
and I'm not just because I walked a few yards away from everything else and all
the noise and the beach, but I'm panting because I'm like my heart is racing.
I should have in retrospect looked at my watch to see if it read
a heart
rate, because my heart must have been going like 160
beats a minute or something.
I'm like, I'm standing still, and I'm like, well, well, here's the, and I was.
just a lunatic on the phone, and not in a nasty way, in a like, I just, I don't
know what to
do
way.
It's so nervous, beyond nervous, I mean, it's like asking a girl
out for the first time kind of nervous.
And so anyway and so this, this very calm, very level headed
guy, Richard, says in so many words,
we've taken a look, you're absolutely right.
There's no problems.
I'm gonna hit go.
You're good to go.
At which point I basically fainted onto the sand and said, Thank you so much!
Oh my god, I love you!
You know?
And so,
it ended up that once I got to someone with some amount of authority, It seemed
like it all went away, lickety split, and I haven't yet had an issue since.
Meanwhile, well, so, but, meanwhile, I'd
heard reports from ATP listeners and from other developers who, you know,
who watched what I say on Mastodon or whatever, and a lot of other people
have said, look, I've gotten similar rejections, what you've got to do is...
If you put a little blurb, you know, in, in App Store Connect, there's a little
section where you can write like notes to the reviewers and you can put in a
little blurb that says, look, I have rights to this stuff because of the
movie databases, APIs, terms of use in terms of service and so on and so forth.
Because basically the movie database says, look, if you're uploading
something, you have to have the rights to upload it because we are not
claiming those rights, so on and so forth.
And so I think it's one of those things where Apple just wants to
be able to point to somebody else.
If, if Disney comes to Apple and says,
this is BS, Apple wants to be able to say,
that's not us.
It's them.
And for at first that was me.
And now I can say, no, no, no, don't worry about it.
It's not me.
It's over there.
I can say.
Oh,
it's them.
And so that seems to be enough from what I can
tell to keep apple satisfied.
But it was a stressful week or so, or, you know, handful
of days because here it is.
I've worked, you know, something like six months on this app,
which maybe that was too much.
Maybe I'm just not a fast developer.
I don't know.
But I worked hard on it one way or another.
I worked hard on it.
And this is six months of my life.
And Now it's hanging in the balance as to whether or not, you know,
Mickey Mouse is going to be upset about what I've put in this app and,
and it worked out okay, but oh, I, I
I have, I, there was, it was some trauma while it was going on, I tell you what
Leo Dion (Host): yeah, and it's also like, I mean, I think it's
a little microcosm of what other developers have run into of just
like, Oh, we had the wrong reviewer who didn't know what was going on.
Like the stuff about playing, like the fact that you don't support streaming or
do
Casey Liss (Guest): yeah, right,
Leo Dion (Host): like they were confused about that.
And it's just like, that I felt like it was a perfect little like anecdote
that every developer has gone through where it's just like luckily you
ran into Richard and I think we've all Ran into our Richards once in a
while when we've had calls from app store.
But like, Yeah,
I can imagine
how
stressful that
is.
Casey Liss (Guest): it was, it was awful, and I mean, in the grand scheme
of things, if this was my stress for the year, I'm sitting pretty, but in
the heat of the moment, man, it was, it was rough and, and it, again, it ended
up fine, and once I got, once I got through to Richard, it, it was fine,
and actually, to, to Richard's credit, you know, he said, you have my number,
if you run into issues in the future, you know, feel free to call, and we'll
work it out, which, at this point, I was ready to marry him but but anyway,
so, it, it, I think it will be fine in the future, but it's just tough, because
this isn't my entire livelihood, But it's a large portion of it and it was
hanging in the balance because one or two people who didn't really understand
Or maybe maybe it was me that didn't understand one way or another a couple
of people didn't understand what the state of the world was what was is or
should be and Maybe the six months of my life would have been down the drain and
I and I would have had nothing for to show For it and that's that's tough And
well, I don't know that I'm necessarily on team side loading when it comes to
iPhones and stuff like that It's hard.
It's hard to Simultaneously accept that there is one gatekeeper to
get your work onto these devices.
That's a tough pill to swallow.
And I don't know what the right answer
is.
Leo Dion (Host): Yeah.
And just like, I don't have a problem with the cuts.
I don't have a problem with the 30 percent cut.
I don't have a problem with a lot of things, but like the whole flakiness
of app review, I feel like as a, as a system that's supposed to set up
to protect users, like sometimes it doesn't even do a good job with that.
We're.
Allows crappy scammy apps in it's just, yeah, I feel like there
needs to be more done on, on that front, like, unless, unless you're
just going to go to sideloading,
It's just a crappy experience for developers and users
Casey Liss (Guest): Yep.
100 percent agree.
Leo Dion (Host): Anything else you want to
talk about
that specifically
Casey Liss (Guest): With regard to AppReview, no.
I mean, it did work out, and I mean, I feel like this is one of those things
that within a few days of it being over, I was able to laugh about it, but, phew,
heat of the moment, it was not fun.
Leo Dion (Host): It's a, it's a good lesson
learned,
I
Casey Liss (Guest): It is, it
Leo Dion (Host): now, you know, if you
ever run into this
again, you won't
have a heart
attack.
Casey Liss (Guest): well, I will still have a heart attack, but hopefully it
will be, I will recover from it quicker.
Leo Dion (Host): So let's talk about some of the features
you're really proud of.
Launch time.
Casey Liss (Guest): I mean,
Leo Dion (Host): you want to explain
Casey Liss (Guest): yeah, so in the show notes, I had put in two
different sections like launch time and since and what I mean by that
is, you know, at the time at which
I
Leo Dion (Host): when you launch the
Casey Liss (Guest): yeah, I mean, I think the
launch time is also that was
ambiguous of me.
I think the
launch time is pretty good.
But what I meant by that is, you know, what did I have at launch time?
And you had put in and I'm very happy that you did, you know, accessibility.
You know, I took a spin with voiceover and tried to make it as good as I could.
And then right around the time that I
was getting to polish on the app, that's when WWDC was in early June.
And so I spent some time with some accessibility engineers
and they're happy to go through your app and tell you, you know,
here's some things you can fix.
Here's some quick wins you can have and so on and so forth.
And that there wasn't that many action items that came from those discussions.
I mean, they're only like half an hour long.
But the action items that came from them made the voiceover
experience so much better.
So a silly example of
this,
Leo Dion (Host): Those sessions are
awesome.
Casey Liss (Guest): they're incredible, I cannot recommend them enough.
A silly example of this is, I'll show like, you know, score and
then a percentage on screen.
And I didn't realize that in voiceover, there are two
different SwiftUI elements, and so it would read like, score,
and then just sit there, and then you'd have to swipe.
You know, 73%.
And they
said, and I forget the property or the thing you have to flip off the top
of my head, but they said, basically, you can treat this as one item.
And so when voiceover hits it, it'll say score 73%.
And something silly like that makes a world of difference for voiceover users.
And so I was really happy with that.
And I've had some voiceover users say, you know, look, it's not perfect, but
this is, especially for version one.
It's really, really good.
And you did a really good job.
And that makes me incredibly happy because, you know, as, as has been
often said, and there's a really good Microsoft graphic about this
that I was reminded of in the last couple of days, everyone either
does or will use accessibility at some point, and maybe it's
something like you have a broken arm.
So you have a temporary accessibility problem, or maybe it's something that.
You know, you, your eyes have just been dilated.
So you need to crank your font up to a thousand percent
just for a little while.
Like, even if you don't have a permanent need for accessibility
affordances, almost everyone will use them from time to time.
And so for it to be good, it makes me
very happy.
We talked about spoiler avoidance that, that launched or that was at launch
time.
I'm, I still remain really, really proud of that.
I think it's a really clever thing.
And.
It wouldn't surprise me entirely if like IMDB or something like
that, or someone like that apes it, which in the grand scheme of things,
that's, that's a, compliment, right?
Like if they ape it, then that, that's okay, I guess.
And I'm really proud of that.
And the speed of the app, you know, we talked about that a little bit
with regard to my ambiguous launch time, but, and also with the API.
The app is fast.
As long as your internet connection is at least decent, the app is real fast.
I'm really, really happy about that.
And then for stuff that's happened since,
My first big project since launching was getting integration with the
aforementioned Channels and Plex.
Channels, again, is like a software based
DVR that you can run on your network.
And I actually know one of the guys that's one of the founders.
He's local here in Richmond.
Even leaving that aside, it's a phenomenal app if you're a
weirdo that still wants cable, but doesn't want a cable box.
Hello, it's me.
And there's other uses for it as well.
Don't get me wrong, but that's what I use it for.
And Channels is phenomenal.
And it was really fun working with the guy's name is John Maddox,
working with John in getting integration between the two apps.
And especially as an indie developer, it's very unusual to have that
kind of collaboration with anyone.
And between the stuff with Ben that we talked about earlier and the
stuff with John.
It was incredibly fun
to get the channels integration squared away, and that is pretty
robust and works pretty well, and I'm pretty darn proud of that.
The Plex integration, I use Plex even more than I use channels.
I adore Plex, it's my jam.
The Plex integration is very rickety, and for very complicated reasons that
if you have 40 hours, I'm happy to talk you through, but suffice it to
say, it's just a very old technology that Plex uses to do these sorts of
things, and it, and it's just, it's very rickety, and so the Plex integration,
when it works, is just magic, it's incredible, same with channels, is
magic, and it makes me incredibly happy, because what happens is, on screen,
it'll say, now playing, you know, Plex Letterkenny, or whatever the case may
be, and if possible, it'll even jump you to, like, you know, Letterkenny,
Daybears Day, and it'll jump you to the exact episode that you're,
that you're watching, and it's just incredible surprise and delight, but
Leo Dion (Host): this is you can
play the show you're
you want to
watch through Callsheet,
is
Casey Liss (Guest): No, no, no, I'm sorry.
No, no, no, thank you for asking.
So, what I mean is, you're sitting on the couch, the Apple TV is playing
Letterkenny, or whatever the case may be, on Plex, or on channels, and
Callsheet will reach out to channels, or Plex, or whatever, and say, Hey,
what are you playing right now?
And the Apple TV will report back, Oh, I'm playing Letterkenny Daybearsday.
And so, you know, it's the perfect couch moment, you know, or couch instant,
as John calls it.
Again, channels integration is pretty robust, works pretty well.
Plex integration I've called experimental, because honestly...
There's not a lot more I can do with it that I'm aware of, but
it's very, very rickety, and
so I
Leo Dion (Host): I've always been Like interested in playing
around with Plex and the Plex API.
I use Plex as well So it's it's unfortunate that it
is
rickety
Casey Liss (Guest): In the defense of
Plex, it's, I mean, Plex started in like the late 90s as Xbox Media
Center, you know, so it's got a long lineage and basically what, what
Plex did is they created their own zero config, zero conf, you know,
zero configuration, like Bonjour, basically they made their own like
version of Bonjour before Bonjour was the thing, whereas channels
having been made in the last five or 10 years has the advantage of just
Using Bonjour, and so who to thunk it, but this Apple created technology called
Bonjour has incredibly good support in Swift APIs, whereas, you know, doing
raw BSD socket work in, which is what I, you know, well, I used a third
party library, but effectively, you know, you need to do raw sockets to do
the same thing with Plex, that's less
robust and a lot less fun, but in the defense of Plex, I mean, it's because
this stuff was written 20 years, literally 20 years ago, and they
haven't had to mess with it since.
So what are you going to
Leo Dion (Host): Yeah Yeah makes total sense total sense.
Yeah Go back
you were talking about spoiler
avoidance.
Are you do
are you good on time?
Casey Liss (Guest): Oh, yeah, yeah.
Mm hmm.
Mm
Leo Dion (Host): Okay, cool.
On spoiler avoidance, I wanted to jump in and talk about using
the redacted, that's a, the
redacted view modifier.
How was
that?
Casey Liss (Guest): It was, it was fine.
Basically, I wrote a, a custom, I think it was a view modifier, right,
a custom view modifier that, that lets me, that I call conditionally
redacted, and so basically it's, you know, dot conditionally redacted
if, and then you provide a Boolean that says, you know, either you
need to redact it or you don't, or, you know, or, or a, or an inline
function that, that figures it out.
It'll, I think it's auto closure
there if memory serves that it'll
evaluate it and so on and so
forth.
Leo Dion (Host): You can pass in a Boolean and then it does
it or doesn't do it based on whether the
user wants it.
Yeah.
Okay.
Casey Liss (Guest): But under the hood, all it's doing is it's dropping
a dot redacted, you know, reason placeholder or whatever the case may be.
And yeah, that's all the, the outta the box with Do I redaction stuff?
Leo Dion (Host): Okay, cool.
What,
so what do you have planned in
the
future?
Casey Liss (Guest): I can't tell.
No.
So I, I have some new stuff, some old stuff.
Like I should actually look how many GitHub issues I have.
There's a zillion,
but
Leo Dion (Host): let's
let's talk
about like just iPad support.
Did
you start looking into
Casey Liss (Guest): Yeah.
that's going to happen sooner rather than later, so I,
for what it's worth, I have
45 open GitHub issues.
Now, when I say issues, I don't necessarily mean, like, problems.
A lot of these are, like, enhancements and so on and
so forth.
Features.
163 closed, so I got that going for me.
But anyways but yeah, so I have a lot that I'm noodling with.
It's, it's tough to figure out what the right answer is.
Like, clearly the rightest thing to do, and I've been kicking the can down
the road because I don't, I don't, I don't know the best way to go about it,
but as you said, better iPad support, like Callsheet works on the iPad,
but it's not well laid out, there's a really inefficient use of space,
and I need to do better about it.
Making iPad a first class citizen and a great example of this is, as
we talked about earlier, this quick access link thing where you can jump to
Trivia or jump to Wikipedia, whatever.
The way that works on iPhone is there's the one icon that's your like favorite
and then a button that says like more links, I forget what I have it say now.
And if you hit that more button or whatever the case may be, links button,
it'll drop down or pop up a menu that says, okay, well, you know, here's
Trivia, but you can do Wikipedia, parental guidance, you know, technical
information, so on and so forth.
Well.
On iPad, I have the width that I can just split out all of those, you
know, that line of icons and just have them all immediately available.
That's a silly example of something that I need to do
that I just haven't done yet.
But broadly, you know, better iPad support so that it
works a lot better on iPad.
And then I've promised a bunch of people who have asked me once iPad support
is better, I'll flip the switch on.
What is it?
Continuity?
No, not continuity.
What am I'm thinking of?
Catalyst.
Thank you.
I'll, I'll flip the switch on Catalyst so that you can
use it on the Mac as well.
It's just right now, I don't love the way it is on iPad and
I don't love, thus, I don't love the way it is on the Mac.
And once the iPad isn't embarrassing, then I'll,
I'll, I'll flip the switch for
Catalyst and so you
Leo Dion (Host): Yeah, that makes
Casey Liss (Guest): it'll, so it'll
work on the Mac.
Leo Dion (Host): like rotations and stuff for
like, if you want to do
split view on
an eye, like not
Casey Liss (Guest): you know, I don't know if I, yeah, yeah.
Yeah.
Leo Dion (Host): side by,
Casey Liss (Guest): I think that does work if memory serves.
You can tell how often I run the iPad app.
If memory serves, you can do slide over and all that jazz.
But I haven't looked at that in a while, to be honest.
And I do need to get on that.
I'm trying to grab all the things that users are complaining
about, which isn't that much.
And I say that as though it's a bad thing.
Like, the fact that your users are telling you, Can you fix this?
I don't like that, or whatever.
That's a compliment.
Like, even if it's a complaint, it's still a compliment.
So...
Leo Dion (Host): love it
enough
to
tell
Casey Liss (Guest): Exactly.
So I'm trying to get through
some of that stuff, and I think I've got most of it at this point.
So I just gotta, I gotta go through my GitHub issues list.
I just shipped a test flight up beta yesterday.
I got a couple other things in flight with regard to URL handling.
So, we were talking about channels earlier, and channels, if it detects
that you have Callsheet installed, will offer to open things in Callsheet.
But, because of some oddities with the way channels, well I shouldn't
say oddities, because of some choices that channels makes which are
perfectly reasonable for them, they don't always have a movie database
ID to give me, especially for like a particular episode of a TV show.
So, so when they kick over to Callsheet, they might say,
Hey, this user is watching Letterkenny Season 8, Episode 7.
But they don't give me any identifiers that I can use to make an API call.
Well, so what I need to do, one of the things I want to do is start caching
the fact that the user was watching, what did I say, Season 8, Episode 7,
and kind of put that aside for a minute and go and figure out, the
user search for Letterkenny, figure out, you know, which is the correct
episode or which is the correct show.
And then once they do, I can bring that data back and jump them directly to the
right, the right episode of Letterkenny or, you know, whatever the case may be.
Once, once they've established, this is the thing I'm looking for.
So I need to work on that.
But other than that, there's, there's a couple of other things
that I'm contemplating that I think could be really fun.
I do have a dog.
I, I don't think I've lost sight of
reality, like an average dog owner.
You know, the dog, the dog is a dog, and, and I love her very
much, but, you know, she's,
she's just a dog.
But I know a lot of people are very sensitive about their dogs, and
there's a website, Does the Dog Die?
I think
it's com and and they do have an API, and so one of my tasks that I want to
look into is, is it easy enough that I could integrate with does the dog die,
and maybe it would be opt in, but you could tell, you know, oh, if you're
sensitive to these sorts of things,
maybe steer clear of, you know, this particular movie, you know,
or whatever the case may be, so that's a silly example of something
that I think could be fun both for me and for my users, but,
No promises.
We'll see what happens.
Leo Dion (Host): yeah.
yeah.
Do you ever think, this is one of the things we have in the notes,
but like, do you think Apple could, ever support something to where an
app could integrate as you watch a video or a movie app where you could
do something like Amazon X
ray or Amazon prime
X
Casey Liss (Guest): they
could,
but they
Leo Dion (Host): like,
that would.
be awesome.
Casey Liss (Guest): would.
And you know, a lot of people have asked me, well, wait, you know, I see
that you've got this Plex and Channels integration, but I don't always, or
maybe ever, use Plex or Channels.
I use the Apple TV app, or whatever the case may be.
You know, I only ever watch Apple TV stuff, or maybe
I only ever watch YouTube.
And, Shouldn't there be an API where Apple just tells you this
is what the person's watching.
It doesn't matter what freaking app they're using.
And my selfish answer is yes.
Yes, there should be that API.
And I guess like, you know, the home automation people have reached out and
Home Assistant is this like very, very nerdy home automation app that allegedly
will let you do this sort of thing.
And I started spelunking through their source code.
And first of all, I think most of it's Python, which I'm
okay at, but I'm not great at.
Second of all.
Like, the way they go about discovering this is extremely convoluted.
Third of all, I think you need to, like, pair Home Assistant with your Apple TV.
And, like, that is not the way it works with channels and
Plex integration right now.
Like, it just, it works.
If it's there, it works.
And so, like, in a lot of ways, this is, like, the holy grail for Callsheet,
but it would also be kind of ugly, too.
So, I don't know if it's the right answer.
But...
Leo Dion (Host): be a
lot of maintenance too, and
Casey Liss (Guest): Yeah, it's so much support burden, like it's just, I
don't know if that juice is worth the squeeze, but you know, why, why doesn't
Apple just provide an API for this?
And then I was talking to somebody, I can't remember who it
was, and they pointed out, well, because that's
that's deeply privacy invasive.
And I'm like, wait, wait, wait, what are you talking about?
And they said, well, what if Facebook
knew?
All the things you watched on your television.
Does that seem good?
And then it was like, okay, light bulb.
Yep.
The Apple will never provide this information.
Never in a million years, because the, the tools of the world, the
jerks of the world will use this to do terrible and gross things.
And I just don't see Apple allowing it.
Now, of course, the for me, what I would say is, well, can we opt into it?
Could a user opt in to sharing their data with Callsheet or
whatever the case may be?
And maybe,
yeah, or whatever, or what exactly, like your location or what have you.
Callsheet doesn't care about your location, but you
know, you know what I mean?
So it's like you said,
things
along those lines, same idea.
And and maybe I still don't think they would do it, but maybe
Leo Dion (Host): how about the other way where, like, we've had a few
guests on who do music apps, right?
Where it's like, oh, you can tap into Music Kit
and show album art or show metadata attached to the
music you're listening to, so.
Like, basically you have a video player
that has access
to it.
Apple TV plus
or
Casey Liss (Guest): Yeah, I mean,
one could dream and I,
I hope
Leo Dion (Host): one good dream.
Casey Liss (Guest): I don't, I don't expect it to happen in a million
years, but but no, I, I think, I think there are ways in which I
can do everything in my power to try to put that information
front and center for my users.
You know, I haven't looked into YouTube integration as an example, but it
may be possible to do that sort of thing.
Of course, at that point, I'm probably adopting the Chromecast
APIs, which make me feel super gross.
And so again, that juice may not be worth the squeeze, but
it's worth looking into.
Leo Dion (Host): Was there anything else from dub dub this year as far
as like behind the scenes things like Swift data or Observation or
any of that stuff that you're like, oh, I wish we could do well Swift data.
Maybe
Casey Liss (Guest): not for me because I don't really store that much.
But little I do store, I store in CloudKit.
And,
I have a fairly, I have a fairly thin wrapper API that I put in
front of CloudKit that I'm actually really proud of that makes it pretty
darn straightforward to drop data into or pull data out of CloudKit.
So I don't really need Swift data because there's just not that much.
You know, it's
your
Leo Dion (Host): Yeah, yeah,
Casey Liss (Guest): it's your, your, pins, your
spoiler settings
and stuff like that.
With regard to observation...
I like the API in principle, but I've heard that there's a lot of gotchas
that if you're not following, this is very, very much in the spirit
of SwiftUI, if you're not following the happy path, I understand that
it gets pretty ugly pretty quick.
And since what I have is already working and doesn't really cause
me any problems, I'm extremely reluctant to switch it up to the
new hotness just for funsies.
That being said, one of my near term goals.
Probably in the next week or so is I really, really want to investigate and
probably use tip kit tip kit is this new thing where, you know, you can pop
up, pop up overlays at convenient times for the user and say, Hey, you know, if
you tap here, it'll do such and such.
So coming back to my conversation, you know, I keep wanting to surprise
and delight, if you're looking at a movie and it shows the run time
and say it's an hour and 30 minutes or whatever, if you tap the text
that says an hour and 30 minutes, it'll show a popover that says ends
at, you know, 90 minutes from now.
So if it's, if it's noon and you tap that popover for a movie that's 90
minutes long, it says ends at 1 30.
And so the idea here is if you're looking at this movie and saying, Oh,
do I have the time to watch this before bed or before I have to pick up my
kid from school or whatever the case may be, you can just tap that button
and it'll say, Oh, it ends at 1 30.
And you know whether or not you have the time to watch it.
Well, that's not particularly discoverable, right?
Like, you have to know that this thing that doesn't even
look like a button is tappable.
And so, TipKit, in theory, having not actually used it yet, would be a really
great way to have a little popover that says, Hey, if you want, you can tap on
this and it'll show you some extra data, you know, or whatever the case may be.
And so, I'm really, really looking forward to digging into
that and hopefully playing with it and seeing if I can get some
good, good mileage out of it.
Leo Dion (Host): Yeah.
That makes total sense.
Any plans for offline?
Some sort
of offline access?
What does the app
do
when you're offline?
Sorry, I had
Casey Liss (Guest): tough.
No, it's, it's a fair question.
It basically says tough noogies.
Try again.
I, I feel like
it's, it's a completely fair
question.
I don't know that there's a need for it.
like, if you're, if you're watching something on a plane and you can't
access Callsheet, like I don't think that's that critical.
Like the advantage of Callsheet is it's not flighty.
You know, if you don't have
an update on who that actor is.
It'll be okay.
You know what I mean?
It's not a, it's not a time critical mission critical sort of thing.
I could be convinced I'm wrong about that, but I don't, I'm not
too worked up about it or too worried about it.
So I think it'd be, it would be a fascinating
engineering challenge.
Like what is the right way to figure?
Well, how do you figure out what data to capture?
What's the right way to capture it?
How do you store it?
How do you keep it efficient?
How do you not explode the app?
to be, you know, 700 megs worth of random photos that
you never look at again.
Like again, from an engineering perspective, it's a fascinating
challenge, but I just don't think that that's a challenge I
necessarily have at this time.
Leo Dion (Host): Yep.
Makes total sense.
Before we close out,
we had one question on Mastodon that I wanted to answer.
And I think we both have a C sharp
background from a hundred years ago.
Casey Liss (Guest): Yeah,
Leo Dion (Host): Did you, Did you, ever look at
Xamarin,
or whatever the heck they
Casey Liss (Guest): yeah.
I did, what was it called?
It was mono something at the time.
I forget what it was called at the
time,
Leo Dion (Host): It was called Mono,
and then it was called Xamarin,
and then
they renamed it
again
Casey Liss (Guest): Oh, did they?
I did not know that.
When I looked
at.
Leo Dion (Host): I'm so out of the
loop,
Casey Liss (Guest): Yeah, same.
So I haven't been a NET
developer since 2016.
Is that right?
I think that's right.
And so anyways, I, I love dot net.
I really did a C sharp at the time anyway.
And as far as I know, it's still the case.
C sharp was a phenomenal language.
You had brief mentioned in the show notes about combine.
Combine is if you, if you ask me, is apples take on Rx and
Rx I believe was born or was at least popularly popularized
in C sharp as far as I'm aware.
So, Thank you.
So anyways, I love C sharp.
I loved dot net.
I didn't love windows and I didn't love a lot of
the Microsoft other things.
Visual Studio was also great.
But at the time when Xamarin was new, I had looked at it and thought.
It's similarly as we spoke about before.
If I were to do it, this is how it would look.
And then when they did, I think when they first offered mobile
support, I had also looked at it.
and again thought, Okay, like this isn't necessarily what I would want
in terms of I'd rather use, you know, the Objective C APIs and whatnot.
But if you're going to suck Objective C, which is very different than,
you know, C sharp, if you're going to suck that into C sharp,
it's a pretty good way to do it.
It makes a lot of sense, so on and so forth.
I haven't looked at it since then, and this would have been, you know, like
iOS 3 or 4 or something like that.
So, it's just not, leaving aside the fact that I, I don't
really know C sharp anymore.
Like that, that muscle is long since atrophied.
Even, even leaving that aside.
I find that having that middle layer between you and the platform vendor,
I find that to be fairly distasteful.
And, and, and it, it makes you beholden to even more people.
In the same way I didn't want to be beholden to Revenue Cat.
for stuff that would actually arguably make my life way better.
I don't want to be beholden
to Microsoft or whoever owns Xamarin this minute to, to have
to do their updates before I
can accept, like before I can embrace Tipkit as an example.
And maybe they're super fast.
Like, I, I, I am casually acquainted with a guy who, last
I heard, was working on Xamarin.
I think more on the
Android side than iOS.
But, and he's incredibly bright, incredibly nice.
Some, he lives somewhere around Richmond.
It's not that the people are bad.
It's not that the project is necessarily bad.
It's just it doesn't solve a need that I
have in my life.
And so I haven't really looked at it now.
Leo Dion (Host): Yeah, so it's funny because when I
started doing iOS development, it was back during Objective
C
and like, I had to
do retain and
Casey Liss (Guest): Oh, yeah.
Same.
Yeah, yeah.
Leo Dion (Host): It felt.
so
backwards, like, other than the fact that the iPad is
an awesome device, I felt
like, and I had been doing Silverlight,
so I was doing
Casey Liss (Guest): wow.
You're one of those.
Wow.
Leo Dion (Host): yes, yes and it felt so backwards now, in like 2023 with
Swift, and I mean, I still think, like, there's, there's nothing you
gain from, from going to Xamarin unless you're like, what ends up
being is you're some massive company where you have a ton of NET developers
and you need an internal app.
Otherwise, like, there really is no, no real
need to go to Xamarin.
I, I just
don't see the reason
Casey Liss (Guest): I,
I completely agree.
And I mean, obviously everything is an engineering trade off, right?
We've talked about that a few times this, this episode.
And, and I think there are engineering scenarios or situations
where it does make sense.
But I think generally speaking.
Even if you're an Indie, like even if you're an Indie who knows C sharp
up, down, inside, out, so on and so forth, you're, you've still got this
entire API surface that is Cocoa Touch that you need to learn and potentially
SwiftUI or UIKit or whatever.
Like those are incredibly broad and deep API surfaces that you're going to
need to conquer one way or the other.
So why not just conquer it in a first class language that one of the
things I love about Swift is when, Swift is kind of like a Rorschach
test where It looks like whatever you want it to look like, like as a C
sharp person, it looked like C sharp.
Objective C developers, well, a lot of them are very, well, were very cranky.
Most of them have come around at this point.
But, but yeah, if you're an Objective C developer and you're not too
cranky, you will look at it and say, Oh, I see the Objective C here.
And I've
understood that like Rust and Python people and Scala people can look at
it and be like, Oh, yep, I see that.
And, and so Swift has its problems for sure and has
gotten extremely complicated over the last couple of years.
I think.
Almost woefully so, but that being said, it is still a great language.
It still does at least try to have
progressive disclosure.
so you don't need to be in a language expert in order to get things done.
Again, I think that's getting tougher now, but generally speaking, it's true.
So it's, it's a really great language.
That's fun to work with.
And there's not that much boilerplate that gets in the way.
In fact, one of the things I love most about Swift is that they're
always trying to remove boilerplate, you know, the observation stuff.
I'm like hat, what is
it?
Hash preview,
you know.
Yeah, that's
Leo Dion (Host): about removing boilerplate.
That's
like, that's it.
Casey Liss (Guest): Exactly right.
So there, even though Swift can be daunting.
It doesn't often feel like busy work, whereas so much of like
raw UI kit felt like busy work.
A lot of Objective C, although I did like Objective C quite a bit,
a lot of it felt like busy work.
And it's uncommon for me anyway.
to find Swift feeling like busywork.
I can fight Swift.
I certainly do fight Swift somewhat often, but it never, it's almost
never that it feels like I'm just doing something because I
have to, not because I want to.
You know what I mean?
That's, it's a thin distinction, but it's an important one.
Leo Dion (Host): It's by the way, it's called
NET
MAUI,
is
Casey Liss (Guest): Are you serious?
Leo Dion (Host): Yeah, yeah,
Bad timing.
Casey Liss (Guest): Oh, true.
Very true.
Leo Dion (Host): I was gonna say like one of my first contracts
was as I iOS developer was working with a company that they wanted
to build their business layer in
Xamarin so that they can share
it with Android and.
Casey Liss (Guest): I mean, that makes
Leo Dion (Host): And then they brought me, they brought me on as
the storyboard objective C expert
and it worked.
It
worked
Casey Liss (Guest): Fair enough.
Leo Dion (Host): Yeah, but they're, they're a massive
company with, it was
like an
internal app.
So it makes total
Casey Liss (Guest): I agree.
I agree.
Leo Dion (Host): Anything
else, Casey?
I think we covered
Casey Liss (Guest): No, I appreciate all your time.
You know, we had talked before the show that you wanted to keep it to
like somewhere around 45 minutes and here we are like double that.
So I appreciate, I appreciate the time you've given me.
But no, I, I, I'm very happy to be on.
And certainly if you ever have the occasion that you would like me
to come back, you tell me when.
Leo Dion (Host): Awesome.
Awesome.
Where can
people find you,
Casey Liss (Guest): Yeah, so my website is caseyliss.
com C A S E Y L I S S but you can find my podcast at http.
fm and relay.
fm slash analog, spelled the correct way or with the U E
on the end, take your pick.
So, you can, you can check all those out and I'm on Mastodon.
I'm on mastodon.
social as Casey Liss, Instagram as Casey Liss, and that's basically any
of the places that I actually frequent.
I'm on threads, but I almost never look at it.
Are you doing anything with threads?
I, I never pay attention.
Leo Dion (Host): Well,
did They just
add the web
interface
Casey Liss (Guest): I don't think I've even loaded it yet.
Leo Dion (Host): Yeah, not now.
Not really.
You gotta,
when are you going to
change the
theme song?
So
it
Casey Liss (Guest): Ah, I know, I know.
We've talked to Jonathan Mann.
This is the ATP theme song.
I think it goes, I can't sing, but it goes, If you're into
Twitter, you can follow them.
We're using, we're hanging our hat on the fact that it says, If you're into
Twitter, which yes, I know it's strictly speaking X right now, but whatever.
So we're hanging our hat on that, that, that.
We're, we've talked to Jonathan about slotting something in there, but none of
the four of us, three, three hosts and Jonathan, man none of the four of us are
quite sure what we should try to slot in instead, so we're just keep kicking that
can down the road forever is probably what's going to end up happening.
It's a relic of a bygone era when Twitter was not as actively evil.
Well, slash a thing at all.
Fair point.
Leo Dion (Host): Thank you
so much,
Casey.
It was great
Casey Liss (Guest): No, you as well.
Thank you.
I
appreciate It
Leo Dion (Host): People can find me on.
X at Leo G Dion.
I'm a Macedon at Leo G Dion at C dot M.
They, my company is bright digit break, go to bright digit.
com for all the other episodes and articles we have.
If you're listening to this on a podcast player, I'd love a review.
And if you're watching this on YouTube, like, and subscribe, please.
Thank you so much.
And I look forward to talking to you again.
Bye everyone.