
Every time a new employee comes to the team, one has to decide the question of which applications to install on his computer. Even experienced developers do not remember the entire list of what they use. Some applications run daily. A piece - from time to time. But when such an application is not at hand, it often becomes a waste of precious time. As a rule, the first days are set aside for deployment of the environment and familiarization with the list of tasks. Well, when there is an opportunity to go through the list and note what was done before diving into the project. For these reasons, a “portfolio” was formed with which our team works.
The vast majority of applications are free.Software required to install:OSX - Apple OS latest version is installed from the AppStore (at the time of writing - the latest version of OSX)
Xcode: Core Development Tool in OSX and Xcode
- Xcode 7.3: itunes.apple.com/ru/app/xcode/id497799835?mt=12
- Command line tools for xcode: installed without fail after you install Xcode directly from Xcode. It contains, among other things, the Git client, without which access to Git from OSX will not be possible.
SourceTree: Convenient Git Client
Slack: Teamwork and communication tool in the company:
Text editors:
Optional:Wireshark: HTTP Sniffer - designed to intercept network packets that have gone through the developer’s network card
Postman: a handy application for checking the REST API
Joxy: "cloud" application for instant sharing of screenshots and files over the network.
Software for managing iOS devices and removing statistics
Ibeacons
FTP / SSH clients
VNC \ RDP clients:
Graphic editor:
XCode plugins: AlcatrazTo install it, run the command in the console.
curl -fsSL raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | shThe following are time-tested extensions.
- KSHObjcUML is a class dependency visualization tool in Obj-C / Swift code.
- ObjectGraph-Xcode - charting by code (you should first install www.graphviz.org/Download_macos.php ). The plugin works only with Obj-C code.
- XAlign - vertical formatting of the code, by sign =
- XToDo - panel with ToDo list in code
Other recommended plugins:
- PreciseCoveration
- PrettyPrintISON
- RSImageOptimePlugin
- SuggestedColors
- SwiftJsonToObject
- XCodeRefactoringPlus
- ZMDocItemInspector
PS Please note that some plugins may cause Xcode instability.')
SnipplesUnfortunately, many developers do not know or do not know how to use snippets.
Snippets are excerpts ("quotes") of commonly used expressions.
Using snippets greatly reduces code entry. It is better to see once to understand (see gif)

To create a snippet, go to the Show the Snippet Library tab (1), click the Edit button (not shown in the screenshot), enter the appropriate fields (2) and do not forget, select the platform.

The code insertion is carried out as you type the name of the snippet in the code editing field.
Below are examples from an individual list of snippets.
Custom classimport UIKit class <#Class Name#> : NSObject { // MARK: - Variables // MARK: - Outlets // MARK: - Public Properties // MARK: - Private Properties // MARK: - Constructors override init() { super.init() } // MARK: - Methods of class class func start() { } // MARK: - Methods of instance // MARK: - Actions // MARK: - Overrided methods // MARK: - Private methods
Custom Property private var _<#property#>:<#Type#>? var <#property#>:<#Type#> { get { if _<#property#> == nil { _<#property#> = <#Type#>() } return _<#property#>! } set (value) { _<#property#> = value } }
Dispatch After SWIFT let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC))) dispatch_after(delayTime, dispatch_get_main_queue()) { println("test") }
Dispatch Async dispatch_async(dispatch_get_main_queue()) { }
main queue dispatch_async(dispatch_get_main_queue()) { print(self) }
Singleton - Swift // MARK: - Singletone Implementation private override init() { super.init() } class var sharedInstance: <#ClassName#> { struct Static { static var instance: <#ClassName#>? static var token: dispatch_once_t = 0 } dispatch_once(&Static.token) { Static.instance = <#ClassName#>() } return Static.instance! }
Viewcontroller import UIKit class <#Class Name#> : UIViewController { // MARK: - Variables // MARK: - Outlets // MARK: - Public Properties // MARK: - Private Properties // MARK: - Constructors override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // MARK: - Methods of class class func start() { } // MARK: - Methods of instance // MARK: - Actions @IBAction func backButton(sender: AnyObject) { self.dismissViewControllerAnimated(true, completion: nil) } // MARK: - Private methods }
CocoapodsHow to do without mentioning Cocoapods, which, by the way, has recently grown to version 1.0.0
Main resource:
Articles:
Podfile exampleplatform: ios, '8.0'
use_frameworks!
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'RESideMenu'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'MagicalRecord'
pod 'SevenSwitch', '~> 2.0'
pod 'SMIconLabel'
LibrariesA huge set of various libraries (used depending on the subject area of ​​the current development).
Please share, in the comments, which free applications are useful to you personally for developing in iOS.