One of the five design principles in S.O.L.I.D. is Dependency Inversion, where the general idea of this principle is the decoupling between the high-level modules and low-level modules. One way to apply this principle is by using the Dependency Injection design pattern. The Dependency Injection makes your code more testable, more maintainable, and of course, more readable.
In iOS 14, Apple introduced support for passing the DNS queries over HTTPS (DoH) or TLS (DoT). So why bother encrypting DNS queries when HTTPS is widely in use? Because if someone (ISPs, on-path routers, law enforcement agency, etc.) is eavesdropping on your application’s unencrypted DNS queries, they will be able to map which API / services your application uses and potentially “map” your service.
As the application scales up, there is a need for a proper data type structure for diffable dataSource identifier types. The reason is that, the most conventional way as it has been introduced in “Advances in UI Data Sources - WWDC - 2019”, by using
struct for Sections and
enum for Rows leads to massive switch case statement and duplicated code.