we finally launched our native android app

Our native Android App is ready. Six months in the making, this version leaves behind the limitations of a mobile WebView and embraces the power of a native engine that can truly deliver on the promises of real-time communication: gesture-based navigation, inline reply to notifications, high priority calls, hardware accelerated 1080p60 screen sharing, end-to-end encrypted DMs.
After six months of development, we have released our native Android application. The limitations of mobile web browsing are crippling for real-time communication platforms, killing background WebSocket connections when the phone goes to sleep or randomly abandoning background audio playback. We have designed a native Android engine to circumvent these unacceptable restrictions.
In brief, here is an overview of relevant technical developments to this release.
Native gesture handling and back stack management
Android gestures can cause lots of application state issues if not handled correctly. This is especially apparent when back gestures cause accidental exits from the application.
We have implemented a back priority stack system that responds to Android gestures in the following manner depending on the current application state:
-
Close active dialogs/lightboxes/settings cards first
-
Navigate back within a thread/post view modal
-
Open drawer navigation for channel/server selection when viewing a channel
We also have implemented bottom sheet dismissal tracking, which allows the user to dismiss bottom sheet content by swiping downwards with their finger. The swipe distance travels upwards with touch Y-position tracking to dismiss the modal entirely.
The main header area utilizes Android's system safe-area insets to ensure that the application's clock/time and back controls remain visible over hardware cutouts.
Push notifications, inline replies, and call handling
Background notifications are an essential part of any communication platform. We have implemented the following features:
Background incoming message notifications
Secure channel notifications can be received via low-latency push channels. Encrypted content requires additional decryption logic to be executed on the device before being displayed in a notification card.
Inline direct message replies
Android's direct reply feature allows users to reply to direct messages from the notification shade without launching the application or alerting the user.
High-priority call notifications
Incoming call notifications utilize high-priority intents with system ringtone audio to launch an in-call consent modal as a full-screen Android notification.
Hardware accelerated 1080p60 screen sharing
We have implemented hardware-accelerated screen sharing that can encode and transmit 1080p60 content with minimal battery drain.
-
We utilize hardware encoders to compress shared content directly on the GPU.
-
Our screen-sharing codebase uses Android's display capture and WebRTC media stack.
-
Our service uses a foreground service with a persistent status notification to prevent Android from killing the process during memory-intensive operations like mobile gaming.
Local contact caching, encryption, and hardware acceleration
We have implemented several quality-of-life features for the mobile application:
Contact list memory caching
Opening any contact list/share sheet view will cause all contacts to be cached in memory for subsequent use
- This dramatically decreases modal launch time for any contact-dependent operation
End-to-end encryption for direct messages
We have implemented Web Crypto API ECDH key exchange and AES-GCM streaming encryption for secure direct message content transfer.
Media content is decrypted and stored locally on the device for reduced bandwidth overhead.
Camera and biometric hardware acceleration
We have implemented native QR scanning for fast pairing, plus fingerprint and facial recognition scanner APIs for device-based account security.
Finally, the native Android application can be downloaded from our official download page.
Showcase video https://www.youtube.com/shorts/dVIv5q2n1z4