Как происходит процесс хранения и получения данных в приложениях типа «ВКонтакте»?
Например есть у меня RecycleView c CardView / список, хочу отобразить данные в них полученные из сервера. Как это делается ? Например нужна ли база данных в клиенте или только на сервере , в общем как работает приложения типа ВКонтакте ?Прошу простить если вопрос глупый и полон бреда, я недавно изучаю программирование ?
На самом деле не факт, что база нужна. Как часто обновляются данные? Например если это список юзеров онлайн, то хранить такую информацию нет смысла. Уж больно она динамичная
На клиенте лучше создать sqlite базу данных и в нее кэшировать все, что загружается с сервера, но если в приложении 1-2 страницы (активити) и не длинные списки надо отображать, то можно и без этого обойтись, просто в коллекцию/список загружать их и с помощью двустороннего биндинга привязывать эту коллекцию/список к твоим вьюшкам
Добавлю, что для экономии трафика, времени (отклика программы) и даже снижения нагрузки на сервер, можно помимо самих данных, хранить и передавать клиенту их CRC и по нему клиентом проверять, изменились ли данные (например картинки фона, аватарки и т.п.) или нет, и, соответственно, можно ли использовать локальную версию или следует послать запрос на получение свежей версии.
База определенно нужна. В нее обычно кешируют полученные данные. К примеру профиль, и при повторном обращение можно брать данные уже локально. Это экономит время на обработку данных, потому, что не надо постоянно грузить с вк инфу. Пара секунд сэкономлено, меньше седых волос у юзверя, а значит ваше приложение более популярное.
Рассматривайте мобильное приложение как всего лишь клиент для сервиса, типа веб-сайта. По возможности всю логику уводите в бэкэнд.
На вопрос про БД - если нужно иметь кэш, то да, работайте с sqlite или напишите свою nosql обертку над файловой системой.