Фреймворк DivKit от Яндекса стал доступен как open source решение. Инструмент позволяет менять интерфейс приложений без скачивания обновлений и значительно ускоряет мобильную разработку.
Фреймворк для всех
В DivKit применяется подход server driven UI, который позволяет управлять интерфейсом мобильного приложения с сервера. Благодаря этому возможно вносить изменения во внешний вид программы и не просить пользователей установить обновления. Можно изменять как существующие элементы, так и добавлять новые, например, галерею или счетчик лайков. Разработчику достаточно описать в формате JSON нужную верстку, после чего фреймворк преобразует ее в детали интерфейса.
Инструмент позволяет вносить изменения сразу в несколько платформ – поддерживает работу с Android, iOS и веб-приложениями. Писать для каждой отдельный код не требуется.
В DivKit также представлены библиотеки для разработки серверной части на Kotlin, TypeScript и Python.
Главные особенности
В фреймворке реализован фронтенд-сервис – на клиенте происходят загрузка, кеширование и интеграция DivView. Инструмент получает данные для отрисовки интерфейса и обрабатывающие действия компоненты. В нем применяется концепция состояний для реализации простых и комплексных смен дизайна. Также присутствует система анимаций, при помощи которой описывается анимация переходов между состояниями.
В DivView поддерживаются шаблоны, обеспечивающие инкапсуляцию, переиспользование, наследование и быстрый парсинг. Доступны глобальные переменные (например, для изменения цвета), а также локальные для реализации функций вроде счетчика лайков. При помощи кастомизации во фреймворке можно создавать дополнительную логику — изменить поведение и отображение любого элемента.
Практическое применение
Илья Богин, руководитель отдела мобильной разработки Яндекса, рассказал, что в компании над разработкой DivKit трудились пять лет. Сейчас фреймворк задействован во многих сервисах компании. С его помощью построен дизайн главного экрана в приложении Яндекс, также инструмент применяется в «Едадиле», «Маркете», «Алисе», «Яндекс ТВ» и других мобильных программах.
Перевод фреймворка в open source позволит получить доступ к его функционалу всем желающим. Исходный код доступен на GitHub под свободной лицензией Apache 2.0. По словам компании, освоить DivKit можно за несколько часов благодаря простоте решения.