Как стать автором
Обновить

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

Разработка под iOS *Swift *
Tutorial
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.
Теги:
Хабы:
Всего голосов 23: ↑15 и ↓8 +7
Просмотры 22K
Комментарии Комментарии 42