Description
Doodle is written entirely in Kotlin and so are its apps. Doodle Web Applications do not use HTML, CSS styles or Javascript libraries. In fact, apps are not aware of the Browser (or Browser concepts) at all, and can be written entirely as common (cross-platform) code in multi-platform setups.
A pure Kotlin, UI framework alternatives and similar libraries
Based on the "Web" category.
Alternatively, view Doodle alternatives based on common mentions on social networks and blogs.
-
ktor
Framework for quickly creating connected applications in Kotlin with minimal effort -
javalin
A simple and modern Java and Kotlin web framework [Moved to: https://github.com/javalin/javalin] -
apollo-android
:robot: A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform. -
http4k
The Functional toolkit for Kotlin HTTP applications. http4k provides a simple and uniform way to serve, consume, and test HTTP services. -
GraphQL Kotlin
Libraries for running GraphQL in Kotlin -
spark-kotlin
A Spark DSL in idiomatic kotlin // dependency: com.sparkjava:spark-kotlin:1.0.0-alpha -
skrape.it
A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion. -
hexagon
Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications or APIs) that run inside a cloud platform. -
firefly
Firefly is an asynchronous web framework for rapid development of high-performance web application. -
fritz2
Easily build reactive web-apps in Kotlin based on flows and coroutines. -
Kanary
A minimalist web framework for building REST APIs in Kotlin/Java. -
vaadin-on-kotlin
Writing full-stack statically-typed web apps on JVM at its simplest -
alpas
🚀 The Rapid and Delightful Kotlin Web Framework. Easy, elegant, and productive! -
ShapeShift️
A Kotlin/Java library for intelligent object mapping and conversion between objects. -
yested
A Kotlin framework for building web applications in Javascript. -
lambda-kotlin-request-router
A REST request routing layer for AWS lambda handlers written in Kotlin -
KotlinPrimavera
Spring support libraries for Kotlin -
kog
🌶 A simple Kotlin web framework inspired by Clojure's Ring. -
tekniq
A framework designed around Kotlin providing Restful HTTP Client, JDBC DSL, Loading Cache, Configurations, Validations, and more -
bootique-kotlin
Provides extension functions and features for smooth development with Bootique and Kotlin. -
Pellet
An opinionated, Kotlin-first web framework that helps you write fast, concise, and correct backend services 🚀. -
sponge
sponge is a website crawler and links downloader command-line tool -
Zeko-RestApi
Asynchronous web framework for Kotlin. Create REST APIs in Kotlin easily with automatic Swagger/OpenAPI doc generation -
graphql-kotlin-toolkit
GraphQL toolkit for Kotlin. -
komock
KoMock - Simple HTTP/Consul/SpringConfig http server framework written in Kotlin. Wiremock use cases -
voyager-server-spring-boot-starter
Easily create REST endpoints with permissions (access control level) and hooks includeded -
kweb-core
Build rich live-updating web apps in pure server-side Kotlin. -
graphql-kotlin
Code-only GraphQL schema generation for Kotlin
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of A pure Kotlin, UI framework or a related project?
README
A pure Kotlin, UI framework
Single Language
Doodle is written entirely in Kotlin and so are its apps. Doodle Web Applications do not use HTML, CSS styles or Javascript libraries. In fact, apps are not aware of the Browser (or Browser concepts) at all, and can be written entirely as common (cross-platform) code in multi-platform setups.
Multiple Platforms
Doodle supports both JS (Browser) and JVM (alpha) targets; so common code apps are able to run in the Browser and Desktop (with other platforms planned) without modification. This means you write widgets once and use them on either platform. The only difference is how apps are launched on each platform.
Expressive
Creating expressive, intuitive apps is natural with Doodle. It makes complex rendering easy with powerful, vector-oriented rendering, provides fully customizable layouts and simplifies pointer and keyboard handling.
Simply define your View hierarchy and business logic, then go.
Vector Oriented
It is easy to build beautifully detailed UIs with Doodle. All rendering in Doodle is vector-oriented; so ellipses, paths, lines, gradients, affine transforms etc. are as simple to use as images and rectangles.
Precise
Doodle gives you control over all aspects of the UI presentation, including pixel-level positioning, making it easier to precisely control rendering.
Modular
Doodle has several libraries and a collection of modules. This allows selective adoption of various features and helps with bundle size. Apps written with Doodle are also dependency-injected; and there are no global objects or state to make mocking challenging.
Hello World
import io.nacular.doodle.application.Application
import io.nacular.doodle.application.application
import io.nacular.doodle.core.Display
import io.nacular.doodle.core.plusAssign
import io.nacular.doodle.core.view
import io.nacular.doodle.drawing.Color.Companion.Black
import io.nacular.doodle.drawing.text
import org.kodein.di.instance
class HelloWorld(display: Display): Application {
init {
display += view {
size = display.size
render = {
text("Hello, world!", color = Black)
}
}
}
override fun shutdown() {}
}
fun main() {
application {
HelloWorld(display = instance())
}
}
Documentation
Check out the documentation site for more details and examples.
Tutorials
You can find helpful tutorials as doodle-tutorials.
Feedback
Doodle is still under active development, so there are going to be gaps and bugs. Please report issues, and submit feature requests.
You can also join the discussion on the #doodle Kotlin Slack channel.
*Note that all licence references and agreements mentioned in the A pure Kotlin, UI framework README section above
are relevant to that project's source code only.