They don’t want you to be an iOS Developer! They don’t want you to win! But they key is never give up and guess what?
I DID IT!!! I built my first app!!! It may seem simple…and it may be simple to “them” (Thanks DJ Khaled). But this is my first major accomplishment as an iOS Developer.
Project 1: Our first project assignment was to create a To-Do List App with add, swipe to delete, and edit functionalities. There were a few more requirements like using OOP and allowing the user to check off items but I won't give you the long list. It's also important to note that when working on this app, we hadn't yet, learned Autolayout so we were eyeballing the constraints for the app. In the coming weeks I plan to go back to the project and add new functionality and features we learn through the course. You can see the demo below:
If you are like me and are completely new to programming, I stand in solidarity with you. Boyyyy this was not easy! It seems so simple upon completion, and even days later once I've learned the concepts necessary to build the app, but I during? I had flashbacks to my thesis days. Now that all is said and done, I can confidently say that project 1 was confirmation that I can do this and that I want to do this as a career! Of course, with the completion of every project, there is learning and that's why I'm writing this post. I had four major "aha" moments while building my project, and they weren't about the code itself, they were about how to code and how to learn in the future. For any aspiring programmers or beginners like me, here are 4 Major Keys to Building Your First Mobile App:
1) Learning to code is learning to learn.
Google is an amazing resource, but it is outdated. What? How is google outdated? Great question! Well, the truth is programming languages evolve so rapidly that resources aren’t always up to date. Google doesn’t have the answer, but it does have the path to the answer. If you Google something like “edit text in UITableViewCell”, you will likely get a range of answers on Stack Overflow trying to tell you how to create editable text on a Table View Controller. However, you probably won’t get information to answer your question in the most recent version of Swift. You’ll have to use multiple resources to confirm its validity. Major key: Learning to code is learning to learn. In other words: if you're looking for a one time only deal in learning to code, you came to the wrong profession! Programming languages evolve. In fact, Swift was created to make learning to program easier. As a programmer, you need to be adaptable and comfortable with continuous learning.
2) The Internet is a look book for mobile app design.
Design is everything. When starting to build this app, the aesthetic was pretty terrible. I hadn’t yet learned how to code round shapes and the UX/UI color wheels gave me anxiety. But I learned a great lesson from a classmate during office hours: “you don’t need to go to design school to create beautiful apps.” Major key: the Internet is a look book for mobile app design. From the app store to dribble.com, you can grab inspiration for app design the same way you grab inspiration for clothing. Just look at examples! The more attention you pay to the look, the more realistic the app will feel. And the more apps you create, the closer you'll get to developing your own style. Design is yet another way to leave your creative mark on your products. I think its just as important to spend time looking up design templates and styles you like as it is to build the functionality of the app.
3) There’s no “right answer” in code.
Let me be clear, there is a wrong answer in code–I realized that every time Xcode crashed or I got a bug when trying to run the simulator. There's even a "sometimes" answer in code (more about that another time). But during this first project I learned about the range and creativity of writing code. There's usually more than one way to get any given functionality in your app. Two important questions to ask yourself are: 1) does this do what I need? 2) Is this succinct? For me (so far), if both of those answers are "yes," I'm in good standing. Major key: there’s no “right answer” in code.
4) What you learn from working with other people is invaluable.
People are resources. I am a first generation Nigerian-American. Relevance? Nigerians can be secretive. I love my people. We are beautiful, incredibly intelligent, creative, hardworking etc. But the number of secrets I was taught to keep from non-family members is astounding. These weren’t even big secrets. It all boiled down to creative and intellectual property. Growing up I was taught that my unique ideas were to be protected, not shared. And as it turns out this mentality is NOT conducive to peer learning environments. I learned this lesson growing up, but from time to time, I still feel a tugging in my chest when I prepared to share an idea. You can imagine the impact of this background on learning to code. But guess what folks? Pair programming is literally everything. Major key: what you learn from working with other people is invaluable. You have to share to receive. And you have to ask to learn. Learning to code at General Assembly versus learning to code on my own was an acknowledgement of the value of group learning. So if you think you have something to prove by doing everything on your own, think again. Whether you’re at home taking an online course or you're taking an immersive course, you’re not in this alone. Build a community/network of programmers and lean in. It takes a village.