Useful tips to begin developing on iOS
Written by GoodBarber Team on
The penetration of smartphones and number of apps in the market is growing more and more and at an equal pace the number of people who want to develop and build apps by themselves runs up.
The process of developing an App seems very complicated to most, for this reason I asked some questions to two members of our iOS developers team, Mathieu Fancello and Alex Manzella . The purpose of my interview was to find out the basic skills required to enter into the iOS development world, and then to share this knowledge with you.
The process of developing an App seems very complicated to most, for this reason I asked some questions to two members of our iOS developers team, Mathieu Fancello and Alex Manzella . The purpose of my interview was to find out the basic skills required to enter into the iOS development world, and then to share this knowledge with you.
What do you need to become an iOS developer?
To start developing on iOS, you must have a basic knowledge of algorithmic and Object Oriented Programming.
Learning Objective C (ObjC) can be pretty difficult if you have just started to approach programming language. It's better to start off with classic languages like C and then learn the OOP (Object Oriented Programming ) paradigm.
If you are a ninja and you want to go directly to the highest level, you can find some references about the use of Objective C in the Apple's Frameworks .
Learning Objective C (ObjC) can be pretty difficult if you have just started to approach programming language. It's better to start off with classic languages like C and then learn the OOP (Object Oriented Programming ) paradigm.
If you are a ninja and you want to go directly to the highest level, you can find some references about the use of Objective C in the Apple's Frameworks .
What are the main differences between the development for Desktops and Mobiles?
They may seem similar but they are two completely different worlds.
In mobile development you have be more careful with system resources; It's very important to manage the memory wisely because phones and tablets are still not as powerful as desktops even though they are evolving quickly.
Users want fast and responsive Apps, so you have to use Multi Threading to reduce the loading time.
You need to have some knowledge of asynchronous programming concepts. Creating an app you need to build, at the same time, the user interface and a fast loading process for the content. Multi Threading allows you to make an app that can download content in the background and at the same time design the UI (user interface ).
In mobile development you have be more careful with system resources; It's very important to manage the memory wisely because phones and tablets are still not as powerful as desktops even though they are evolving quickly.
Users want fast and responsive Apps, so you have to use Multi Threading to reduce the loading time.
You need to have some knowledge of asynchronous programming concepts. Creating an app you need to build, at the same time, the user interface and a fast loading process for the content. Multi Threading allows you to make an app that can download content in the background and at the same time design the UI (user interface ).
Do you need only technical skills?
Of course not. You must also have some basic design & UX (user experience) skills.
During the development, as I told you before, you also need to create the UI and try to develop it in a user-friendly way.
Put yourself in your users shoes, try to imagine how they will surf in your app and do your best to make it comfortable and pleasant for them.
Think about the different ways of interaction with each type of device. For example, using a mobile phone you don't have a mouse but a touchscreen and moreover, the mobile screens are smaller so when creating a mobile app you have to use a UX that is completely different from the ones used on a desktop app.
During the development, as I told you before, you also need to create the UI and try to develop it in a user-friendly way.
Put yourself in your users shoes, try to imagine how they will surf in your app and do your best to make it comfortable and pleasant for them.
Think about the different ways of interaction with each type of device. For example, using a mobile phone you don't have a mouse but a touchscreen and moreover, the mobile screens are smaller so when creating a mobile app you have to use a UX that is completely different from the ones used on a desktop app.
Why should you choose iOS instead of other platforms?
iOS is a very popular platform, among developers and also end-users.
At the beginning, developing for iOS can seem more difficult than for Android, but this is not true! In fact Android is much more fragmented then iOS.
Java is more popular than ObjC and for many developers it's also easier. But when you have learnt how to code in ObjC, you will find out that it's not so difficult, and that Apple's frameworks are very well projected so developing becomes very easy. You can always find some help in the wide range of help documentation you can find online (UIKit, ...).
At the beginning, developing for iOS can seem more difficult than for Android, but this is not true! In fact Android is much more fragmented then iOS.
Java is more popular than ObjC and for many developers it's also easier. But when you have learnt how to code in ObjC, you will find out that it's not so difficult, and that Apple's frameworks are very well projected so developing becomes very easy. You can always find some help in the wide range of help documentation you can find online (UIKit, ...).
My advice for you
Among the many tips I could give you I want to state one in particular, the most important:
Don’t start off with StoryBoards.
According to Apple :
" A storyboard is a visual representation of the user interface of an iOS application, showing screens of content and the connections between those screens. A storyboard is composed of a sequence of scenes, each of which represents a view controller and its views; scenes are connected by segue objects, which represent a transition between two view controllers. "
Usually beginners start to develop for iOS with storyboards, but this can be counterproductive because you learn how to develop using a scheme. The problem is that when you want to do more complex things you find it difficult to think outside that scheme.
Learning to develop using only codes, or at least limiting the use of storyboards, you will increase your experience with the frameworks, ObjectiveC and the runtime. This will be helpful when you will have complex problems to solve. Once you become more expert you can choose to start using storyboards if you think that can speed your workflow. In any case, we think it doesn’t. :)
Don’t start off with StoryBoards.
According to Apple :
" A storyboard is a visual representation of the user interface of an iOS application, showing screens of content and the connections between those screens. A storyboard is composed of a sequence of scenes, each of which represents a view controller and its views; scenes are connected by segue objects, which represent a transition between two view controllers. "
Usually beginners start to develop for iOS with storyboards, but this can be counterproductive because you learn how to develop using a scheme. The problem is that when you want to do more complex things you find it difficult to think outside that scheme.
Learning to develop using only codes, or at least limiting the use of storyboards, you will increase your experience with the frameworks, ObjectiveC and the runtime. This will be helpful when you will have complex problems to solve. Once you become more expert you can choose to start using storyboards if you think that can speed your workflow. In any case, we think it doesn’t. :)
After reading this article you should know a little bit more about iOS development, and about what you need to know to start developing your app by yourself.
If you have any questions and want some more advice, just comment below and we will be glad to answer. :)
If you have any questions and want some more advice, just comment below and we will be glad to answer. :)