Empower Apps

In this episode, Leo chats with Youtuber and Educator Stewart Lynch about his journey learning and teaching Swift and what's he sees are the best ways to learn a new API.

Show Notes

Guest
Youtube Video - https://youtu.be/gH3QnVHsUAc

Related Episodes

Related Links

Sponsors

Linode
A cloud experience developers love
  • Great for Setting Up a Backend for Your App
  • Variety of VM Configurations and Settings
  • Reasonable Pricing Starting at $5 per month
  • Global Data Centers
  • The Developer Cloud Simplified
Try it today with this special link:
https://www.linode.com/?r=97e09acbd5d304d87dadef749491d245e71c74e7


Check out OrchardNest Today:
https://orchardnest.com

Show Notes

  • Understanding Different Mental Models
  • Why getting a good foundation is important?
  • Have a reasonable goal and expectations
  • Break your app idea into smaller parts centered around specific APIs
  • How to be a good mentor and good mentee

Social Media

Email
leo@brightdigit.com
GitHub - @brightdigit

Twitter
BrightDigit - @brightdigit

Leo - @leogdion

Reddit
Leo - /u/leogdion


LinkedIn
BrightDigit

Leo

Instagram - @brightdigit
Patreon - empowerappshow

Credits

Music from https://filmmusic.io
"Blippy Trance" by Kevin MacLeod (https://incompetech.com)
License: CC BY (http://creativecommons.org/licenses/by/4.0/)
Thanks to our monthly supporters
  • Bertram Eber
  • Edward Sanchez
  • Satoshi Mitsumori
  • Steven Lipton
★ Support this podcast on Patreon ★

Creators & Guests

Host
Leo Dion
Swift developer for Apple devices and more; Founder of BrightDigit; husband and father of 6 adorable kids
Guest
StewartLynch
Focussed on iOS development and helping others improve their coding skills.All Social Links: https://t.co/d046J5k2jb

What is Empower Apps?

An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.

Thank you for joining me for another episode of Empower Apps. I’m your host, Leo Dion.

Today, I am joined by Stewart Lynch.

Hey, Stewart. Thank you so much for coming on the show today.

Hey, thanks for having me on.

We have a lot to talk about.

But before we begin I’m going to let you go ahead and introduce yourself.

Okay. Well, my name is Stewart Lynch.

You can tell by my looks I've been around for a while.

Yeah. Actually, I didn't...

If you're interested in how I got into iOS development,

I didn't really get into it until after my second retirement.

I spent a lot of years working up to the dive into iOS development.

I spent 11 years as a school teacher.

2 years as a district helping teacher trying to get other teachers

to integrate technology. That was back in the 80s.

I spent 3 years in hell as a high school vice principal.

and then another 16 years as a Director of Technology for two different school districts

before I took an early retirement and then joined a software company.

Canada's largest software company.

I played a number of roles there including doing some

after party or value added software development based on the platform that this software company,

their platform, and taught people how to code on that platform.

My background is really in teaching other people how to use technology and how to develop.

After I got let go of that job when they downsized,

I started learning iOS development. That was just when Swift was released in 2014.

Yup. That’s where I started.

And 2 years ago I guess it was I started a YouTube channel just to share

my thoughts on software development and in the iOS environment.

Yeah, folks who haven't checked your YouTube channel out definitely do.

The link will be in the show notes.

What it is like being a YouTuber? What was the biggest challenge getting started there?

Well, I had done YouTube videos for this company so it wasn't new to me

because I’m always dealing with topics that I know a fair amount of in those days.

I mean, I was just basically going through this product. I did all their product videos.

It took me quite a while to get the confidence to be able to share what I

thought I knew in iOS development.

I think that's probably what has increased my ability to be able to develop

in a logical fashion was being forced to put my thoughts down.

I mean, a lot of people do it in blogs. I do it in videos.

Got you.

You know, that was just a...

It was a goal of mine to try and share.

I've always shared so that was just something I decided to do.

One of your latest set of videos has been building this top headlines app.

Do you want to explain how that's been going?

Yeah, that...

Let me back up just a little bit. When I first started doing YouTube videos

the whole theme was to do things, to teach people

not to have the bad habits that I had when I first started out.

And so, most of my single videos are of on fundamentals that

tried to dig down to follow the documentation a bit to understand why

some things work the way that they do, and not just copy and paste code.

But really to understand why you have to do something or why you do something one way.

I built up probably close to 100 videos just on single standalone topics on iOS development.

- And they are pretty much...
- Wow!

They are Swift based but any of the UI stuff is SwiftUI.

I made that decision not too long ago to basically focus just on SwiftUI.

And so, eventually you start to run out of those fundamental topics

so I started to put together a few playlists on some things.

And then, I decided to, okay well,

let me try and focus on what might be someone's portfolio app that will focus on a particular topic.

So go through something that takes it through but doesn't take any shortcuts.

Oftentimes you'll see people that they'll... They'll do videos

on YouTube and then they'll have print statements in the place of where there might be an error.

And they all say, “No, you shouldn’t do this in real code.”

And so I thought, well, that doesn't help people that are starting out.

What I'm trying to do in my short 3-4 video series are basically take people through

concepts that they might be proud of as a portfolio app but also demonstrate that

this could be a piece of a real app because I'm covering error handling in many cases.

I'm doing things as to what you might want to do

so that your app is going to be presentable so that you could take those concepts

and throw them together into your pet project, your bigger app.

The headlines one too was

one that’s, okay, we're on the cusp now of going from iOS 14 to iOS 15.

If I have an app right now, how can I make sure that

I can start to take advantage of some of the iOS 15 features

yet still maintain my user base that have not yet updated.

The whole theme behind that one is to conditionally apply iOS 15 techniques

yet still have a target that is iOS 14.

- Okay. Got to make sense.
- That was the theme of that one.

Well, now that you talked about getting good habits

I figured let's get into the meat of our discussion today.

We're talking about how to learn new stuff.

Because over the last year I’ve been trying to deep dive into a lot of

new APIs and learning new things.

I think a lot of us have obviously been jumping into SwiftUI.

That's been a big one.

Of course, I recently turned 40 and I want to stay fresh.

I recently turned 70.

Sshhh. You are not supposed to say that.

I’m still trying to stay fresh.

Mr. Second Retirement over here.

Yeah, and this is episode 101. This is the third anniversary of the show.

I think if there's anything us developers have to run into is learning new stuff.

One of the big, big challenges that I've faced has been

I don't want to say like breaking bad habits

so much as like wrapping my head around a new way of doing things,

and that's especially the case with SwiftUI.

Actually, I do remember doing MVVM

whenever I've done anything in JavaScript or when I was doing…

Do you remember Silverlight? Do you remember Silverlight? Okay.

Yeah, actually I do.

You do? Okay. I used to do Silverlight back a hundred years ago

when I was a .NET developer.

And that was very much like two-way data binding in MVVM.

And then I became an iOS developer, right.

and it was like no MVC is the way to do things and UIKit and all that.

There's the crazy people who do reactive, right?

And now we're all going over to doing SwiftUI and now I have to rewrap my brain around

the way I have to do stuff using Combine and data binding and things like that.

I think that's a big challenge for a lot of folks especially those of us who have like

habits and ways that we do things is trying to do weight things a new way and adapting to that.

You'll hear old Objective C developers, right,

who are just like, “Oh, I hate Swift. It's so strict. It’s so tough.”

What are some ways

folks like us can learn these new things and wrap up or like

reconfigure the way we code essentially?

That’s a good question you know because I don't...

I don't think that my audience is necessarily people who are

experienced developers.

My audience is more people who are starting out in developing bad habits.

You don't have bad habits. You just have different habits.

It’s a little bit different.

I guess I get intimidated by people like yourself because

I don't feel I have an awful lot to offer someone like yourself.

Although sometimes I do get feedback from experienced developers

saying, “Yeah, that was great. I didn't realize that.”

You tend to forget that when you yourself are deep into a particular architecture

that that's really all you know.

In fact, you don't even know all of it. You know a small piece of it.

And you have done things one way for so long

that you don't necessarily know that there might be another way.

I love reading these I learn type things from people on the tweet.

because I'm a big Twitter follower.

I'm saying, “You didn't know that? I mean, I knew that right from the beginning.”

You tend to forget that people develop these habits

that are really difficult to break out of and to do other things, right?

I think that the biggest thing is to have an open mind

and experience other people's content

just to see what it is. Now,

I may not be the best example

because I take things pretty slow so I recommend people who watch my videos at 1.3 speed there

or faster and then just slow down when they need to

because I try not to leave out any gap. If you're just starting out

you can code along with me because I'm going through things

and I’m explaining them and highlighting them on the screen.

But someone like yourself could get through my stuff really quickly.

And you never what you can just pick up from somebody.

I have... Myself have kind of graduated from

watching a lot of YouTube videos from other content providers and now

more myself reading blog posts because

I'm at that level that I can understand that stuff a little bit better

whereas I'm a more visual learner.

Just the other day there I'm watching something from Sean Allen on

because I’m sitting around and I’ve got nothing better to do.

I'll start to watch some YouTube videos and I'll speed his up and watch him as well.

You just pick up these little tips and things that are just like, that's brilliant.

I hadn't really thought about that.

- Yeah, that's what I find super helpful.
- That’s a different way of doing things.

If there's anything from watching someone else, it's not necessarily,

when it's content that I already know,

it's finding out all these new habits and tricks that you didn't know about.

Like you are saying when you were watching Sean, right?

Right.

Yeah.

And then I'll try to incorporate them and share those.

Obviously, I’m really conscious about

stealing somebody else's ideas and trying to claim them as my own.

I’m super conscientious about that.

So all of my videos if any of the stuff that I'm presenting originated from somebody else,

I'm going to give them credit for that because I think that's really important.

It's just that I might have a different take on it and a different presentation.

So there is no one way to learn.

For example, when I decided that I was going to try and learn Combine.

I actually tried to do that right out of the box

two years ago.

- Yeah, two years ago when it was released, right?
- Yeah, two years ago.

- Two years ago.
- Yeah. Crazy.

And so I bought the,

I guess it was Marin Todorov’s book from Ray Wenderlich.

Yeah.

I just couldn't see the point of it. I just could not see the point of it.

Yeah.

And so I went through it but there was nothing practical there.

It was all just way too theoretical for me.

And then...

And then Mohammad Azam, he basically took that book and did it as a video series.

He does a lot of that where he'll take other people's content and put them out as videos.

He’s upfront about that. And that was a little bit better for me.

And then I signed up for...

Oh, what’s his name?

Well-known Swift content provider who has a Swift Combine course.

Oh, I can't remember now.

Anyway, it wasn't cheap.

It was a book or a course?

Course.

Okay.

It was... Oh gosh, I can't even remember the name of it now.

- That's okay.
- Anyway, it was...

It quickly got over my head.

Are you searching for it?

I am searching for it. Yeah. Go ahead keep going.

Anyway, I got to that and it was over my head before I knew it.

And then, you know, this is my third attempt at it, right.

And so then I decided okay I'll find another one and then I discovered Karin Prater,

who has a course on Combine.

Okay.

That really was good. It was practical and bang I got into it.

And then I got...

And then I got Dim Sum Thinking’s book on Combine Kickstart.

- Yeah.
- Daniel's.

A completely different take.

It's great. I'm getting all these different vantage points on it.

And then, Mark Moeykens comes out with his book that is really quite brilliant

if you like those kinds of presentations.

And finally, it was after all of that I decided okay maybe now I can do a video on it.

So I wrote, I did a video series on taking a normal SwiftUI app - a to-do app.

What is it called? It’s called Not Another SwiftUI To-Do App

that I built completely out in SwiftUI

and then I completely convert it to Combine.

In fact, what I'm doing, I'll be doing in September. I've actually

recorded the videos but haven't recorded the audio yet

is taking that same SwiftUI app and converting it to,

not async because it is not async, but using iOS 15 features.

- Got you.
- Basically, you’re taking the same concept

but doing it in different ways. I think that's the best way to sort of

experiment with things, on how to learn things is to let's take a different approach.

Let's dive deep into a technology. But,

boy, it's a huge commitment especially with Combine.

And now with the async await

a lot of that stuff that I was thinking of in Combine

I'm not necessarily using it now in that aspect, right.

I don't know. There's just so many different ways.

I’ll say you took it from so many different perspectives.

We've had... Marin was the last guest I had on.

Like, I understood that stuff and it was easy for me to understand

once I figured out the reactive way of doing things.

But like...

Yeah, it is interesting that Karin was the one that really like hooked you

and got you interested it in and you understood the concepts.

I think that’s one of those similarities I think with “experienced” developers

and people who are new at this stuff

is we all come at it with certain assumptions about how it works.

And then that’s what I find. When I was doing this the Stripe API

or the StoreKit and it's like well this is what, you're just giving money and then

here you call the API to charge the credit card.

It is like no, no, no. You have to check the receipt and do all this stuff.

I was like, oh, now I understand the mental model of

getting actual money and having people buy your product.

Now, it's like, okay I get it - you have a customer, you have a product, you have a price.

I think that's one of the things about rocking these big APIs.

And it seems you really specialize in like,

making sure people understand the foundation first, right?

Because that's one of the problems I end up getting myself stuck

is when I try to integrate different things together like,

“Oh, how do server side Swift but also with Stripe.”

And it's like, "No, no, no. Slow down. Get a foundation first."

Well, when I first started out doing iOS development,

when I took one of these courses that were like learn 12 apps

and become an iOS developer kind of thing.

Oh...

You know, it was great as an overview.

But, boy, it really didn't do me any favors in the long run.

And my modus operandi, and I've got 12 apps on the app store.

None of them...

I mean, a few of them are making some money but most of them are just

I'll scratch an itch. I built an app because I want to do something.

And each one has a different focus and that was kind of good.

But the code's not very good in any of them.

Maybe except for the last one. But the...

the way I did things, okay, so I needed to do...

In my wine app, I needed to scan bar codes and

be able to find the wine based on the barcode or something like that.

I would find a piece of code that I would just copy

and paste into my app and then

tweak it until it actually worked.

I had no idea what was going on. This may have been back in the Swift 2 days.

- Yeah, right.
- And so you come back to Swift 3.

And you just better hope that those upgrades, those migration things to actually work

because I had no idea what I was doing, right?

Whoops! I didn't have any try catches. Now you got to add those.

- Yeah.
- Have fun.

So, yeah, that whole copy and paste stuff.

You know, I don't... It just goes against my grain.

I don’t like watching people's content when they're providing too much of a boilerplate

and without me understanding what's going on in behind.

And I find that sometimes... And that that's me. That may not be for you.

For example, Ray Wenderlich's stuff. I'm a subscriber.

I get thier stuff.

But when I was first learning I didn't find it particularly helpful

because their starter projects were far too sophisticated for me at that point.

Interesting. Okay.

They were teaching individual concepts

but the whole backbone of that starter app

was way beyond the way that I had ever been developing things.

I had to take a bit of a step back. Now, I have no issue because I,

you know, whenever I get a starter app I dig down

to find out exactly what someone has done.

If I provide a starter app in my tutorials the first

two or three minutes is going through showing people exactly what I've done.

And by the way, if you don't know how to do this, here's a video

that shows you how to do that.

I have a single video that shows you this particular concept.

Yeah.

I think it’s really dangerous to try and to

just take content,

copy and paste from Stack Overflow or from wherever

and throw it into your project because if things change,

if the framework changes, the API changes

- You are left out there.
- Which they do.

Sorry?

Which they do quite a bit.

Yeah, absolutely. Yeah.

So, yeah, that’s a real danger I think.

One thing I do when I want to figure out how something works is

I might copy and paste it.

But what I really want to do is I want to understand it so I might

change a variable here, or look up the definition here,

or try almost, I don't want to say break it,

but figure out what the heck do all these things do.

Especially some of the older ones where you have a bunch of flags.

What is dispatch queue like GCD stuff? There's a ton of flags there and it's like

I want to know what each of these things do.

Why do you use them? Should I ever use them?

That to me is what's important. Because like you said, copy and pasting,

that works, but you're going to have to customize it.

You’re going to have to change things obviously.

That’s really I’m about is

when I do copy and paste it is I want to know what these lines do.

What happens if I change the string? What happens if I call this function etc.

and why is it in that order?

Yeah. I really love to option click and dig down into the documentation

and find out what are the default values for these particular parameters or arguments.

What are some other methods that might be for this that I could use

that might be a little bit clearer.

I think that’s a skill that you have to develop.

I think you really do have to dig into that documentation and find out

what are the defaults, how are things supposed to work,

and what are the expected outcomes that you should get.

What do you think are some other traps that you can fall into

when you follow tutorials or videos that might keep you stuck I guess?

Well, I think one of the biggest problems have is

when they're starting out in particular is that they have this idea for this app

and it's a fairly significant one. I mean, I'll get these

messages from people who want some help.

They've got this idea for this app that is multi-multi-faceted.

And they have no idea how to do it but they just start out.

They just start by coding without really having a game plan

on how to reach that end.

And, uhm...

And, you know, There's others that will just watch tutorials

and they'll never get off the tutorial track.

And then there's others that just jump in and all of a sudden

they start to add more features. It is just like they are plugging in

to try and get something from somewhere else that

there's no relationship between it. Or they've learned a concept

that was shown by one person that is completely different architecture

than what they've used yet they're trying to make it fit with theirs.

I think it's really important to start small and build.

You know, if you have an idea for an app

That's going to include

photos or whatever, an image of something that you're going to do then

focus first on building an app that can allow you to use a picker and a camera,

and to display that content, to save it locally, to reduce the quality

and perhaps zoom in on that photo or something like that.

- And then, nail that concept down

- Yeah.

and store that away. So when I'm building a new app,

I've got a folder and they're all 'something something dev'.

And within there I've got maybe 10 or 11 mini

you know, projects

that are focusing only on one particular topic that I want to cover.

Oftentimes when I'm doing that I'm learning, wow, I could end up doing more.

Because there's nothing worse than starting down a path and then

finding out that you can do more but realize that you haven't

coded it properly, the architecture isn't such that you're going to be able to integrate that

additional feature without doing an awful lot of work.

I think the more upfront work you do the better

you're going to your end result is going to be. It’s not a race.

Slow down a little bit.

But I know some people are in this.

You know, people aren’t like me. I’ve got no agenda, rigth.

I’ve had two retirements and so there's no rush for me

Others I know they want to get their product out

or they want to get a job in the community, in the iOS development community.

Maybe I’m not giving the best advice there but

if you really want to learn something I think the best advice is to slow down a bit.

I think the big problem with going fast is it only will work in one really tight use case.

And like, there is no flexibility.

Software is supposed to be soft. You're supposed to be able to change it.

And then, you end up being stuck.

Like, when you're talking about your photo app. Okay, it only works in that one case.

What if you need to change this little thing or add this feature?

Now you're kind of screwed. I think that's a big part of the problem.

When I was...

You know, This goes back to modularization. One day I will pronounce that word right.

But when I was doing the Stripe stuff it was important for me to separate

the Stripe API calls from the Vapor stuff

and not trying to integrate two really complicated APIs that I know little about

and be able to do that safely.

It was important for me to fully understand how the Stripe API works

before I integrate that with Vapor when I was doing purchasing and stuff like that.

Or like... with like... You know, like...

I don’t know. Just integrating multiple technologies.

It's important to understand them in their own separate ways but then

making sure that you can interchange parts easily so that way the integration and testing is working.

I think, yeah, like you said understand one component of that deeply

and then dive into the other component deeply and then figure out the integration after that

as opposed to just hacking the two pieces together.

Yeah, absolutely. Yeah.

I, you know, I...

I’ve had the pleasure I say of helping a few people out,

mentoring them, people that are not as experienced as I might be.

Invariably they have an app that they're working on.

It’s a particular niche and they want to get that app out.

And so they'll come to me with a particular problem

and they'll try and define it

though they're not always very good at defining what the problem is.

And they'll share their code with me and I'll

fix the problem for them or show them how to fix the problem, work through them.

And then after the fact they say, “Oh, by the way I want to be able to do this as well.”

Well, if I’d known that at the start

I would have taken a different approach, right?

At least they're a mentee and not a client though.

- When it's a client then it's even worse.
- Oh yeah.

Yeah, I can imagine that.

And so that’s tough. I think if you're ever working with anybody it's really clear.

It's important for you to understand what your end goal is

so that you can have everything in place. And if you're the mentor

- I think sometimes you dont...
- you need people to ask the right questions.

You don’t know what you don't know.

- I think that's part of the problem with this young
- You know, that's true.

younger developers or with a client what I find is

they know what they want but sometimes there's gray areas they didn't realize

that they need to be a little bit more specific about what they actually want.

Because once they start using it or start working with the app or coding the app

it's like, “Oh wait, I don't want it to do exactly that.

I actually want this to be different or this color to be different.

How do I change that? How do I add pull?

I thought pull to refresh is automatic. It just comes for free.”

And then they start using it and then they realize,

oh, they didn't mention that they need other things.

I mean, I think that just comes naturally in a lot of ways.

Yeah. Well, I guess the challenge then as the contractor or the mentor

is to be able to ask the right questions.

Right. Yeah, exactly.

- Because you tend to know what's possible.
- Right.

So by asking them, “Do you want to be able to do that?” And they'll go, “Yeah.”

Well, you didn’t mention that, right.

Yeah, exactly. I think it is a little bit

part of the mentor experience obviously would be to teach that

that’s a gray area they need to specify. But yeah,

with a client, definitely it's more necessary.

How did you become a mentor exactly? How was that experience?

I think just through my videos.

I actually participate in a number of Facebook groups as well that are

Swift development Facebook groups and Twitter.

And, you know, I'll answer questions.

The interesting thing is that

most of the people that I end up mentoring are older people

I'm talking older. Maybe not quite as old as I am but getting close.

I think that’s important when you’re looking for a mentor

is you have to be able to identify with that particular person.

Okay.

I never show my face on my videos.

but I do have this avatar kind of thing in every one of the titles

so people get a pretty good idea that I’m not a young person.

Maybe the way I present or maybe the way that I answer questions

people can resonate with me that are older and knowing that I'm not a threatening

person and so they'll reach out to me.

Yeah. And I'll help whenever I can. I'll dive into thier code.

I mean, normally I ask them to send me their code because

if they just send me a snippet of something it doesn't mean anything.

- I want to see how it all fits in the big picture.
- You need the full context. Yeah.

Yeah, yeah.

And so then I'll just dig into their project.

And sometimes we end up completely rewriting it.

Completely. Because they're not always large projects. They're fairly,

fairly small because that's the kind of people that are attracted to me.

People that are more or less starting out.

I start to build these relationships with people which is to me that's why I'm in it.

I think anybody who's a teacher who enjoys teaching they're in it for

personal gratification. We've got pretty big egos. We like to be complimented on things.

The biggest thrill I get is when I have former students of mine...

I only taught for 11 years but the first four years was in a

small high school that shut down after those four years.

And some of those students, I mean, they're only 10 years younger than me,

they are some of my Facebook friends now that are…

You know, I'm up, they're up, they're up on me, I'm up on them.

just to give you this feedback about the impression that I made on them as a teacher.

- That's awesome.
- And so,

Well, it is. It's a great feeling but that's kind of why we're in it.

I guess that’s why I do this is I like to get that positive feedback.

I mean, you get negative feedback which you do occasionally.

I mean, it's devastating but you got to work through that, right?

Right, right, right.

So, and that's why I guess when I do my videos I'm

super concerned about making sure. And here's an example.

I did

video series on the to-do app that

is now being updated to iOS 15.

And I completely misinterpreted. I'm not going to tell you what it was.

But I misinterpreted something.

and I did three videos, recorded them,

uploaded them to YouTube as unpublished because I won't release them till later on.

- Okay.
- And I was going to sleep

and I realized that I messed up completely on that first video.

I now have to pull all three of them and re-record the video,

re-record the audio, put them all together again

Because

I know that there's one guy in particular that is

going to call me out on everything that I do wrong.

You know, “Why did you do that? You could have done it this way.”

How are the YouTube commenters? Are they much better than the usual crowd?

Yeah, they are generally pretty good.

- Okay.
- They are pretty good.

But maybe that's just because the audience that I have they don't know enough to criticize it.

Because those who do, if I mess up something,

like saying, “Well, you're not really using MVVM.”

I get that a fair bit from some people because it isn't.

- It's a hybrid, right?
- Yeah.

I don't care.

I don't know if you know this. But programmers can be very much in the 'oh actually' crowd.

Yeah, I know.

There’s quite a few of those out there. Trust me.

Yeah, yeah.

Well, I've certainly learned. I think my first post on

Stack Overflow back in 2014.

Okay.

And I try and do all my research and,

you know, frame the question.

Actually, I’m getting really good quick responses on just about everything now and it's been great.

And so I haven't really experienced recently any of that negativity.

But the first one came back and he had re-edited

my entire post by correcting my spelling of XCode.

You knwow, with the capital x, capital c with a lower case, because that's absolutely wrong.

Other things were I contracted instead of expand the two words instead of one.

Boy that was a bit humiliating because it comes back

and it was completely corrected. And then he answered my question.

You know, but, anyway.

Yeah, Stack Overflow can be a scary place if you don't know what you're asking.

My biggest problem with Stack Overflow,

and I don't think it's Stack Overflow's part problem really or fault.

But, uhmm...

It's kind of a mess because it still has a lot of old stuff on there.

You'll end up with an answer to a question...

I actually don't ask a lot of questions on there on Swift

But I do when I do a Google search I'll find that there's a ton of like,

you get an occasional Objective C answer

but you also get the occasional Swift 1, or Swift 2, or Swift 3 answer.

Well, this is garbage for me. This is useless.

You have to really weed through the answers to find the one that actually fits for Swift 5.

I find that to be the biggest issue. I've actually found that when I Google questions.

Well, you end up with Paul, right? You will always have Paul's answers up there.

But then I’ve actually found a lot more like Swift forum answer or not Swift forum.

Well, Swift forum but also Apple developer forums too.

That seems to have crawled up and up in the Google search rankings in the last year or so.

So I find that a little bit more helpful in a lot of ways.

I don't know. Stack Overflow is not like it used to be 10 years ago.

Like I said when was a .NET developer and I was looking for an answer.

I find it a lot easier to look for answers when it's not Swift related

when it's like JavaScript or something else that I’m working on.

But Swift doesn't seem a good fit right now when I'm trying to look for an answer on Stack Overflow.

Yeah, and...

You got to look at the dates for sure when the responses are.

They are not always the correct answers either. And it's a...

It is a challenge definitely to go through them.

I found that many times though it's been very helpful for me so that's good.

But then now when you're trying to

dig into iOS 15 stuff

you don't know if you're doing it wrong or if it's a bug.

Yeah.

So I’ll often tweet saying, “I can’t get this to work. What am I doing wrong?

Or is this a bug before I file a feedback on it.”

Well, let’s talk a little bit more about iOS 15 in the next episode.

I think this is a good stopping point.

In the next episode, we'll talk a little bit more about learning iOS 15, and mentoring,

and finding good content, and learning from others and things like that.

Does that sound like a good plan for you?

Sounds good.

Alright. Awesome.

Well, thank you so much, Stewart, for coming on the show.

Where can people find you?

Probably the best place is on Twitter @stewartlynch. Everything that I do is basically @stewartlynch.

On Twitter it's @stewartlynch.

YouTube channel Stewart Lynch.

I do have a website. My personal company name is CreaTECH Solutions.

I’ll give you that link and you can link to it if you like in the show notes.

Awesome.

that has a link to all of my apps, and my YouTube videos, and courses

and stuff like that that people can go to and take a look at those.

Awesome. Be sure to join us for the next episode.

Stewart is going to be talking more about iOS 15, mentoring, and some other stuff about learning.

Folks you can find me on Twitter @leogdion. My company is BrightDigit.

Take some time to subscribe and like this video and also to post a review.

If you have any feedback let me know on Twitter.

Thank you so much and we'll talk to you again in the next episode.