18 Months as an iOS developer. My tips for newcomers.

  • 18 months
  • 6 apps
  • 2 big apps, not that big :)
  • A part-time freelance
  • A full-time iOS developer
  • A long-time gamer

Here are my iOS development tips for newcomers.

Take Swift

Swift vs Obj-C which one should I learn first? My answer is directly toward Swift. Learn, Play and Start your new project with Swift. Unless you have a good reason for Obj-C. For example, maintaining the old app.

Warning—Don’t plan to start your project in Obj-C and migrate to Swift later. The migration is harder than you think.

Know Ecosystem

What is the popular JSON library? Which cloud database should I use with my app? What’s going on currently?

You should know tool/library/framework/stack for your app. Don’t be a lone programmer, and write everything yourself. Somebody already contributed those works to make your life easier. Pick and use them to increase productivity.

For open-source libraries. Search `awesome-xxx`. For example, `awesome-swift`, `awesome-ios`.

Make it work, Make it right, Make it fast

I always believe this concept. Software development is not a one-time work. Good softwares are crafted through many iterations. When you first make something, it might not be good as you think. But don’t worry, take time and revisit it again, and make it better. Just remember what you were doing. Experiences will help you. Going to the last step in the next times is easier than you think.

Learn Architecture

Take a look at other successful apps. See how they were made. Not only the app side, but the entire system. Architectural perspective will improve your craftsmanship. There are many open-source iOS apps out there. Telegram, Firefox, Wikipedia, Wordpress, VLC, Wire. github/open-source-ios-apps is a good resource.

Experiment

When developing an app. You may come up with many ideas. Sometimes you are not sure whether they will work or not. So, make a proof of concept first. Express your ideas with side projects. If it works, then move it to your main project.

If they are small code level. Don’t wasting your time compiling and running the whole project. Write and test it on Playground. See the results, then copy&paste.

My.playground

Don’t fight the framework

Reactive, Redux are good frameworks to learn. Learning them will definitely help you to become a good developer. But don’t use them as a main framework in a big iOS app. I’ve tried and it just doesn’t work for me. I always face the problem. And solving that problem is not an easy task. So, stay close to MVC/MVVM.

Use those frameworks as helper tools, and only when they make your life easier. For example, I use Reactive for event handling.

Functional Programming is f**king good

Immutability. Pure function. Higher-order function. Many concepts of functional programming will greatly improve your understanding. Even if you don’t aim to use it in iOS development. Believe me, just learn it.

Best practice is quite the dream

Everything has its trade-off. You cannot always follow those guidelines that might exist only in textbooks. Practicality and improvisation will help you to survive.

Keep yourself up-to-date

Technology grows exponentially. Stay still for a year and you will become a wise monkey. Update your database every week if possible. Weekly email subscription is my preference. iOS dev weekly, iOS goodies, Natasha The Robot, little bite of cocoa. This way I don’t have to find those curated sources myself. Just having a good time reading them on weekend.

…and watch WWDC .

Learn something else

Swift/Obj-C/iOS. What else? Many. Try to get your hand dirty with something else. Backend, Web, Game. Sick of programming? Design and Business may be. You can never go wrong with your choices.


Thank you for reading. Hope you enjoy. 😀