ExTessera
D&D 5e Character Sheet - a Kotlin MVVM-Databinding App for Android, using Realm for persistence; sprinkled with Dagger, Rx Java 1, and a heaping portion of Material Design
Install / Use
/learn @jord-goldberg/ExTesseraREADME
Ex Tessera
https://play.google.com/store/apps/details?id=ny.gelato.extessera
'Deus ex tessera' - God from the dice
That's the main idea behind the creation of this app: No matter who's the master of the dungeon, the real power & fun is in a roll of the dice.
Ex Tessera is meant to facilitate this fun by replacing a 5th edition paper character sheet. No more writing and constantly re-writing information.
Summary
The app is written in Kotlin and primarily uses a Model-View-ViewModel architecture. With the Android Databinding library, a lot of the interaction between View and ViewModel happens in the .xml file. I found this convenient as a developer wearing a designer's hat - I spent a lot of time in xml designing functional views that look nice and coherent.
More complex Views that display mulitple ViewModels implement an MVP-like architecture with a bit of MVI where each click on a ViewModel may signal its Intent with a BaseViewModel.Action. The presenter would then route that BaseViewModel/Action combo to the appropriate place, whether telling the View to display relevant user input, telling the Manager to perform some CRUD function, etc.
I've tried to comment each feature so that someone reading might more easily understand what I was trying to accomplish. Usually this comment is found in the feature package's View. I also encourage you to look at the base package to see a lot of classes/interfaces that are essential in most features - these are commented as well.
Related Skills
diffs
341.8kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
1.9kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
ui-ux-designer
Use this agent when you need to design, implement, or improve user interface components and user experience flows. Examples include: creating new pages or components, improving existing UI layouts, implementing responsive designs, optimizing user interactions, building forms or dashboards, analyzing existing UI through browser snapshots, or when you need to ensure UI components follow design system standards and shadcn/ui best practices.\n\n<example>\nContext: User needs to create a new dashboard page for team management.\nuser: "I need to create a team management dashboard where users can view team members, invite new members, and manage roles"\nassistant: "I'll use the ui-ux-designer agent to design and implement this dashboard with proper UX considerations, using shadcn/ui components and our design system tokens."\n</example>\n\n<example>\nContext: User wants to improve the user experience of an existing form.\nuser: "The signup form feels clunky and users are dropping off. Can you improve it?"\nassistant: "Let me use the ui-ux-designer agent to analyze the current form UX and implement improvements using our design system and shadcn/ui components."\n</example>\n\n<example>\nContext: User wants to evaluate and improve existing UI.\nuser: "Can you take a look at our pricing page and see how we can make it more appealing and user-friendly?"\nassistant: "I'll use the ui-ux-designer agent to take a snapshot of the current pricing page, analyze the UX against Notion-inspired design principles, and implement improvements using our design tokens."\n</example>
