Hey there, CodeNewbies! Happy to be here and meet some new faces. I joined Saron on this weekโs episode of the 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
Top comments (25)
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?
I would say minimum is going to be defined by two different things.
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.
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.
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!
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.
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!
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โ
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.
When would it make sense for someone to build in React Native instead of Swift?
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.
Such a good question Jess ๐
I was also intrigued by this question as I have been learning Flutter even though I already know React.
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?
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.
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?
That's a good question Gracie! These are the 3 most important questions that you need to ask yourself:
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.
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.
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.
How did you decide to teach yourself iOS development, as opposed to another route (like a bootcamp)?
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.
What is the most fun iOS app you've ever worked on?
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
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?
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.
Why do you enjoy iOS development much more than web development?
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.
Heyo ๐๐ป
Whats your opinion about meta-programming in Swift 5 ?
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