Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

4,055 views

Published on

Выбор языка для разработки под iOS не ограничен Objective-C — всё зависит от конкретных задач. Но даже если код пишется на Objective-C, у разработчика есть и другие инструменты, кроме Xcode, способные облегчить жизнь. Есть сторонние тестовые фреймворки, менеджеры зависимостей, браузеры документации и, конечно, альтернативные IDE — например, AppCode.
В докладе я расскажу, почему в JetBrains создали собственную IDE для Objective-C, а не просто плагин к Xcode. Обсудим, чем AppCode отличается от Xcode, и как мы реализовали интеграцию с этой средой. А также поговорим о возникавших сложностях и планах по развитию интеграции и всего продукта.

  • Be the first to comment

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

  1. 1. Мария Халусова Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты JetBrains
  2. 2. Инструментарий iOS разработчика Сторонние инструменты и AppCode Мария Халусова @mariakhalusova
  3. 3. Инструменты
  4. 4. Инструменты • Язык
  5. 5. Инструменты • Язык • Тестовые фреймворки, менеджеры зависимостей, инструменты отладки, и т.д.
  6. 6. Инструменты • Язык • Тестовые фреймворки, менеджеры зависимостей, инструменты отладки, и т.д. • IDE
  7. 7. Язык
  8. 8. Язык • Objective-C
  9. 9. Язык • Objective-C • Ruby (RubyMotion)
  10. 10. Язык • Objective-C • Ruby (RubyMotion) • C# (Xamarin)
  11. 11. Язык • Objective-C • Ruby (RubyMotion) • C# (Xamarin) • HTML5, JavaScript, ... = web
  12. 12. Ruby Temple Jukely Inktera
  13. 13. C#
  14. 14. 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
  15. 15. Native: Objective-C И все?
  16. 16. Сторонние инструменты
  17. 17. Сторонние инструменты • Тестовые фреймворки
  18. 18. Сторонние инструменты • Тестовые фреймворки • Инструменты документации
  19. 19. Сторонние инструменты • Тестовые фреймворки • Инструменты документации • Менеджер зависимостей
  20. 20. Сторонние инструменты • Тестовые фреймворки • Инструменты документации • Менеджер зависимостей • Инструменты диагностики
  21. 21. Сторонние инструменты • Тестовые фреймворки • Инструменты документации • Менеджер зависимостей • Инструменты диагностики • И т.д.
  22. 22. Тестовые фреймворки
  23. 23. Тестовые фреймворки
  24. 24. Тестовые фреймворки • Kiwi
  25. 25. Тестовые фреймворки • Kiwi • Specta, Cedar
  26. 26. Тестовые фреймворки • Kiwi • Specta, Cedar • KIF
  27. 27. Тестовые фреймворки • Kiwi • Specta, Cedar • KIF • Calabash, Frank
  28. 28. Тестовые фреймворки • Kiwi • Specta, Cedar • KIF • Calabash, Frank • Zucchini
  29. 29. Тестовые фреймворки • Kiwi • Specta, Cedar • KIF • Calabash, Frank • Zucchini • ...
  30. 30. Документация
  31. 31. Документация • Dash
  32. 32. Документация • Dash • appledoc
  33. 33. Документация • Dash • appledoc • doxygen
  34. 34. Менеджер зависимостей • CocoaPods
  35. 35. Диагностика
  36. 36. Диагностика • Cocoa Lumberjack
  37. 37. Диагностика • Cocoa Lumberjack • DCIntrospector
  38. 38. Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger
  39. 39. Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger • SimPholders
  40. 40. Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger • SimPholders • Spark Inspector, Reveal
  41. 41. Диагностика • Cocoa Lumberjack • DCIntrospector • PonyDebugger • SimPholders • Spark Inspector, Reveal • ...
  42. 42. Диагностика: Reveal
  43. 43. Прочее
  44. 44. Прочее • Рисовалки макетов дизайна: Mocks, Briefs,Acorn, Sketch, ...
  45. 45. Прочее • Рисовалки макетов дизайна: Mocks, Briefs,Acorn, Sketch, ... • Core Data: Mogenerator, Base, Core Data Editor
  46. 46. Прочее • Рисовалки макетов дизайна: Mocks, Briefs,Acorn, Sketch, ... • Core Data: Mogenerator, Base, Core Data Editor • Deployment: Deploymate, Cupertino, Hockey App,TestFlight, Crashlytics
  47. 47. Альтернативная IDE - AppCode: зачем?
  48. 48. Альтернативная IDE - AppCode: зачем? • Работа с кодом
  49. 49. Альтернативная IDE - AppCode: зачем? • Работа с кодом • Богатый опыт создания инструментов разработчика: IntelliJ IDEA, ReSharper, ...
  50. 50. Альтернативная IDE - AppCode: зачем? • Работа с кодом • Богатый опыт создания инструментов разработчика: IntelliJ IDEA, ReSharper, ... • Ранние версии Xcode
  51. 51. Почему не плагин к Xcode?
  52. 52. Почему не плагин к Xcode? • Готовая платформа IntelliJ
  53. 53. Почему не плагин к Xcode? • Готовая платформа IntelliJ • Официально плагины к Xcode никак не поддерживаются
  54. 54. Xcode 3.2.6
  55. 55. В чем разница?
  56. 56. В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги
  57. 57. В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги • Интеграция с популярными инструментами и фреймворками: Kiwi, Dash, CocoaPods (v2.5)
  58. 58. В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги • Интеграция с популярными инструментами и фреймворками: Kiwi, Dash, CocoaPods (v2.5) • Интеграция с системами контроля версий, баг-трекерами, и т.д.
  59. 59. В чем разница? • Работа с кодом: редактирование, генерация, навигация, рефакторинги • Интеграция с популярными инструментами и фреймворками: Kiwi, Dash, CocoaPods (v2.5) • Интеграция с системами контроля версий, баг-трекерами, и т.д. • Поддерживает плагины
  60. 60. Demo
  61. 61. Интеграция с Xcode • Самая актуальная версия Xcode • Та же проектная модель
  62. 62. Интеграция с Xcode
  63. 63. Интеграция с Xcode • xcodebuild
  64. 64. Интеграция с Xcode • xcodebuild • Simulator, Device
  65. 65. Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB
  66. 66. Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments
  67. 67. Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments • Clang
  68. 68. Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments • Clang • Project Settings
  69. 69. Интеграция с Xcode • xcodebuild • Simulator, Device • Debugger: GDB, LLDB • Instruments • Clang • Project Settings • Системные утилиты Xcode
  70. 70. Interface Builder
  71. 71. Interface Builder • Интеграции нет, потому что:
  72. 72. Interface Builder • Интеграции нет, потому что: • Interface Builder достаточно хорош
  73. 73. Interface Builder • Интеграции нет, потому что: • Interface Builder достаточно хорош • Инженерная сложность
  74. 74. Сложности
  75. 75. Сложности • Обновления Xcode, Simulator
  76. 76. Сложности • Обновления Xcode, Simulator • LLDB
  77. 77. Сложности • Обновления Xcode, Simulator • LLDB • Версия
  78. 78. Сложности • Обновления Xcode, Simulator • LLDB • Версия • Evaluate expression
  79. 79. Сложности • Обновления Xcode, Simulator • LLDB • Версия • Evaluate expression • Обратная связь с Apple
  80. 80. Развитие интеграции с Xcode
  81. 81. Развитие интеграции с Xcode • Работа с проектными настройками
  82. 82. Развитие интеграции с Xcode • Работа с проектными настройками • C++
  83. 83. Развитие интеграции с Xcode • Работа с проектными настройками • C++ • ? Core Data
  84. 84. Развитие интеграции с Xcode • Работа с проектными настройками • C++ • ? Core Data • ? IB
  85. 85. Планы на будущее
  86. 86. Планы на будущее • Интеграция с полезными инструментами
  87. 87. Планы на будущее • Интеграция с полезными инструментами • Постепенный “уход” от Xcode
  88. 88. Планы на будущее • Интеграция с полезными инструментами • Постепенный “уход” от Xcode • Работа с кодом: нет предела совершенству
  89. 89. Спасибо за внимание!

×