Kotlin

752 readers
1 users here now

Kotlin is a statically typed programming language for the JVM, Android, JavaScript, and native.

Subreddit rules:

Resources:

founded 2 years ago
MODERATORS
1
3
Ktor-Panel: Admin Interface Generation (ktor-panel.readthedocs.io)
submitted 1 week ago* (last edited 1 week ago) by illucidmind@programming.dev to c/kotlin@programming.dev
 
 

Ktor-panel is a lightweight admin interface generation library for Ktor servers, and is currently in its last stages of development before official release to the public for consumption. Its selling points are the customisability and security. At the moment, the library supports ORMs and ODMs such as Exposed, Hibernate and the official Kotlin MongoDB driver.

I'd appreciate any feedback, GitHub stars or collaborations as there's still a lot to build :)

Source: https://github.com/believemanasseh/ktor-panel

2
3
4
5
 
 

I am very happy that jetbrains seem to support kotlin outside of intelliJ. Since I do not like IntelliJ that much, I might be able to use kotlin in other editors with good support too.

6
7
 
 

cross-posted from: https://lemm.ee/post/64557471

8
9
10
11
12
13
14
2
submitted 5 months ago* (last edited 5 months ago) by neme@lemm.ee to c/kotlin@programming.dev
15
 
 

cross-posted from: https://lemmy.ml/post/21390036

I finished reading the Kotlin documentation (ยงConcepts) and want to do something now. I was thinking about making a desktop app with a GUI. For that people seem to recommend Jetbrains Compose.

It seems however that the guides (https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-create-first-app.html) to set up such a project assume I have more than one target. I however don't and thus don't need to divide my project into common code, ios code, wasm code, etc. I only need to compile my project for the JVM, since I'm only intending to support Linux and BSD. I don't have much experience with the Java/Kotlin-centric build systems and I would like to avoid investing too much time into it (since for now I would like to spend more time writing that app, preferring to learn Gradle later in my journey), so I thought about just generating a template as recommended by the guides (using https://kmp.jetbrains.com/) and to just remove everything that doesn't matter for my project. However, since I don't have much experience with Gradle yet, I don't know what exactly the changes are that I need to make to the build script

Generated code

import org.jetbrains.compose.desktop.application.dsl.TargetFormat

plugins {
    alias(libs.plugins.kotlinMultiplatform)
    alias(libs.plugins.jetbrainsCompose)
    alias(libs.plugins.compose.compiler)
}

kotlin {
    jvm("desktop")
    
    sourceSets {
        val desktopMain by getting
        
        commonMain.dependencies {
            implementation(compose.runtime)
            implementation(compose.foundation)
            implementation(compose.material)
            implementation(compose.ui)
            implementation(compose.components.resources)
            implementation(compose.components.uiToolingPreview)
            implementation(libs.androidx.lifecycle.viewmodel)
            implementation(libs.androidx.lifecycle.runtime.compose)
        }
        desktopMain.dependencies {
            implementation(compose.desktop.currentOs)
            implementation(libs.kotlinx.coroutines.swing)
        }
    }
}


compose.desktop {
    application {
        mainClass = "org.example.project.MainKt"

        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "org.example.project"
            packageVersion = "1.0.0"
        }
    }
}

What resources should I look at to quickly create a kotlin Compose project targeting only the JVM? (maybe a gradle crashcourse????)


Unrelated, but if you want you can also share your opinion regarding the use of Compose vs JavaFX vs Swing for this situation

16
 
 

Hi everyone, I am learning kotlin as my first language(I have a bit of python knowledge mostly useless stuffs) I am following the android tutorial for kotlin and now I am 100% lost at the tip calculator in kotlin here. What should/could I do to improve my situation? Any recommend would help me a lot. Thank!

17
18
19
20
21
 
 

Hey everyone,

I'm excited to share iCore, a new library designed to streamline Android application development with modular and reusable components. iCore supports the MVVM architecture and provides base classes, extension functions, and various utility classes to reduce code duplication and speed up the development process.

Key Features:

  • Reducing Code Duplication: By abstracting commonly used operations, it prevents the writing of repetitive code.

  • Quick Start: With ready-to-use core components, it allows for a quick start to projects.

  • Easy Integration: Easily integrates common operations like Retrofit, LiveData observation, and theme/language selection.

  • Reactive Data Management with Kotlin Flow and LiveData: iCore manages asynchronous data streams using Kotlin Flow and handles UI updates with LiveData, offering a more reactive and modern data processing model.

  • Extensive Extensions: Its extensible structure allows for customization according to application needs.

  • Centralized Management: Provides centralized management by allowing easy access to application resources with ResourceProvider.

Links:

๐Ÿ”— GitHub: iCore on GitHub

๐Ÿ”— JitPack: iCore on JitPack

I'm looking forward to your feedback and contributions. Happy coding!

22
 
 

Changelog

v1.24.4 - 2024-06-24 - Flat Sun

Focus in this release has been on improving and refactoring frontend code, adding UI features such as column and row hiding and locking through Visibility and Position meta classes. Other UI related features, such as supporting the height and width of individual cells have also been implemented, allowing for column and row span functionality.

Additional frontend changes include adding a marker, which allows cells to be selected and improves the way input is passed on to underlying UI cell content. This allows for better widget and chart functionality among other improvements for code that wishes to extend the frontend functionality.

Finally, a more flexible approach is now supported around providing custom HTML/CSS/JS allowing for alternative styling and other such changes to the frontend rendering. Two view configs are provided out of the box to illustrate this, the compact and the spacious, with compact being the default choice when using show(..).

It is expected that this will be the final alpha release of v1.

Added

  • Add a cell marker, allowing cells to be selected with input passed to underlying cell content
  • Add functionality to position columns to the left or right and rows to the top or bottom
  • Add functionality to hide columns and rows
  • Add support for custom UI config with custom HTML/CSS/JS
  • Implement cell height and width rendering when these are defined on cell

Fixed

  • Nothing

Changed

  • Rename init parameter to receiver for on(..) functions and process to processor on related for improved API intuition
  • Change HTML structure of cells, also harmonize this with column and row headers
  • Update widgets and charts to work with frontend changes
  • Various documentation updates relating to changes

Removed

  • Nothing
23
24
 
 
25
view more: next โ€บ