Coming from C++, I have not yet understood two important things in Swift:
How do you structure the code in swift without headers in large projects without loosing track of the main interfaces or putting implementations details where it shouldn't?
I've seen some popular approach of writing code in swift where you define a struct or class holding the relevant data and then using extension to define inits, properties and functions. Is this a good practice? It seems at first sight difficult to navigate through many extensions just to understand what this struct is supposed to do. Why not define the init right away if you are introducing a new type?
Also, note that even though Swift doesn’t have header files, you can view the generated interface of your code. Here’s a bit of a dated document on how to do this in Xcode: