Skip to content
FOAM: Feature-Oriented Active Modeller, Version 2
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
_includes
_layouts
android/nanos_example_client
angular
build-aux
css
demos
doc/guides
lib
logs
polymer
sandbox
src
swift_src
test
tools
tutorial
.gitignore
.istanbul.yml
.jscsrc
.jshintrc
.travis.yml
AUTHORS
COPYING
COPYRIGHT
Makefile
README.md
checkCoverage.js
index.html
jasmine_benchmarks.json
jasmine_coverage.json
jasmine_gcloud.json
jasmine_node.json
migration.txt
nanos.in
package-lock.json
package.json

README.md

FOAM

Build fully featured high performance apps in less time using FOAM.

  • Application Speed
  • Application Size
  • Developer Efficiency

"Fast apps Fast"

http://foamdev.com

Build Status

Feature Oriented Active Modeller

FOAM is a modeling tool and class based object system. To use FOAM, you create a model of your class by describing the properties, methods, event topics, listeners, and dependencies of your class. FOAM takes this model and generates a usable JavaScript class along with several companion features such as database support and network marshaling.

While FOAM is written in JavaScript, it can be used to generate code for any language or platform, including Android Java and iOS Swift.

Development

Building Java

cd src; ./gen.sh; cd ../build; cp ../tools/pom.xml .; mvn compile; mvn package

Installing Dependencies

FOAM has no runtime dependencies, but uses a number of third party tools for unit tests, code coverage, and linting. You can install all required tools by doing the following.

  • Install nodejs.

  • Run 'npm install' in the root of the FOAM repository, where package.json is found.

Running Application Controller

The FOAM Application Controller allows you to access components of your foam app by using the browser & displaying it as a GUI. To access, run the following in the parent directory of foam2:

Style Guide

All code should follow the style guide.

Testing

  • npm test runs standard unit tests.

  • npm run testDebug runs the unit tests with a debugger.

  • npm run coverage runs code coverage and creates an html report in /coverage.

For in-browser testing, run your favorite web server at the root of the FOAM repository. In a browser, navigate to http://localhost:8000/test/browser/SpecRunner.html to run the unit tests.

Documentation

Contributing

Before contributing code to FOAM, you must complete the Google Individual Contributor License Agreement.

You can’t perform that action at this time.