CodeNewbie Community ๐ŸŒฑ

Cover image for Iโ€™m Kyle Lee, iOS Engineer and Instructor. Ask Me Anything!
Kilo Loco โœŠ๐Ÿฝ
Kilo Loco โœŠ๐Ÿฝ

Posted on

Iโ€™m Kyle Lee, iOS Engineer and Instructor. Ask Me Anything!

Hey there, CodeNewbies! Happy to be here and meet some new faces. I joined Saron on this weekโ€™s episode of the CodeNewbie Podcast:

play pause CodeNewbie Podcast

As a tie-in to this episode about the entire process of building an app, Iโ€™m here to answer any and all questions you might have for me after listening.

Here are a few things about me to kick things offโ€ฆ

  • Iโ€™m a self-taught iOS Engineer with over five years of experience
  • I love teaching others about different technologies used in iOS development.
  • I created Kilo Loco Academy to help folks master Swift Programming

Ask me anything in the comments below ๐Ÿ‘€

Top comments (25)

Collapse
 
rlisenko profile image
Rob Lisenko

Hi Kyle, really enjoyed your story since I too began by learning web dev and am now focused on Swift to bring my app to life. Your tips on getting one's MVP out as soon as possible really helped me understand that part of the reason I've waited until I learn more comes from my wireframe which I drew up has way more features than "minimum" and it feels like I need to be an expert in SwiftUI to even start which overwhelmed me.

Any tips for how to decide what really is the "minimum" when your idea in your mind has gotten big?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

I would say minimum is going to be defined by two different things.

  1. Is your app at the point to solve any of the problems it was looking to address?
    Ideally, your app should have a core problem it's trying to solve and as soon as it solves even 5% of that problem, then your MVP is ready.

  2. Can you get the app approved by the App Store?
    If your app isn't unique enough in regards to solving the problem and there are many out there like it, then add one more feature and try to submit again.

Collapse
 
rlisenko profile image
Rob Lisenko

Thanks so much for replying to me! Your #1 question really challenges me, in a good way. It is a B-to-B app for Orthodontists, and years of working in software for their industry has made me assume they would not accept 5% functionality of the core of my product. That assumption should be challenged because delivering what I'm promising to help them with their patients itself is a huge nut to crack, even eliminating all the related functionally I included in my original wireframe.

I guess my question is, in double clicking on that 5% metric, would I be thinking of this delivering on my functionality for 5% of the various patients, or better to think of it as 5% of the functionality I want anyone to get. I apologize as this wording is cryptic and confusing without explaining the core problem, I guess I'm just asking your overall perspective on what 5% might mean, and any thoughts on that would be super appreciated!

Thread Thread
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

Without getting into what "5%" actually looks like, can you reach into your pocket, open the app, and make any part of your life easier? Once the answer is yes, ship it.

Thread Thread
 
rlisenko profile image
Rob Lisenko

Let me know if this sounds different than what you mean, but I think you're saying that as soon as this app can "follow the golden path" and their business can use it to help one potential kind patient, that I can ship it. I'll just need to make it very clear what that specific use case is, and how this is a beta which is still being built out to more potential patients than the one case where I actually got it to work!

Collapse
 
fdocr profile image
Fernando

Hi Kyle! How do you feel SwiftUI compares to UIKit in terms of how easy/difficult it is for beginners to build a basic MVP (as you mentioned in the episode)?

Iโ€™m curious to know how that initial learning curve might differ for folks that are just starting out and arenโ€™t biased towards โ€œthe comfort of UIKitโ€

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

I personally believe that someone just starting to learn programming should focus on learning UIKit. Most programming paradigms follow an imperative pattern so it's a useful skill to learn.

Additionally, UIKit is built the same way a lot of the other Apple provided libraries, so once you learn the pattern, it becomes much easier to learn the different 1st party resources provided.

Lastly, SwiftUI depends on UIKit for some core functionality still, so you will have to know some UIKit to get things to work with SwiftUI. I think it's easier to start learning one framework, over two, when you're just starting out.

Collapse
 
jess profile image
Jess Lee

When would it make sense for someone to build in React Native instead of Swift?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

