Dedicated iOS Developer Answering FAQ about iOS Development
Here we have gathered all interesting questions about iOS development and asked them to our dedicated iOS developer. Let’s what he said said and we hope this will be useful and helpful in your future or current iOS projects.
Q#1 What does it take to become an iOS developer?
You need a computer with macOS operating system (as it is impossible to develop iOS applications on Windows or Linux). As for the beginning, you need to listen to and perform all the lectures of Stanford University, which you can find Youtube. This is a set of minimum knowledge and skills to become an entry-level developer. Homework in this course makes you write simple applications. Further, only experience and books and code samples of other people can help to become better in this specter. But to write something simple of these courses will be enough.
Q#2 What makes iOS better than Android?
I can not say that iOS is better than Android from an objective point of view. I can only tell you why I like iOS more than Android.
- Ecosystem (all products are connected and very tightly synchronized. Using the whole ecosystem you get maximum benefits which you can’t find in Android). For example, the bookmarks that you have open in safari on your MacBook you can see on your iPhone browser. Or unlocking your MacBook with a help of watch will make your iPhone make a sound so you can easily find it.
- Special community (for many people it is a minus, but I consider it an advantage). Directly each application has access only to its folder and cannot access others. You can not overload your iPhone with anything superfluous and even AppStore will not publish the application if there are already many similar ones. Applications can also be basically downloaded from AppStore and Apple checks this application with live people for all necessary matches.
- Apple supports the devices that came out 5 years ago and puts on them the best version, unlike Android in which in only half a year the last version will not always work.
- iPhone security and privacy.
There are still a lot of such advantages, but for me these points are in the highest priority.
Q#3 What are the key concepts that I need to master for iOS programming in 2018?
- Use MVVM,
- Use xib instead of storyboard
- Code on Swift 4.2
- Use less frameworks and think whether you really need this framework or you can cope without it.
Just before giving the task for testing, try to find the bug yourself and test it on several devices.
Q#4 Before I make any iOS programming on my Apple, is there anything I should do to protect my phone?
No. It is quite safe for both phone and computer. And no additional methods of protection are needed. You will not be able to physically harm your phone due to the security of the iOS system itself. The only thing that is needed in order to send a ready-made application to the AppStore is a certificate that costs $99 per year (as a rule, it is provided by the customer) and you can release several applications on it.
Q#5 What are the newest features of Apple iOS 12?
- ARKit 2
- Siri Shortcuts
- Health Records
- Interactive Controls in Notifications
- Authentication Services
- CarPlay for Navigation Apps
- Network Framework
- Natural Language
- Deprecation of OpenGL ES
Q#6 What is your review of iOS 11?
A good version, but there are too many differences between it and iOS 10 and this caused a lot of many difficulties. It also had been having way too many bugs for a long period of time right after release. It also removed outdated phones (iPhone 5 for which it was necessary to additionally take into account many nuances).
In general, many wonderful changes with which it became even more convenient to work.
Q#7 Is it important for an iOS developer to learn Flutter or React Native?
This is not necessary at all, although I think it is a big plus. Native languages are best suited for development, with the help of which you can make the most similar and familiar interface for iOS and Android users. If the applications look the same, then someone will need to adapt to the user interface of another system.
From the technical side, the execution of the same application using these languages to download iPhone resources looks something like this:
- Flutter. CPU: 25%, Memory: 22 MB
- iOS. CPU: 7%, Memory: 8 MB
So, performing the same tasks the processor is loaded approximately 350% times more and the memory usage is 275% more.
If the application is very small, then such sins are not very noticeable in contrast to more complex ones.
Q#8 What are the main languages used for developing iOS applications?
The main development language is Swift. But since it appeared only on June 2, 2014, many projects started before this time were written with Objective-C. And because of the reflection and the fact that Swift is fundamentally differs from Objective-C, many still write in Objective-C. And сurrently, even not a half of the projects do were made with Swift. If you look at Objective-C, you can clearly say that it is already quite obsolete because it was created in 1983.
Q#9 What are the best icon libraries, free and paid, for iOS applications?
In the modern world, it is not preferable to use the libraries but use your own code. And the usage of the library should be very justified. What are the reasons for this?
- Support is provided by the creator of the library, and it’s usually only one developer who needs time to spend on the support. He may even forget about this library or he may not have time for the support. The first factor is the human factor.
- The next disadvantage is that no one guarantees the quality of the library code. For example, the library of one of the most famous company like Facebook has 68 warnings in its library FBSDKCoreKit. Meaning Xcode itself generates that the code of the library has a very questionable quality. While I personally write without such warnings.
- Libraries are periodically being updated and as a rule it is not a right time for it and with the update the library can begin to behave differently. If they have a connection with the server, this causes additional problems because the server may be down or something else.
Despite the drawbacks, it may be difficult to code without some libraries, for example:
- Crashlytics & Fabric
- FBSDKLoginKit & FBSDKCoreKit & FBSDKShareKit
- TwitterKit & TwitterCore
- Google/Analytics & GoogleSignIn
Q#10 What are the best workflows for iOS development?
- Convenience in Xcode
- There is always something to strive for and to learn
- Rapid development so you can see your result here and now, not in a year
- Ability to have an independence in a team
- The ability to make beautiful animation and please the user’s eye
When choosing a field in which I wanted to work at the end of the university, I analyzed the market and my desires. At that time, it was becoming a Delphi developer and SilkTest AQA.
My conclusions about my desires and requirements for work:
- Fast process of development, meaning, obtaining the result of development in the shortest possible time.
- The absence of too long-playing projects like 10-20 years
- Work in a small team, as a rule (after all, your work is not so clearly visible when dozens or hundreds of developers work on one project)
- Maximum modern technology
Based on this, as well as from the fact that everything was decreasing in size and the power of the phones is growing very quickly, I chose a mobile development.
From the mobile operating systems at that time were:
I immediately excluded Windows because of the development speed. Besides, the demand for analytical data was too low.
I compared iOS vs Android and came to the conclusion that:
- iOS supports Apple better than anyone supported Android.
- IOS users are more affluent people as the devices are not cheap.
- I had an experience in C, a small but commercial one, and therefore it is easier for me to learn Objective C than Android Java.
- The possibility of development only with the presence of MacBook and the desired presence of some kind of iPhone.
- Fewer amount of devices under the iOS system ensures less problems with the layout of applications.
- Developer satisfaction index.
- Company/brand whose users are considered to be more elite class of people, which guarantees the existence of the company in the future.
- High threshold of entry, which guarantees a small competition.
So, correlating all the pros and cons, looking at the number of vacancies with other languages I decided that this is what I am going to do and after that I started learning programming on iOS.
Hop on Mobilunity’s Board
Here is a small story of one person becoming an iOS developer, working in Mobilunity as a dedicated programmer and sharing his experience with the iOS development simply and at his ease. And here we are ready to provide you with such skilled and experienced coders for any of your project, including your iOS app development. Don’t hesitate to ask us anything regarding your iOS projects or if you have more interesting questions to our iOS coder.