i am new to iOS development. I have been unsuccessfully been trying to learn iOS app dev for the past two year and just not happening. I am jumping back on the horse an would like to know the best path to success.
Where to start?
How many videos to watch per day?
How many excerises to do per day?
I am looking for clear path to learn and succeed at this. Need some help.
This book is great whether you are completely new to programming, or whether you come from a different programming background and are looking to learn iOS development.
Even if you’ve never programmed before or if you’re new to iOS, you should be able to follow along with the step-by-step instructions and understand how these apps are made. Each chapter has a ton of illustrations to prevent you from getting lost. Not everything might make sense right away, but hang in there and all will become clear in time.
You are starting at a great time when there are several websites, videos, books and courses available to learn. While everyone has a personal routine, I can add that you need to read/watch/learn and then try that out to make sure that you have learned it well. Then repeat, that is something that has worked well with me and many of my students.
If you’ve tried this for two years, then the standard tutorials/materials are obviously not working for you, and doing more of it probably won’t work, either.
A few questions to get started:
what is ‘success’? For me, it was ‘spot an app I’d like to have, sit down, sketch it out in a couple of days, implement it to the point where I can use it’
what, exactly, isn’t working for you? If you think about an app you want to write: where do you get stuck? At the idea stage? Wrestling Cocoa Touch? Can you write individual elements, but not put them all together?
what complex skills have you learnt successfully? And what methods have you used to learn them? (After a lot of flailing I went and approached programming like playing an instrument - I needed to break things down into short phrases and repeat them until they became second nature: I didn’t just need to implement one tableview, I needed dozens.)
I completely understand your frustration, and you are not the first to feel this way. There are times even now as a senior developer I feel overwhelmed
Based on my experience, here is my advice to anyone getting started as an iOS developer:
Learn Swift. Make sure you understand the fundamentals of the language because this is the backbone, and foundation of all of your iOS work. Do not rush this. Focus on the language, and know it well.
When it comes to iOS development, I would advise you to focus on UITableViews. Learn this BACKWARDS. Meaning, learn it thoroughly please. Why? Because UITableViews are the most fundamental building blocks of mobile apps. Period. Check out the apps you use on a daily basis:
Most if not all apps display a list of some kind, allowing you to make a selection, which then leads you to a screen displaying the results of your selection
UITableViews utilizes the delegate pattern, which is a fundamental building block of iOS development.
You learn to pass data to another ViewController - very important
You learn to create custom UITableViewCells which forces you to work with multiple UIKit elements together. Again, very important.
Make sure you learn Auto Layout. Why? Any and all apps you build requires you to build for multiple devices, so you need to make sure the UI is attractive as well as consistent across all devices. Auto Layout is how you address this. You simply cannot build apps without knowing how to build a good UI.
Learn how to connect to an external REST API using the URLSession API in iOS, and parse the JSON response using the Codable protocol which was introduced in Swift, and then build model objects with the response. Most apps connect to an external REST API to send and receive data, so this is a fundamental feature that you should learn how to implement on your own. There are many tutorials on this site that show you how.
These are the concepts that I would focus on. How you learn them, what resources you use to learn them honestly is up to you. We offer books, tutorials, and videos on this site that show you how to learn all of the above, and if you wish for me to provide you with links, I can do so in a follow up response. However, this list is a good beginner guide on how to get started in my humble opinion.