How We Train Our iOS Developers to Become Industry-Leading Experts
At Magora, we believe strongly in continuous improvement, knowledge sharing and exploring new horizons. That’s why from the very moment new developers enter our team, they start a never-ending quest for professional advancement. After all, there’s no limit to perfection.
There are five levels of professional advancement for app developers at our company: Junior Developer - Middle Developer - Senior Developer - Tech Lead - Technical Director. Each of these is achieved through hard work, accumulation of experience, personal and professional improvement and a great thirst for knowledge.
Today, we’d like to tell you more about the first big step in the career of any Junior iOS app developer - training to become a Middle Level Specialist. At Magora, we give our Juniors a unique opportunity to become industry-leading experts, learning from Magora’s wealth of experience in the IT sector under the guidance of seasoned professionals.
Here are the key technologies, methods and techniques that Junior iOS Developers at Magora need to master before proceeding to the next level of expertise. You can use them as a checklist to hone your app development skills or as the groundwork for your company’s employee training strategy.
Stage 1: Learning to Create a Fast and Stable Basic App with Readable Code
- Software development time estimation. This is one of the most important skills because it teaches you to understand app development processes and evaluate your skills. Only a developer familiar with a great variety of technologies and who has suitable experience in software development can accurately estimate resources. Therefore, the best way to hone this skill is to learn how much time you spend accomplishing particular tasks so as to be well equipped to handle them in future.
- Database creation. Technologies: Core Data. Core Data is the fastest and most efficient database for iOS. Set your sights on creating a quality stable database from the start, and do it all over again if you fail. We pay huge attention to software stability and resilence.
- Collection objects. Technologies: NSSet, NSOrderedSet, NSArray, NSDictionary and their mutable variants. Collection objects will help you master database creation to the full. Study the pros and cons of each collection object, learn how to extract value arrays from a certain collection and how to sort associative arrays by value.
- The basics of UI. Technologies: UITableView and UICollectionView. UITableView and UICollectionView are the most important UI elements of the UIKit you need to learn how to use, as tables and view collections are utilised in every iOS app.
- GUI layouts. Technologies: standard Interface Builder + autolayouts. Graphic user interface is the foundation of a great user experience, which is why any mobile developer should know how to manage different elements of the GUI.
- UI elements lifecycle and interactions. Technologies: Standard UIViewController, UIView. Ensure that you understand the processes behind the important UI elements and know how to use different VC methods such as loadNibNamed, Bundle Identifier, awakeFromNib, adding and removing observers to NSNotificationCenter, delegate objects and blocks.
- Client and server communication. Technologies: AFNetworking, NSURLSession. iOS has many specific features when it comes to client-server communication. That’s why you need to learn what operations can be run in the background, how to start long-running tasks, use asynchronous message passing and resolve single request issues.
- In-app purchases. Technologies: SKStoreKit. Now that you’ve learnt how to create databases, use UI elements and connect to the server, you need to provide users with the ability to make in-app purchases. After all, most apps are built with the purpose of earning money in mind. Read the Apple’s In-App Purchase Programming Guide and App Store Review Guidelines. Learn the differences between MKStoreKit and SKStoreKit.
- Online payment. Technologies: MKMapKit, NSLocationManager. Smartphone owners prefer to pay by card and every modern app should give them this opportunity. The main problems you need to solve are how to use clustering, how to enable/ disable geolocation and what to do when the geolocation service is unavailable.
Stage 2: Advanced App Customisation
- Read Apple’s guidelines. You can find the In-App Purchase Guidelines on Apple’s official website. Another document extremely valuable for any developer is the App Store Review Guidelines, which, for instance, touch upon the topic of purchasing currencies.
- UIGestureRecognizer. UIGestureRecognizer enables you to fully control all gestures used within the app.
- Creating customised elements. Technologies: CoreGraphics, CoreText. Practice element customisation with CoreGraphics and ShapeLayer, and CoreText techniques such as positioning of glyphs in lines and paragraphs.
- Social network integration. Learn how to enable users to sign in with their social network accounts and perform standard actions such as changing their profile picture.
- MVC and MVP architectural patterns. What are they used for? What’s the difference between the two?
These technologies are absolute essentials. However, most Junior Developers will also easily deal with such tasks as embedding a standard video player, making certain actions perform only on particular devices, automating calls to assigned numbers, sending email and drawing in PDF files. With enough assiduousness, dedication and enthusiasm along with the support of experienced app developers, you will be able to program high-quality applications with simple functionality within weeks.
Our app development team is comprised of 80+ iOS developers, including 10 senior experts with broad experience in iOS native design and development for other platforms who mentor the younger specialists. Well-organised and easily accessible data, a mentorship culture, team collaboration, knowledge sharing and close communication with clients are the cornerstones of our success that enable us to deliver unique solutions that stand out from the competition and contribute to increases in ROI for our clients.