• This repository has been archived on 30/Nov/2022
  • Stars
    star
    529
  • Rank 79,909 (Top 2 %)
  • Language
    Scala
  • Created over 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A modular functional UI language for Android

Macroid — a Scala GUI DSL for Android

Build Status Codacy Badge Android Arsenal Join the chat at https://gitter.im/macroid/macroid

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.

For more info head to http://47deg.github.io/macroid!

Installation

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

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. 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.

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.

More Repositories

1

fetch

Simple & Efficient data access for Scala and Scala.js
Scala
480
star
2

sbt-microsites

An sbt plugin to create awesome microsites for your project
SCSS
317
star
3

translate-bubble-android

Translations without interruptions
Scala
272
star
4

github4s

A GitHub API wrapper written in Scala
Scala
229
star
5

appsly-android-rest

An Android client library for RESTful based web services.
Java
210
star
6

pointgrid

Designing in Sketch for any screen size
JavaScript
189
star
7

nine-cards-v2

An Open Source Android Launcher built with Scala on Android
Scala
180
star
8

helios

A purely functional JSON library for Kotlin built on Λrrow
Kotlin
168
star
9

scala-android

Scala on Android Examples
Scala
143
star
10

scala-days-android

Official Android app for Scala Days
Scala
137
star
11

scalacheck-toolbox

A helping hand for generating sensible data with ScalaCheck
Scala
119
star
12

coding-guidelines

The purpose of the 47 Degrees Coding Standards is to create a collaboration baseline; helpful for scenarios where many people are creating, modifying, and contributing to the same project. The end goal is unity, consistency, and the notion that a single entity created the outputted code.
96
star
13

second-bridge

Second Bridge is a Swift framework for functional programming. Our goal is to make Swift development on par with other functional languages like Scala by adding new data types, functions and operators.
Swift
70
star
14

case-classy

configuration with less hassle
Scala
68
star
15

LambdaTest

Functional testing for Scala.
Scala
67
star
16

func-architecture-v3

Purely functional architectural patterns v3
Scala
62
star
17

nine-cards-backend

An Open Source Android Launcher built with Scala on Android
Scala
60
star
18

android-wunderground-client

An Android client for the Weather Underground Weather API
Java
60
star
19

memeid

RFC-compliant Universally Unique Identifiers (UUID) for the JVM
Scala
57
star
20

ArrowInPractice

Lambda.World Cádiz 2018 Workshop - Encoding Functional web services using Arrow and Ktor
Kotlin
41
star
21

kotlin-for-scala-devs

A brief presentation comparing Scala with Kotlin aimed toward Scala FP devs at 47 Degrees
40
star
22

org

Easily create a webpage with your organization's open source projects
Clojure
36
star
23

scala-commas

A compiler plugin to add support for trailing commas in Scala 2.11
Scala
36
star
24

macroid-starter

A sample project to start playing with Macroid
Scala
34
star
25

kollect

Simple & Efficient data access for Kotlin
Kotlin
33
star
26

firebrand

An Object 2 Cassandra Mapper
Java
31
star
27

scala-days-ios

Official iOS app for Scala Days
Swift
25
star
28

scala-android-architecture

scala-android-architecture
Scala
24
star
29

karat

Alloy within Kotlin
Kotlin
24
star
30

functional-error-handling

Functional Error Handling
JavaScript
24
star
31

annotate-your-case-classes

Annotate your Case Classes with Scala Macros
Scala
23
star
32

labs-scala-play-mongo

A sample Scala + Play + Reactive Mongo + Iteratees app using the Twitter Streaming API
Scala
22
star
33

sbt-org-policies

Just an SBT plugin that enforces some organizational policies and settings across all of your projects
Scala
22
star
34

mvessel

SQLite JDBC Driver for Android in Scala
Scala
19
star
35

jetpack-compose-arrow-talk

Playground showcasing examples for the Kotlin London meetup using Android Jetpack Compose and Arrow
Kotlin
19
star
36

macroid-extras

47 Degrees Macroid Extras
Scala
19
star
37

sbt-hood

A SBT plugin for comparing benchmarks in your PRs
Scala
18
star
38

hood

The plugin to manage benchmarks on your CI
Kotlin
17
star
39

scala-on-android-preparing-the-environment

Scala
17
star
40

scala-android-training

Fast Track to Scala + Android [Training]
Scala
17
star
41

spark-on-lets-code

This Spark Project provides the sample code related with the blog post series `Spark On` 47 Degrees Blog Series
Scala
16
star
42

functional-views-android

Functional Views on Android
Scala
16
star
43

kotest-trace

Black-box testing of stateful systems using properties
Kotlin
15
star
44

macroid-akka-pingpong

An Activator template featuring Macroid and Akka on Android
HTML
14
star
45

fp-fundamentals

Scala
13
star
46

bbcdzREST

A sample REST app with Play2 Scala & Reactive Mongo
Scala
13
star
47

fp-with-arrow-videos

12
star
48

