I can save the [Stock]() fetched stock data in some sort of "persistent" object in the app, by the size of it I can just use UserDefaults and then make URLSession.shared.dataTask task to only execute if there's actually new data to fetch, for example by comparing the datetime from last fetch, if does not pass the check I can bypassing the network call and just output the previously saved object.