Apple's App Store has more than 2.2 billion apps. Consumers spend as much as 80% more on iOS apps compared to Android ones. Such a tendency led to $38.5 billion in revenue, $26.5 billion of which was paid off to iOS developers for 2017.
However, iOS is loved by developers from all over the world not only for financial reasons. The simplicity of development and minimalistic approach which company sticks to also make a difference. There are no fragmentation problems as the lineup of Apple devices is relatively small and all of them have a unified UI.
To build an iOS app, you'll need to hire iOS app developer working with Objective-C or Swift in Xcode or any other IDE. In this guide, we also cover the vital points you need to learn before you hire iOS programmers.
iOS developer roles and responsibilities
Many fail to understand the full scope of responsibilities that lay on shoulders of iOS developers. In fact, the borders of iOS developer responsibilities go beyond writing code. They take part at every stage of app development from planning and design aspects (wireframing screens, building UI) to testing and publishing the ready-made app to the App Store. In other words, an iOS developer turns the specifications of your mobile application into a working and user-friendly product.
Design awareness is what you should pay a due attention to while looking for iOS developer candidate. The point is, the care for design isn't something that only mobile designers responsible for since developers are also in charge of transferring good experience to final users. That's why among iOS developer key skills should be an experience with both UI/UX, understand their principles, and, of course, be good at programming in Swift or other languages.
Junior, middle, and senior iOS developersTypically, the versatility of developers depends on their working experience. Respectively, the more projects a developer has worked on, the more complex and diverse tech problems he/she can solve.
In the IT industry, the skills of programmers are divided into three levels: junior, middle, and senior.
Junior iOS developer
This is the entry level iOS developer. In companies, junior developers most commonly work alongside their more experienced colleagues to improve their knowledge and enhance skills. It usually takes a few years for junior developers to level up.
Middle iOS developer
After working on a variety of complex projects, developers move from beginners to a more advanced level that's called middle or mid level iOS developer. Here they have more independence in terms of working on projects.
Senior iOS developer
Senior iOS developer is an experienced developer that has seen tons of code and released dozens of apps. Typically, such developers not just code and design an app, but deal with testing, integration of APIs, and security matters.
Taking into account everything mentioned above, you're willing to choose whether your project requires less or more experienced iOS software engineer. The key factor here is your budget, as salaries for each level may vary dramatically. The project complexity also matters since the junior developer will barely cope well with a large project having a complicated business logic behind.
iOS developer skill set
The iOS developer technical skills largely depend on your project. However, the general skills needed for iOS developer should look something like this:
- Proficient with Swift or Objective-C programming language;
- Knowledge of Xcode IDE;
- Experience with APIs like Cocoa Touch and UIKit;
- Understanding of RESTful APIs;
- Understanding of UI and UX design standards;
- Knowledge of Apple Human Interface Guidelines;
- Experience with Metal or OpenGL;
- Advanced knowledge of code versioning tools like Git;
- Knowledge of Core Data framework.
I would like to time this article to the simultaneous release of the second version of my successful and innovative application Word Wizard, and the fact that I have made $200k on the App Store. Next, I have decided to share figures about the education market on the App Store, and by the way to talk a little about my story and experience being the indie developers. I hope it can help some indie developers to make some decisions, as I did more than one year ago after reading some posts. It will also help to understand the size of the education market on iOS.
Actually, I will start with the sales and ranking figures, and then I tell more about my personal experience. I note that all figures are coming from AppFigures.
In the life comes a moment, when anyone who wishes to write programs for the products of Apple company has to learn a new programming language Objective-C.
Here is a banal theory of the object-oriented programming (OOP) appearance
The problem of reusing a written code and its portability make the programmers constantly look for the new ways to organize, structure and abstracting it. In order to solve these problems are created the new programming paradigms, design template tooling, new languages, compilers, standard libraries, software platforms and frameworks. Thus were formed the paradigm of subprograms (procedures) that is implemented by the processor’s commands CALL \ RET and the stack (in fact, moving the implementing stream at the address of random rather than following the current command with further return). Then, the paradigm of modules (each file is a separate translation unit) that produced a two-stage translation: compilation of modules and their linking (static or dynamic) in the executable module.
id Software is a well-known company to most people that play such games as Dangerous Dave, Commander Keen, Wolfenstein, Doom, Heretic, HeXen etc. Some time ago, John D. Carmack made some statements at QuakeCon and promised to release the source code for Doom 3, but so far that has not happened.
ZeniMax company that presently is the owner of id Software (as well as Bethesda) has released an update for Doom Classic and Wolfenstein 3D for the iPhone. It added to them support of Retina Display and universality (now they can be played in iPhone and iPad), as well as it fixed some bugs in the updates.
The company offers an access to the current source codes for these games along with this update, so now you can make something of your own based on their development, or you can learn from the best game makers how properly make such games.
Codify is available in the App Store. It is a first code editor for iPad with the native interface and support for the touchscreen. It is very convenient: using a finger press on the object features and a pop-up window will appear with a list of options. Most importantly, the written code can be run any time in order to test the accelerometer and multi-touch. There would be no more problems with emulators!
Codify is built on the base of Lua language that is a simple and smart programming language, and it is well suited to create games for iPad.
The first part can be found here.
The software part
Overpatching of the application took only a week for the iPad. The main time was spent on rework of the user’s interface. Dimensions of screen resolution of the iPad and iPhone are different, so if we have not considered this when designing the interface - we have a problem (especially, if we have numerous screens).
If we lead 1024 without changing the dimensions to 480, then the resulting image will be 480x360, so we get 40 extra pixels vertically. One simple solution is to leave empty space above and below. I do not like this approach. Since I only have had three screens (almost everything is in the vector), I have reworked the source materials for expansion of 1024x768 and has written a utility that moving in 480x320, and cutting (shifting) the specific parts from top, bottom or both sides that I do not need.
I completely rewrote the dialog of posting to Twitter, the old was not designed for the iPad.
Transferring a binary file into universal format took exactly one click. So, select a target “Upgrade this target to ipad”.
I used this code below to find out if the iPad is software-based or not:
BOOL isPad ()
# ifdef UI_USER_INTERFACE_IDIOM
return (UI_USER_INTERFACE_IDIOM () == UIUserInterfaceIdiomPad);
In October 2008, I have found out at an ordinary meeting with two friends that they are involved in the developing of games for the iPhone. At that time I already had almost completed shareware project for the Windows. I was inspired by the desire to port it for the iPhone, I started working in this direction.
Create and adapt the development tools for the Windows platform without the purchasing of Mac device and related the development tools. Mac purchase was postponed until a full understanding of how it works. Almost finished project and tools for it were for the Windows, so I decided to do all for the Windows. I started implementing this idea after I spent a few days searching the internet.