The easiest answer here would be if the person is already familiar with React Native, React, or just JavaScript in general. Also, if you need to hit the market with both iOS and Android at the same time, but only want one code base, then RN can accomplish both.

My understanding is that RN can accomplish most app use cases, but may not be the right choice if you need extremely high performance/low latency in the app.

However, if you are just starting out, I would say that native iOS development is the easiest platform to get started with as there are many resources to choose from, a warm and welcoming community, and only requires a single download (Xcode) from the Mac App Store to get up and running.

Collapse
 
lee profile image
Lee

Such a good question Jess ๐Ÿ˜Ž

Collapse
 
andrewbaisden profile image
Andrew Baisden

I was also intrigued by this question as I have been learning Flutter even though I already know React.

Collapse
 
sheriffderek profile image
sheriffderek

I've been pushing for Progressive Web Apps whenever possible. It feels like MOST "apps" on my phone get download and then rarely used.

What would you say are still some GREAT use-cases for native apps? Or scenarios where they really shine?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

I don't now a list of apps off the top of my head but generally the argument is that whenever you're working with some type of resource intensive client side logic and need the fastest processing possible, then that's where native apps shine. Also if your app is working with the latest technologies, then it makes sense to go native so theres no wait for the cross platform adaptation.

Collapse
 
gracie profile image
Gracie Gregory (she/her)

What are some of the first questions folks should ask themselves after coming up with an idea for an iOS app they are excited about?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ • Edited

That's a good question Gracie! These are the 3 most important questions that you need to ask yourself:

  1. What is the MVP (minimum viable product) of my app idea that will still solve the problem?
    -- Understanding the problem you are solving and getting to the market as soon as possible will prove useful in a variety of ways along your journey with this app.

  2. What is the end goal of the app; is this a hobby or a business?
    -- If you plan on turning this app into a business, you will need to figure out how to monetize the app and know how to support your customers.

  3. Which platforms will be supported (i.e. iOS, Android, Web, Desktop, etc.)?
    -- The platforms you intend to support may determine which technologies you use when building the app as well as how you structure your code.

Collapse
 
andy profile image
Andy Zhao

How did you decide to teach yourself iOS development, as opposed to another route (like a bootcamp)?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

Lol, that's pretty simple. I had no money ๐Ÿ’ธ

I couldn't afford a $10,000 bootcamp and I definitely couldn't disappear from my family for 16 weeks. Teaching myself on a budget while upholding my current responsibilities was my only option.

Collapse
 
lianafelt profile image
lianafelt

What is the most fun iOS app you've ever worked on?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

Hmmm, hard to say. I really enjoyed working on the team and the codebase at Bird, but I think the most fun was the TikTok clone challenge that I did last year youtu.be/MCMhuY7dPDo

Collapse
 
ben profile image
Ben Halpern

Apple development involves a lot of UI. I find I see much more in the way of screenshots and videos. Do you find online resources get out of date in ways that can be confusing to learners?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

IMO iOS development is the most resistant to outdated resources. Most of the content out there has been created in the past 5 years and still holds up pretty well. Some things have changed, sure, but compared to the other platforms I've worked with, it's much more reliable in terms of finding a working solution.

Collapse
 
amanda profile image
Amanda

Why do you enjoy iOS development much more than web development?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

Well, I hate HTML cuz it's too repetitive. And I got burned too many times working with JS. Also, I was an Apple fanboy, so it was really cool have something on my Apple device.

I work with mobile in general now, and I just enjoy using apps much more than websites personally.

I actually prefer more logic based code as opposed to UI, which is kinda hypocritical to say as a mobile dev, but it's the truth. If I was forced into web dev, it would definitely be backed stuff.

Collapse
 
timocmd2 profile image
Timo Sarkar

Heyo ๐Ÿ‘‹๐Ÿป

Whats your opinion about meta-programming in Swift 5 ?

Collapse
 
kilo_loco profile image
Kilo Loco โœŠ๐Ÿฝ

Not sure what that is, but if you're interested in it, then you should just follow your curiosity as you might learn a skill that could be valuable in the future