Обратите внимание еще на CoreData, вы работаете с viewContext (который в основном потоке) в бекграунде (URLSession.shared.dataTask), это ошибка.
Хватает ли такого опыта для работы ios junior ?
я почему то думал что он не в главном потоке работает.
вот так если верно будет ?
DispatchQueue.global(attributes: .qosDefault).async {
}
The managed object context associated with the main queue. (read-only)
Правильно так:
context.perform {
}
Весь код который касается конфигурации и разметки вью должно быть во вью, у вас он в контроллере, при таком подходе ваш контроллер разрастётся до больших размеров, жирные контроллеры это очень плохо.
Хотя мой проект и интерес для macOS, а форум в основном для iOS, все равно было бы интересно и полезно знакомится с ошибками, с тем что и как не следует делать . Может неплохо было бы завести постоянную ветку в которую сбрасывать время от времени из разных тем примеры того что и как не следует делать ?
я только за, полезно было бы. Можно какую нибудь книгу рецептов попробовать сделать. Типо делай не так, а так.