​​Room 🔗 Flow

#разработка #статьи



В своём текущем проекте, я активно использую Room в качестве базы данных. И радует то, как хорошо интегрируется Room с уже существующими решениями.



Например, вы легко можете использовать Room с LiveData, что дает множество преимуществ: меньше кода, отсутствуют утечки памяти, всегда актуальные данные, кооректное поведение при поворотах экрана и прочее. Подробнее о том, как использовать LiveData тут.



Недавно узнал о ещё двух возможностях Room.



Во-первых, начиная с версии 2.1, можно использовать suspend функции в DAO, что гарантирует работу не в UI-потоке, а также отлично пересекается в Coroutines и другими suspend-функциями. Больше информации тут



Во-вторых, это поддержка Flow. По аналогии с LiveData вы получаете только актуальные данные из базы данных, а плюсом к этому все плюшки от Flow. Подробнее про использование тут.