Welcome, i know you will find many places in HWS+ section where you can find details of closure, also you are doing another course, good luck with that , but i want to tell you a few simple points that helped me understand closure a little
1) Closure are themselves function(they are refernce type) and they are used to perform tasks like functions perform.
2) We need them because just like in maths , before we move to next step to solve an equation , we need data from an earlier step in our algorithm to solve a problem.
3) For eg, if i want to show an image and the image is on network , which means i need to make a network call, the network call can fail or take time due to slow internet or image might not be there, here we use closures, you must have seen @escaping in many functions
4) What we are doing here is performing the task of making a network call, wait for a correct response or error and react accordingly.
5) Once we get a response , we provide it to any parameter the closure might have and then use the parameter from the closure inside the function , which will then use the image to display in an Image object.
6) So, closures are used in this way to not stop the process inside our app, but to gracefully wait for data we need to proceed in our algorithm to achieve our task.
7) Closure create a strong reference as they hold on to values even out of their scope , so not allowing the garbage collection as the object always keeps pointing to some entity , we use weak or unowned keywords to make them capable of being cleaned up once the function inside which they are being created has finished its job.
8) They are very useful, but can take a lot of time for out mind to train to how to use them , very useful tool indeed, it took me a lot of time to understand them, but might take even longer to use them , its like a tool there in front of me but i need more practise to find when to use them.
Fun Fact - accoring to a book from Tanenbaum a famous computer science author, closures were discovered by chance, when computers scientists found data being retained and not getting cleaned up in memory , this lead to a rather pleasant but unintended discvoery of a type we now call closures.
Good luck in your journey of app development