Время сборки swift-приложений стало притчей во языцех в iOS-сообществе. Чуть ли не каждый день появляется новая статья о том, как ускорить компиляцию исходного кода очередным лайфхаком. При этом современные мобильные проекты давно перешагнули стадию быстрой домашней разработки и сейчас включают сотни тысяч строк кода, удобная организация которого также представляет собой нетривиальную задачу. Одним из решений указанных проблем является создание фреймворков, реализующих основополагающий принцип разделения ответственностей модульной архитектуры.
В рамках доклада будут рассмотрены процессы создания и поддержки фреймворков и организация многослойного приложения на их основе. Слушатели узнают о сложностях, с которыми им придется столкнуться при разработке фреймворка, и о том, как их следует решать.
Рассказ будет интересен разработчикам, сталкивающимся в своей практике с задачей развития универсальных приложений со множеством дополнительных возможностей.
18. Frameworks
• Что такое framework
• Как создать framework
• Как распространять framework
• Как использовать framework
19. Frameworks
• Что такое framework
• Как создать framework
• Как распространять framework
• Как использовать framework
20. Frameworks
Separation of Concerns
П р о г р а м м а д о л ж н а с о с т о я т ь и з
функциональных блоков, как можно
меньше дублирующих функциональность
друг друга.
Э. Дейкстра
28. Frameworks
2.5.2
Software Requirements
App Store Review Guidelines
Apps should be self-contained in their bundles, and may not read or write data
outside the designated container area, nor may they download, install, or
execute code, including other iOS, watchOS, macOS, or tvOS apps.
36. Frameworks
* - можно использовать Swift на iOS7, включив в
проект напрямую
Static vs Dynamic
iOS Swift Objecive-C
Static Framework 6 - +
Dynamic Framework 8* + +
56. Frameworks
Framework and Extension
• Доступ к sharedApplication и его методам
• Использовать NS_EXTENSION_UNAVAILABLE
• Использовать камеру и микрофон
• Запускать длительные фоновые задачи
• Получать данные через AirDrop
70. Frameworks
Недостатки
«So you absolutely can and should use some, but it’s good to try
to target a limited number, we would, I would say off hand, a good
target’s about a half a dozen»
71. Frameworks
• Что такое framework
• Как создать framework
• Как распространять framework
• Как использовать framework