David Cordero
My first month with Swift
Published on 31 Jan 2016
Yes you don’t have to say that, you are fully right, I am indeed late to the party and I know it. But as the saying goes… better late than never, isn’t it?
On the other hand, since I have worked in iOS (using Objective C) for the last years, I have to say that I am not a one hundred percent rookie in this world of iOS, but I’ve never done any Swift coding apart from really minor things… So, now that I am for a while apart from the iOS development in my current position. I have decided to take advantage of this period to improve my knowledge about Swift.
During this month I have learned several and amazing new things, more than I thought at the beginning and I have to say that I like this language more and more day after day.
I prefered to start from the very beginning, so I toke the ’The Swift Programming Language‘ by Apple, I sent it to my kindle, and I used any available spare time to read it carefully. Could be any better way to start than the official guide written by Apple?
Although at the beginning it seems like a very basic guide, don’t be fooled by appearances. I have to say that It was a really pleasant reading, not only for new guys who never worked with iOS before, but also for someone with some experience on the platform, due to the reason that apart from the very basic syntax, it contains interesting suggestions and examples provided by Apple that will help you on a daily basis. As I said, It is after all the official guide and it should be a must to read, isn’t it?
I suggest you to read it having a notebook next to you, to be able to take some notes about the important things you will find: new syntax and new concepts that could be lost in such amount for information like tears in rain.
It took me 2 weeks to read the complete book on my spare time. And after that, I was really willing to apply all this new knowledge to create something new. That is actually the best way to learn a new language, practice practice and then… practice a bit more.
I started with something that could allow me to practice with the new language in an easy way, without suffering any boring issue regarding frameworks. So I decided to start solving challenges, the challenges from the website (and book) programming-challenges.com. It was actually the initial seed to create swiftchallenges.com, but that is another story….
After some days solving challenges I felt the need of going further and to create my first app using Swift. But as I already have some experience working with iOS I prefered to learn something else in paralel, and due to the fact that I heard about framework created by Karumi, I decided to apply the concepts of MVP to my new App. You will find this App in my GitHub eventually once I fix some pending minor details.
In pararel I am still reading about Swift, there are really nice mail lists and articles out there. For instance:
• Writing beautiful code in Swift
• Swift Community Best Practices
You could learn a lot looking into how other iOS fellas take advantage of the new language features to solve their daily issues.
At the moment, I have the feeling that learning this new language is a never ending story and each day I have more and more things that I need to learn, but this is a feeling that I really love and with which I feel really comfortable.
At the moment I am moving forward. All I can share so far, is that I am very interested in Apple Tv applications, so I will probably invest some time in learning about them. But… that will be a new story to speak about in the future…
What I can share, by now, is this article with my experiences and roadmap in this first month working with Swift. Just in case you are in the same status as I was, and you decide to follow my first baby steps. These are, as a summary, my suggestions for you to start learning this new language:
• Read the official guide
• Practice, practice, practice
• Practice with something bigger
• Ask when you don’t know something, Stackoverflow or Slack communities are really handy for this
• Learn and collaborate with the experts
• Share what you have learned and help other guys