Macroid is the most badass modular functional user interface creation language for Android, implemented with Scala macros. Some people say it’s also a dead noodle.
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 9+
.
Latest version: 2.0
Snapshot version: 2.0.1-SNAPSHOT
License: MIT.
For more info head to http://47deg.github.io/macroid!
libraryDependencies ++= Seq(
aar("org.macroid" %% "macroid" % "2.0")
If you want to use the SNAPSHOT version you need to add the Sonatype SNAPSHOT repo
resolvers +=
"Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
libraryDependencies ++= Seq(
aar("org.macroid" %% "macroid" % "2.0.1-SNAPSHOT")
All contributions are welcome (and encouraged)!
Macroid’s commit message structure is inspired by the Spray project. The message has the following format:
[=|+|!] [core|viewable|akka|docs|all]: <Actual message>.
=
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.
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.