General question about learning ios development


my name is Dongwoo and I just started learning Swift and iOS development about two months ago. I read and practiced a swift book as much as i could and did a little bit of Udemy ios bootcamp but the way i did was mostly following instructor’s code but when i tried to build my own without looking at any tutorial codes, i just could not…i can use certain part and put those codes together to make things work to certain level but it gets lost at eventually…so i tried to understand each line of codes that instructors writes on videos courses and it was taking me forever to go through the course…so my question here is that what is the best way or better way to get to the level where you can make your own from scratch without having to need too much of tutorials?

I appreciate your help!


In one word: tinkering.

Rather that start a new program from scratch, spend some time making changes to one of the tutorial programs you built. Since you start with a working program, you can make one change or addition, then immediately run it and see if it works. When it doesn’t, you can go back and focus on just the change you made, since you know all the rest of it is working. I think it makes learning how to use all the tools and resources that are available much easier, so you can get lots of practice at creating programs and making your code work.

1 Like

@bdu157 Thanks very much for your question!

Your situation is not new, and many people like yourself are trying to figure out how to get started. Here is what I would suggest you do to get started:

  1. If you decided one day that you wanted to write the next best mystery novel in French, what would be the first thing you need to know? French! In the same way, if you are trying to be an iOS developer, the first thing you need to know is Swift. For this reason, I would advise you to take some time (about 3 months) to get a strong handle on the Swift language. If it takes less time than that, great. However, I would not rush this, because having a strong foundation in Swift is very important since you will be relying this skill CONSTANTLY.

  2. I would focus on learning UITableViews inside and out. Learn it thoroughly. Why? Almost all apps utilize the UITableView to allow the user to choose from a selection, so make sure you know this very well. I cannot stress this enough. The other benefit of knowing UITableViews is that it forces you to learn multiple concepts (e.g. the delegate pattern, use of xib files, creating custom UITableViewCells via subclassing, transferring data from a cell to a UIViewController, etc). Take your time, and really, learn UITableViews thoroughly.

  3. Learn Auto Layout. You cannot learn iOS development without knowing how to design the UI, and in order to know how to design the UI, you need to know Auto Layout. It’s that simple.

  4. Learn URLSession, and know how to do connect your app to a REST API. Most if not all apps utilize networking of some kind to connect to the cloud, in order to either utilize data, or connect with other users. For this reason, it is crucial for you to learn networking using Apple’s URLSession API.

  5. Tightly connected to 4. is to learn how to parse JSON properly using the Codable protocol that Apple introduced in Swift 4.

Once you’ve gained a solid understanding of the above 5 concepts, you should have a lot of confidence going forward to learn other areas. Do not be intimated, or frustrated by your struggles. The key is to be persistent, and not to give up when you hit a road block. All developers when working on a project get stuck, so this feeling you’re having right now is something you’ll go through again, and again. Get used to it! The benefit is that you’ll get tremendous satisfaction after you solve your problems. :slight_smile:

I hope this helps!

All the best!


Thank you for your answer. I appreciate it!