I started iOS development 7 years ago when I was a .NET developer. That's a hard time for me. I had to choose learn Objective-C or Swift. At that time, Swift was too young and super easy to start. But the company project was written in Objective-C. Finally, I picked Swift learn deeply and abandon Objective-C.
I tried a lot of books, just few chapters in every book and easily found they make no sense and not really good for a fresher. I watched hundreds of videos on YouTube, and some are good, others are not.
Finally, I found a really good book from Ray Wenderlich.
I tried this book and learnt very fast. 2 weeks later, I started working on another company project, which was written in Swift.
I always suggest this to any mentees want to learn iOS. It helps them to build their fundamental knowledge.
2 years later, I figured out Lets build that app from Brian Voong. This brought my iOS development to a higher level. From that day, I've abandoned Storyboard and keep working with auto layout programmatically.
I've worked and learned 10-14 hours a day with few tips here. It makes me grow faster and stronger.
And now, here I am. I'm here to help you learn iOS and develop your career.
Today, I have the same problem, with Java and Kotlin. No doubt, select Kotlin as the first option.
I started learning Android 2 weeks ago, and lost in definitions, concepts, syntax. I tried book from Ray Wenderlich, some tutorials, anything I found and thought it's good, I tried. But not better. Ray's books are good but this time, doesn't work for me.
Finally, I found a course from Brian Voong. It's really awesome. And I am still learning in this list, Episode 9, at this time.
Below are some notes I apply when I learn new thing, some are from my failures. They're used in my learning history and bring good result. Let's check it they work for you.
Ask: I didn't ask so I had to try anything I found. Many suggestions on Google, but not all of them are good for you. Ray's books are good for others but not good for me. So, ask your friends, your mentors, they can give you good answers.
Ask strangers: Sometimes, strangers have same backgrounds, levels with you can give you exactly suggestions. Just ask. Developers are open to share, not all, but most.
Try: don't trust anyone. Ask them to get suggestions, but you have to try yourself. Learn few chapters, try for 2 or 3 days and evaluate yourself. You find the best one for you.
Note what you learn. Anything is new for you, add to your notes. You forget it tomorrow, next week, next month. Just note, it helps you and other developers like you in future. I have a note about my first Android project here.
Create your workspace. Create a codebase project, where you can put any new code snippets you did. Try to make it separately. Next project, you don't want to write that code again, copy it from your workspace.
Never stop learning: I've worked 10-14 hours a day, and done a lot of projects to improve my code, practiced hundreds of samples, follow thousands of tutorials. If you need any subjects/projects to practice in your development, don't hesitate to text me.
Learning new things is never easy, but really fun. Never stop learning, never stop code. When you stop, you're dying.