No video

Room. SQLite для Android. Часть 1. [Ru, Kotlin\Android]

  Рет қаралды 28,256

Mobile Developer

Mobile Developer

Күн бұрын

Всем привет, меня зовут Алексей Гладков и я занимаюсь мобильной разработкой. Сегодня наконец-то мы добрались до баз данных. Начнем мы разумеется с Room как с самой популярной библиотеки для СУБД SQLIte. Room является наиболее популярной ORM для Android, поэтому приятного просмотра!
Напоминаю, что видео вначале выходят для моих патронов и спонсоров. Стать им можно по ссылке ниже
===========================================
Стать Патроном канала и получить доступ к уникальному материалу
/ mobiledeveloper
Подписаться на boosty
boosty.to/mobi...
===========================================
Полезные статьи из мира мобильной разработки
Яндекс.Дзен - zen.yandex.ru/...
Teletype - teletype.in/@a...
Мобильный разработчик в других соц. сетях
=======================
Вконтакте - mdeveloper
Instagram - / nplau
Телеграм - t.me/mobiledev...
=======================
Ставь лайк и расскажи друзьям, чтобы они тоже попробовали эту технологию

Пікірлер: 75
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Немножко внутренностей 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 - Сохранение в базе данных
@oleg12395
@oleg12395 2 жыл бұрын
Алексей все круто. Спасибо за крутейший материал. Единственное - сложновато когда не с начала начинаешь ... Это я так, как самый начинающий андройд разработчик )
@user-sankarsana
@user-sankarsana 3 жыл бұрын
Круто! И да, нужно видео про транзакции.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо :)
@loragomel4706
@loragomel4706 2 жыл бұрын
Спасибо автору за видео. Качественная подача материала и понятное объяснение. Я только начала работать программистом, пишу на языке Java и все равно уловила суть 🙂
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Спасибо!)
@Mecenatt
@Mecenatt 3 жыл бұрын
Если кто-то понял хоть одно слово , я думаю он знает как использовать ROOM.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Не очень понял, что вы имеете ввиду
@Mecenatt
@Mecenatt 3 жыл бұрын
@@MobileDeveloper да имел ввиду что "жаргон" как минимум на Midl , а для нубасов непонятно . Ну а мидл и так знает рум
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Что конкретно не понятно?)
@user-qz8fd4ir2z
@user-qz8fd4ir2z 3 жыл бұрын
@@MobileDeveloper Блин, может это у меня с головой проблемы, но все-таки, думаю, таких как я много. Описываю свои проблемы после 24-х минутного просмотра: 1. Взят проект уже существующий. Мне, как человеку, который впервые на канале интересно узнать конкретно про room как его поставить и как начать пользоваться. Следовательно, не удобно изучать это смотря на большой проект, в котором минут 15 рассказывается как мы будем совмещать сервер и базу данных, что вообще не по теме. Если рассказывать про что-то, то лучше все-таки на очень простом примере. 2. Было бы приятно видеть ссылки из которых берешь код для тех же зависимостей например. Я вот взял CompillerOptions от сюда developer.android.com/jetpack/androidx/releases/room и долго не мог понять почему gradle ругается на "to". 3. Дошел я до 24 минуты, там ты открываешь папку room после работы с gradle. У меня папки room нет (может быть я не заметил конечно). Я не знаю, нужно ли ее создавать вручную, или она должна была появиться. Я не знаю толком как вообще в android с базами данных работать. Я просто зашел на страницу документашки по бд и там был совет использовать room) То есть, получается, я уже не могу ничего сделать, чтобы продолжить дальше следовать уроку и понять как работать с room на самом простом уровне, чтобы дальше уже учиться средствами чтения документашки. Но у тебя приятная подача материала. Узнал из урока хотя бы как обновлять приложения с бд, как раз задавался таким вопросом. Буду рад, если мои замечания помогут лучше понять типичного зрителя и улучшить контент)
@B0RSH777
@B0RSH777 2 жыл бұрын
+ Хотел просто добавить локальное хранение данных, но блин по создавал куча классов и интерфейсов, частично связал, начал ругатся на мои функции, не юзал до этого rxjava и drager, кароче нужно все переделывать. А я надеялся обойдусь пару файлами, думал будет просто записывать массив, и его вызывать при запуске ну и чекать удалленное хранение
@wasp5787
@wasp5787 3 жыл бұрын
Недавно первый раз столкнулся с NoSql, в firebase firestore. первые пол часа просто тупил и не мог понять как в таком виде вообще работать с данными :) Потом придумал для себя такое представление, что если sql это можно представить как всем знакомый excel с табличками, то nosql это как физическая папка с мультифорами, в которых лежат документы. И как-то сразу стало понятно как с такой БД работать :) Но было бы полезно посмотреть видео и на тему nosql. p.s. мультифора - файл, пластиковый пакетик. недавно узнал, что вне сибири мало кто знает такое название ))
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Ой сразу вспомнил родной Томск ) да в Москве никто не знает, что такое мультифора. NoSql это целая группа разных реализаций, но в целом если взять firestore, то это выглядит просто как гигантский Dictionary ) чем он собственно и является )
@user-cx8rl2cd2l
@user-cx8rl2cd2l 3 жыл бұрын
Для тех кто с Кубани - это вообще загадочное слово
@user-cx8rl2cd2l
@user-cx8rl2cd2l 3 жыл бұрын
Ну попробуй посмотреть видео монги- mongo dB university, там на курсе m01 они рассказывают разницу
@damask_
@damask_ Жыл бұрын
воу, а нельзя было запилить какое-нибудь новое приложение с использованием Room? мне как новичку не очень понятно, как и многим другим
@MobileDeveloper
@MobileDeveloper Жыл бұрын
Забавно, но под другими видео пишут воу, а нельзя было не hello world показать, а реальный проект?
@user-hi1kb9ob1h
@user-hi1kb9ob1h Жыл бұрын
А вторая часть-то будет?)
@lui970
@lui970 3 жыл бұрын
Про ошибку на (55:05) Проверьте на 44:57. Возможно проблема банально в Dao. В одном @Insert прописан OnConflictStrategy, а во втором нет. По умолчанию он падает на constraint при попытке добавить запись с таким же primary key.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Хм, интересно ) я ещё не разбирал )
@MrPwnzrus
@MrPwnzrus 3 жыл бұрын
Добрый день! Было бы интересно от вас получить видео (или даже цикл роликов) на тему нововведений в различных версиях андройд и какую они имеют прикладную роль непосредственно в разработке. Например, про сервисы в 8+ версиях и пр
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Очень интересная идея, подумаю, спасибо )
@luide2167
@luide2167 4 ай бұрын
Ничё не понял. Зашёл поучит базу данных, а тут на первом уроке уже миллион строк кода написано. Мда
@user-yz6rr1fl1f
@user-yz6rr1fl1f 7 ай бұрын
Видео не для новичков
@TheDicobraz063
@TheDicobraz063 3 жыл бұрын
Думаю проблема в следующем Цепочка вызовов примерно такая. Подписка на результаты запроса в локальный дс + выполнение запроса, далее дёргается удаленный дс, который сразу пишет в локальный дс, локальный эмитит всем новые данные и данные улетают в подписку (мы ведь в конкате подписались на изменения в бд) на локальный дс, далее конкат опять дергаеет удаленный дс, тот пишет в локабьный дс и так по кругу
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Возможно, перед второй частью решу эту проблему )
@nikolozlatsabidze2196
@nikolozlatsabidze2196 2 жыл бұрын
а там нелзя анотацию использывать (@Embedded)? когда у тебя лист в рум, а не создавать таипконвертеры
@obozrevatel365
@obozrevatel365 3 жыл бұрын
Друзья, пожалуйста подскажите как так научится писать приложения, какие ресурсы, книги, или т д.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Время, время и опыт )
@user-mx3he2iz2w
@user-mx3he2iz2w 3 жыл бұрын
32:16 Почему используется like, а ==? Ключ же интовый.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Там нет a ==, что вы имеете ввиду?
@user-mx3he2iz2w
@user-mx3he2iz2w 3 жыл бұрын
@@MobileDeveloper пропущено 'не', т.е. 'а не =='. Меня смутило сравнение целых чисел через like. В sql like применяется для поиска вхождения подстроки в строку.
@Qwazar3559
@Qwazar3559 2 жыл бұрын
хотелось бы уже часть два. Про миграции..
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Может сделаю, сейчас не в приоритете )
@inquisitor4894
@inquisitor4894 8 ай бұрын
увы, не дождались)
@PandaTop.
@PandaTop. 2 жыл бұрын
Когда вторая часть?
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Возможно ее вообще не будет, ибо вторые части не очень интересны как я вижу)
@PandaTop.
@PandaTop. 2 жыл бұрын
@@MobileDeveloper лично мне интересно )
@deadchannal
@deadchannal 3 жыл бұрын
Полезно
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо )
@olegleonov1310
@olegleonov1310 3 жыл бұрын
А почемму rx+Single, а не coroutine+flow?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
В проекте Rx использовался
@madmax_2994
@madmax_2994 3 жыл бұрын
Извините за вопрос не в тему, но как в Андроиде реализовать навигацию по фрагментам с сохранением состояния как в iOS? В интернете одни костыли. Может кто направит?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Приходите сегодня в 19 вечера на канал мы это прям показывать будем
@mimictwt
@mimictwt 2 жыл бұрын
Привет, может вопрос и тупой, но я не особо опытный программист и мне интересно, почему мы не можем просто кешировать данный с помощью SharedPreferences, а используем локальную бд ?
@EugeneVoronoy
@EugeneVoronoy Жыл бұрын
БД работает вроде как быстрее, и более мощная в плане доступа к данным, когда нам нужно достать из БД данные по каким-то условиям, а не просто все подряд
@PandaTop.
@PandaTop. 2 жыл бұрын
Про Dagger Hilt будет видео ?
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Есть уже на канале, поищите
@olegleonov1310
@olegleonov1310 3 жыл бұрын
Возможно ошибка в том, что когда ты кладёшь в БД, то дёргается observable от loadAllQuests() и у тебя на экране показются данные только из БД, из сети никогда не показываются.
@KriopeG
@KriopeG 3 жыл бұрын
Тоже об этом подумал, подозреваю, что так и есть.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Нет, там в логах четко видно что именно с сервака перезапрашивается каждый раз
@Trecoolerok
@Trecoolerok 3 жыл бұрын
Какая версия rxjava? Я столкнулся с тем, что рум, хилт и 3 rx очень плохо дружат. Постоянно что-то отваливалось у kapt
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Версия вторая, на третью уже не хватило ибо ушёл на корутины
@XmanX777
@XmanX777 3 жыл бұрын
Автор приветствую, можно размер текста увеличить в видео на 20 pt
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Можно, но уже в следующих
@sergeytretyakov3040
@sergeytretyakov3040 3 жыл бұрын
Подскажите пожалуйста, на 16:57 что значит слово проксируете?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Имелось ввиду, что сам слой дата сорса не имеет никакой своей логики. То есть он тупо дёргает функцию у апи а эту функцию дёргает репозиторий. Получается, что смысла в таком дата сорсе нет, потому что он просто проксирует запрос и ничего с ним не делает. Поскольку не нужно делать разделение ради разделения, то в таком случае можно и без дата сорсов обойтись. Каждый новый слой абстракции должен быть создан с какой-то понятной целью. Например, очищать выдачу от сервера от не валидных данных, чтобы репозитории данные уже были валидные. Надеюсь понятно объяснил
@sergsangels
@sergsangels 2 жыл бұрын
НЕ ху...я не понятно но очень интересно 😃
@SergKoshelev
@SergKoshelev 3 жыл бұрын
было бы здорово понять как рум поставить на gradle.kts, пробовал сам, но возникла проблема с каптом( без него приложение крашится без ошибки при старте)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Я так понял я вам скинул уже свой ктс файлик )
@SergKoshelev
@SergKoshelev 3 жыл бұрын
@@MobileDeveloper да)
@user-cx8rl2cd2l
@user-cx8rl2cd2l 3 жыл бұрын
Слышал , что Бобок стал использовать SQLite
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Кто? Бобок?
@user-cx8rl2cd2l
@user-cx8rl2cd2l 3 жыл бұрын
@@MobileDeveloper ну да БоБок из Яндекса )))
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Это кто?)))
@user-cx8rl2cd2l
@user-cx8rl2cd2l 3 жыл бұрын
@@MobileDeveloper kzfaq.info/get/bejne/btuZnM6IyNnKY3U.html . Это всем известный чувак , разработчик 👨‍💻, в Яндекс у него высокая должность - я точно не помню он толи вроде как топ менеджер 👨‍💼, толи около того 😜. А то что касается ситуации с SQLite- то они обсуждали в подкасте радио 📻 т , где бобок сказал, что он посмотрел в сторону SQLite и ее для его целей вполне хватило . По моему речь 🗣 была про то, что postgres для этих целей была сильно большой , а MongoDB он не знает и он посмотрел в сторону SQLite, но точно о чем была речь не помню - по моему суть была вот такая
@dmitrymukhin9050
@dmitrymukhin9050 3 жыл бұрын
Каким эмулятором пользуетесь?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Да обычным, встроенным в студию
@user-vx5nv2bm9o
@user-vx5nv2bm9o 3 жыл бұрын
Когда будет видео про repository
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
А надо?) вроде я тут примерно показал как это работает
С чего начать учить Android / Mobile Developer
22:22
Mobile Developer
Рет қаралды 36 М.
女孩妒忌小丑女? #小丑#shorts
00:34
好人小丑
Рет қаралды 44 МЛН
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 49 МЛН
Why Is He Unhappy…?
00:26
Alan Chikin Chow
Рет қаралды 107 МЛН
Parenting hacks and gadgets against mosquitoes 🦟👶
00:21
Let's GLOW!
Рет қаралды 12 МЛН
Android Parcelable или Serializable? Павел Борзиков @AvitoTech
24:01
Android Broadcast. Все об Андроид разработке
Рет қаралды 17 М.
Алексей Саватеев о смартфоне детям.
4:03
Андрей из Тулы
Рет қаралды 10 М.
Миграция с LiveData на Coroutines Flow
25:02
Android Broadcast. Все об Андроид разработке
Рет қаралды 29 М.
女孩妒忌小丑女? #小丑#shorts
00:34
好人小丑
Рет қаралды 44 МЛН