MetaWear-Swift-Combine-SDK - Build iOS and macOS apps controlling MetaWear Bluetooth Low Energy wearables without C++ or CoreBluetooth expertise

Overview

MetaWear Swift Combine SDK Beta

Control our wearable sensors on iOS and macOS devices using Combine.

๐Ÿ’ช Inexperienced with CoreBluetooth or C/C++ in Swift? No problem.

๐Ÿ“š Interactive Xcode DocC documentation and tutorials

โ˜๏ธ New iCloud-sync recognition of MetaWears across Apple devices

โœ‹ Optional drag-and-drop UI conveniences



metawear

Getting Started

Please email us, open an issue, or post on the MetaWear community forum with questions or feedback.


Directories At a Glance

๐Ÿ“‚ MetaWear

The root directory contains the core objects and type aliases for typical use of the SDK.

  • ๐Ÿ“ Combine โ€” Primary Combine operators used to control MetaWear devices
  • ๐Ÿ“ Cpp Bridging โ€” Swift wrappers around sensors/modules (e.g., gyroscope), commands (e.g., activate iBeacon), and anything else from the C/C++ library
  • ๐Ÿ“ Helpers โ€” Extensions and utilities

๐Ÿ“‚ MetaWearSync โ€” iCloud synchronization of device identities

๐Ÿ“‚ MetaWearFirmware โ€” Updates device firmware from MetaWear servers

๐Ÿ“‚ MetaWearCpp โ€” Underlying C/C++ submodule

๐Ÿ“‚ Tests โ€” Run the test host project at ๐Ÿ“‚ Sources/Tests/IntegrationTests/. CoreBluetooth does not work in an iOS Simulator.

You might also like...
A simple to use iOS/tvOS/watchOS SDK to help get you off the ground quickly and efficiently with your Elastic Path Commerce Cloud written in Swift.

Elastic Path Commerce Cloud iOS Swift SDK A simple to use iOS/tvOS/watchOS SDK to help get you off the ground quickly and efficiently with your Elasti

The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips.
The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips.

Gini Bank SDK for iOS The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips. By integra

Sample app to demonstrate the integration code and working of Dyte SDK for iOS, using Objective-C.
Sample app to demonstrate the integration code and working of Dyte SDK for iOS, using Objective-C.

iOS sample app (using Objective-C) by dyte Sample app to demonstrate the usage of Dyte iOS SDK Explore the docs ยป View Demo ยท Report Bug ยท Request Fea

A Flutter plugin to wrap HyperPay SDK for iOS and Android.
A Flutter plugin to wrap HyperPay SDK for iOS and Android.

HyperPay Flutter Plugin This plugin is a wrapper around HyperPay iOS and Android SDK, it's still in alpha release, and supports limited set of functio

Native iOS implementation of RadarCOVID tracing client using DP3T iOS SDK

RadarCOVID iOS App Introduction Native iOS implementation of RadarCOVID tracing client using DP3T iOS SDK Prerequisites These are the tools used to bu

RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API.
RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API.

RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API. The goal for development was to have a Swift SDK to get

This is swift project example to connect VNPTSmartCA SDK using Swift Language.

Example source code to integrate with VNPTSmartCA iOS SDK To run the example project, clone repository, and run pod install Requirements Installation

PayByBank SDK is an alternative and easier form of Open Banking solutions.

PayByBank SDK (iOS) The Ecospend Gateway presents PayByBank SDK as an alternative and easier form of Open Banking Instant Payment solutions. PayByBank

TelegramStickersImport โ€” Telegram stickers importing SDK for iOS

TelegramStickersImport โ€” Telegram stickers importing SDK for iOS TelegramStickersImport helps your users import third-party programaticaly created sti

