Один из вариантов - работа с сервером.
На вашем сервере вы размещаете базу данных и API. Вы можете использовать базу данных для сохранения пользователей и сообщений. Вы также должны отправить свои уведомления pu sh на этот сервер. Вы можете отправить pu sh, используя FCM , но у меня лично были некоторые проблемы с ним и я переключился на OneSignal .
В вашем приложении вы можете отображать различные сообщения, используя ListView с пользовательскими элементами списка. Для связи между сервером и приложением вы можете использовать запрос Volley .
Когда-то go я написал почти такое же приложение. Я бы порекомендовал вам использовать сервер с API (достаточно простого PHP API).