Glance Experimental Tools aims to supplement Jetpack Glance with features that are commonly required by developers but not yet available.

Overview

Glance Experimental Tools

🚧 Work in-progress: artifacts not available yet

This project aims to supplement Jetpack Glance with features that are commonly required by developers but not yet available.

It is a labs like environment for Glance tooling. We use it to help fill known gaps in the framework, experiment with new APIs and to gather insight into the development experience of developing a Glance library.

Libraries

🧬️ appwidget-host

A simple composable to display RemoteViews inside your app.

🖼️ appwidget-preview

A debug tool to display AppWidget previews embedded inside the app and enable "Live Edits" or "Apply Changes".

🛠️ 🎨 appwidget-configuration

A Material3 Scaffold implementation for appwidget configuration activities.

Future?

Any of the features available in this group of libraries may become obsolete in the future, at which point they will (probably) become deprecated.

We will aim to provide a migration path (where possible), to whatever supersedes the functionality.

Contributions

Please contribute! We will gladly review any pull requests. Make sure to read the Contributing page first though.

License

Copyright 2020 The Android Open Source Project
 
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You might also like...
Some tips for developers who will involve Jetpack Compose in new APPs

Compose TakeAway 给即将用Jetpack Compose开发APP的开发人员 1. Jetpack Compose vs Xml Pros: 声明式UI,纯kotlin 代码更少 可直接兼容现有View - 双向兼容 性能更好(measure次数减少...) UI自定义更简单 没有a

Jetpack Compose based project, used to stress-testing compose features / integrations and explore non-trivial functionality

Project containing Jetpack Compose samples For pagination & network images it uses CATAAS. Known issues Navigation-Compose Issue with fast tapping on

Dynamic Badge with customizable features as max number before displaying with +, color, shadow, border, corner radius, font properties and more written with Jetpack Compose
Dynamic Badge with customizable features as max number before displaying with +, color, shadow, border, corner radius, font properties and more written with Jetpack Compose

✏️📌 Dynamic Badge with customizable features as max number before displaying with +, color, shadow, border, corner radius, font properties and more written with Jetpack Compose. Displays numbers either in circle or rounded rectangle shape based on badge count and selected threshold to transform from circle to rounded rectangle.

An android library to highlight different features of the app built using Jetpack Compose.
An android library to highlight different features of the app built using Jetpack Compose.

An android library to highlight different features of the app built using Jetpack Compose.

Make your device sip only small amounts of battery when not in use.
Make your device sip only small amounts of battery when not in use.

trickle Make your device sip only small amounts of battery when not in use. What Automatically place your device into battery-saver mode when the scre

Koin-compose - A pragmatic lightweight dependency injection framework for Kotlin developers
Koin-compose - A pragmatic lightweight dependency injection framework for Kotlin developers

What is KOIN? - https://insert-koin.io A pragmatic lightweight dependency inject

A library that adds useful features for Compose Desktop apps

Desktopose This is a set of utilities and components meant to help with developing desktop apps that use Compose for Desktop library. It contains the

A playground to showcase cool IDE features.

Let the IDE do that for you It's not being lazy if it makes you more productive 🗣️ Sebastiano Poggi Lead on Package Search at JetBrains Android, Flut

Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop 🚀, using Canvas API 🎨
Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop 🚀, using Canvas API 🎨

🐜 🐜 🐜 Compose flocking Ants(boids) 🐜 🐜 🐜 Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop 🚀 , usi

