View
3.755
Download
14
Category
Preview:
DESCRIPTION
Выбор языка для разработки под iOS не ограничен Objective-C — всё зависит от конкретных задач. Но даже если код пишется на Objective-C, у разработчика есть и другие инструменты, кроме Xcode, способные облегчить жизнь. Есть сторонние тестовые фреймворки, менеджеры зависимостей, браузеры документации и, конечно, альтернативные IDE — например, AppCode. В докладе я расскажу, почему в JetBrains создали собственную IDE для Objective-C, а не просто плагин к Xcode. Обсудим, чем AppCode отличается от Xcode, и как мы реализовали интеграцию с этой средой. А также поговорим о возникавших сложностях и планах по развитию интеграции и всего продукта.
Citation preview
Мария Халусова
Инструментарий разработчика 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
• Работа с кодом: нет предела совершенству
Спасибо за внимание!
Recommended