Sample app demonstrating interop between Jetpack Compose and the Android UI toolkit, including SurfaceView

Overview

Wake Me Up

Wake Me Up is a sample app showcased in the Google I/O 2021 Developer Keynote that demonstrates interoperability between Jetpack Compose and the Android UI Toolkit, including fragments, SurfaceView, and more.

How to build

To build this demo, you must first download a copy of Filament for your operating system. Make sure to select a release that matches the version listed in build.gradle. The current release to use is 1.12.8.

After downloading the release, extract is and copy the binary called matc (Linux and macOS) or matc.exe (Windows) into this project's ./filament/bin. This binary is necessary to compile the shaders used by this demo.

Screenshots

Main Screen Alarms Screen

License

All photos licensed under CC0 and available on Flickr.

Licensed under MIT License. Please see LICENSE for more information.

You might also like...
A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

Ionic Ionic is an open source app development toolkit for building modern, fast, top-quality cross-platform native and Progressive Web Apps from a sin

A toolkit for ebooks, audiobooks and comics written in Kotlin

Readium Kotlin Toolkit Readium Mobile is a toolkit for ebooks, audiobooks and comics written in Swift & Kotlin. This toolkit is a modular project, whi

WalletConnect Kit is the Swiss Army toolkit for WalletConnect!
WalletConnect Kit is the Swiss Army toolkit for WalletConnect!

WalletConnectKit WalletConnectKit is the Swiss Army toolkit for WalletConnect! It will allow you to connect your DApp with an Ethereum Wallet in a few

An Android Library for in-app switching between environment variables

android-env-picker An Android Library for in-app switching between environment variables. Central use case is picking a desired endpoint for backend c

A sample demo app which has Clean Architecture with MVVM , UI built with Jetpack Compose
A sample demo app which has Clean Architecture with MVVM , UI built with Jetpack Compose

A sample demo app (two screen todo list app) which has Clean Architecture with MVVM , UI built with Jetpack Compose and includes Modern Android Development Best Practices with components

GmailApp is a sample survey app, built with Jetpack Compose

GmailApp GmailApp is a sample survey app, built with Jetpack Compose. To try out this sample app, you need to use Android Studio Arctic Fox. You can c

Sync DND state between Android phone and watch
Sync DND state between Android phone and watch

DNDSync This App was developed to enable Do Not Disturb (DND) synchronization between my Pixel phone and the Galaxy Watch 4 since this option was only

Pass parameters safely and quickly between activities or fragments.

Bracer Pass parameters safely and quickly between activities or fragments. Read this in other languages: 中文, English, Change Log Prepare Add the JitPa

Link previews between JetBrains Space and Slack

slack-unfurls This is the application for providing link previews between Slack and Space in both directions. It provides link previews for Slack mess

