Git Product home page Git Product logo

moneroandroidwallet's Introduction

Monero Android Wallet (NDK & SDK java)

This App is using the NDK (native development kit) to port the native Monero C++/C code into it. The NDK is using a interface called JNI. This interface will sit between the Monero native code and the Java application. This project is public and available for anyone who wants to collaborate.

NDK native functions

To create a native function you will need to use the keyword native like this: public native int DaemonHeight()

The native function will also need to be linked in the JNI file. The JNI file is called native-lib.cpp located in the app/src/main/cpp There, you have to specify where the native function will be used. For example:

Java_com_example_root_monerotest_Services_SyncWalletService_InitWallet

( Project package )(Package) ( FileName ) (Method)

You can find native methods all around the proyect. Just make sure that you are loading the lib in the file that will be using it. For example:

static { System.loadLibrary("native-lib"); }

App's UI

At this moment, all the navigation is contain in a drawerLayout that holds a NavigationView (The menu). Every item of the menu is attached to its corresponding fragment. Only one (1) activity is being used. The toolbar changes custom views depending on the fragment that the user is currently located.

How to Contribute

A good way to help is to test, and report bugs. ( Please wait until the application is stable enough for testing first)

Patches are preferably to be sent via a GitHub pull request. If that can't be done, contact me either on IRC, reddit or directly on GitHub and something can be figured out

Patches should be self contained. A good rule of thumb is to have one patch per separate issue, feature, or logical change. Also, no other changes, such as random whitespace changes or reindentation. Following the code style of the particular chunk of code you're modifying is encourgaged. Proper squashing should be done (eg, if you're making a buggy patch, then a later patch to fix the bug, both patches should be merged).

Currently completed but might be missing more testing

  • Binaries for Armv7 (32bit), armV8 (64bit), and x86.
  • Generate a new wallet.
  • Load wallet from external storage.
  • Sync wallet to remote node.
  • Send transactions (little buggy, needs more testing).
  • Display all transactions from wallet into a ListView.
  • Ability to generate a QR image using the integrated address.
  • Ability to read a QR image and validate data. (Send Fragment)
  • Functionality to select a remote node in the settings fragment.

What is currently missing?

  • (Optional) Splash screen to give a better experience to user while loading libs.
  • Initial activity to either generate a new wallet or load one from file storage. note: For loading wallet from location I'd like to using some sort of file explorer to allow the user to chose the location. However, i'm up for ideas.
  • Wallet will automatically update itself whenever the phone is plugged and connect to WIFI.
if you have more ideas or features, please PM me.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.