Rosarium
Rosary App in compose with good UX
Why
Ever wanted to pray the rosary in latin? It can be pretty tricky with all the mysteries and special days but don't worry, I'm here to help.
You can choose between 8 languages for now - english, german, slovenian, french, flemish, portuguese, italian and latin, with slight variations between them.
What
Rosarium is a mobile rosary to guide you through every prayer you need.
I put the focus on the UX as I feel it gets left behind in most rosary-apps I've used so far.
The transitions between decades is animated, you can hot-switch between 3 languages and progressing through the beads by tapping is visualized aswell.
The holy mysteries are date-aware and should show the correct one depending on day-of-week and season. If it doesn't that's a bug, please let me know.
| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sundays in Lent | Sundays in Advent |
| Glorious | Joyful | Sorrowful | Glorious | Luminous | Sorrowful | Joyful | Sorrowful | Joyful |
You can also set your favourite holy mystery manually if you prefer.
There are quite a few interpretations which prayers should be in the rosary so I decided to include more rather than less.
If you prefer not to pray the Fatima prayer (you should pray it) or the Hail Holy Queen you can just give it one extra tap, I might make a toggle to just skip them in the future.
(I)mprovised (E)xplosive (D)evice
I like the classic Minesweeper but I thought it could use a little extra so why not add a new dimension to spice things up.
Where to get it
Get it on the PlayStore
Or, much better:
Current state
What's coming
- I'll see if I can think up a less overwhelming solution for showing the numbers
- choice of different shapes (rhombic dodecahedron, pyramid, maybe some other)
How to build
It's a Godot project so if you want to play around with it just smack that bad boy in the Godot editor and have at it.
Mycelium Messenger
Very anonymous, end to end encrypted chat(sh)rooms
E2EE chatrooms? Are you retarded?
In Mycelium there is no user information of any kind.
It may be a bit silly to call something a chatroom, a public space, and then End-to-End encrypt it but it was my best guess on how to connect users without knowing the users exist.
Technically, anyone can join any room if they guess the UUID but without the keys they are just seeing emacs keybindings.
If you want to chat with someone you create a room and share the link including the secret keys needed for AES encryption, all packaged as a secret code.
Neither the Server nor the other users know who wrote a message but if you wish you may set a username which will be shown above your messages.
This, however, is completely optional as the main goal of the app is to keep everything as anonymous as possible.
All the server knows is what room-UUID a message belongs to, what number of message it is and the heavily encrypted content it doesn't know how to decode.
Your groups messages are saved locally for quick loading in an AES encrypted database made with SQLCipher and the key to that database is encrypted with a generated key from the Android Keystore system.
Dare I say, it's pretty safe?
Current State
What is happening
- โ Any form of error handling
- โ Show messages in RecyclerView instead of TextView
- โ Right-align your own messages
- โ Remember nickname per group
- โ Save messages locally (AES encrypted database, don't worry)
- โ Notifications while in-app
- โ Make message-text copy-able
- โ Avoid double-messages
- โ QR Code for sharing your secret code (to avoid third party)
- โ Image support
- โ Set room pictures
- โ Change server
- โ Notification Service
- โ Press images for full-screen view
- โ Download images
- โ Start on boot
- โ Less aggressive compression
- โ Only save the last 40 messages on the server, you can still have older ones locally
- โ Vastly improve serverside code
- โ Message dots for room-list
- โ Share images and text into app
- โ Animated splash-screen
- โ Make separate english and german options, not some weird mix
- โ Only load the last X messages when opening a room, scroll up for more
- โ GIF support
- โ Replies
- โ Delete messages locally
- โ Share secret code over NFC (pretty cool, huh?)
- โ Info-View to explain the basics
- โ Arbitrary Room Order
- โ Scaling for screens other than mine
- โ Show something other than the UUID in the room list, maybe the last message
- โ Markdown support (at least the basics)
- โ Light theme
- โ Document the code
- โ More mushroom puns
- โ Sell out to some shady ad company
What is not happening (for now)
- Support for bigger filetypes (I only have a 64GB SD Card in my raspberry pi)
- More complex profiles/unique usernames (That would kinda defeat the purpose)
How to build
I've made it with Android Studio so you'll probably want to use that for compiling as well.
The steps here would be Build โ Build Bundle(s)/APK(s) โ Build APK(s)
It uses gradle for the builds so look into that direction if you want to stay in the terminal.
How to host your own server
I'll add better support for self-hosted servers soon, at the moment you probably only want rooms from one host.
You can grab the serverside files here