Giter VIP home page Giter VIP logo

coaty-swift's Introduction

Coaty Swift

Powered by Coaty 2 Swift version Pod version Pod platform License: MIT

Ready to upgrade to CoatySwift 2?

CoatySwift is a Coaty implementation written in Swift 5. The CoatySwift package provides the cross-platform implementation targeted at iOS, iPadOS,and macOS native applications.

CoatySwift comes with complete API documentation, a developer guide, a tutorial, and best-practice examples.

What is Coaty

Using the Coaty [koʊti] framework as a middleware, you can build distributed applications out of decentrally organized application components, so called Coaty agents, which are loosely coupled and communicate with each other in (soft) real-time. The main focus is on IoT prosumer scenarios where smart agents act in an autonomous, collaborative, and ad-hoc fashion. Coaty agents can run on IoT devices, mobile devices, in microservices, cloud or backend services.

Coaty provides a production-ready application and communication layer foundation for building collaborative IoT applications in an easy-to-use yet powerful and efficient way. The key properties of the CoatySwift framework include:

  • a lightweight and modular object-oriented software architecture favoring a resource-oriented and declarative programming style,
  • standardized event based communication patterns on top of an open publish-subscribe messaging protocol (currently MQTT),
  • and a platform-agnostic, extensible object model to discover, distribute, share, query, and persist hierarchically typed data.

Learn how to use

If you are new to CoatySwift and would like to learn more, we recommend checking out the following resources:

  • Tutorial - shows how to set up a minimal CoatySwift app.
  • Developer Guide - explains how to develop a CoatySwift app.
  • API Documentation - the source code documentation of public types and members of the CoatySwift framework.
  • Design Rationale - in case you want to know why certain things have been implemented in a particular way in the CoatySwift implementation.

Getting started

To build and run Coaty agents with the CoatySwift technology stack you need XCode 10.2 or higher. CoatySwift is available through CocoaPods. Ensure you have installed at least version 1.8.4 of CocoaPods, i.e. running pod --version should yield 1.8.4 or higher.

You can add the CoatySwift pod to the Podfile of your app as follows:

target 'MyApp' do
  pod 'CoatySwift', '~> 2.2.0'
end

Then, run a pod install.

CoatySwift is compatible with the the following deployment targets:

Deployment Target Compatibility
iOS 9.0+
macOS 10.14+

Examples

If you want a short, concise look into CoatySwift, feel free to check out the CoatySwift Tutorial with a step-by-step guide on how to set up a basic CoatySwift application. The source code of this tutorial can be found in the CoatySwiftExample Xcode target of the CoatySwift repo. Just clone the repo, run pod install on the root folder and open the new xcworkspace in Xcode.

You can find additional examples in the swift sections of the coaty-examples repo on GitHub. You will find the following Xcode projects there: Hello World and Remote Operations. They are interoperable with the corresponding Coaty JS examples and intended to be used along with them. These projects can serve as blueprints for how to design CoatySwift applications.

Testing

If you want to run unit tests on CoatySwift, look at (https://github.com/coatyio/coaty-swift/tree/master/CoatySwiftTests) Xcode target of the CoatySwift repo. Just clone the repo, run pod install on the root folder and open the new xcworkspace in Xcode. Then select the Test Navigator in Navigator View, enable chosen tests and run them.

Contributing

If you like CoatySwift, please consider ★ starring the project on github. Contributions to the CoatySwift framework are welcome and appreciated.

Please follow the recommended practice described in CONTRIBUTING.md. This document also contains detailed information on how to build, test, and release the framework.

License

Code and documentation copyright 2019 Siemens AG.

Code is licensed under the MIT License.

Documentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

The following list displays all the relevant licenses for third-party software CoatySwift depends on:

Credits

Last but certainly not least, a big Thank You! to the folks who designed, implemented and contributed to CoatySwift:

coaty-swift's People

Contributors

dependabot[bot] avatar johannesrohwer avatar lukasz-zet avatar markussauer avatar melloskitten avatar philippzagar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.