Comments
  • Update Compose and others

    Update Compose and others

    Compose to 1.3.0 Filament to 1.28.2 Android Gradle plugin to 8.0.0-alpha07 Kotlin Gradle plugin to 1.7.10 Gradle to 7.5 In Viewer.kt, change the signature of onViewAttachedToWindow and onViewDetachedFromWindow to use android.view.View rather than android.view.View? because the former didn't compile with error "x does not implement y" Other minor library updates

    opened by djnotes 1
  • Put screenshots in a table

    Put screenshots in a table

    I've put screenshots in a table as they are huge and take so much space in the README. This also makes readability hard.

    At the moment, the table is left-aligned but can make it centered, too.

    opened by nuhkoca 0
  • Images aren't displaying

    Images aren't displaying

    Hi there,

    I'm using the matc from 1.12.8. I've also tried bumping up the filament version and I am still not seeing images.

    image

    Logs:

    2022-01-20 06:30:42.558 24067-24067/? I/xample.wakemeu: Late-enabling -Xcheck:jni
    2022-01-20 06:30:42.583 24067-24067/? D/ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
    2022-01-20 06:30:42.618 24067-24067/? W/re-initialized>: type=1400 audit(0.0:960): avc: granted { execute } for path="/data/data/com.example.wakemeup/code_cache/startup_agents/7db9b549-agent.so" dev="dm-12" ino=44130 scontext=u:r:untrusted_app:s0:c116,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c116,c257,c512,c768 tclass=file app=com.example.wakemeup
    2022-01-20 06:30:42.625 24067-24067/? V/studio.deploy: Startup agent attached to VM
    2022-01-20 06:30:42.625 24067-24067/? V/studio.deploy: No existing instrumentation found. Loading instrumentation from instruments-4ba6a5a0.jar
    2022-01-20 06:30:42.631 24067-24067/? W/xample.wakemeu: DexFile /data/data/com.example.wakemeup/code_cache/.studio/instruments-4ba6a5a0.jar is in boot class path but is not in a known location
    2022-01-20 06:30:42.794 24067-24067/? V/studio.deploy: ModifyParameterTransform failed: Landroid/app/ApplicationLoaders;
    2022-01-20 06:30:42.795 24067-24067/? W/xample.wakemeu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
    2022-01-20 06:30:42.879 24067-24067/? W/xample.wakemeu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
    2022-01-20 06:30:42.880 24067-24067/? W/xample.wakemeu: Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled.
    2022-01-20 06:30:42.880 24067-24067/? W/xample.wakemeu: Redefining intrinsic method boolean java.lang.Thread.interrupted(). This may cause the unexpected use of the original definition of boolean java.lang.Thread.interrupted()in methods that have already been compiled.
    2022-01-20 06:30:42.898 24067-24067/? W/xample.wakemeu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
    2022-01-20 06:30:43.062 24067-24067/? W/xample.wakemeu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
    2022-01-20 06:30:43.244 24067-24067/com.example.wakemeup W/xample.wakemeu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
    2022-01-20 06:30:43.248 24067-24067/com.example.wakemeup I/ActivityThread: Relaunch all activities: onCoreSettingsChange
    2022-01-20 06:30:43.249 24067-24067/com.example.wakemeup D/CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10372; state: DISABLED
    2022-01-20 06:30:43.360 24067-24067/com.example.wakemeup V/GraphicsEnvironment: ANGLE Developer option for 'com.example.wakemeup' set to: 'default'
    2022-01-20 06:30:43.361 24067-24067/com.example.wakemeup V/GraphicsEnvironment: ANGLE GameManagerService for com.example.wakemeup: false
    2022-01-20 06:30:43.361 24067-24067/com.example.wakemeup V/GraphicsEnvironment: Updatable production driver is not supported on the device.
    2022-01-20 06:30:43.364 24067-24067/com.example.wakemeup D/NetworkSecurityConfig: No Network Security Config specified, using platform default
    2022-01-20 06:30:43.365 24067-24067/com.example.wakemeup D/NetworkSecurityConfig: No Network Security Config specified, using platform default
    2022-01-20 06:30:43.435 24067-24067/com.example.wakemeup E/xample.wakemeu: Invalid ID 0x00000000.
    2022-01-20 06:30:43.488 24067-24067/com.example.wakemeup W/xample.wakemeu: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
    2022-01-20 06:30:43.488 24067-24067/com.example.wakemeup W/xample.wakemeu: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
    2022-01-20 06:30:43.729 24067-24094/com.example.wakemeup I/AdrenoGLES-0: QUALCOMM build                   : 85da404, I46ff5fc46f
        Build Date                       : 11/30/20
        OpenGL ES Shader Compiler Version: EV031.31.04.01
        Local Branch                     : promo490_3_Google
        Remote Branch                    : 
        Remote Branch                    : 
        Reconstruct Branch               : 
    2022-01-20 06:30:43.729 24067-24094/com.example.wakemeup I/AdrenoGLES-0: Build Config                     : S P 10.0.4 AArch64
    2022-01-20 06:30:43.729 24067-24094/com.example.wakemeup I/AdrenoGLES-0: Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
    2022-01-20 06:30:43.729 24067-24094/com.example.wakemeup D/hw-ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
    2022-01-20 06:30:43.733 24067-24094/com.example.wakemeup I/AdrenoGLES-0: PFP: 0x016ee190, ME: 0x00000000
    2022-01-20 06:30:43.735 24067-24094/com.example.wakemeup W/AdrenoUtils: <ReadGpuID_from_sysfs:197>: Failed to open /sys/class/kgsl/kgsl-3d0/gpu_model
    2022-01-20 06:30:43.735 24067-24094/com.example.wakemeup W/AdrenoUtils: <ReadGpuID:221>: Failed to read chip ID from gpu_model. Fallback to use the GSL path
    2022-01-20 06:30:43.740 24067-24094/com.example.wakemeup D/hw-ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
    2022-01-20 06:30:44.612 24067-24078/com.example.wakemeup W/System: A resource failed to call close. 
    
    opened by nachtien 0
  • Sky graphic is visible when expanding/collapsing

    Sky graphic is visible when expanding/collapsing

    If you have a clocks that are close enough together, you can see the sky rendering when you expand and collapse the view. I reproduced this on a physical Galaxy S8 (API 28) and a Pixel 5 (API 31) emulator.

    sky-is-showing

    opened by SalvatoreT 3
