Leo Dion (host): Hey folks.
Before we begin today's episode, I wanted to let you know I'm
open to new opportunities this summer and fall of 2024.
If you're looking for someone who has an expertise in swift, whether it's
iOS, watch, os, tv, vision, Mac Os, or Server side, swift, reach out to me.
You can find me@brightdigit.com and you can reach out to me there, or you can
just email me at leo@brightdigit.com.
Thank you so much, and I hope you enjoy the rest of today's episode.
Welcome to another episode, empower Apps.
I'm your host, Leo Deanne.
Today I am joined by Danielle Lewis.
Danielle, thank you so much for coming on the show.
Danielle Lewis (guest): Yeah.
Thank you for having me.
Leo Dion (host): Before we begin, I'll let you go ahead and introduce yourself.
Danielle Lewis (guest): All right.
Yeah.
I'm Danielle.
I just started learning Swift about a year ago, so I'm a native iOS developer
currently doing my first internship.
Yeah, I'm excited to be here.
Leo Dion (host): How did you get into software development?
Danielle Lewis (guest): Yeah, actually it's something I had been
interested in for a while, but very intimidated by to be honest, there
just weren't a lot of people that I saw who looked like me, who were
successful as a, at this growing up.
But a family friend actually reached out and encouraged me to start learning.
So I did.
And then after WWDC last year.
I fell in love with the idea of the Vision Pro and decided I
wanted to start learning Swift.
Leo Dion (host): Awesome.
So now have you been mostly doing Vision Pro stuff or anything else in Swift?
Danielle Lewis (guest): Yeah.
Yeah, mostly iOS, honestly.
I.
Leo Dion (host): Okay.
Danielle Lewis (guest): I'm currently trying to get more into AR Kit
and reality Kit, so I'm doing some courses right now trying to learn
those frameworks to be able to use more of the hardware of Vision Pro
and give people more 3D experiences.
Leo Dion (host): so tell me a little bit about what were some of the
hurdles getting into iOS development and what did you learn on the way,
Danielle Lewis (guest): yeah, it's hard.
Like coding is hard.
Coming from not having any experience, but I.
Honestly, the community has been so incredible to me.
I made a Twitter early on, I was doing Paul Hudson and Sean Allen courses
and both of them very much stressed.
Get on Twitter, the deaf community's amazing.
Make sure that you share what you're doing.
So I took that advice.
I.
Any hurdle that I had, any obstacle or roadblock that I
faced, I just asked questions.
I asked for help, and people came to help me.
So that was incredible.
And probably the best thing that I learned was leveraging the
community and building that network.
Leo Dion (host): So I wanna talk a bit about your experience with Vision Os.
Did you start with iOS and then go into Vision Os?
Danielle Lewis (guest): Yeah.
I started with iOS.
I started with a hundred days of swift ey on hacking with swift.com,
and shortly after, about six months later, decided that I wanted to.
Try to make a Vision Pro app.
This was a little bit before release and I actually made four
very simple single window utility apps for Vision Os and got those
on the store before release day.
So that was cool.
Leo Dion (host): Okay, so what were the obvious big differences
developing for Vision OS versus iOS?
Danielle Lewis (guest): Yeah, it was mostly just how people interact
with the applications and design.
So making sure that, the way that people move through your application
was intuitive for the platform.
That was the biggest difference.
Swift UI makes it so easy to go from one to the other.
Everything is pretty much the same.
A text box is still a text box.
A button is still a button.
So everything was very much built in to where if you had a tab view in
an iOS app, you could have that same tab view and it would automatically
be different based on the platform that you were building it on.
So I thought that was great and cool.
Leo Dion (host): What were some cool things that you could do in Vision OS
development that you can't do in iOS?
Danielle Lewis (guest): Yeah, I think honestly it was the design language.
I think the aesthetic, just the glass and just the way that they
have everything set up would be a lot harder to do in iOS.
It's very easy and simple to make a gorgeous Vision OS app to
where it might take a lot more work and a lot more knowledge
and experience to do so in iOS.
Leo Dion (host): How was like interacting with your app different with
the gestures and the eye focused stuff?
Was that a challenge?
'cause I'd always be worried about if I'm doing it right on Vision os, if
Danielle Lewis (guest): yeah.
The cool thing again is everything is pretty much built
in apple makes it extremely simple with Swift UI to where I.
I didn't really have to worry about coding anything to
make the eye tracking work.
It just does, out of the box.
They have their components, you have your text fields, your text views.
All of your views are automatically adapted for the
platform when you build for it.
So that made it super easy to make the switch over from iOS.
Leo Dion (host): Are there like different ways of arranging your windows
or setting up your windows in your app
Danielle Lewis (guest): Yeah.
Leo Dion (host): visions?
Danielle Lewis (guest): Yeah.
So I really only did single, I've only done one app that has multiple
windows, but it was pretty much free flowing and up to the user.
You can push like a new window and they can move it to
wherever they want to move it.
I'm not personally sure.
I don't have experience to know if you can set up windows in different ways
or in different layouts in that way.
Leo Dion (host): Yeah.
What other do you have any stories or anecdotes about some aha moments you
had developing for the Vision Pro?
Danielle Lewis (guest): Let's see.
Aha moments.
I think.
One of the big ones was as I spoke before, just how easy it is to make
a absolutely gorgeous application.
As somebody who is still developing in the simulator, I don't own a vision pro.
It was really cool to see what.
In code and in practice was just a pretty simple app.
Turned out to be absolutely gorgeous.
So I made a app, most recent app I released is called Vinyl Vision.
It's a dis cos native client for vision os such you can
view your dis collection.
And just seeing that and how beautiful it was, how great album art
looked, even just in the simulator was definitely like wow to me.
Leo Dion (host): So now that you've been developing for the Vision Pro, have
you noticed anything that you're like, oh my gosh, this is better suited for
the Vision Pro rather than the iPhone?
When it comes to developing new apps,
Danielle Lewis (guest): yeah, for sure.
So in my most recent app that I released, vinyl Vision, I
have some really cool ideas.
Like I would really love for users to be able to set up a 3D record
player, pull your records from your digital collection, and actually
place them on your 3D record player.
Things like that, that aren't possible on the iPhone.
It really opens up a whole new world of user interactions with your apps.
I think it's really cool.
I.
Leo Dion (host): Was there anything from Dub dub that you're like
blown away by and you're now interested in building vision os?
Let's start with Vision Os and Vision OS two, for instance.
Danielle Lewis (guest): Most of what I was blown away by in Vision OS
two isn't necessarily like developer tools, but it's more so ways that.
Us as users can interact with it or us as developers can use it
like the ultra wide monitor space.
I thought that was the coolest thing that came out of Vision Os for sure.
I'm really hoping to be able to get, I.
More like camera access.
I saw a really cool vision os WWDC video on a drawing app.
So they were like drawing in
Leo Dion (host): Yeah, yeah, yeah.
Danielle Lewis (guest): I thought that was really awesome.
Being able to do stuff like that is something I'm hoping
to learn as I dive more into ar kit and reality kit right now.
Leo Dion (host): What are you finding is like the biggest challenge
with AR kit and reality Kit?
Danielle Lewis (guest): Math.
As somebody who, as somebody who isn't really, you know trained as a
developer, self-taught I come from a completely, different background.
Trying to learn how to code and how to program and all of that on top of
now having to learn, linear algebra 3D space calculus, how things.
How things move, physics stuff like that is probably the biggest challenge.
But I'm excited.
It, it's been really cool.
It's definitely what blew me away about Division Pro, so I'm willing
to learn it and I'm excited.
Leo Dion (host): Making it sound like it's easy to develop for the Vision
Pro, and you're like, not easy, but if you already know iOS, going to
Vision Pro isn't that much harder.
There's gotta be some stuff with the 3D interface that you need
to know about Vision Pro or maybe things that you can do in Vision
Pro that you can't do in iOS that makes it slightly more challenging.
It sounds like they make it easy to design an easy app, but what
if you wanted to do stuff like.
3D model record player, there's gotta be some more advanced stuff
that you have to do in Swift ui,
Danielle Lewis (guest): yeah, I mean I just don't have too much experience with
it myself to be able to speak on it.
But yeah, like it was easy for me to develop easy apps
'cause that's what I was doing.
I was doing very simple single screened window app applications, which is
incredibly simple to do coming from, any type of Swift UI experience.
Leo Dion (host): And then you said, did you say you had built
an app with multiple windows?
Danielle Lewis (guest): Yeah.
Yeah.
In vinyl vision, you can tap on a record.
It'll bring up the track list.
It'll bring up record notes.
It'll bring up the photos.
You can tap on a photo.
It'll bring up another window with a really large
human size, life size photo.
So in that sense it, you're, it links to other windows.
Leo Dion (host): Okay.
Is that just a flag you can then set next code or, okay.
Okay, cool.
'cause I know you could do that with iPads, so I assume
it's basically the same idea.
What,
Danielle Lewis (guest): it's pretty much the same.
API.
Leo Dion (host): okay.
Was there anything else that came out from dub dub
that was of interest to you?
Danielle Lewis (guest): Yeah, a lot of the Apple intelligence
stuff looks incredible to me.
Especially, the way that we're gonna be able to use AI and Xcode now, I think
that's gonna be, that's gonna enable a whole new, generation of developers to.
Make swift, which is already a fairly approachable language, even more
approachable for more people, which is something I'm incredibly excited about,
even as somebody who's still learning, like that's gonna be game changing for
Leo Dion (host): Mm-Hmm mm-Hmm.
Danielle Lewis (guest): yeah, for sure.
Leo Dion (host): looked at Xcode 16 at all?
Danielle Lewis (guest): A little bit.
I downloaded the beta because I'm trying to do, like I said, I'm working
through a, a AR kit reality kit demo, and part of the WWDC videos I was
watching, some of the APIs are only for the 16 beta, so I did have to download
Leo Dion (host): Because I notice, sorry, I've started doing a lot
of work in 16 beta and I do.
So they do have the language model stuff for Swift already there.
And it's interesting, it's a little bit, I would say it's better than
what they had before, but not quite what you'd get from was it copilot?
Where it's like a li a little bit more limited to like you have provide and
what Apple provides which is good.
'cause privacy is an important thing.
So that's interesting to me.
Yeah.
I kind of hope, I hope that it, like it gets better and that we
get to see more of what Apple wants us to do with these code bases.
Because I assume that's the idea, right?
Is like we had, we took, we trained the model on Apple code and tutorial,
so that for like me, the user is gonna know, oh, this is what I'm supposed to
do with this view modifier or whatever.
That's what I'm hoping for.
Danielle Lewis (guest): Yes, same.
Leo Dion (host): Just getting into it.
Did you ever try using stuff like chat, GPT or any of the AI stuff
for your development workflow?
Danielle Lewis (guest): Abso, absolutely.
Like I said, I just started learning a year ago.
It's been a massive help to me, especially in the very beginning
because my first app I ever built was like a closed social
network for my staff at work and.
Doing that, after I started on that project a month into learning and
there is absolutely no way that I would've gotten that done without
the help from both the community and resources and tools like chat, GPTI.
Leo Dion (host): amongst the other tools that you have?
Danielle Lewis (guest): Yeah, I still use it to this day.
If I have a API I'm working with, I'll just throw in a sample response
and say, Hey, I need a model for
Leo Dion (host): Yeah.
Okay.
Danielle Lewis (guest): me so much time, like typing out an entire, data model.
It's things like that.
Just boilerplate things that are simple that are also time consuming.
It really helps with, with stuff like
Leo Dion (host): And if it's something that can be a pattern, like you said,
you show, you said, here's the response.
Give me a model.
Yeah.
That's perfect stuff for language model.
So yeah where I found it is, I don't know if you've seen this with Vision Pro
or Reality Care or AR Kit, where I see it run out is like when you have a very
specific API that you need help with.
I don't know about you, but like I I've been working with some
stuff with networking and it just.
It hallucinates all the time.
And it's yeah, this looks like Apple code.
This looks like the way you would do it on an Apple API,
but it's not how it works and it doesn't really fix my problem.
Do you get stuff like that?
Danielle Lewis (guest): Absolutely.
That's why I stopped using it for those things.
I'll go to people in the community who've worked with it before and
I get much better results that
Leo Dion (host): Okay.
Danielle Lewis (guest): But for simple things, like we said it's
much easier to trust and rely on it
Leo Dion (host): Yeah, here's a CSV file.
Turn it into Jason.
Stuff like that.
It's like perfect.
What were some developer videos you watched this year that you're like,
this is something I want to try out?
This.
Danielle Lewis (guest): Yeah, so I watched some of Swift testing.
I've been learning, more about testing and just writing testable code.
So SWIFT testing looks like a really cool step up from,
what we had before the XCET.
So yeah that's something I'm really excited to get into.
I haven't watched, too many of the WWDC videos yet.
Mostly just.
The, like X code, the swift assist stuff, and then SWIFT testing.
But I've been trying to watch more of the vision ota One thing
that I did, I do notice is like I'm used to, going, watching a
tutorial and tutorial will walk you through how to build the project.
But Apple's, WWDC videos are not that at all.
Leo Dion (host): No, no.
Danielle Lewis (guest): It's been interesting to.
They do a really good job of introducing you to what's new and
what they're doing, but they're not necessarily going through
here's how you build this project.
Leo Dion (host): They sometimes have the sample projects that they
update every so often, but yeah.
I, this, the thing that I've struggled with is, and I don't
know at the time of the release of this episodes, it'll still be
true, but just APIs that I'm looking forward to aren't quite ready yet.
And it's okay, I can't really do anything with
this because it's not even.
We're at beta two here, and I still can't do it.
So that's been the biggest struggle for me.
And then of course, all the stuff with swift concurrency
for sure with Swift six.
That's been a big thing that like I'm still, I feel like I've been
working on it for a year and I'm still working on it even after dubbed up.
So it's yeah, I'm still wrapping my head around that.
Danielle Lewis (guest): I have to begin, but yes.
Leo Dion (host): I have to be.
Yeah, take your time.
Take your time.
Trust me.
I wanted to hop back a little bit.
So did you get into software development?
Was it like the Apple stuff they got you started on it or was there some
other stuff you had done before?
Danielle Lewis (guest): Yeah, I started doing, there's a University
of Helsinki course it's called Java.
I think it's massive online open course.
It's free, it's online, and it walks you through Java.
I was reading a lot of feedback.
I did a lot of research and wanting to get into software development and
Java seemed to be a really popular and good language to start out with.
So I was just doing like console projects and Java until I saw WWDC last
year and immediately switched over to Swift and haven't looked back since.
Leo Dion (host): Do you miss Java?
Danielle Lewis (guest): No.
Leo Dion (host): Yeah,
Danielle Lewis (guest): No, not at all.
Leo Dion (host): I have done very little Java and I'm not a big fan of Java.
Like I am not, I think there's a lot of great programming languages out there.
Java's done on my list of great programming languages.
Just, yeah, I've that's funny that you started with that.
I could see how that would be a, that would be a good job.
That would be a good resume builder.
But I'm not sure I'd wanna work at that company.
So yeah.
But what was the thing that you were like, oh my gosh, swift is so
much better than this Java stuff
Danielle Lewis (guest): Oh my goodness.
It's like plain English, it was so fun to work with and learn because I didn't
feel like I was like typing gibberish.
It was very readable.
It was very approachable and things just made sense, especially with
swifty YI mean, if I want text on the page, I write text and
I put the text, it just simple.
I just, I love swift.
Love it.
Leo Dion (host): Maybe now that's like a good segue to talk about
the other thing you're working on.
Should we do it
Danielle Lewis (guest): Mm-Hmm.
Leo Dion (host): all right?
So you're now picking up your third programming language.
Now, is this
Danielle Lewis (guest): I guess, yeah.
Yeah.
Leo Dion (host): People may have heard of it.
It's called Objective C Danielle, YI.
Danielle Lewis (guest): I got an internship with Disney for the
summer, so I'm working with them.
And it was actually supposed to be a backend internship, so I
was supposed to be working with Java, PHP Go, stuff like that.
But the team I'm working with got assigned a iOS project
and so I was super excited.
I'm the only iOS developer on the team.
I wasn't expecting to be doing iOS, so it was a blessing.
I was super excited and ecstatic about it, but I found out.
Very shortly after that, the project is written entirely in objective C and UI
kit, which are two things I've avoided this entire past year of learning.
Leo Dion (host): Here you are doing Vision Pro and Swift with concurrency
and they're like, here we got a iPhone SE model first model with a home button
and we need it working in objective C.
Yeah.
Great.
Danielle Lewis (guest): Yeah, it's been, honestly, it's been fun though.
So Paul Hudson, again, I'm, I mentioned his name a lot so
far, but incredible educator.
He has a book called Objective C for Swift Developers.
So in that book, I'm using that to just learn objective c, learn
a lot of the ax changes and stuff like that to help me do my job.
But the book is great because it teaches you a lot of the history
of where things in Swift came from.
It helps, put two and two together.
So things like how integers worked and how, the.
The past of integers.
32 versus 62 bit architecture and how that changed what
we could do with integers.
Like all this really fun, like factual history of the
language that I'm learning.
It's actually a lot more fun than I thought it would be.
It's really not as bad.
So I'm actually enjoying it so far.
I would never do it over swift, absolutely never.
But it's not the nightmare that I expected it to
Leo Dion (host): So you don't have to answer all these questions,
but I'm gonna ask anyways.
Which app is this?
If you mind me asking?
Danielle Lewis (guest): Yeah.
I'm not sure that I'm allowed to speak about, yeah.
Mm-Hmm.
Leo Dion (host): I didn't think so.
I figured I'd ask.
Yeah, 'cause I can't you don't have to answer this.
You can.
Danielle Lewis (guest): Mm-Hmm
Leo Dion (host): Hype, do poker face here.
But yeah, I would imagine it's probably not the streaming app,
because that's been around long.
Alyssa's built on all the older stuff, so Yeah, I, I don't know I'm
sure Disney has, people don't know that how much Disney's into tech,
but they are into tech quite a bit.
Like even when Walt ran the company, they were into tech doing all
sorts of stuff with animation that.
Was pretty cutting edge yeah.
I'm not surprised.
Yeah, I had a, so I'm gonna plug my own stuff.
I did an episode with Graham Lee about objective C and
just the history of that.
And that was really he really knew his stuff.
And like the part about how like computer industry of
the nineties, for instance.
I was much more concerned with being able to rewrite code as it's running.
And that's what the power of objective C was back then.
And Swift now in the 2020s, right?
We're all into like statically typed, compile, break it, compile
time, don't break it runtime.
And so they, it's okay, now I understand, and this is why people
call, I think a lot of objective c.
Developers don't like Swift because it's so strict.
It's no, it has to be this type.
It has to be this because we want things to break at compile time.
We don't want 'em to break at runtime.
Whereas like in objective C, it was like, oh, who cares?
If it's nil, you just check if it's nil and that's how you do it at runtime.
So it makes total it's interesting, the different perspective, like you can.
can love or hate both languages or hate both languages, but they're
different for different reasons, for different times of the industry.
And so that, that's super helpful.
Are you doing you said the app is all an objective.
Is it like, are they like, has to stay in objective C
or keep writing an objective seat, don't change anything, or
Danielle Lewis (guest): Yeah.
It's an internship,
Leo Dion (host): yeah.
Danielle Lewis (guest): Yeah, I'm only there for a short amount of time
it's an internal app it's not anything guest facing, so it's really not a huge
priority for, I'm the only developer working on it in this gigantic company.
Yeah, I'm not, I don't have any, plans right now to, switch it over to Swift.
Leo Dion (host): Yeah, I mean are you ever oh man, this
would just be easier in Swift.
Can we write like a bridging header and then do it that way?
Do you have that ability or are you just eh, I'm just gonna
keep it in obstructive sea and not try to rock the boat here.
You know what I mean?
Danielle Lewis (guest): yeah, no, totally.
And I would have that ability, but I'm really using this as a learning
opportunity to learn objective C.
Like I was not gonna do this on my own, I promise.
So I wanna learn and get as much exposure to objective C while I
have this opportunity as possible.
Yeah I'm just going with it.
Leo Dion (host): So the other thing I was gonna say is I wrote a whole,
I did a whole video on migrating your code base from Objective C to Swift.
And yeah, like I did that video two years ago and now with the Async Await
stuff and concurrency, I just, ugh, I gotta do a sequel to it because I don't
even know how you'd get around that.
Like with GCD and a syn away, like that's gotta be a nightmare.
So I haven't gotten into that yet, so I can't speak to it, but what, okay.
What do you like about Objective C over Swift?
Let's start with that
Danielle Lewis (guest): Like you said, it's a lot less strict, which
could be a good thing or a bad thing.
But.
It's a lot more free flowing and like easygoing in a sense.
It's not throwing errors at me as often.
So that's cool.
But then again, there's a reason that Swift is so strict, it's trying to
keep you from breaking things, right?
It's a give and a take, but I do enjoy that.
It just lets me do whatever out if it's broken when I run the app.
Leo Dion (host): Do you, is there anything about UI Kit
that you're like, oh my gosh, this is so well I should ask.
Okay, it's UI kit.
What are they using for the ui?
Is it all coded or storyboards or what?
Danielle Lewis (guest): So the UI kit stuff, I'm still a very
confused on UI kit is like objective C isn't the nightmare.
It's UI kit.
That's the nightmare for me right now.
Assuming it's storyboard, like they have storyboards, they
Leo Dion (host): Okay.
Danielle Lewis (guest): Yeah, so I think it's a little bit of
both because there's nine repos in the project and they all do
have something different going on.
I've noticed like the storyboard files and some of the repos and coded UI and
others, but I'm just trying to make my way through it and figure it all out.
Right now
Leo Dion (host): Are you, what version of Xcode are you using for this?
Is it still
Danielle Lewis (guest): I'm using 15,
Leo Dion (host): good.
It's not I was just scared that it was like one of these apps where it's
oh, it works, but you have to run in an X code 10 because it's so old.
Okay, good.
That's a good thing.
Danielle Lewis (guest): It, when I opened it up, it like gave me the
option to migrate everything I need to be migrated so that I could use
it in the newer version of Xcode.
So I just hit yes.
Leo Dion (host): Yeah, yeah, yeah, yeah, yeah.
Anything else you wanna talk about before we close out?
Anything you've learned along the way that you wish you knew, or
any resource you wish that was out there to help someone like you?
Danielle Lewis (guest): I want to encourage as many people as
possible to learn in public.
I.
That has been the single best decision that I've made
in, on this journey so far.
Like I wouldn't be here on this podcast.
I wouldn't have this internship.
I wouldn't know most of the people that I know who have
been helping me out so much.
I've had people from the community like hop on calls with me at 11:30 PM
at night helping me debug code that I'm stressed out about, I would not
be where I am today, if not for the community that I've built by just
learning and building in public.
So if I could give anybody any piece of advice, it'd be to make sure
that you're putting yourself out there, you're learning in public,
and you're creating community.
Leo Dion (host): Yeah, I agree completely.
Speaking of learning in public, if you wanna watch me miserably fail at
something every Tuesday morning, EST 9:00 AM I live stream, my pathetic
attempts at whatever I'm working on.
Gotta plug that while I'm here.
Do you, have you tried doing any live streaming or anything like that?
Danielle Lewis (guest): I'm a very nervous I.
Not the most social person.
So I'm still in the process of getting more comfortable with,
even like I made a YouTube channel, that was a big step for me.
Blogging another big step for me, so I'm trying to ease
my way into to more things.
So maybe, soon I can muster up the courage to
Leo Dion (host): If you do, I'll plug it.
So let me know.
That sounds, that sounds awesome.
Yeah.
Danielle, thank you so much for making the time to come on.
This was fantastic to hear your story.
Where could people find you?
Danielle Lewis (guest): Yeah.
So I'm on Twitter at d lewis Dev.
My website is Danielle lewis.dev.
You can find me.
All of my projects there, my portfolio.
Yeah, those two places.
YouTube at d Lewis Dev as well.
Leo Dion (host): Awesome.
Thank you again.
It's been fantastic and hopefully we'll have you on again sometime soon.
People can find me on.
Yeah, you're welcome.
People can find me on Twitter at Leo g Dion.
My company is break Digit.
If you're watching this on YouTube, please and subscribe.
And if you're listening to this on a podcast player please gimme a review.
Let me know if there's something you want me to.
Have on a certain topic, certain guest, maybe you have a talk you're
gonna put, be putting together and you wanna fail on my podcast
rather than at a conference.
Come on the show.
Thank you again and I look forward to talking to you at the next episode.
Bye everybody.
I,