Comments
  • Immediate Fire Flag on Timer does not seem to work

    Immediate Fire Flag on Timer does not seem to work

    Hi,

    I think the documentation may be wrong or the immediate flag is not working as documented. Currently, if I run this code:

            sub = metawear
                .publishWhenConnected()
                .first()
                .createTimedEvent(period: 2000, repetitions: 2, immediateFire: false, recordedEvent: {
                    let command: MWCommand = .led(.blue, .blink(repetitions: 3))
                    command.command(board: metawear.board)
                })
                .handleEvents(receiveOutput: { timer in
                    mbl_mw_timer_start(timer)
                })
                .sink(
                    receiveCompletion: { completion in
                        print("COMPLETED: \(completion)")
                    },
                    receiveValue: { value in
                        print("VALUE: ", value)
                    }
                )
    
    

    It runs as expected and the LED fires after 2 seconds. Yet, according to the docs, the immediateFire flag should negate the need to call mbl_mw_timer_start, however, if I run this:

            sub = metawear
                .publishWhenConnected()
                .first()
                .createTimedEvent(period: 2000, repetitions: 2, immediateFire: true, recordedEvent: {
                    let command: MWCommand = .led(.blue, .blink(repetitions: 3))
                    command.command(board: metawear.board)
                })
                .sink(
                    receiveCompletion: { completion in
                        print("COMPLETED: \(completion)")
                    },
                    receiveValue: { value in
                        print("VALUE: ", value)
                    }
                )
    
    

    Nothing happens and the timer does not seem to run the specified LED command.

    Additionally, it would be nice if createTimedEvent worked similarly to recordEvents where command closure has the board as an argument.

    opened by Drewpom 0
Owner
MbientLab
Development boards for sensor based research and prototyping
MbientLab
Install and debug iPhone apps from the command line, without using Xcode

ios-deploy Install and debug iOS apps from the command line. Designed to work on un-jailbroken devices. Requirements macOS You need to have a valid iO

null 3k Jan 8, 2023
Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter 45 Nov 29, 2022
Px-mobile-sdk-demo-app - PerimeterX Mobile SDK - Demo App

About PerimeterX PerimeterX is the leading provider of application security solu

PerimeterX 1 Nov 20, 2022
Home-assistant-swift-sdk - Used to integrate the Home Assistant APIs with your Swift-based apps.

home-assistant-swift-sdk This open-source library allows you to interact with a Home Assistant instance in your Swift-based (e.g., iOS, macOS, etc.) a

Alexander Golden 0 Dec 31, 2021
150,000+ stickers API & SDK for iOS Apps.

English | ํ•œ๊ตญ์–ด Stipop UI SDK for iOS Stipop SDK provides over 150,000 .png and .gif stickers that can be easily integrated into mobile app chats, comme

Stipop, Inc. 19 Dec 20, 2022
Twitter Kit is a native SDK to include Twitter content inside mobile apps.

Twitter will be discontinuing support for Twitter Kit on October 31, 2018. Read the blog post here. Twitter Kit for iOS Background Twitter Kit is a na

Twitter Archive 674 Dec 18, 2022
Unofficial Notion API SDK for iOS & macOS

NotionSwift Unofficial Notion SDK for iOS & macOS. This is still work in progress version, the module interface might change. API Documentation This l

Wojciech Chojnacki 59 Jan 8, 2023
Fetch the update available status for iOS or macOS apps based on the bundle identifier.

AppUpdately Fetch the update status for a given app bundle identifier, without the need of any remote configuration. Simply provide your app's bundle

Antoine van der Lee 30 Dec 20, 2022
Build, Measure and Grow iOS subscription business

Apphud SDK Apphud SDK is a lightweight open-source Swift library to manage auto-renewable subscriptions and other in-app purchases in your iOS app. No

Apphud 144 Jan 8, 2023
Build a workout app from scratch using SwiftUI and HealthKit

Build a workout app for Apple Watch Build a workout app from scratch using SwiftUI and HealthKit during this code along. Learn how to support the Alwa

paigeshin 5 Nov 28, 2022