Skip to main content

ErikrafT Drop Android Application

The ErikrafT Drop Android application provides a native, fully-featured file sharing experience with deep integration into the Android operating system. Built as a native Android app, it offers enhanced performance, system integration, and a seamless user experience compared to the web application.

Application Overview

Core Features

  • Native Android Integration: Deep integration with Android share system
  • System Share Menu: Appears in Android share dialog across all apps
  • Background Operation: Works seamlessly while using other applications
  • WebRTC Support: Full peer-to-peer file transfer capabilities
  • Offline Pairing: Works with paired devices even when offline
  • Material Design: Modern Material Design 3 interface
  • Multi-language Support: Available in multiple languages via Crowdin

Technical Specifications

  • Package Name: com.erikraft.drop
  • Minimum SDK: Android 5.0 (API level 21)
  • Target SDK: Android 15 (API level 35)
  • Current Version: 9.0.4 (version code 13)
  • Build System: Gradle with Android Gradle Plugin
  • Architecture: Native Android with WebView components

Application Architecture

Project Structure

Build Configuration

Key Components

MainActivity

The main activity serves as the entry point and manages the WebView component:

WebView Integration

The app uses a WebView to display the ErikrafT Drop web interface with native enhancements:

Share Receiver

Handles incoming share intents from other Android applications:

Android-Specific Features

System Integration

Share Menu Integration

The Android app registers as a share target, appearing in the system share dialog:

File Association

The app can handle various file types through MIME type registration:
  • Documents: PDF, DOC, TXT, etc.
  • Images: JPG, PNG, GIF, WebP, etc.
  • Videos: MP4, AVI, MOV, etc.
  • Audio: MP3, WAV, OGG, etc.
  • Archives: ZIP, RAR, 7Z, etc.

Performance Optimizations

Memory Management

  • Efficient WebView: Optimized WebView configuration
  • Background Processing: Non-blocking file operations
  • Memory Leaks Prevention: Proper lifecycle management
  • Large File Handling: Streaming for large files

Battery Optimization

  • Background Limits: Respects Android battery optimization
  • Efficient Networking: Optimized WebSocket connections
  • Resource Cleanup: Proper resource management
  • Wake Locks: Minimal wake lock usage

Security Features

Permissions

Security Measures

  • HTTPS Only: Secure connections only
  • Certificate Pinning: SSL certificate validation
  • Input Validation: Proper input sanitization
  • Privacy Compliance: Follows Android privacy guidelines

Installation and Distribution

Official Distribution Channels

Google Play Store

Primary distribution channel with automatic updates:

F-Droid

Open-source distribution channel:

APKPure

Alternative APK distribution:

Direct GitHub Releases

Developer distribution channel:

Build Instructions

Prerequisites

  • Android Studio: Latest version recommended
  • Java Development Kit: JDK 11 or higher
  • Android SDK: API level 35
  • Gradle: Version 8.13.2 or higher

Build Process

Release Build

Development Workflow

Automated Build Pipeline

The project uses GitHub Actions for continuous integration:

CI/CD Features

  • Automated Testing: Unit and integration tests
  • Code Quality: Static analysis and linting
  • Build Verification: Multi-environment builds
  • Release Automation: Automatic Play Store publishing

Play Store Automation

F-Droid Automation

Translation Management

Translations are managed through Crowdin:

Supported Languages

  • English (en)
  • German (de)
  • French (fr)
  • Spanish (es)
  • Italian (it)
  • Portuguese (pt)
  • Russian (ru)
  • Chinese Simplified (zh-CN)
  • Japanese (ja)

Translation Process

  1. Source Strings: English strings in res/values/strings.xml
  2. Crowdin Integration: Automatic sync with Crowdin platform
  3. Community Translation: Community-contributed translations
  4. Automated Import: Translations automatically imported to repository

Comparison with Web App

Advantages of Android App

Performance

  • Native Performance: Better than WebView performance
  • Memory Efficiency: Optimized for mobile hardware
  • Background Operation: Works efficiently in background
  • Battery Optimization: Better battery management

Integration

  • System Share Menu: Deep Android integration
  • File Association: Handles all file types natively
  • Notification System: Native notification handling
  • Multi-window: Split-screen support

User Experience

  • Material Design: Consistent Android design language
  • Touch Optimization: Touch-optimized interface
  • Gesture Support: Android gesture navigation
  • Accessibility: Enhanced accessibility features

Limitations

  • Update Dependency: Requires manual updates (sideloading)
  • Platform Specific: Android-only functionality
  • Size: Larger app size due to native components
  • Permissions: Requires more system permissions

Troubleshooting

Common Issues

Installation Problems

  • Unknown Sources: Enable installation from unknown sources
  • Storage Space: Ensure sufficient storage available
  • Android Version: Verify minimum Android version (5.0+)
  • Architecture: Check device architecture compatibility

Connection Issues

  • Network Permissions: Verify network permissions granted
  • Firewall: Check firewall settings
  • VPN: Disable VPN if causing connection issues
  • Server Status: Verify ErikrafT Drop server status

Performance Issues

  • Memory: Close other apps to free memory
  • Storage: Clear app cache if storage full
  • Background: Check battery optimization settings
  • WebView: Clear WebView data if corrupted

Debug Information

Enable debug logging for troubleshooting:

Future Development

Planned Features

  • Background Service: Improved background operation
  • Notification Channels: Enhanced notification management
  • Dark Mode: System dark mode support
  • Biometric Authentication: Fingerprint/face unlock
  • Widget: Home screen widget for quick access

Technical Improvements

  • Kotlin Migration: Gradual migration to Kotlin
  • Modular Architecture: Feature modules for better maintainability
  • Performance: Continued performance optimizations
  • Security: Enhanced security features
The ErikrafT Drop Android application provides a robust, native file sharing solution that leverages the full capabilities of the Android platform while maintaining compatibility with the broader ErikrafT Drop ecosystem.