Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xebia-functional/macroid
A modular functional UI language for Android
https://github.com/xebia-functional/macroid
abstraction android composability dsl functional-programming gui scala-macros user-interface
Last synced: 3 months ago
JSON representation
A modular functional UI language for Android
- Host: GitHub
- URL: https://github.com/xebia-functional/macroid
- Owner: xebia-functional
- Archived: true
- Created: 2013-07-24T01:18:56.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2017-09-30T01:39:09.000Z (about 7 years ago)
- Last Synced: 2024-04-12T04:56:18.745Z (7 months ago)
- Topics: abstraction, android, composability, dsl, functional-programming, gui, scala-macros, user-interface
- Language: Scala
- Homepage:
- Size: 12.8 MB
- Stars: 526
- Watchers: 101
- Forks: 37
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-android - Macroid - A modular functional UI language for Android. (Development Alternatives / Scala)
README
### Macroid — a Scala GUI DSL for Android
[![Build Status](https://travis-ci.org/47deg/macroid.png?branch=master)](https://travis-ci.org/47deg/macroid) [![Codacy Badge](https://www.codacy.com/project/badge/fb3d939567d04686bfb23da3a22b9de9)](https://www.codacy.com/public/nickstanch/macroid) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Macroid-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/1529) [![Join the chat at https://gitter.im/macroid/macroid](https://img.shields.io/badge/GITTER-Join%20chat%20→-brightgreen.svg?style=flat)](https://gitter.im/macroid/macroid?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Macroid is a modular functional user interface creation language for Android, implemented with
Scala macros.Striving to be focused on one thing (GUI), Macroid promotes composability and high-level abstractions.
Prerequisites: Scala `2.10.x` or `2.11.x`, Android `API 19+`.
Latest version: `2.1.0`
Snapshot version: `2.1.0-SNAPSHOT`
License: [MIT](http://opensource.org/licenses/MIT).
* [What does it look like](http://47deg.github.io/macroid/docs/Tutorial.html)
* [How is it different from...](http://47deg.github.io/macroid/docs/Differences.html)
* [Detailed guide](http://47deg.github.io/macroid/docs/Guide.html)
* [Mailing list](https://groups.google.com/forum/#!forum/macroid)For more info head to http://47deg.github.io/macroid!
#### Installation
```scala
libraryDependencies ++= Seq(
aar("org.macroid" %% "macroid" % "2.1.0")```
If you want to use the SNAPSHOT version you need to add the Sonatype SNAPSHOT repo
```scala
resolvers +=
"Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"libraryDependencies ++= Seq(
aar("org.macroid" %% "macroid" % "2.1.0-SNAPSHOT")```
#### Contributing
All contributions are welcome (and encouraged)!
##### Commit messages
Macroid’s commit message structure is [inspired by the Spray project](http://spray.io/project-info/contributing/#git-commit-messages). The message has the following format:
```
[=|+|!] [core|viewable|akka|docs|all]: .
```
* `=` means there are no API changes
* `+` means added functionality
* `!` means breaking changes (source or binary)Example:
```
! core: Receive UI actions in mapUi & co (fix #48)mapUi, flatMapUi, ... now operate on UI actions, rather than simple thunks.
For example, the new type signature for mapUi is (A ⇒ Ui[B]) ⇒ Future[B].
```
Following this convention greatly simplifies writing the changelogs.##### Documentation
Although this is not crucial, updating the docs under `macroid-docs` together with the code changes might save some time in the future, and thus is highly appreciated. It can be done in the same commit.
#### Commercial Support
47 Degrees offers commercial support for the Macroid library and associated technologies. To find out more, visit [47 Degrees' Open Source Support](https://www.47deg.com/services/open-source-support/).