Мария Халусова Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты JetBrains
Инструментарий iOS разработчика Сторонние инструменты и AppCode Мария Халусова @mariakhalusova
Инструменты
Инструменты • Язык
Инструменты • Язык • Тестовые фреймворки, менеджеры зависимостей, инструменты отладки, и т.д.
Инструменты • Язык • Тестовые фреймворки, менеджеры зависимостей, инструменты отладки, и т.д. • IDE
Язык
Язык • Objective-C
Язык • Objective-C • Ruby (RubyMotion)
Язык • Objective-C • Ruby (RubyMotion) • C# (Xamarin)
Язык • Objective-C • Ruby (RubyMotion) • C# (Xamarin) • HTML5, JavaScript, ... = web
Ruby Temple Jukely Inktera
C#
Web Web apps are the best way to reach the most possible people with the least effort; native apps are the best way to create the best possible experience. John Gruber, daringfireball.net
Native: Objective-C И все?
Сторонние инструменты
Сторонние инструменты • Тестовые фреймворки
Сторонние инструменты • Тестовые фреймворки • Инструменты документации
Сторонние инструменты • Тестовые фреймворки • Инструменты документации • Менеджер зависимостей
Сторонние инструменты • Тестовые фреймворки • Инструменты документации • Менеджер зависимостей • Инструменты диагностики
Сторонние инструменты • Тестовые фреймворки • Инструменты документации • Менеджер зависимостей • Инструменты диагностики • И т.д.
Тестовые фреймворки
Тестовые фреймворки
Тестовые фреймворки • Kiwi
Тестовые фреймворки • Kiwi • Specta, Cedar
Тестовые фреймворки • Kiwi • Specta, Cedar • KIF
Тестовые фреймворки • Kiwi • Specta, Cedar • KIF • Calabash, Frank
Тестовые фреймворки • Kiwi • Specta, Cedar • KIF • Calabash, Frank • Zucchini
Тестовые фреймворки • Kiwi • Specta, Cedar • KIF • Calabash, Frank • Zucchini • ...
Документация
Документация • Dash
Документация • Dash • appledoc
Документация • Dash • appledoc • doxygen
Менеджер зависимостей • CocoaPods
Диагностика
Диагностика • Cocoa Lumberjack
Диагностика • Cocoa Lumberjack • DCIntrospector
Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger
Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger • SimPholders
Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger • SimPholders • Spark Inspector, Reveal
Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger • SimPholders • Spark Inspector, Reveal • ...
Диагностика: Reveal
Прочее
Прочее • Рисовалки макетов дизайна: Mocks, Briefs,Acorn, Sketch, ...
Прочее • Рисовалки макетов дизайна: Mocks, Briefs,Acorn, Sketch, ... • Core Data: Mogenerator, Base, Core Data Editor
Прочее • Рисовалки макетов дизайна: Mocks, Briefs,Acorn, Sketch, ... • Core Data: Mogenerator, Base, Core Data Editor • Deployment: Deploymate, Cupertino, Hockey App,TestFlight, Crashlytics
Альтернативная IDE - AppCode: зачем?
Альтернативная IDE - AppCode: зачем? • Работа с кодом
Альтернативная IDE - AppCode: зачем? • Работа с кодом • Богатый опыт создания инструментов разработчика: IntelliJ IDEA, ReSharper, ...
Альтернативная IDE - AppCode: зачем? • Работа с кодом • Богатый опыт создания инструментов разработчика: IntelliJ IDEA, ReSharper, ... • Ранние версии Xcode
Почему не плагин к Xcode?
Почему не плагин к Xcode? • Готовая платформа IntelliJ
Почему не плагин к Xcode? • Готовая платформа IntelliJ • Официально плагины к Xcode никак не поддерживаются
Xcode 3.2.6
В чем разница?
В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги
В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги • Интеграция с популярными инструментами и фреймворками: Kiwi, Dash, CocoaPods (v2.5)
В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги • Интеграция с популярными инструментами и фреймворками: Kiwi, Dash, CocoaPods (v2.5) • Интеграция с системами контроля версий, баг-трекерами, и т.д.
В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги • Интеграция с популярными инструментами и фреймворками: Kiwi, Dash, CocoaPods (v2.5) • Интеграция с системами контроля версий, баг-трекерами, и т.д. • Поддерживает плагины
Demo
Интеграция с Xcode • Самая актуальная версия Xcode • Та же проектная модель
Интеграция с Xcode
Интеграция с Xcode • xcodebuild
Интеграция с Xcode • xcodebuild • Simulator, Device
Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB
Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments
Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments • Clang
Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments • Clang • Project Settings
Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments • Clang • Project Settings • Системные утилиты Xcode
Interface Builder
Interface Builder • Интеграции нет, потому что:
Interface Builder • Интеграции нет, потому что: • Interface Builder достаточно хорош
Interface Builder • Интеграции нет, потому что: • Interface Builder достаточно хорош • Инженерная сложность
Сложности
Сложности • Обновления Xcode, Simulator
Сложности • Обновления Xcode, Simulator • LLDB
Сложности • Обновления Xcode, Simulator • LLDB • Версия
Сложности • Обновления Xcode, Simulator • LLDB • Версия • Evaluate expression
Сложности • Обновления Xcode, Simulator • LLDB • Версия • Evaluate expression • Обратная связь с Apple
Развитие интеграции с Xcode
Развитие интеграции с Xcode • Работа с проектными настройками
Развитие интеграции с Xcode • Работа с проектными настройками • C++
Развитие интеграции с Xcode • Работа с проектными настройками • C++ • ? Core Data
Развитие интеграции с Xcode • Работа с проектными настройками • C++ • ? Core Data • ? IB
Планы на будущее
Планы на будущее • Интеграция с полезными инструментами
Планы на будущее • Интеграция с полезными инструментами • Постепенный “уход” от Xcode
Планы на будущее • Интеграция с полезными инструментами • Постепенный “уход” от Xcode • Работа с кодом: нет предела совершенству
Спасибо за внимание!

"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Мария Халусова, JetBrains