Skip to content

Python Wrapper for Jetpack Compose Multiplatform Mobile

License

Notifications You must be signed in to change notification settings

thisisthepy/pythonx-compose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pythonx - pycomposeui

pythonx is a python extension for kotlin integration

Description

Python Wrapper for Kotlin Compose Multiplatform.

Maintainer

Name Detailed Part Period
@b-re-w Composable Runtime 2023 ~ now
@rnoro5122 Material3 2024 ~ now

Template ToDo list

  • Composable Runtime
  • Material3 Wrapper

Integration


Usage

from pycomposeui.runtime import Composable, EmptyComposable, remember_saveable
from pycomposeui.material3 import Text, Column, Row, Button
from pycomposeui.ui import modifier, Alignment


@Composable
def UiTestCase(text: str = "UiTestCase"):
    """ Simple way to create a Composable """
    Text(text)


@Composable
class UiTest:
    """ Class-based Composable """
    def compose(self, content: Composable = EmptyComposable):
        Column(modifier, content=lambda: {
            UiTestCase(text="UiTestCase in UiTest"),
            content()
        })


@Composable
class BasicText:
    """ Class-based Composable 2 """
    @classmethod
    def compose(cls, text: str = "BasicText"):
        Text(text)


@Composable
class RichText(Composable):
    """ Inheritance-based Composable """
    @staticmethod
    def compose(content: Composable = EmptyComposable):
        Column(modifier, content=Composable(lambda: {
            Text("Basic Text inside of Rich Text"),
            Row(lambda: {  # Unlike Kotlin Compose, pycompose does not require Composable functions as content parameters
                Text("Row Left Side  "),
                Text("Row Right Side")
            }),
            content()
        }))

About

Python Wrapper for Jetpack Compose Multiplatform Mobile

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages