This was (and it still is) very confusing for me when I created my first Pod. There are examples that use both of them, and I can't tell the difference if any. Nor do I understand how it works, as, for example, there is no non-string weak_framework
instance in the codebase, but I'm using it and it works.