Портфель iOS TEAM разработчика

в 9:33, , рубрики: ios development, iOS разработка, swift, swift development, toolkit, разработка под iOS

image

Каждый раз когда в команду приходит новый сотрудник, приходится решать вопрос с тем, какие приложения стоит установить на его компьютер. Даже опытная разработчики не помнят всего списка того, чем они попользуются. Часть приложений запускается ежедневно. Часть — время от времени. Но, когда такого приложения нет под рукой — это часто становится потерей драгоценного времени. Как правило, первые дни отводятся на развертывание окружения и ознакомление со списком задач. Хорошо когда есть возможность пройтись по списку и отметить то, что было сделано перед погружением в проект. Из этих соображений был сформирован «портфель» с которым работает наша команда.

Подавляющее большинство приложений — бесплатные.

Софт обязательный к установке:
OSX — Apple OS последней версии устанавливается из AppStore (на момент написания — последняя версия OSX)

XCode: основное средство разработки в OSX и XCode

  • XCode 7.3: itunes.apple.com/ru/app/xcode/id497799835?mt=12
  • Command line tools for xcode: устаннавливается в обязательном порядке после установки XCode непосредственно из XCode. Содержит, в том числе, Git клиент, без которого доступ к Git из OSX будет невозможен.

SourceTree: Удобный клиент Git

Slack: Интрумент командной работы и общения в компании:

Текстовые редакторы:

  • TextWrangler — удобен для работы с файлами, используемыми при разработке (.json, .plist, xml) и пр., кроме того, используется для разруливания конфликтов Git: itunes.apple.com/ru/app/textwrangler/id404010395?mt=12

Опционально:
Wireshark: HTTP Sniffer — предназначен для перехвата пакетов сети, ушедших через сетевую карту компа разработчика

Postman: удобное приложение для проверки REST API

Joxy: «облачное» приложение для мгновенного обмена скриншотами и файлами по сети.

Программы для управления iOS девайсами и снятия статистики

IBeacons

FTP / SSH клиенты

VNC RDP клиенты:

Графические редакторы:

  • Adobe Photoshop: идеальный вариант
  • Acorn: альтернатива Adobe Photoshop: flyingmeat.com/acorn
  • GIMP: жестокая альтернатива: www.gimp.org/downloads
  • Векторный online-редактор, для рисования схем: draw.io

XCode plugins: Alcatraz

Чтоб установить его, следует выполнить в консоли команду
curl -fsSL raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh
Ниже приводятся проверенные временем расширения.

  • KSHObjcUML — инструмент визуализации зависимостей классов в Obj-C / Swift коде.
  • ObjectGraph-Xcode — построение диаграмм по коду ( предварительно следует установить www.graphviz.org/Download_macos.php). Плагин работает только с Obj-C кодом.
  • XAlign — вертикальное форматирование кода, по знаку =
  • XToDo -панель с перечнем ToDo в коде

Другие рекомендуемые плагины:

  • PreciseCoveration
  • PrettyPrintISON
  • RSImageOptimePlugin
  • SuggestedColors
  • SwiftJsonToObject
  • XCodeRefactoringPlus
  • ZMDocItemInspector

P.S. Учтите, что некоторые плагины могут приводить к нестабильности XCode.

Сниппеты
К сожалению, многие разработчики не знают или не умеют пользоваться сниппетами. Сниппеты — это выдержки («цитаты») часто используемых выражений.
Использование сниппетов очень сокращает ввод кода. Это лучше один раз увидеть, чтоб понять (см. gif)
image
Для создания сниппета необходимо перейти во вкладку Show the Snippet Library (1), нажать кнопку Edit (не показана на скриншоте), ввести соотвествующие поля (2) и не забыть, выбрать платформу.
image
Вставка кода осуществляется по мере ввода имени сниппета в поле редактирования кода.
Ниже приводятся примеры из индивидуального списка сниппетов

Custom class

import 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)
                    }

Mark

// MARK: -

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
    
}

Cocoapods
Как же обойтись без упоминания Cocoapods, который, кстати, на днях дорос до версии 1.0.0
Основной ресурс:

Статьи:

Пример Podfile

platform :ios, '8.0'
use_frameworks!

pod 'Alamofire'
pod 'SwiftyJSON'
pod 'RESideMenu'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'MagicalRecord'
pod 'SevenSwitch', '~> 2.0'
pod 'SMIconLabel'

Libraries
Огромный набор всевозможных библиотек (используется в зависимости от предметной области текущей разработки).

Поделитесь, пожалуйста, в комментариях, какие бесплатные приложения полезны лично Вам для разработки в iOS.

Автор: Demtriy

Источник

Поделиться новостью

* - обязательные к заполнению поля