Skip to content

ganeshrvel/openmtp

Repository files navigation

OpenMTP | Android File Transfer for macOS

Introduction

Advanced Android File Transfer Application for macOS.

Transferring files between macOS and Android or any other MTP devices has always been a nightmare. There are a few File Transfer MTP apps which are available online but most of them are either too expensive or come with bad UI/UX. The official "Android File Transfer" app for macOS from Google comes with bugs, innumerable limitations, some of which include - not being able to transfer files larger than 4GB, frequent disconnections, unable to rename the folders or files on the android/MTP devices. Most of the other apps available online uses either WiFi or ADB protocol to transfer the files, which is an extremely time-consuming process.

Countless searches to find an app to solve these problems and failing to find one made me restless. So, I took the leap and decided to create an app for us that could help us have a smooth and hassle-free file transfer process from macOS to Android/MTP devices. Created with the objective of giving back to the community, we can all use this app for free in this lifetime.

Features

  • Plug and Play. No hassles, easy and instant connection.
  • Connect via USB cable - Highest data transfer rates.
  • Transfer multiple files which are larger than 4GB in one go.
  • Select between Internal Memory or SD Card.
  • Split pane views for both Local Computer and MTP device.
  • Drag 'n Drop, Grid/List views and the other advanced File Manager features are available.
  • Safe, Transparent and Open-Source.
  • We don't collect any personally identifiable information.
  • It's FREE and shall ALWAYS remain FREE!!

Download App

Download the Latest Version

Find the latest dmg file from GitHub Releases

Screengrabs

OpenMTP File Explorer

OpenMTP File Transfer

Building from Source

Requirements: Node.js v10, Git and Yarn package manager

Clone

$ git clone --depth 1 --single-branch --branch master https://github.com/ganeshrvel/openmtp.git

$ cd openmtp
$ yarn

Run

A fresh clone might throw undefined state error. Run the following commands once to fix the issue.

# For Mac and Linux
$ UPGRADE_EXTENSIONS=1 npm run dev

# For Windows
$ set UPGRADE_EXTENSIONS=1 && npm run dev
# Development
$ yarn dev

# Pre-production
$ yarn start

Package

Setup the code signing to build, package and publish the app.

Instructions: https://www.electron.build/code-signing

$ export GH_TOKEN="<github token>"
# For local platform
$ yarn package

# For multiple platforms
$ yarn package-all

Technical Features

  • Built using Electron v4, React v16.4, Redux v4, Webpack v4, Babel v7 and Material UI v3.8
  • Hot module Reload (HMR) for instant feedback.
  • Highly modular.
  • Inbuilt error logging and profile/settings management.
  • Loadables, Dynamic Reducer Injection, Selectors for efficient Code. splitting and performance/startup optimisation.
  • Industry standard State management.
  • JSS, SASS/SCSS styling.
  • Port assigned: 4642

Configurations

  • config/env/env.dev.js and config/env/env.prod.js contain the PORT number of the app.
  • config/dev-app-update.yml file holds the GitHub repo variables required by electron-updater.
  • config/google-analytics-key.js file contains the Google Analytics Tracking ID.
  • package.json build.publish object holds the values for publishing the packaged application.
  • app/constants folder contains all the constants required by the app.

Accolades and Credits

Debugging

# Debugging Guide

electron-react-boilerplate/electron-react-boilerplate#400

# Dispatching redux actions from the main process

electron-react-boilerplate/electron-react-boilerplate#118

electron-react-boilerplate/electron-react-boilerplate#108

# VM112:2 Uncaught TypeError: Cannot read property 'state' of undefined error

# For Mac and Linux
$ UPGRADE_EXTENSIONS=1 npm run dev

# For Windows
$ set UPGRADE_EXTENSIONS=1 && npm run dev

Contribute

  • Fork the repo and create your branch from master.
  • Ensure that the changes pass linting.
  • Update the documentation if needed.
  • Make sure your code lints.
  • Issue a pull request!

When you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.

Buy me a coffee

Help me keep the app FREE and open for all. Paypal me: paypal.me/ganeshrvel

Contacts

Please feel free to contact me at ganeshrvel@outlook.com

License

OpenMTP | Android File Transfer for macOS is released under MIT License.

Copyright © 2018 - 2019 Ganesh Rathinavel