Задача — добавить rutube как oembed провайдера в медиа библиотеку, чтобы можно было создать медиа тип Rutube, где будет поле для ввода ссылки. Медиа поля после этого позволят добавлять еще один тип медиа содержимого — Rutube Video.
Читать далее »Архив за Февраль, 2025
Выбор версии php по-умолчанию
Когда на unix сервере используется несколько версий php, то может возникнуть задача включить определенную версию для использования по-умолчанию. Чтобы, к примеру, composer при проверке требований версии php, остался доволен.
Читать далее »KCD 2: Где находится дерево с дуплом в квесте Miri Fajta
Марика (Marika) спрятала пропуск (letter of passage) в hollow tree (дереве с дуплом).
Читать далее »Синглтон и даблчек
Рассмотрим использование двух паттернов программирования в kotlin — singleton и doublecheck.
Читать далее »Как превратить один тип LiveData в другой
В случаях когда один тип LiveData требуется преобразовать в другой, используют медиаторы.
Читать далее »Как сделать ссылку, которая заставит браузер скачать файл
Если коротко, то в тег A можно добавить атрибут download. Это укажет, что содержимое не адрес, куда следует перейти, а файл для скачивания.
Читать далее »Передача параметров при создании viewModel
Распространенная задача — при создании viewModel требуется передать параметры из активити или фрагмента.
Читать далее »View Binding в kotlin
Иногда на собесах спрашивают что такое view binding, и звучит это как некая сложная тема, но на самом деле, это просто фича сборщика, которую можно использовать для упрощения доступа к элементам шаблонов.
Читать далее »Работа с фрагментами в kotlin
Небольшой гайд по работе с фрагментами в android studio.
Фрагменты чем то напоминают фреймы в html. Фрагменты обладают многими возможностями, которые есть у активити (Activity), имеют свой lifecycle, также работают с viewModel и т.п. И конечно же фрагмент имеет собственный шаблон (layout).
Но при этом, фрагмент можно встроить в другой шаблон (используя контейнер FragmentContainerView) и запрограммировать логику активити или другого фрагмента, чтобы он подключал нужный фрагмент, где инкапсулирована требуемая логика.
Читать далее »Cannot find implementation for Database. Database_Impl does not exist (Room)
Данная ошибка при работе c Room обычно связана с неполным или неверным описанием в gradle файлах, связанных с обработчиком аннотаций. Т.е. суть ошибки в том, что он просто не может прочитать аннотации, которые вы сделали к классу базы данных, и по умолчанию ищет класс с указанным в тексте ошибки именем.
Читать далее »