Немножко внутренностей 02:48 - Виды баз данных 06:02 - SqLite 08:54 - Практическая часть 10:32 - Подготовка проекта 17:49 - Класс Room и модуль DataModule 21:12 - Добавление Room 24:08 - Создание таблицы 27:31 - Запись и чтение данных (DAO) 33:12 - Создание и подключение базы данных 42:01 - Сохранение в базе данных
Алексей все круто. Спасибо за крутейший материал. Единственное - сложновато когда не с начала начинаешь ... Это я так, как самый начинающий андройд разработчик )
@@MobileDeveloper Блин, может это у меня с головой проблемы, но все-таки, думаю, таких как я много. Описываю свои проблемы после 24-х минутного просмотра: 1. Взят проект уже существующий. Мне, как человеку, который впервые на канале интересно узнать конкретно про room как его поставить и как начать пользоваться. Следовательно, не удобно изучать это смотря на большой проект, в котором минут 15 рассказывается как мы будем совмещать сервер и базу данных, что вообще не по теме. Если рассказывать про что-то, то лучше все-таки на очень простом примере. 2. Было бы приятно видеть ссылки из которых берешь код для тех же зависимостей например. Я вот взял CompillerOptions от сюда developer.android.com/jetpack/androidx/releases/room и долго не мог понять почему gradle ругается на "to". 3. Дошел я до 24 минуты, там ты открываешь папку room после работы с gradle. У меня папки room нет (может быть я не заметил конечно). Я не знаю, нужно ли ее создавать вручную, или она должна была появиться. Я не знаю толком как вообще в android с базами данных работать. Я просто зашел на страницу документашки по бд и там был совет использовать room) То есть, получается, я уже не могу ничего сделать, чтобы продолжить дальше следовать уроку и понять как работать с room на самом простом уровне, чтобы дальше уже учиться средствами чтения документашки. Но у тебя приятная подача материала. Узнал из урока хотя бы как обновлять приложения с бд, как раз задавался таким вопросом. Буду рад, если мои замечания помогут лучше понять типичного зрителя и улучшить контент)
+ Хотел просто добавить локальное хранение данных, но блин по создавал куча классов и интерфейсов, частично связал, начал ругатся на мои функции, не юзал до этого rxjava и drager, кароче нужно все переделывать. А я надеялся обойдусь пару файлами, думал будет просто записывать массив, и его вызывать при запуске ну и чекать удалленное хранение
Недавно первый раз столкнулся с NoSql, в firebase firestore. первые пол часа просто тупил и не мог понять как в таком виде вообще работать с данными :) Потом придумал для себя такое представление, что если sql это можно представить как всем знакомый excel с табличками, то nosql это как физическая папка с мультифорами, в которых лежат документы. И как-то сразу стало понятно как с такой БД работать :) Но было бы полезно посмотреть видео и на тему nosql. p.s. мультифора - файл, пластиковый пакетик. недавно узнал, что вне сибири мало кто знает такое название ))
Ой сразу вспомнил родной Томск ) да в Москве никто не знает, что такое мультифора. NoSql это целая группа разных реализаций, но в целом если взять firestore, то это выглядит просто как гигантский Dictionary ) чем он собственно и является )
Спасибо автору за видео. Качественная подача материала и понятное объяснение. Я только начала работать программистом, пишу на языке Java и все равно уловила суть 🙂
@@MobileDeveloper пропущено 'не', т.е. 'а не =='. Меня смутило сравнение целых чисел через like. В sql like применяется для поиска вхождения подстроки в строку.
Про ошибку на (55:05) Проверьте на 44:57. Возможно проблема банально в Dao. В одном @Insert прописан OnConflictStrategy, а во втором нет. По умолчанию он падает на constraint при попытке добавить запись с таким же primary key.
Имелось ввиду, что сам слой дата сорса не имеет никакой своей логики. То есть он тупо дёргает функцию у апи а эту функцию дёргает репозиторий. Получается, что смысла в таком дата сорсе нет, потому что он просто проксирует запрос и ничего с ним не делает. Поскольку не нужно делать разделение ради разделения, то в таком случае можно и без дата сорсов обойтись. Каждый новый слой абстракции должен быть создан с какой-то понятной целью. Например, очищать выдачу от сервера от не валидных данных, чтобы репозитории данные уже были валидные. Надеюсь понятно объяснил
Добрый день! Было бы интересно от вас получить видео (или даже цикл роликов) на тему нововведений в различных версиях андройд и какую они имеют прикладную роль непосредственно в разработке. Например, про сервисы в 8+ версиях и пр
Привет, может вопрос и тупой, но я не особо опытный программист и мне интересно, почему мы не можем просто кешировать данный с помощью SharedPreferences, а используем локальную бд ?
БД работает вроде как быстрее, и более мощная в плане доступа к данным, когда нам нужно достать из БД данные по каким-то условиям, а не просто все подряд
было бы здорово понять как рум поставить на gradle.kts, пробовал сам, но возникла проблема с каптом( без него приложение крашится без ошибки при старте)
Думаю проблема в следующем Цепочка вызовов примерно такая. Подписка на результаты запроса в локальный дс + выполнение запроса, далее дёргается удаленный дс, который сразу пишет в локальный дс, локальный эмитит всем новые данные и данные улетают в подписку (мы ведь в конкате подписались на изменения в бд) на локальный дс, далее конкат опять дергаеет удаленный дс, тот пишет в локабьный дс и так по кругу
Возможно ошибка в том, что когда ты кладёшь в БД, то дёргается observable от loadAllQuests() и у тебя на экране показются данные только из БД, из сети никогда не показываются.
Извините за вопрос не в тему, но как в Андроиде реализовать навигацию по фрагментам с сохранением состояния как в iOS? В интернете одни костыли. Может кто направит?
@@MobileDeveloper ua-cam.com/video/8uiikWcsf3A/v-deo.html . Это всем известный чувак , разработчик 👨💻, в Яндекс у него высокая должность - я точно не помню он толи вроде как топ менеджер 👨💼, толи около того 😜. А то что касается ситуации с SQLite- то они обсуждали в подкасте радио 📻 т , где бобок сказал, что он посмотрел в сторону SQLite и ее для его целей вполне хватило . По моему речь 🗣 была про то, что postgres для этих целей была сильно большой , а MongoDB он не знает и он посмотрел в сторону SQLite, но точно о чем была речь не помню - по моему суть была вот такая
Немножко внутренностей
02:48 - Виды баз данных
06:02 - SqLite
08:54 - Практическая часть
10:32 - Подготовка проекта
17:49 - Класс Room и модуль DataModule
21:12 - Добавление Room
24:08 - Создание таблицы
27:31 - Запись и чтение данных (DAO)
33:12 - Создание и подключение базы данных
42:01 - Сохранение в базе данных
Круто!
И да, нужно видео про транзакции.
Спасибо :)
Алексей все круто. Спасибо за крутейший материал. Единственное - сложновато когда не с начала начинаешь ... Это я так, как самый начинающий андройд разработчик )
Если кто-то понял хоть одно слово , я думаю он знает как использовать ROOM.
Не очень понял, что вы имеете ввиду
@@MobileDeveloper да имел ввиду что "жаргон" как минимум на Midl , а для нубасов непонятно .
Ну а мидл и так знает рум
Что конкретно не понятно?)
@@MobileDeveloper Блин, может это у меня с головой проблемы, но все-таки, думаю, таких как я много. Описываю свои проблемы после 24-х минутного просмотра:
1. Взят проект уже существующий. Мне, как человеку, который впервые на канале интересно узнать конкретно про room как его поставить и как начать пользоваться. Следовательно, не удобно изучать это смотря на большой проект, в котором минут 15 рассказывается как мы будем совмещать сервер и базу данных, что вообще не по теме. Если рассказывать про что-то, то лучше все-таки на очень простом примере.
2. Было бы приятно видеть ссылки из которых берешь код для тех же зависимостей например. Я вот взял CompillerOptions от сюда developer.android.com/jetpack/androidx/releases/room и долго не мог понять почему gradle ругается на "to".
3. Дошел я до 24 минуты, там ты открываешь папку room после работы с gradle. У меня папки room нет (может быть я не заметил конечно). Я не знаю, нужно ли ее создавать вручную, или она должна была появиться. Я не знаю толком как вообще в android с базами данных работать. Я просто зашел на страницу документашки по бд и там был совет использовать room) То есть, получается, я уже не могу ничего сделать, чтобы продолжить дальше следовать уроку и понять как работать с room на самом простом уровне, чтобы дальше уже учиться средствами чтения документашки.
Но у тебя приятная подача материала. Узнал из урока хотя бы как обновлять приложения с бд, как раз задавался таким вопросом. Буду рад, если мои замечания помогут лучше понять типичного зрителя и улучшить контент)
+ Хотел просто добавить локальное хранение данных, но блин по создавал куча классов и интерфейсов, частично связал, начал ругатся на мои функции, не юзал до этого rxjava и drager, кароче нужно все переделывать. А я надеялся обойдусь пару файлами, думал будет просто записывать массив, и его вызывать при запуске ну и чекать удалленное хранение
воу, а нельзя было запилить какое-нибудь новое приложение с использованием Room? мне как новичку не очень понятно, как и многим другим
Забавно, но под другими видео пишут воу, а нельзя было не hello world показать, а реальный проект?
А вторая часть-то будет?)
Недавно первый раз столкнулся с NoSql, в firebase firestore. первые пол часа просто тупил и не мог понять как в таком виде вообще работать с данными :) Потом придумал для себя такое представление, что если sql это можно представить как всем знакомый excel с табличками, то nosql это как физическая папка с мультифорами, в которых лежат документы. И как-то сразу стало понятно как с такой БД работать :) Но было бы полезно посмотреть видео и на тему nosql.
p.s. мультифора - файл, пластиковый пакетик. недавно узнал, что вне сибири мало кто знает такое название ))
Ой сразу вспомнил родной Томск ) да в Москве никто не знает, что такое мультифора. NoSql это целая группа разных реализаций, но в целом если взять firestore, то это выглядит просто как гигантский Dictionary ) чем он собственно и является )
Для тех кто с Кубани - это вообще загадочное слово
Ну попробуй посмотреть видео монги- mongo dB university, там на курсе m01 они рассказывают разницу
Спасибо автору за видео. Качественная подача материала и понятное объяснение. Я только начала работать программистом, пишу на языке Java и все равно уловила суть 🙂
Спасибо!)
32:16 Почему используется like, а ==? Ключ же интовый.
Там нет a ==, что вы имеете ввиду?
@@MobileDeveloper пропущено 'не', т.е. 'а не =='. Меня смутило сравнение целых чисел через like. В sql like применяется для поиска вхождения подстроки в строку.
Когда вторая часть?
Возможно ее вообще не будет, ибо вторые части не очень интересны как я вижу)
@@MobileDeveloper лично мне интересно )
Про Dagger Hilt будет видео ?
Есть уже на канале, поищите
Про ошибку на (55:05)
Проверьте на 44:57. Возможно проблема банально в Dao. В одном @Insert прописан OnConflictStrategy, а во втором нет. По умолчанию он падает на constraint при попытке добавить запись с таким же primary key.
Хм, интересно ) я ещё не разбирал )
Видео не для новичков
Подскажите пожалуйста, на 16:57 что значит слово проксируете?
Имелось ввиду, что сам слой дата сорса не имеет никакой своей логики. То есть он тупо дёргает функцию у апи а эту функцию дёргает репозиторий. Получается, что смысла в таком дата сорсе нет, потому что он просто проксирует запрос и ничего с ним не делает. Поскольку не нужно делать разделение ради разделения, то в таком случае можно и без дата сорсов обойтись. Каждый новый слой абстракции должен быть создан с какой-то понятной целью. Например, очищать выдачу от сервера от не валидных данных, чтобы репозитории данные уже были валидные.
Надеюсь понятно объяснил
а там нелзя анотацию использывать (@Embedded)? когда у тебя лист в рум, а не создавать таипконвертеры
Добрый день! Было бы интересно от вас получить видео (или даже цикл роликов) на тему нововведений в различных версиях андройд и какую они имеют прикладную роль непосредственно в разработке. Например, про сервисы в 8+ версиях и пр
Очень интересная идея, подумаю, спасибо )
Друзья, пожалуйста подскажите как так научится писать приложения, какие ресурсы, книги, или т д.
Время, время и опыт )
Когда будет видео про repository
А надо?) вроде я тут примерно показал как это работает
хотелось бы уже часть два. Про миграции..
Может сделаю, сейчас не в приоритете )
увы, не дождались)
Привет, может вопрос и тупой, но я не особо опытный программист и мне интересно, почему мы не можем просто кешировать данный с помощью SharedPreferences, а используем локальную бд ?
БД работает вроде как быстрее, и более мощная в плане доступа к данным, когда нам нужно достать из БД данные по каким-то условиям, а не просто все подряд
Каким эмулятором пользуетесь?
Да обычным, встроенным в студию
Полезно
Спасибо )
Автор приветствую,
можно размер текста увеличить в видео на 20 pt
Можно, но уже в следующих
А почемму rx+Single, а не coroutine+flow?
В проекте Rx использовался
Какая версия rxjava?
Я столкнулся с тем, что рум, хилт и 3 rx очень плохо дружат. Постоянно что-то отваливалось у kapt
Версия вторая, на третью уже не хватило ибо ушёл на корутины
было бы здорово понять как рум поставить на gradle.kts, пробовал сам, но возникла проблема с каптом( без него приложение крашится без ошибки при старте)
Я так понял я вам скинул уже свой ктс файлик )
@@MobileDeveloper да)
Думаю проблема в следующем
Цепочка вызовов примерно такая. Подписка на результаты запроса в локальный дс + выполнение запроса, далее дёргается удаленный дс, который сразу пишет в локальный дс, локальный эмитит всем новые данные и данные улетают в подписку (мы ведь в конкате подписались на изменения в бд) на локальный дс, далее конкат опять дергаеет удаленный дс, тот пишет в локабьный дс и так по кругу
Возможно, перед второй частью решу эту проблему )
Возможно ошибка в том, что когда ты кладёшь в БД, то дёргается observable от loadAllQuests() и у тебя на экране показются данные только из БД, из сети никогда не показываются.
Тоже об этом подумал, подозреваю, что так и есть.
Нет, там в логах четко видно что именно с сервака перезапрашивается каждый раз
Ничё не понял. Зашёл поучит базу данных, а тут на первом уроке уже миллион строк кода написано. Мда
НЕ ху...я не понятно но очень интересно 😃
Извините за вопрос не в тему, но как в Андроиде реализовать навигацию по фрагментам с сохранением состояния как в iOS? В интернете одни костыли. Может кто направит?
Приходите сегодня в 19 вечера на канал мы это прям показывать будем
Слышал , что Бобок стал использовать SQLite
Кто? Бобок?
@@MobileDeveloper ну да БоБок из Яндекса )))
Это кто?)))
@@MobileDeveloper ua-cam.com/video/8uiikWcsf3A/v-deo.html . Это всем известный чувак , разработчик 👨💻, в Яндекс у него высокая должность - я точно не помню он толи вроде как топ менеджер 👨💼, толи около того 😜. А то что касается ситуации с SQLite- то они обсуждали в подкасте радио 📻 т , где бобок сказал, что он посмотрел в сторону SQLite и ее для его целей вполне хватило . По моему речь 🗣 была про то, что postgres для этих целей была сильно большой , а MongoDB он не знает и он посмотрел в сторону SQLite, но точно о чем была речь не помню - по моему суть была вот такая