Dears, I want develop a wallet in Android Native for Decred and I will invite everyone at forum to contribute. Is good idea? I would like just start with GUI and post in User Projects. Please, tell me if is good or not. Any comments really welcome! Thanks
We're always excited and very supportive of others building software to support the Decred eco-system! Mostly the things that hold back wallet on a mobile device is the need of having the full chain locally-accessible. Without SPV (which is a mid-term goal of ours) it's not too feasible to run fully synced dcrd node on a phone. I believe it could probably be done if built and deployed correctly, but no clue on the performance that it would give you. We've recently done some benchmarking on a rpi2 arm. https://github.com/decred/dcrwallet/issues/519 So that should give you some idea about currently performance on similarly powered devices. With all that said, we are currently moving forward quickly with Decrediton, which uses electron. https://github.com/decred/decrediton This should allow us to deploy onto iOS and Android when the need should arise.
I think that even before the performance issues, not all of go is available on mobile platforms. The database parts I particularly expect might not work. There is another option though before SPV. Copay does support mobile builds. https://github.com/decred/copay Fixing up the mobile copay might be the fastest way to get a working Android/iOS wallet.
And just to expand on jcv's comment a bit, we would also be happy to see other wallet software made available even if it is not based on our Go code. Forking an existing bitcoin wallet and adding Decred support could be a good choice, and the end result user experience could even be quite a bit better if it is using that platform's native libraries.
Hi Dears! Thanks for all comments! I will clone these projects to study and the blockchain mobile wallet to learn and understand this world. I never code for any crypto project before... I need learn many concepts before to start. Thanks!
Great! Feel free to ask any questions about Decred that you need to get going. Lots of good resources here for you.
In 2013-2014, I spent quite a bit of time and money designing and developing an Android phone/tablet version of Electrum, developed with a cross-platform GUI framework called Kivy (Python on Android). Kivy ultimately had lackluster performance and a non-native feel, which informs my current skepticism of cross-platform GUIs on mobile. However, there's still good arguments that can be made for going with a cross-platform approach to mobile. These arguments are summed up rather nicely in a 2016 Dartcon keynote by the team at Flutter.io. Flutter is a new cross-platform mobile dev framework created at Google for internal usage. Even given my own immense skepticism of cross-platform mobile GUIs, it's still highly, highly alluring: What is still an open question for Decred is how do you want to do the private key management cross-platform. With an Electron mobile wallet, I assume there would be incentive to build up a JS wallet codebase to handle this aspect. Gomobile would be great to use, but it seems like it's not a big focus for the Go team. I've seen the go-ethereum project edging towards using gomobile for geth on android, and I think it would be great to reuse dcrwallet's code. However, if gomobile doesn't fly and the dcr* libs can't be reused, then you're basically talking about maintaining an entirely separate codebase, which deserves its own discussion.