I have 5 years experience of iOS apps development.
In the work I rely on several principles:
• Architecture of application should be properly designed and must allow easily extend and change parts of a application.
• Following the workflow, so that will be achieved maximally precise execution of the task within the given timeframe.
• It is important to have a deep knowledge of applied technologies, to use all its features.
• It is necessary to keep up with the latest technologies and innovations that will help solve essential problems the most appropriate way.
• Frameworks: Foundation, UIKit, MapKit, CoreLocation, AVFoundation, MediaPlayer, EventKit, EventKitUI, AddressBook, AddressBookUI, Social, MessageUI, XCTest, Core Graphics, AssetsLibrary, Photos, WatchKit.
• Networking: AFNetworking, NSURLConnection, NSURLSession.
• Third party: Flurry, XMPPFramework, Reliant(DI).
• Technologies: Interface Builder, CoreData (NSFetchedResultsController), ARC, Blocks, KVC/KVO, Concurrency(GCD, NSOperation, NSOperationQueue), Auto Layout, Local and push notifications, Predicates, Storyboards, Widgets.
• Tools: git-bisect (Debug tool), genstrings (Localization), Profile (Time Profiler, Leaks), Photoshop, CocoaPods.
• Bug-trackers: Jira, Redmine, Trello, Basecamp, Mantis.
• Project management methodologies: Scrum.
• Version Control Systems: Git (terminal, SourceTree).
• OOP/OOD: SOLID, Layered Application Design, Crosscutting Concerns, Design Patterns (Command, Adapter, Facade, Template method, Builder, Observer, Singleton, Service Locator, Factory, Abstract Factory, Dependency Injection).
• Programming Languages: C, Objective-C, Swift.
• Other: Cocos2d, HTML, HTTP/1.1, CSS, XMPP.