Today, Nikita Voloboev was trying to wrap his head around how this whole Cocoa/Cocoa Touch API thing worked. The conversation started when he asked, “Is UIKit part of Cocoa?” The docs weren’t really giving him an idea of how it all worked. After a few minutes back and forth, he derived this concept using the tools at mindnode.com:
It was a good first guesstimate even though it doesn’t exactly capture Apple’s API design. I hopped into Preview and sketched out this diagram instead. (And yes, some day I may write a book about all the cool things you can do for free in Preview):
I explained how the API families shared certain frameworks but that the frameworks weren’t uniformly implemented across all the platforms within that family. Cocoa and Cocoa Touch, I tried to explain, were the API families specific to four operating systems: macOS, iOS, watchOS, and tvOS.
I pointed him to this definition, which I pulled up by a web search for define cocoa apple
:
Cocoa is Apple’s native object-oriented application programming interface (API) for their operating system macOS. For iOS, tvOS, and watchOS, a similar API exists, named Cocoa Touch, which includes gesture recognition, animation, and a different set of graphical control elements.
He then threw that definition into another mind map, which he uses to keep notes. This was a cool and unexpected way of exploring new knowledge:
I’m fascinated by his learning toolset, which includes both mind mapping and Anki Decks (see https://apps.ankiweb.net and this explanation of Spaced repetition.) I tend to turn to paper and pen, or other familiar tools, to take notes or to share.
What kind of tools do you use to explore and explain new areas of learning?
One Comment
Can’t see much value in trying to memorize concepts such as relationships of different frameworks in Apple ecosystem or pretty much anything related to specific frameworks or languages in software engineering. It all appears to stick well after some practice building actual stuff and reading references as you go—and if you don’t build then you probably don’t need this information anyway!
I do use Anki, but mostly for learning languages. I’m longing to try actual actual index cards: for a while I was sticking post-it notes around and it worked fairly well, I think their physical nature and location in real world had something to do with it.