/Flow

Cross-platform libraries for RubyMotion

Primary LanguageRubyBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Build Status

Flow

flow logo

Flow is a set of cross-platform libraries for RubyMotion. It can be seen as RubyMotion's missing standard library.

Each library implements the following requirements:

  • Simple Ruby API
  • 100% cross-platform (iOS, Android and OS X)
  • No external dependencies
  • Covered by tests
  • API Documentation

WARNING: Flow is currently a work in progress. Some specs might be broken, APIs might change, and documentation might be missing. We are working toward a stable release. If you want to help please get in touch.

Libraries

Flow is currently composed of the following libraries:

  • UI - User interface framework
  • Net - HTTP networking and host reachability
  • JSON - JSON serialization
  • Digest - Digest cryptography
  • Store - Key-value store
  • Base64 - Base64 encoding/decoding
  • Location - Location management and (reverse) geocoding
  • Task - Lightweight tasks scheduler

Installation

motion-flow requires RubyMotion >= 4.12. Make sure iOS and Android are correctly setup.

$ gem install motion-flow

If you are targeting Android, you need to install the dependencies with Gradle:

$ bundle && rake android:gradle:install

Projects

Flow projects

Flow comes with its own RubyMotion template, which creates a hybrid (iOS + Android + OS X) project.

$ motion create --template=flow Hello
$ cd Hello
$ rake -T

RubyMotion projects

Flow can be added as a dependency of an existing iOS, Android or OS X RubyMotion project, by adding the motion-flow gem in the project's Gemfile.

Code organization

Each Flow library is contained in subdirectories inside the flow directory. Platform-specific code is contained inside subdirectories of each library (E.g. cocoa and android).

Documentation

The documentation is written separately in the doc.rb file. If you work on a PR, please modify this file accordingly.

Generate documentation

yard