func-architecture

A Presentation around a pragmatic approach to building a purely functional architecture
Scala
12
star
49

typeclasses-in-fp-architecture

An introductory talk to Type Classes in FP Architectures
Scala
12
star
50

scala-commons-47

An heterogeneous collection of Scala related utils, traits and classes
Scala
11
star
51

fetchless

Port of 47deg/fetch to Tagless Final Style™️
Scala
11
star
52

enum-oriented-table-view-sample

Swift
10
star
53

scala-training-2018-q2

Scala
10
star
54

mu-smart-home

Mu Smart Home on the Cloud (GCP)
Scala
9
star
55

run-wild-run-free

Run Wild, Run Free!
Scala
9
star
56

sbt-embedded-cassandra

Simple plugin for starting an embedded Cassandra instance from SBT
Scala
9
star
57

scalajs-intro

An introduction to Scala.js from a pragmatic stand point
Scala
9
star
58

docker-testkit-munit

MUnit integration for https://github.com/whisklabs/docker-it-scala
Scala
9
star
59

types-vs-tests

Scala
9
star
60

kata-contacts-scala

Scala
8
star
61

labs-bbc-rest-server

A sample Java Spring based RESTful style web service for the betabeers labs
Java
8
star
62

scala-on-android-deck

Scala on Android - The current state of affairs
8
star
63

munit-akka

MUnit fixtures for testing with Akka Typed
Scala
8
star
64

spark-workshop

Sample Code and Demos for the Apache Spark Workshop
Shell
8
star
65

sbot

Scala Bot
Scala
7
star
66

sbt-energymonitor

Measure energy consumption around sbt commands
Scala
7
star
67

swift-functional-life

Swift
7
star
68

sbt-dependencies

Scala
7
star
69

arrow-architecture

Architecting Typed FP Applications & Libraries in Kotlin with Λrrow
Kotlin
7
star
70

metrifier

Comparing HTTP endpoints against mu-rpc services.
Scala
6
star
71

yin-yang-haskell-workshop

Material for the "Yin and Yang of Haskell" workshop (LambdaWorld Cádiz 2019)
Haskell
6
star
72

arrow-intro

JavaScript
6
star
73

scalaio-microservices

Dummy app for ScalaIO Talk: The Three Paths of Scaling with Akka
Scala
5
star
74

scala-js-demo

Scala.js demo project
HTML
5
star
75

json-perf

Performance tests for Scala Json parsing.
Scala
4
star
76

scala-exercises-v2-deck

Scala Exercises V2 Slides for Deckset
4
star
77

func-architecture-v2

Supporting code for "Functional Programming Patterns v2 (For the pragmatic programmer)"
Scala
4
star
78

spark-sftp-test

Testing different methods to read from SFTP from Spark
Scala
3
star
79

labs-bbc-rest-client

A sample Android RESTful client for the betabeers labs
Java
3
star
80

how-to-test-spark

Different techniques to do unit testing in Spark without the need to rely on anything else than your IDE and SBT
Scala
3
star
81

liquid-stain

Examples from the LiquidHaskell book, ported to Scala+Stainless
Scala
3
star
82

petstore4s

Generating http4s code based on OpenApi Specification 3.0.0 with Mu
Scala
3
star
83

microsites

Ruby
3
star
84

sample-tagless-final

Scala
3
star
85

labs-bbc-patterns

Sample Code for the betabeers Design Patterns Talk
Java
3
star
86

painless-android-development-with-scala-deck

Deckset slides for `Painless Android Development with Scala`
3
star
87

arrow-fx-deck

Arrow Fx. Typed FP for the masses https://arrow-kt.io/docs/effects/fx/
3
star
88

FunctionalStreamsSpringSample

Minimal sample of Functional Streams using Spring and Kotlin
Kotlin
3
star
89

docker-47

47 Degrees Docker Images
Shell
2
star
90

appsly-ios-rest-utils

A Collection of RestKit and HTTP Related Utils
Objective-C
2
star
91

freestyle-intro

An introduction to Freestyle and what's in the 0.1.0 release
JavaScript
1
star
92

scala-pushover

scala-pushover is a simple, extensible client library for Scala that provides an interface to the Pushover API.
Scala
1
star
93

LambdaTestCapture

Capture test output from LambdaTest
Scala
1
star
94

GTG

Google Token Generator
Scala
1
star
95

arrow-slides

JavaScript
1
star
96

robeen

Robeen is the graphical companion for Hood JMH benchmarks
TypeScript
1
star
97

LambdaTestTiming

Timing extension for LambdaTest
Scala
1
star
98

bitly_ios_sdk

Objective-C
1
star
99

heroku-play2-demo

A sample Heroku Play2 App part of a Betabeers BBCDZ to show talk how to deploy to Heroku and adding Mongolab, New Relic, Loader.io and logentries
Scala
1
star
100

47deg-slides

Reveal.js slides template project targeting 47 Degrees brand styling.
JavaScript
1
star