Bulding an iOS App
Building an iOS App
It’s been a while since I last posted but I feel like a few decent things has happened since then. I have been on this stint on trying to just improve myself as a tech and gain more skills.
I received my AWS Developer Certification which I think was a huge accomplishment for me. That test was definitely hard
After getting my cert, I got right to work and started working on an iOS app, with the pure intention of being able to add it to my portfolio.
I wanted to make something that always bothered me regarding recycling machines. I noticed that there is no public record of where the recycling machines are in NYC, and that no one knows what their condition is. You only figure that out until you get there.
So this put me down the rabbit hole of trying to make my first iOS app and post it to the Apple App Store.
I first tried going with Swift….but…Swift is HARD.
So I went with React Native instead.
Choosing React Native over Swift
Besides just not having to learn Swift, I chose React Native because:
- I can adapt my code for both iOS and Android at the same time
- It’s in javascript so I am way more familiar with coding this
- There was way more support and forums online for react native compared to Swift.
Don’t get me wrong, I tried learning Swift, and I specifically chose SwiftUI since that seems to be the new favorite amongst devs: https://developer.apple.com/tutorials/swiftui
But by the time it got to introducing UIKit in the tutorial, I just really had a hard time grasping it. I found it frustrating that wrapping UIKit with SwiftUI in order to create some fancy middle man to translate the two frameworks to each other was overkill.
I wanted to learn to make GUI’s rather than understand why
So that’s when I instead opted for React Native. It was definitely way easier to learn and more approachable in my opinion.
Of course though I have to give a huge credit to ChatGPT for also guiding me along the way.
I’ve read different versions of this quote but essentially it goes something like this:
Facing My Own Doubts
Don’t Be Afraid To Walk a Lonely Path To Success
There were definitely a variety of moments that I doubted my skills and ideas as a person who loves tech and programming. I kept doubting my ability to make something useful, or at least something worth putting on the Apple App Store.
I would ask others if my app idea was dumb, but I eventually realized this was the wrong approach after hearing that quote recently.
Essentially, the path we choose when we want to work on something will get lonely. Not everyone will have the right answer on why you should use a for loop here rather than a while statement there, or what kind of design layout you should have for your app. These choices end up really coming down to you and your preference, which can be uncomfortable when you are hoping to get good feedback from others.
How To Progress In A Project
So to help me get through making my app I used a variety of things:
- Toning down my expectations and simplifying my code
- Making myself reachable daily goals and not worrying about the end product
- Asking ChatGPT for help for the basic code stuff and learning now concepts
- Always (or I tried to) limit myself to working on my code for an hour day.
- Set a definite goal and purpose for your project
I can’t emphasize how much it helped to make sure that I only worked on my code an hour a day, and always toning down my own expecations on myself and my app. This helped me be realistic with myself, but also give me time and space to think about new ideas to bring to the table the next day.
I also can’t state enough that the road can definitely feel lonely! There were times that I would ask ChatGPT about certain things regarding my code and what I could do when I was roadblocked and ChatGPT wasn’t able to answer me!
So there were definitely moments where I needed to motivate myself and learn concepts on my own. Which basically meant me Googling my way through tough spots where I needed to either refactor my code, or just through something out entirely and try something new from a different angle.
What also REALLY helped me was that I defined exactly what I wanted from my app.
I wanted to make an app to improve my portfolio. THAT’S IT. So I could really have made anything really, it could have been an app that just incremented a number, or an app that took pictures for you. But my end goal was that I wanted an app and to host that app on the App Store.
Setting that goal for myself helped me pulled back on trying to be that perfectionist. I caught myself too many times trying to make my code PERFECT and READABLE, and to make my app have features that it didn’t really need.
Once I stopped doing these overkill amount of workloads on myself, that caused me to burn out, seeing the end of the finish line was more feasable.
The Finish Line
Once I started to get near the end of producing my app, everything was just starting to click. I was so underwhelmed to be hoenst, because I said, “Wow, is making an app really this straightforward?” I used to overwhelm myself that making apps was hard and unapproachable for me! But I also felt so accomplished and I honestly feel like I could continue making apps in the future.
If you are interested, I followed this iOS Academy video on what you need to do to prepare your app for the App Store.
Also forgot to mention, here is my first app on the app store!
https://apps.apple.com/us/app/can-eye/id6471035637?platform=iphone
Final Thoughts
With all this said, if you are curious in building your own mobile app, definitely check out these resources to help you get there:
- React Native: https://reactnative.dev/
- ChatGPT: https://chat.openai.com/auth/login
- Simon Grimm on Youtube: https://www.youtube.com/watch?v=ONAVmsGW6-M&t=1071s&ab_channel=SimonGrimm
- MissCoding Apple Apps Tutorial: https://www.youtube.com/watch?v=xcn-0LyX6JY&t=962s&ab_channel=MissCoding