Виды кэширования
1️⃣ In-Memory Cache
Это кэш, который живёт вместе с приложением, перезапуск он не переживает.
Типичная реализация – синглтон, в переменных которого вы сохраняете нужную информацию.
➕ Плюсы: быстрое чтение и запись, не надо морочиться с БД.
➖ Минусы: нет всех плюсов хорошей обёртки над БД типа Room, всё надо делать самому руками. Да и тяжёлые данные в In-memory кэше забивают память и могут усложнять использование кэша.
Используется, когда быстрая скорость чтения и записи напрямую влияет на пользовательский опыт, а переживать перезапуск не нужно.
2️⃣ Persistent Cache
Это кэш, который переживает приложение, сохраняясь в памяти устройства.
Чаще всего это или уже знакомые вам преференсы, или Room, который я буду завозить в наше приложение на стриме в четверг.
➕ Плюсы: удобное и гибкое использование через Room, переживает перезапуск, хорошо оптимизирован для хранения и чтения больших и сколь угодно сложно связанных данных.
➖ Минусы: медленнее, чем просто достать данные из памяти приложения, и надо потратить время, чтобы разобраться.
Чаще всего в приложении используются оба типа кэша, а как ими управлять, сколько каждый из них живёт по времени и тд – ответственность репозитория.
#android #лайфхаки
@andrdevnotes | androidmentor.ru
1️⃣ In-Memory Cache
Это кэш, который живёт вместе с приложением, перезапуск он не переживает.
Типичная реализация – синглтон, в переменных которого вы сохраняете нужную информацию.
Используется, когда быстрая скорость чтения и записи напрямую влияет на пользовательский опыт, а переживать перезапуск не нужно.
2️⃣ Persistent Cache
Это кэш, который переживает приложение, сохраняясь в памяти устройства.
Чаще всего это или уже знакомые вам преференсы, или Room, который я буду завозить в наше приложение на стриме в четверг.
Чаще всего в приложении используются оба типа кэша, а как ими управлять, сколько каждый из них живёт по времени и тд – ответственность репозитория.
#android #лайфхаки
@andrdevnotes | androidmentor.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1🫡1
💥 А ты знал, что сложно не одному тебе? 💥
В андроид-разработке полно всяких ситуаций, которые нельзя предсказать, а потому невозможно их предвосхитить и избежать. Ты все равно будешь время от времени хвататься за голову, гуглить странные ошибки, а решения из StackOverFlow будут приводить к ещё более странным ошибкам.
Хочешь посмотреть, как это буду делать я?
🔜 В четверг 20 июня, в 19:00 будет вторая серия стрима "Создаём проект с нуля"!
Вместе с вами будем писать приложение для отображения списка персонажей из Rick and Morty. "Вместе с вами" – это не пустые слова, без ваших комментариев и живого обсуждения я быстро стухну.
📋 У нас в планах:
– перенести логику во фрагменты
– завезти ViewBinding
– добавить в элементы списка картинку с помощью Glide
– пагинация и бесконечный скролл с лоадером и пулл-ту-рефрешем
– обработать клик по картинке с переходом на DetailsFragment
– кэширование: InMemory и Persistent (Room)
В процессе постараюсь объяснять, что делаю, и время от времени отвечать на вопросы.
⏱ Стрим будет идти ориентировочно 1.5 - 2 часа.
Стрим в live смотреть куда интереснее, так что советую жать колокольчик на ютубе и не пропускать ;)
Репозиторий
Ставьте +, кто придёт!
#android #видео #стрим
@andrdevnotes | обучение android
В андроид-разработке полно всяких ситуаций, которые нельзя предсказать, а потому невозможно их предвосхитить и избежать. Ты все равно будешь время от времени хвататься за голову, гуглить странные ошибки, а решения из StackOverFlow будут приводить к ещё более странным ошибкам.
Хочешь посмотреть, как это буду делать я?
Вместе с вами будем писать приложение для отображения списка персонажей из Rick and Morty. "Вместе с вами" – это не пустые слова, без ваших комментариев и живого обсуждения я быстро стухну.
📋 У нас в планах:
– перенести логику во фрагменты
– завезти ViewBinding
– добавить в элементы списка картинку с помощью Glide
– пагинация и бесконечный скролл с лоадером и пулл-ту-рефрешем
– обработать клик по картинке с переходом на DetailsFragment
– кэширование: InMemory и Persistent (Room)
В процессе постараюсь объяснять, что делаю, и время от времени отвечать на вопросы.
⏱ Стрим будет идти ориентировочно 1.5 - 2 часа.
Репозиторий
Ставьте +, кто придёт!
#android #видео #стрим
@andrdevnotes | обучение android
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Создаём android-приложение с нуля: Часть 2
Стек: XML, REST, MVVM, MultiModule Clean, Hilt, Glide, Room, ViewBinding, Gson, Coroutines, Retrofit, WorkManager
Телеграм-канал: https://t.iss.one/andrdevnotes
Обучение android: https://androidmentor.ru
Телеграм-канал: https://t.iss.one/andrdevnotes
Обучение android: https://androidmentor.ru
👍8🔥5❤2
Next Level Dev
💥 А ты знал, что сложно не одному тебе? 💥 В андроид-разработке полно всяких ситуаций, которые нельзя предсказать, а потому невозможно их предвосхитить и избежать. Ты все равно будешь время от времени хвататься за голову, гуглить странные ошибки, а решения…
YouTube
Создаём android-приложение с нуля: Часть 2
Стек: XML, REST, MVVM, MultiModule Clean, Hilt, Glide, Room, ViewBinding, Gson, Coroutines, Retrofit, WorkManager
Телеграм-канал: https://t.iss.one/andrdevnotes
Обучение android: https://androidmentor.ru
Телеграм-канал: https://t.iss.one/andrdevnotes
Обучение android: https://androidmentor.ru
👍5❤2🔥2😍1
Запись второй серии лайвкодинг-стрима
Спасибо всем, кто был со мной!
И приятного просмотра тем, кто будет смотреть в записи :)
Пишите в комментарии на ютубе, как вам стрим!
Это важный вклад в поддержку канала.
@andrdevnotes | Обучение android
Спасибо всем, кто был со мной!
И приятного просмотра тем, кто будет смотреть в записи :)
Пишите в комментарии на ютубе, как вам стрим!
Это важный вклад в поддержку канала.
@andrdevnotes | Обучение android
YouTube
Создаём android-приложение с нуля: Часть 2
Стек: XML, REST, MVVM, MultiModule Clean, Hilt, Glide, Room, ViewBinding, Gson, Coroutines, Retrofit, WorkManager
Телеграм-канал: https://t.iss.one/andrdevnotes
Обучение android: https://androidmentor.ru
Телеграм-канал: https://t.iss.one/andrdevnotes
Обучение android: https://androidmentor.ru
❤7🔥4👍3💯3😍1
Худшая ошибка, которую можно совершить при наследовании, или "Не шутите с SOLIDом"
У меня была амбициозная задача на глубокий рефакторинг, с которой, как мне казалось, я прекрасно справился. Но, спустя время, я стал понимать, что допустил одну непростительную ошибку.
Эта ошибка до сих пор красуется в проде и ежедневно бесит меня и моих коллег. Ух, дойдут у меня руки её порефакторить! Но теперь это будет куда тяжелее, она пустила корни и разрослась.
"А теперь он расскажет, в чём эта ошибка состоит", – подумали вы. А вот и не угадали.
🤔 Ваша очередь мне в комментариях рассказывать, в чём я тогда накосячил! И стало ли лучше справа, чем слева. И что бы вы ещё доработали. 👇👇👇
Посмотрим, как у вас с DRY–KISS–SOLID'ом дела обстоят 😏
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
У меня была амбициозная задача на глубокий рефакторинг, с которой, как мне казалось, я прекрасно справился. Но, спустя время, я стал понимать, что допустил одну непростительную ошибку.
Эта ошибка до сих пор красуется в проде и ежедневно бесит меня и моих коллег. Ух, дойдут у меня руки её порефакторить! Но теперь это будет куда тяжелее, она пустила корни и разрослась.
"А теперь он расскажет, в чём эта ошибка состоит", – подумали вы. А вот и не угадали.
🤔 Ваша очередь мне в комментариях рассказывать, в чём я тогда накосячил! И стало ли лучше справа, чем слева. И что бы вы ещё доработали. 👇👇👇
Посмотрим, как у вас с DRY–KISS–SOLID'ом дела обстоят 😏
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
🤔3👀3🔥1
А теперь внимание – правильный ответ!
Да какой правильный ответ, лол, это же архитектура, тут у всех своя правда.
Как многие из вас отметили, наблюдается проблема с инкапсуляцией. Нельзя делать в родителе стейт и трогать его и из родителя, и из наследников – иначе начнётся жуткая путаница, будет непонятно, что где вызывается и в каких местах меняется.
Из-за этой путаницы любой написанный в родителе или наследнике код может вести к неприятным сайдэффектам и с каждым разом приводить к новым костылям и усилению связности кода.
Поэтому очень желательно либо вообще не заводить в родителе стейт, либо хотя бы делать его приватным, чтобы нельзя было трогать из наследников.
А лучше в родителе обходиться абстрактными переменными и функциями, а также не абстрактными protected функциями.
И вообще, помним: предпочитаем композицию, а не наследование!
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
Как многие из вас отметили, наблюдается проблема с инкапсуляцией. Нельзя делать в родителе стейт и трогать его и из родителя, и из наследников – иначе начнётся жуткая путаница, будет непонятно, что где вызывается и в каких местах меняется.
Из-за этой путаницы любой написанный в родителе или наследнике код может вести к неприятным сайдэффектам и с каждым разом приводить к новым костылям и усилению связности кода.
Поэтому очень желательно либо вообще не заводить в родителе стейт, либо хотя бы делать его приватным, чтобы нельзя было трогать из наследников.
А лучше в родителе обходиться абстрактными переменными и функциями, а также не абстрактными protected функциями.
И вообще, помним: предпочитаем композицию, а не наследование!
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
👍6❤2😁1
Привет, друзья!
Этот канал я веду для того, чтобы помогать начинающим разработчикам быстрее и легче входить в профессию.
И мне важно, чтобы здесь вы находили только нужную и важную для вас информацию.
Пожалуйста, уделите пару минут вашего времени и пройдите опросы ниже 👇👇👇
Это поможет мне лучше понять, какая информация для вас сейчас актуальна.
Этот канал я веду для того, чтобы помогать начинающим разработчикам быстрее и легче входить в профессию.
И мне важно, чтобы здесь вы находили только нужную и важную для вас информацию.
Пожалуйста, уделите пару минут вашего времени и пройдите опросы ниже 👇👇👇
Это поможет мне лучше понять, какая информация для вас сейчас актуальна.
С каким утверждением вы согласны?
Final Results
19%
Джуны никому не нужны, и даже с крутым навыками на работу не устроиться
51%
С крутыми навыками устроиться джуном на работу не составит особых проблем
11%
Выпускник хороших курсов готов устраиваться на работу джуном
59%
Хороший наставник может помочь освоить навыки и устроиться на работу
Какой пункт лучше соответствует вашей текущей ситуации?
Final Results
39%
Я работаю на нелюбимой работе, хочу сменить её на андроид-разработку
11%
Моя работа (не в андроид-разработке) мне нравится, менять её не хочу
13%
Я уже работаю в IT, но хочу в андроид-разработку
19%
Я уже стажёр / джун андроид-разработчик
29%
Я ищу первую работу
Выберите верные для вас утверждения:
Final Results
42%
Непонятно, что делать, чтобы побыстрее устроиться на работу
19%
У меня есть план, что делать, чтобы побыстрее устроиться на работу
32%
Я НЕ понимаю, как готовиться к собеседованиям
14%
Я понимаю, как готовиться к собеседованиям
9%
Я понимаю, что делать, чтобы моё резюме прошло фильтр и меня позвали на собес
51%
Я НЕ понимаю, что делать, чтобы моё резюме прошло фильтр и меня позвали на собес
Я живу в:
Final Results
17%
Москва
10%
Питер
29%
Другой крупный региональный город
15%
Маленький город
30%
Не в РФ
Полезные ссылки для подготовки к собеседованию на junior
Вокруг море информации, где-то неверной, где-то устаревшей. В этой рубрике я буду давать вам ссылки, где информация актуальна и хорошо разъяснена.
И не надо жаловаться, что там местами iOS или джава! Архитектура у iOS / android аналогичная, а джавой андроид не испортишь!
Пишите в комментариях, если есть, что улучшить, будем с вами вместе собирать базу знаний.
1️⃣ Dagger / Hilt
По хилту советую официальную документацию. Там и учить особо нечего, заводится с пол-пинка.
По даггеру у официалов мне дока не нравится, поэтому идём на хабр:
📚 Пытаемся понять Dagger раз
📚 Пытаемся понять Dagger два
2️⃣ MVVM
Тут мы касаемся архитектуры, поэтому можно начинать холиварить. Хотя, строго говоря, это презентейшн-паттерн, а не архитектура – ну вот, видите, я уже начал набрасывать на вентилятор. Короче, ссылки:
📚 О презентейшн-паттернах
📚 Объединяем презентейшн-паттерны с Clean Arch
📚 MVVM по-простому
📚 MVVM-задротство со склонностью к MVI
Если такой контент вам полезен, ставьте лайк!
#android #БазаЗнаний
@andrdevnotes | Обучение android
Вокруг море информации, где-то неверной, где-то устаревшей. В этой рубрике я буду давать вам ссылки, где информация актуальна и хорошо разъяснена.
Пишите в комментариях, если есть, что улучшить, будем с вами вместе собирать базу знаний.
1️⃣ Dagger / Hilt
По хилту советую официальную документацию. Там и учить особо нечего, заводится с пол-пинка.
По даггеру у официалов мне дока не нравится, поэтому идём на хабр:
📚 Пытаемся понять Dagger раз
📚 Пытаемся понять Dagger два
2️⃣ MVVM
Тут мы касаемся архитектуры, поэтому можно начинать холиварить. Хотя, строго говоря, это презентейшн-паттерн, а не архитектура – ну вот, видите, я уже начал набрасывать на вентилятор. Короче, ссылки:
📚 О презентейшн-паттернах
📚 Объединяем презентейшн-паттерны с Clean Arch
📚 MVVM по-простому
📚 MVVM-задротство со склонностью к MVI
Если такой контент вам полезен, ставьте лайк!
#android #БазаЗнаний
@andrdevnotes | Обучение android
🔥17👍6👀2❤1
Как перестать терять время?
❓ Однажды ко мне на консультацию пришёл парень, учащийся на Яндекс-практикуме, с точечным запросом о помощи по внедрению одной библиотеки.
В процессе занятия он упомянул, что ему не хватает внимания и поддержки преподавателей, и нужна более глубокая помощь с накопившимися вопросами, которые начали его накрывать снежным комом.
😎 Что, в общем-то, неудивительно, поэтому сейчас многие и берут себе ментора либо во время курсов, либо сразу после них.
Фишка в том, что в результате занятия я не помог ему с внедрением той библиотеки. Вместо этого я показал ему, что эта библиотека ему нафиг не нужна для решения нужной задачи, а решить её можно куда проще, буквально десятью строками кода.
А заодно я успел немного поревьюить его код и подсказать несколько мест и подходов, как всё можно сделать удобнее, красивее и эффективнее.
Всего за час плотной работы с ментором парень нашёл реальную проблему и решил её самым эффективным способом, а бонусом явно почувствовал себя сильно увереннее, и был мне очень благодарен. И даже по собственной инициативе поделился одним моим постом с сокурсниками =)
🏃♂️🏃♂️🏃♂️ А вы хотите перестать топтаться на месте? Оставляйте заявку на консультацию.
#android #консультация
@andrdevnotes | Обучение android
В процессе занятия он упомянул, что ему не хватает внимания и поддержки преподавателей, и нужна более глубокая помощь с накопившимися вопросами, которые начали его накрывать снежным комом.
😎 Что, в общем-то, неудивительно, поэтому сейчас многие и берут себе ментора либо во время курсов, либо сразу после них.
Фишка в том, что в результате занятия я не помог ему с внедрением той библиотеки. Вместо этого я показал ему, что эта библиотека ему нафиг не нужна для решения нужной задачи, а решить её можно куда проще, буквально десятью строками кода.
А заодно я успел немного поревьюить его код и подсказать несколько мест и подходов, как всё можно сделать удобнее, красивее и эффективнее.
Всего за час плотной работы с ментором парень нашёл реальную проблему и решил её самым эффективным способом, а бонусом явно почувствовал себя сильно увереннее, и был мне очень благодарен. И даже по собственной инициативе поделился одним моим постом с сокурсниками =)
🏃♂️🏃♂️🏃♂️ А вы хотите перестать топтаться на месте? Оставляйте заявку на консультацию.
#android #консультация
@andrdevnotes | Обучение android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3💯3👏1🙏1
Личные консультации: для кого и зачем?
Друзья, вы хотите выделиться из кучи претендентов и, наконец, стать уже джуниором?
Или же работаете стажёром или джуниором, но хотите резко вырасти в доходе и стать миддлом?
Тогда вам пригодится моя помощь.
С какими типами запросов можно прийти ко мне на консультацию?
1️⃣ Вы не понимаете, в какой точке пути находитесь, и куда двигаться дальше, чтобы стать джуном или миддлом
2️⃣ Вы хотите ускорить развитие навыков и быстрее прийти к цели
3️⃣ У вас в процессе обучения накопился ряд вопросов, на которые некому нормально ответить, а информация вокруг противоречива
4️⃣ Вы хотите, чтобы вам глубоко и понятно разобрали одну из тем, например Clean Arch
5️⃣ Вы хотите тестовое (мок) техническое или алгоритмическое собеседование на джуниора или миддла, чтобы оценить свой уровень и уменьшить страх перед собеседованиями
6️⃣ У вас любой другой точечный запрос, который можно решить ~ за час
С проблемами по Compose не приходить, я всё уже сказал тут!
👉 Приходите, обсудим ваш запрос, созвонимся и всё решим.
#android #консультация
@andrdevnotes | Обучение android
Друзья, вы хотите выделиться из кучи претендентов и, наконец, стать уже джуниором?
Или же работаете стажёром или джуниором, но хотите резко вырасти в доходе и стать миддлом?
Тогда вам пригодится моя помощь.
С какими типами запросов можно прийти ко мне на консультацию?
1️⃣ Вы не понимаете, в какой точке пути находитесь, и куда двигаться дальше, чтобы стать джуном или миддлом
2️⃣ Вы хотите ускорить развитие навыков и быстрее прийти к цели
3️⃣ У вас в процессе обучения накопился ряд вопросов, на которые некому нормально ответить, а информация вокруг противоречива
4️⃣ Вы хотите, чтобы вам глубоко и понятно разобрали одну из тем, например Clean Arch
5️⃣ Вы хотите тестовое (мок) техническое или алгоритмическое собеседование на джуниора или миддла, чтобы оценить свой уровень и уменьшить страх перед собеседованиями
6️⃣ У вас любой другой точечный запрос, который можно решить ~ за час
👉 Приходите, обсудим ваш запрос, созвонимся и всё решим.
#android #консультация
@andrdevnotes | Обучение android
👍6🔥2🥰2