https://zen.yandex.ru/media/android_junior/kak-otpravit-povtornyi-ivent-u-flow-61a65666e154782775595b14 — нашла красивый способ как заставить flow отправлять все события, а не только уникальные
Дзен | Статьи
Как отправить повторный ивент у Flow
Статья автора «Блог Android-разработчицы» в Дзене ✍: Я давно уже перешла с LiveData на Flow.
https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-massivy-i-sviazannye-spiski-chast-3-61a7d94a9d60417bd77ba7c4 — часть 3. Сравнение массивов и связанных списков.
Дзен | Статьи
Грокаем алгоритмы. Массивы и связанные списки. Часть 3.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Заметки:
https://zen.yandex.ru/media/android_junior/kak-sdelat-graf-zavisimostei-v-mnogomodulnom-prilojenii-61a91968404ee75139818350?& — научилась делать красивые графики. Оказалось, что это просто делать без всяких сторонних библиотек.
Яндекс Дзен
Как сделать граф зависимостей в многомодульном приложении.
Научилась сегодня отображать зависимости модулей на картинке. Вы только посмотрите как красиво это выглядит.
https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-sortirovka-vyborom-chast-4-61a91f4065594c7ef1fb8d35 — первая полноценная сортировка из книги 😍
Дзен | Блогерская платформа
Грокаем алгоритмы. Сортировка выбором. Часть 4.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Предположим, мы хотим отсортировать список по убыванию. Одна из самых простых, но не самых эффективных сортировок — сортировка выбором.
https://zen.yandex.ru/media/android_junior/raznica-mejdu--i-any-v-kotlin-61aa890da1e1c739c17b24fb — разбираем сложные вопросы в выходные :)
Дзен | Блогерская платформа
Разница между * и Any в Kotlin
Статья автора «Блог Android-разработчицы» в Дзене ✍: Разбираю у себя закладки и нашла интересный вопрос: какая разница между Generic<*> и Generic<Any>?
Узнаем про рекурсии. Глава интересная и простая. Склоняюсь к тому, что если хочется узнать основы алгоритмов, то книга прям идеальная для этого — https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-rekursiia-chast-5-61ad2b2f15d3ca78802bc9b3
Дзен | Статьи
Грокаем алгоритмы. Рекурсия. Часть 5
Статья автора «Блог Android-разработчицы» в Дзене ✍: Заметки: Стек: Интересный факт, что каждый раз создается своя копия для number. Обратиться к number из другого метода нельзя.
https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-esce-nemnogo-rekursii-chast-6-61ae3e31609d143097dece0a?& — и ещё про рекурсию
Дзен | Статьи
Грокаем алгоритмы. Ещё немного рекурсии. Часть 6.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Заметки: Немного задач с примерами рекурсии: https://github.com/Ladgertha/Algorithms/blob/master/src/main/java/Recursive.kt
Вчера был доклад на вечную тему «Как сделать, чтобы проект собирался быстрее», но с интересным посылом «Как (не) ускорить сборку Android-проекта». Видео по ссылке: https://youtu.be/9YGScnDosN8?t=7063. Не сказать, чтобы я узнала что-то новое, но в целом докладчик хорошо рассказывает. А ещё он против модуля buildSrc, который я очень люблю. И он не упомянул, что в 7 gradle были большие доработки, так что с buildSrc не всё так плохо.
Кстати, я удивилась, когда докладчик сказал, что nonTransitiveRClass особо не ускоряет. Я читала, что он увеличивает скорость чуть ли не на 20%. Это было прям открытие для меня. Интересно всё-таки будет проверить на большом проекте, но для этого нужно, чтобы на этом большом проекте был седьмой gradle.
P.S. само видео почти на 2,5 часа, но имеет смысл смотреть только последний доклад. Остальное было про iOS.
Кстати, я удивилась, когда докладчик сказал, что nonTransitiveRClass особо не ускоряет. Я читала, что он увеличивает скорость чуть ли не на 20%. Это было прям открытие для меня. Интересно всё-таки будет проверить на большом проекте, но для этого нужно, чтобы на этом большом проекте был седьмой gradle.
P.S. само видео почти на 2,5 часа, но имеет смысл смотреть только последний доклад. Остальное было про iOS.
YouTube
Sber Mobile Meetup // 7.12.2021
Ближайшая конференция: Mobius 2025 Spring, 9–10 апреля, Москва + онлайн. Подробности и билеты: https://jrg.su/ojGU3B
— — Sber Mobile Meetup — это бесплатный онлайн-митап для мобильных разработчиков.
Доклады в программе:
– Андрей Попов — «Современный подход…
— — Sber Mobile Meetup — это бесплатный онлайн-митап для мобильных разработчиков.
Доклады в программе:
– Андрей Попов — «Современный подход…
Немного про быструю сортировку — https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-bystraia-sortirovka-chast-7-61c8d65478414f16c628ae96?&
Дзен | Статьи
Грокаем алгоритмы. Быстрая сортировка. Часть 7
Статья автора «Блог Android-разработчицы» в Дзене ✍: Заметки: Эта сортировка намного быстрее сортировки выбором (когда делим пополам всегда).
https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-heshtablicy-chast-8-61e86d813f62d6513a436350?& — хорошая глава про хеш-таблицы. Прочитала уже больше половины книги и пока что она мне очень нравится. Легкая и интересная — что еще нужно новичкам :)
Дзен | Статьи
Грокаем алгоритмы. Хеш-таблицы. Часть 8.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Заметки: Теперь самое интересное. Время: Напомню, что О(1) — не моментальное время, а одинаковое всегда.
https://www.youtube.com/watch?v=qdTYqdMkIRg — небольшой митап, который сейчас начинается. Будет про WorkManager и миграцию на viewBinding
YouTube
GDG Minsk Mobile January Meetup
Subscribe to GDG Minsk:
Slides - https://shorturl.at/hsyHV
Feedback - https://forms.gle/x3RMjFe6d3SChK9j9
Telegram - https://t.me/gdgminsk
Facebook - https://www.facebook.com/groups/gdgminsk
Twitter - https://twitter.com/gdgminsk
✅ Анна Жаркова
Компания…
Slides - https://shorturl.at/hsyHV
Feedback - https://forms.gle/x3RMjFe6d3SChK9j9
Telegram - https://t.me/gdgminsk
Facebook - https://www.facebook.com/groups/gdgminsk
Twitter - https://twitter.com/gdgminsk
✅ Анна Жаркова
Компания…
Дошли до сложностей. Заметки по графам — https://zen.yandex.ru/media/android_junior/grokaem-algoritmy-grafy-i-poisk-v-shirinu-chast-9-61eda952bdda022848cc53e1
Дзен | Статьи
Грокаем алгоритмы. Графы и поиск в ширину. Часть 9
Статья автора «Блог Android-разработчицы» в Дзене ✍: Заметки: Как написать алгоритм с графами: 1) Создаем очередь с проверяемыми (двусторонняя) элементами.
https://zen.yandex.ru/media/android_junior/vajnost-softskillov-6202da52ffaa8e5ec1fc1caa — немного про софт-скиллы
Дзен | Статьи
Важность софт-скиллов
Статья автора «Блог Android-разработчицы» в Дзене ✍: В последнее время увлеклась темой софт-скиллов и смотрю кучу докладов. И вот что я поняла: на самом деле у меня всё плохо с ними.
Иногда нет сил что-то писать, но в то же время хочется. Так что просто легкая информация. :) https://zen.yandex.ru/media/android_junior/dinamicheskoe-obiavlenie-zavisimostei-6224d6c27a218f1d5ea5fe19
Дзен | Статьи
Динамическое объявление зависимостей
Статья автора «Блог Android-разработчицы» в Дзене ✍: Динамическое объявление — это когда мы пишем implementation("androidx.core:core-ktx:1.+").
Начинаем разбирать основные вопросы с собеседований и как бы я отвечала на них. Тут уже не совсем джуниорский уровень, но старалась отвечать максимально просто — https://zen.yandex.ru/media/android_junior/osnovnye-komponenty-androida-sobesedovanie-622de3788b35bd231d6dbaa4
Дзен | Блогерская платформа
Основные компоненты андроида. Собеседование.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Решила я походить по собеседованиям и оценить свои знания и стоимость на рынке. Но сначала было бы неплохо подготовиться.
❤1
А точно каждый компонент должен быть зарегистрирован в манифесте?
Нет, не точно. Broadcast Receiver можно зарегистрировать двумя способами: статически в манифесте или динамически в коде.
Стоит заметить, что начиная с Android 8 большинство неявных бродкастов нельзя регистрировать в манифесте. Неявный бродкаст, это когда сообщение отправляется вообще всем приложениям, которые подходят, а не только нашему. Почему нельзя? В Android 8 были большие доработки по оптимизации. Представьте, что куча приложений подписаны на какое-то системное событие. Каждый бродкаст в этом случае потребляет ресурсы каждый раз при получении сообщения. В следствии этого активно тратится батарея, пользователь грустит и удаляет приложение.
Но все еще можем регистрировать в коде.
Список всех интентов, для которых неявный бродкаст можно в манифесте регистрировать — https://developer.android.com/guide/components/broadc...
Из тех, которые я помню:
ACTION_BOOT_COMPLETED — отправляется один раз при загрузке. Необходим для многих приложений, чтобы они все проинициализировались, запланировали что им надо и прочее.
ACTION_TIMEZONE_CHANGED и похожие — чтобы приложении могли свои настройки поправить (например, будильники).
ACTION_CONNECTION_STATE_CHANGED — чтобы приложения знали про соединение.
Еще есть всякие флаги, связанные со звонками, сообщениями, сетью и сменой/удаления пользователя.
Google рекомендует использовать JobSheduler вместо неявных бродкастов.
Какие вопросы можно задать из этого ответа?
— А какие еще ограничения есть?
— Что за JobSheduler и почему его?
Нет, не точно. Broadcast Receiver можно зарегистрировать двумя способами: статически в манифесте или динамически в коде.
Стоит заметить, что начиная с Android 8 большинство неявных бродкастов нельзя регистрировать в манифесте. Неявный бродкаст, это когда сообщение отправляется вообще всем приложениям, которые подходят, а не только нашему. Почему нельзя? В Android 8 были большие доработки по оптимизации. Представьте, что куча приложений подписаны на какое-то системное событие. Каждый бродкаст в этом случае потребляет ресурсы каждый раз при получении сообщения. В следствии этого активно тратится батарея, пользователь грустит и удаляет приложение.
Но все еще можем регистрировать в коде.
Список всех интентов, для которых неявный бродкаст можно в манифесте регистрировать — https://developer.android.com/guide/components/broadc...
Из тех, которые я помню:
ACTION_BOOT_COMPLETED — отправляется один раз при загрузке. Необходим для многих приложений, чтобы они все проинициализировались, запланировали что им надо и прочее.
ACTION_TIMEZONE_CHANGED и похожие — чтобы приложении могли свои настройки поправить (например, будильники).
ACTION_CONNECTION_STATE_CHANGED — чтобы приложения знали про соединение.
Еще есть всякие флаги, связанные со звонками, сообщениями, сетью и сменой/удаления пользователя.
Google рекомендует использовать JobSheduler вместо неявных бродкастов.
Какие вопросы можно задать из этого ответа?
— А какие еще ограничения есть?
— Что за JobSheduler и почему его?
👍1
Почему setContentView() надо обязательно указывать в onCreate() в активити? Почему не в onResume или в onViewCreated?
Тут надо вспомнить жизненный цикл активити. Ответ кроется в том, что onCreate у активити вызывается только один раз. Именно в этом методе мы делаем большинство инициализаций.
setContentView() — метод, который позволяет разместить пользовательский интерфейс на экране. И это достаточно тяжелая операция, особенно учитывая, что может быть очень сложная иерархия. Её нужно делать один раз. Если делать каждый раз в onResume, то, например, просто посмотрев уведомление в шторке, операция будет выполняться снова, что ухудшает производительность, приложение может подвиснуть, пользователь расстроится и напишет гневный отзыв.
Вопросы, которые можно задать?
— Какие параметры можно передать в setContentView?
— Какой жизненный цикл у активити?
— А есть еще какие-то методы, которые вызываются только один раз?
— Как работает onCreate?
Тут надо вспомнить жизненный цикл активити. Ответ кроется в том, что onCreate у активити вызывается только один раз. Именно в этом методе мы делаем большинство инициализаций.
setContentView() — метод, который позволяет разместить пользовательский интерфейс на экране. И это достаточно тяжелая операция, особенно учитывая, что может быть очень сложная иерархия. Её нужно делать один раз. Если делать каждый раз в onResume, то, например, просто посмотрев уведомление в шторке, операция будет выполняться снова, что ухудшает производительность, приложение может подвиснуть, пользователь расстроится и напишет гневный отзыв.
Вопросы, которые можно задать?
— Какие параметры можно передать в setContentView?
— Какой жизненный цикл у активити?
— А есть еще какие-то методы, которые вызываются только один раз?
— Как работает onCreate?
Продолжаем готовиться — https://zen.yandex.ru/media/android_junior/rasskaji-pro-aktiviti-i-ee-jiznennyi-cikl-6230de8248635521ad6b7d58?&
Дзен | Статьи
Расскажи про активити и её жизненный цикл.
Статья автора «Блог Android-разработчицы» в Дзене ✍: Activity — по сути, это экран, который видит пользователь.
👍2
— Что будет, если мы вызовем finish() в одном из колбэков жизненного цикла, а чуть дальше напишем что-то еще?
Выполнится весь метод и только потом произойдет завершение. Почему так?
Все методы жизненного цикла всегда обрабатываются в главном потоке в порядке очереди. И вот если мы вызовем finish() в одном из методов жизненного цикла, то в эту очередь добавится сообщение, но оно не будет выполнено, пока не вернется выполняемый callback, т.е. пока главный поток не освободится от текущей задачи.
— Когда в activity вызывается finish(), какие методы жизненного цикла вызываются?
onPause — onStop — onDestroy. Тут важно, что метод onSaveInstanceState не вызывается, потому что активити полностью уничтожается.
Выполнится весь метод и только потом произойдет завершение. Почему так?
Все методы жизненного цикла всегда обрабатываются в главном потоке в порядке очереди. И вот если мы вызовем finish() в одном из методов жизненного цикла, то в эту очередь добавится сообщение, но оно не будет выполнено, пока не вернется выполняемый callback, т.е. пока главный поток не освободится от текущей задачи.
— Когда в activity вызывается finish(), какие методы жизненного цикла вызываются?
onPause — onStop — onDestroy. Тут важно, что метод onSaveInstanceState не вызывается, потому что активити полностью уничтожается.