|wand created to support all platfroms
Prototype implemented on Swift
Location.one | MotionEvent.one | .all {
}
Wand started from the idea about receiving anything in most efficient way.
Add one sign to anything and retreive the result ๐ฆ
Imagine that you have the black box that can give you an Any
object.
You don't know what's already in the box and what happens inside.
Ask for an object that you need with a microservice:
|{ (result: Object) in
}
ingredients | { (result: Object) in
}
ingredients | .one { (t: T) in
} | .every { (u: U) in
} | .while { (v: V) in
true
}
๐๏ธ |Foundation
๐ |Location
๐ |Motion
๐ก |NFC
๐ฅ๏ธ |URL
๐ค๏ธ |Weather
๐ |Vision Demo
๐ค |Integrations
Add one sign and wait for the result |
ex Pipe
ex API
//Request location updates
|{ (location: CLLocation) in
}
//Request .authorizedAlways permissions and only one location object
CLAuthorizationStatus.authorizedAlways | { (status: CLAuthorizationStatus) in
} | .one { (location: CLLocation) in
}
๐ฆ An ideal API acts as the black box
โก๏ธ Itโs possible to incapsulate whole data receiving process and memory managment duty to one symbol?
Astanahub.com
Medium.com
YouTube.com
In Unix-like computer operating systems, a pipeline is a mechanism for inter-process communication using message passing. A pipeline is a set of processes chained together by their standard streams, so that the output text of each process (stdout) is passed directly as input (stdin) to the next one. The second process is started as the first process is still executing, and they are executed concurrently.
command1 | command2 | command3
ls -l | grep key | less
//Request .authorizedWhenInUse permissions
CLAuthorizationStatus.authorizedWhenInUse | { (status: CLAuthorizationStatus) in
}
//Request location updates
//Uses .startUpdatingLocation()
|{ (location: CLLocation) in
}
//Request .authorizedAlways permissions and only one location object
//Uses .requestLocation() for efficient power consumption
CLAuthorizationStatus.authorizedAlways | { (status: CLAuthorizationStatus) in
} | .one { (location: CLLocation) in
}
//Request pedometer data updates
|{ (data: CMPedometerData) in
}
//Scan for a bluetooth peripherals
|{ (peripheral: CBPeripheral) in
}
//Wait for a Notification
UIWindow.keyboardWillShowNotification | { (n: Notification) in
}
//Enumerate contacts
CNContact.predicateForContacts(matchingName: "John") | .every { (contact: CNContact) in
}
//Scan a tag
|.every { (tag: NFCNDEFTag) in
}
//Perform face observation
URL(string: "http://example.com/image.jpg") | { (faces: [VNFaceObservation]) in
}
//Perform pose observation
//Wait for two persons
data | .while { (bodies: [VNHumanBodyPoseObservation]) in
bodies < 2
}
//Detect shakes
|{ (motion: UIEvent.EventSubtype) in
if motion == .motionShake {
}
}
//Customization
let wand = |{ (hands: [VNHumanHandPoseObservation]) in
}
let request: VNDetectHumanHandPoseRequest = wand.obtain()
request.maximumHandCount = 4
let preview: AVCaptureVideoPreviewLayer = wand.obtain()
view.layer.addSublayer(preview!)
//Attach Ask<Error> to the context
any | { (error: Error) in
}
//Or use the result handler
//Nil error means successed result
any | { (error: Error?) in
}
๐ผ๏ธ Design Patterns: Elements of Reusable Object-Oriented Software (1994)
๐งผ Clean Code: A Handbook of Agile Software Craftsmanship (2008)
๐ผ Introduction to TRIZ. Basic Concepts and Approaches (2015)
๐๏ธ Clean Architecture: A Craftsman's Guide to Software Structure and Design (2017)
๐ The Inmates Are Running the Asylum:
โถ
โณ The Deadline: A Novel About Project Management (2007)
๐ฟ CD Production
๐ช Windows
๐ฑ iPod
๐ Apple
โ๏ธ BSD
๐ The concept of pipelines was championed by Douglas McIlroy
๐ค Enchanced by AI in 2025
โก๏ธ Macromediaยฎ Flash
๐ข Logo
๐ฌ Flipper
- Contacts
- CoreLocation
- CoreMotion
- CoreNFC
- Data
- NSNotification
- Rest
- Vision
- MultipeerConnectivity
The Wand may collect usage data
You must attribute the author
Alex Kozin
El Machine ๐ค
Apps since 2008