Many a times, our developers have been asked how they started iOS development and what their learning process consisted of. That’s why we decided to ask Ovidiu, one of our iOS developers, to take the time to answer some of our questions.
iOS development tools to start with
1. iOS: What are some things one should know about developing iOS apps?
Learning to develop iOS apps is no easy thing, but it isn't impossible either. Just as any other developer, an iOS developer should walk on a never-ending learning path. As Apple launches new frameworks or modifies the existing ones every year, the learning process has to be maintained as dynamic as possible. The latest changes to the iOS SDK, which are normally announced during the WWDC, have to be immediately integrated and practised upon. This is how one manages to perfect their programming skills.
OOP or design patterns can make a beginner's life a whole lot easier and this is why they should be part of the process.
2. What are the best ways for an absolute beginner to learn programming?
The best way for an absolute beginner to learn programming is to start with the basics of the programming language that he/she chooses. To understand basic concepts, small applications should be developed in the beginning. Hands-on exercises should do lots of good, as practice makes perfect.
A good old-fashioned book also helps - there are many thorough guides that offer extensive explanations. Depending on the programming language that one wants to study, Ovidiu would recommend “Head First Java”, published by O’Reilly, for -of course, Java, and afterwards “Thinking in Java” by Bruce Eckel. Most books from the “Head First” series of O’Reilly are a good place to start for many other programming languages.
For learning Objective-C, there are many books out there, but for a beginner this is the best one: “Objective-C Programming: The Big Nerd Ranch Guide, 2nd edition”, as it provides some basic knowledge of programming, such as variables, data types or pointers, after which it moves on to Objective-C.
Video tutorials could aid somebody in the search for understanding some of the iOS development particularities.
Creating a more complex project is sometimes scary, but it is ultimately the only way one can realize the extent to which they need to expand their knowledge.
3. iOS Development: How do you develop iOS apps?
Start with Objective-C
According to Ovidiu, you have to start with the programming language on which all of this is based upon, Objective-C - which may be a bit challenging at first. In time, you will get used to it and it will seem natural to you. This year, Apple has introduced Swift, a language that can be used to develop iOS applications and that will work along with Objective-C. Currently, Ovidiu does not recommend going directly to Swift, as it’s been only a couple of months since it was presented, and many changes have still to occur in time.
The iOS SDK
After getting acquainted with the programming language, the iOS SDK is the next thing to dive into. Using this, you will learn about the storyboard or the nibs, with the help of which you can create and manipulate the user interface graphically, instead of programmatically.
iOS Human Interface Guidelines
Also, Ovidiu recommends reading the iOS Human Interface Guidelines from Apple, so you can create a user experience based on Apple’s design principles.
4. What are the best beginner sources for learning iOS app development?
From Ovidiu’s point of view, the best sources to learn iOS app development are:
-WWDC movies - this should be a starting point for a beginner, as a lot of technical info is presented, which helps in understanding some of the concepts;
Tips and tricks
5. iOS Development: What tricks make an iOS app feel responsive?
- the app responds immediately to the user’s interaction: touching a button immediately displays a “pressed state”; pinching the screen would show the user that something is about to happen;
- the app does not become unresponsive while it is busy loading something, and the user doesn’t get stuck on that screen, being able to interact with other parts of the app;
- in case of a high loading speed, the user is presented with a progress bar, in which way he knows how much time he has left in order to have access to the full content.
6. What are some good ways to create a calendar-based iOS app?
Ovidiu says that, first of all, the application should have a light interface, so that, as you hit the first screen, you don’t need tutorials to teach you how to navigate through it.
Secondly, adding an event or finding it shouldn’t pose any difficulties. Also, the app should allow the user to sync the calendar with some other services, like Google or iCloud.
7. What were the main trends for iOS apps in 2014?
- the use of hidden side menus, both left and right;
- the possibility to achieve more interaction using swipe gestures;
- the flat, minimal design;
Remember: in iOS development, learning can be a fun ride, as long as it never stops! Enjoy!