I have implemented the application using Combine and Diffable Data Source. My Table View represents Planet Name and rotation Period. I am making the calls using combine framework Saving the data in User defaults as it is less data but we can also use core data approach. Tested Offline using AFNetworkReachability.
Test cases are written for Models Network Calls using normal URL session and combine.