Comments
  • [appwidget-host] Improve compatibility with PagerApi

    [appwidget-host] Improve compatibility with PagerApi

    Describe the bug

    Render GlanceAppWidgetHostPreview on the page element of Pager, nothing appears on the page it was hidden. However, when I manually click on the element, it seems to reappear when the updateContent() specified for clickable is called.

    To Reproduce

    use GlanceAppWidgetHostPreview in HorizontalPager's page content

    HorizontalPager(
                ...
            ) { page ->
                GlanceAppWidgetHostPreview()
    }
    

    https://user-images.githubusercontent.com/29725082/194844854-8f3ae730-1a81-44d9-a91b-ebe8e2ead9e0.mp4

    Expected behavior

    From the above event, I know that could display it by manually calling updateContent(). So I delayed updateContent() by 100 millis when it was mounted, and the element was always displayed before and after paging.

    glance-experimental-tools/GlanceAppWidgetHostPreview.kt at b903edb88c898ca36c4a1b5099c2ebebd32ec6c9 · google/glance-experimental-tools

     if (hostState.isReady) {
       LaunchedEffect(hostState.value) {
    +    delay(100)
         updateContent()
      }
    }
    

    https://user-images.githubusercontent.com/29725082/194844772-8bee4341-4775-4f3f-8b89-328f8c30bb4d.mp4

    Environment:

    compose_version = '1.2.1'
    androidx.glance:glance-appwidget:1.0.0-alpha04
    com.google.android.glance.tools:appwidget-configuration:0.2.2
    com.google.accompanist:accompanist-pager:0.26.5-rc
    
    Stale 
    opened by ergofriend 2
  • Feature Request - Add Demo on how to have tile that can be configured from an activity

    Feature Request - Add Demo on how to have tile that can be configured from an activity

    Hi, I'm currently using Glance for wear tiles (version 1.0.0-alpha04) but I'm really struggling to develop a tile that can be configured from another activity.

    Imaging you have a tile where you show the current balance (money) from a given subscription. The user can have more than one subscription.

    The idea is:

    • The user adds the tile which initially shows a message explaining that he needs to choose first the subscription to be displayed. This means that when the tile is clicked it should launch an activity where the user can do the selection.

    Issues I found:

    • First, you can't launch an activity with certain parameters (I already raised a bug for this). But as a workaround I can add a specific activity to perform the subscription selection.
    • Second, how you can update the state of the tile from outside. I saw this example: https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/CountTileService.kt But this updateTileState can only be invoked from the class instance itself as the GlanceId is not exposed.
    Stale 
    opened by Charchad 1
  • Unclear import for GlanceViewerActivity

    Unclear import for GlanceViewerActivity

    Describe the bug

    Unclear what the import should be for "value" in the GlanceViewerActivity sample code

    To Reproduce

    Steps to reproduce the behavior:

    1. Copy-paste the activity code from https://github.com/google/glance-experimental-tools/tree/main/appwidget-viewer
    2. A single auto-import suggestion is given for value in state = mutablePreferencesOf(intPreferencesKey("state") to value). This import is import androidx.compose.foundation.gestures.ModifierLocalScrollableContainerProvider.value, which doesn't seem correct and does not compile.

    Expected behavior

    Ain import which compiles

    Environment:

    • using glance 1.0.0-alpha05 of glance
    • using 0.2.2 of appwidget-viewer
    opened by ninovanhooff 0
Releases(v0.2.2)
Yet another ToDo app, but the UI completely written in Jetpack Compose!

Yet another ToDo app, but the UI completely written in Jetpack Compose!

Wisnu Kurniawan 134 Dec 31, 2022
A Collection of major Jetpack compose UI components which are commonly used.🎉🔝👌

SSComposeCookBook A Collection of major Jetpack compose UI components which are commonly used. Introduction Jetpack Compose is a modern toolkit for bu

Simform Solutions 370 Dec 28, 2022
Experimental Graphviz code generation POC built with Jetpack Compose compiler/runtime.

Compose Dot Experimental proof of concept to generate GraphViz dot code via Jetpack Compose's tree management. Valid dot file content can be generated

Arunkumar 29 Sep 14, 2022
Highly experimental routing feature for Compose Web

RoutingCompose Highly experimental routing feature for Compose Web Install This package is uploaded to GitHub Packages. repositories { maven {

Philip Wedemann 86 Dec 20, 2022
🔥 Yet another Tinder like swipeable cards, built for Jetpack Compose

twyper Yet another Tinder like swipeable card library, built for Jetpack Compose ✨ Demo Screen.Recording.2022-02-20.at.10.46.59.PM.mov ⌨️ Usage 1. Add

theapache64 88 Dec 24, 2022
Pokedex Compose is an independent re-write of a demo application by the name of Pokedex, but written in jetpack compose.

Pokedex Compose Pokedex Compose is an independent re-write of a similar project by the name of Pokedex. I am recreating the UI but I am doing it using

Jose Patino 4 May 1, 2022
Android Jetpack is a set of components, tools and guidance to make great Android apps.

Android Jetpack is a set of components, tools and guidance to make great Android apps. They bring together the existing Support Library and Architecture Components and arrange them into four categories.

Atik Faysal 0 Dec 8, 2021
Yet another awesome Intro screen library 🔥

Compose-Intro ✅ Yes, I'm too bad in naming my libraries : ) Yet another Intro Screen library made with the love of Kotlin and Jetpack compose : ) ❤️ ✨

Kapil Yadav 13 Aug 14, 2022
a set of Settings like composable items to help android Jetpack Compose developers build complex settings screens

This library provides a set of Settings like composable items to help android Jetpack Compose developers build complex settings screens without all the boilerplate

Bernat Borrás Paronella 178 Jan 4, 2023
This repository is a playground of jetpack compose for android developers

Pritesh Jetpack Compose This repository is a playground of jetpack compose for Android Developers, I tried to get my hands dirty with challenging UI t

PriteshVadhiya 5 Apr 20, 2022