я бы создала кастомный ведь это "TableView" c var size: GridItem.Size для строки а нужно в этой ситуации что-то наподобии колекшнвью. Создать что-то типа c использоанием ScrollView,VStack, Group ну и Group cell где выставлять размер с помощью GeometryReader
Написать свой бэкенд, делать запросы на него каждую секунду. Плохой подход, загрузку будет на порядок выше чем вобсокет на том же сервере. Без сервера никак. Хотя можно реализовать в одной сети
Сокеты или notOnlySql аля фаербейс со своей апишкой их хватает, но в последнем случае привязываешься к стороннему сервису с их оплатами изменениями и тд
Смотря что ты хочешь получить, если просто тестовый чатик client-client достаточно тривиально, если в дальнейшем туда крутить групповые чаты/ звонки/видео, совсем другое дело