Owner
Romain Guy
Engineering director at Google on Android
Romain Guy
Samples demonstrating the features and use of Koala Plot, a Compose Multiplatform based charting and plotting library written in Kotlin.

Koala Plot Samples This repository houses samples demonstrating the use and features of Koala Plot libraries. How to run Build koalaplot-core with the

Koala Plot 6 Oct 18, 2022
Demo app demonstrating how to create and manage notifications locally using a combination of Jetpacks Worker Manager and Broadcast Receiver.

Worker Notification Demo app demonstrating how to create and manage notifications locally using a combination of Jetpacks Worker Manager and Broadcast

Ayia 1 Sep 19, 2022
Communicating between Wear OS and Android device using the OpWear module and a sample of displaying real-time camera on the watch and sending commands to the mobile by Wear OS.

OpWear-Cam Communicating between Wear OS and Android device using the OpWear module and a sample of displaying real-time camera on the watch and sendi

AmirHosseinAghajari 6 Nov 8, 2022
This is a work-in-progress (🔧️) ultraviolet index viewer app for demonstrating Instant Apps + Kotlin + Dagger + MVP

UV Index A simple ultraviolet index viewer app for demonstrating: Instant Apps + Kotlin + Dagger + MVP Built With Weatherbit as weather API Android In

Mustafa Berkay Mutlu 65 Oct 31, 2022
SimpleToDo is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item.

SimpleToDo is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item.

null 0 Jan 3, 2022
Todo List Application is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item

Todo List Application is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item

null 0 Jan 22, 2022
LeeCo is an awesome app for (including unlock) problems, solutions, discuss(from leetcode) and comments.

LeeCo LeeCo is an awesome app for algorithem problems(including unlock), solutions, discuss(from leetcode) and comments. #中文文档 README-ZH.md #Download

Nightonke 487 Nov 25, 2022
Android Studio project wrapper around the Elixir TodoApp Desktop app to run on Android including the Erlang runtime

TodoApp Android: An Android Sample App This Android Studio project wraps the Desktop Sample App to run on an Android phone. How to build & run Install

elixir-desktop 78 Dec 10, 2022
FairEmail is easy to set up and works with virtually all email providers, including Gmail, Outlook and Yahoo!

Downloads • Privacy • Support • License FairEmail Fully featured, open source, privacy oriented email app for Android FairEmail is easy to set up and

Marcel Bokhorst 1.5k Jan 2, 2023
A Full-Stack mobile app, including Android & Server, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.

JianShi 简诗 A Full-Stack mobile app, including Android side & Server side, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.

wingjay 1.9k Jan 6, 2023