Anonymous Quiz
80%
Использовать as? и ?:
4%
Применить is и явное приведение
12%
Использовать try/catch блок с явным приведением
5%
Использовать функцию typeSafeCast
Anonymous Quiz
16%
Использовать перегрузку функций.
55%
Использовать generic функцию с ограничениями типа.
21%
Применить when с проверками типа через is.
7%
Использовать dynamic тип.
💊10
2. Ссылочные: классы, интерфейсы, массивы и перечисления.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1🤔1
Anonymous Quiz
36%
Использовать Delegates.observable.
7%
Применить список слушателей и рассылать уведомления вручную.
3%
Использовать встроенный в Kotlin механизм событий.
55%
Применить Flow и StateFlow для оповещений.
💊5
Anonymous Quiz
30%
Использовать observable из kotlin.properties.Delegates и добавить логику сохранения в обработчик.
44%
Написать класс, реализующий ReadWriteProperty и включающий логику сохранения в методах чтения/записи
6%
Применить аннотацию @Persist к свойствам, которые нужно сохранять.
20%
Использовать паттерн "Наблюдатель" с автоматическим оповещением о изменениях.
2. Минимизация времени пауз для пользователей (особенно важно в Android).
3. Оптимизация использования памяти для предотвращения утечек и OutOfMemoryError.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Anonymous Quiz
77%
object SingletonExample { fun demo() = "Demo" }
15%
class SingletonExample { companion object { fun demo() = "Demo" } }
3%
class SingletonExample private constructor() { fun demo() = "Demo" }
5%
class SingletonExample { object Demo { fun demo() = "Demo" } }
Anonymous Quiz
5%
use {}
5%
apply {}
80%
finally {}
10%
run {}
💊7
2. Сохранить данные в ViewModel, чтобы они переживали пересоздание.
3. Сохранить данные в локальном хранилище, например, SharedPreferences.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
15%
lateinit можно использовать с примитивными типами
7%
lateinit позволяет инициализировать переменные в конструкторе
73%
lateinit должен быть проинициализирован до первого обращения
5%
lateinit автоматически делает переменную nullable
Anonymous Quiz
36%
internal
52%
private
10%
protected
1%
public
💊23😁2🤯1
2. При восстановлении (в onRestoreInstanceState) установить сохранённую позицию через RecyclerView.scrollToPosition или ScrollView.scrollTo.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
93%
?.
6%
!!
1%
::
0%
->
Anonymous Quiz
21%
::
9%
->
20%
destruct
50%
componentN()
1. Контролировать память: избегать лишнего создания объектов.
2. Гарантировать единственный экземпляр: например,
3. Разделять области ответственности: создавать зависимости, привязанные к жизненному циклу Activity, Fragment, ViewModel и т.д.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Anonymous Quiz
1%
final
7%
private
80%
protected
12%
internal
💊5
Anonymous Quiz
51%
Использовать try/catch с библиотекой парсинга JSON
8%
Применить safeCast с проверкой на null.
2%
Использовать validate метод библиотеки парсинга.
40%
Применить Kotlin сериализацию с автоматической валидацией типов.
1. Класс должен выполнять только одну задачу или отвечать за один аспект функциональности.
2. Изменения в одной части функционала не должны влиять на другие аспекты.
3. Это упрощает сопровождение, тестирование и повторное использование кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🤔1
Anonymous Quiz
66%
Создать интерфейс Command с методом execute() и реализовать его в конкретных командах.
10%
Использовать классы с наследованием от базового класса Command.
14%
Применить функции расширения для инкапсуляции операций.
11%
Использовать анонимные объекты для каждой команды.
Anonymous Quiz
66%
Использовать класс Random и функцию setSeed.
5%
Применить ThreadLocalRandom и передавать сид при каждом вызове.
12%
Использовать SecureRandom с предварительной установкой сида.
17%
Создать пользовательский класс на основе Random, управляя сидом вручную.