K
Kotlin Adept Notes
@kotlin_adept2.4K подп.
3.6Kпросмотров
28 октября 2025 г.
questionScore: 4.0K
Стоит ли переходить с Room на SQLDelight? На данный момент обе библиотеки поддерживают KMP. Если раньше особого выбора не было, то теперь многие могут задаться вопросом: стоит ли вообще переходить с Room? Я считаю, что нет, не стоит. Конечно, у каждой библиотеки есть свои преимущества и недостатки, но, на мой взгляд, у SQLDelight их заметно больше: 🔘 Нельзя задать разные имена для таблицы в БД и сгенерированного класса. Если вы придерживаетесь общепринятого синтаксиса именования таблиц, то имена сгенерированных классов будут выглядеть просто ужасно. 🔘 Видимость сгенерированных файлов также нельзя регулировать — все они будут public. 🔘 Нет поддержки suspend-функций, приходится явно менять диспетчер для каждого запроса. (оказывается есть, в настройках плагина есть свойство generateAsync) 🔘 Нельзя сразу сгенерировать класс с отношением many-to-many или другими связями, например, чтобы получить фильм со списком актёров, придётся делать дополнительный маппинг на стороне Kotlin. 🔘 Нет автоматических миграций, как в Room (но в целом это зло). 🔘 Очень скудная документация. Из плюсов я бы выделил следующее: 🟢 Небольшие таблицы можно сразу смаппить в доменные типы с помощью Type Projections. 🟢 Нет магии аннотаций, все запросы пишутся явно. 🟢 Нет зависимости на KSP и плагины компилятора. 🟢 Поддерживается больше таргетов, чем в Room. 🟢 Может работать не только с SQLite. В общем, я пришёл к выводу, что Room для меня выигрывает у SQLDelight, и мигрировать с него я бы не стал. Но и возвращаться обратно, если вы уже перешли, особого смысла тоже не вижу. А что думаете вы, какая из библиотек вам ближе ❓ #Room #SQLDelight #KMP
3.6K
просмотров
1643
символов
Да
эмодзи
Нет
медиа

Другие посты @kotlin_adept

Все посты канала →
Стоит ли переходить с Room на SQLDelight? На данный момент о — @kotlin_adept | PostSniper