The approaches for the development of context-aware artifacts and their implementations in various devices, are discussed. Developers can either use self-supported context awareness or infrastructure-supported context awareness for the development of the artifacts. Designers build the ability to to perceive context, reason with it, and act accordingly in to the device, in the self-supported context awareness. while, designers obtain context-aware capabilities by harnessing a hardware and software infrastructure external to and associated with the device's space in the infrastructure-supported context awareness.