A collection of A component or module is a discrete portion of a tool that has a particular function. Components can be assembled in different combinations to create hacks or tools. The larger the library of components, the more “genetic” diversity to choose from when creating new tools or h... that can be adaptively deployed to more rapidly develop functional applications without having to build from scratch. For example Apple has an SDK for developing for iOS, and Android has a Java development SDK. An SDK can take the form of a simple implementation of one or more application programming interfaces (APIs) in the form of on-device libraries to interface to a particular programming language, or it may be as complex as hardware-specific tools that can communicate with a particular embedded system. Common tools include debugging facilities and other utilities, often presented in an integrated development environment (IDE). SDKs may also include sample code and technical notes or other supporting documentation such as tutorials to help clarify points made by the primary reference material.