Port21 is a modern FTP client application built with Flutter for Android. It supports standard FTP as well as secure FTPS connections.
- Protocol Support:
- FTP: Standard File Transfer Protocol.
- FTPS: FTP over TLS (Implicit/Explicit) for secure transfers.
- File Management:
- Browse files and directories.
- Upload files from local storage.
- Download files to the device (Downloads folder).
- Delete files remotely.
- Responsive UI: Designed to work on phones and tablets.
- Flutter SDK
- Android SDK
- Java 21 (JDK 21) or compatible LTS version.
- Clone the repository.
- Install dependencies:
flutter pub get
- Run the app:
flutter run
If you encounter warnings like WARNING: A restricted method in java.lang.System has been called or build errors related to Java version:
- Java Version: Ensure you are using Java 21 (JDK 21). Java 25 is currently too new for some Gradle components.
- Fix: Set
JAVA_HOMEto your Java 21 installation before running Gradle:export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 ./gradlew run
- Upload Progress: Real-time progress bar and percentage during file uploads.
- Speed Indicator: Shows current upload speed (e.g., MB/s).
- Smart Permissions: Storage permissions are requested only when needed (on download), not at startup.
- Quick Connect: Saved profiles connect directly with one tap. Use the Edit icon to modify details.
- Connect: Launch the app and enter your FTP server details (Host, Port, Username, Password).
- Secure Mode: Toggle "Use FTPS (Secure)" for TLS connections.
- Browse: Tap folders to navigate. Use the
..item to go up a directory. - Actions:
- Upload: Tap the floating action button (+).
- Context Menu: Tap the "more" (three dots) icon on a file to Download or Delete it.
