Android SDK for Aeternity

Please is there already an Android sdk for Aeternity or is there anyone working on this project or anyone who will love to work on the project

Currently there is no dedicated Android SDK. On the other hand a community based Java SDK is being developed - you can check it out here - in principle it can be used inside an android app but keep in mind that currently some work would be required to get this working inside android(for instance bundling a version of libsodium for ARM and adjusting the keystore).

1 Like

as @gorbak25 already mentioned you can try to use our java sdk. if you face any issues regarding android let us know about it.

I saw other crypto sdks that were/are distinguishing dependencies regarding bouncycastle explicitely for android because (probably old) versions of android had old bouncycastle packages integrated which leads to dependency-conflicts. those sdks make use of spongycastle (copy of bouncycastle with other package-names) to solve that issue.

  • I hope that this isn’t needed to make it work on new android versions
  • if so we need to provide another SDK version specifically for android

I have gone through the java sdk docs and I don’t really see how it solves my problem, what I need is for people to make smart contract payments in my Android application using a3, Please is there a straight forward way to make something like this presently. If there is, then you can point me in the right direction and those who understand it very well can also try making a tutorial video on it as that helps better.
Thanks a lot, am really grateful and I appreciate your replies

1 Like

we are currently working on a refactoring and providing easier ways to handle smart contract and general transaction interaction. the docs will be updated soon after. probably it is best for you to wait until we release the new version.

also besides the bouncycastle/spongycastle topic there might be trouble with libsodium. but we need to check that first.

maybe you can setup an android showcase where we can help and contribute if needed.

I will come back to you when we have released the new version. we will also update our aepps-sdk-showcase and our gitbook-documentation after releasing the new version.

2 Likes

OK, thanks a lot, I’ll be expecting the update
Am really grateful for your reply.

And please i wanted to add that I am majorly Android Developer and I don’t know much of what you guys wrote about spongyCastle, bouncycastle or libsodium but am willing to learn and I’ll be more grateful if you can send write-ups, books or tutorials that I can watch to better understand this concepts. I am also willing to help in building the Android sdk if it’s possible.

Am very familiar with writing Sophia for smart contracts, using testnet and base aepps, I am currently learning to use Aecli

Thank you

Reagrding SpongyCastle and BouncyCastle

  • BouncyCastle is a crypto-library written in Java which we use to create KeyPairs
  • Android was shipped with an integrated and modified BouncyCastle
    • I don’t know whether this is still the case
  • to avoid classpath-conflicts when including a probably newer BouncyCastle version within an Android app some guy(s) created SpongyCastle
    • SpongyCastle is a 1:1 copy of BouncyCastle where the packages of the classes are renamed

I haven’t looked in detail into this topic so I can’t tell more about it.

Encryption/Decryption of wallet-files

To create the keystore wallet-files we make use of following libraries:

We are using a tuweni functionality which requires libsodium. I don’t know whether this will work out of the box with Android. We need to check that.

1 Like

I played around a bit and it seems like it is possible to use the SDK within android applications.

we provided a showcase here:

the issue for technical discussions can be found here:

3 Likes

Great work from the kryptokrauts team for aepp-sdk-java, and nice job @marco.chain , I went through the Android show case you made and it was really nice. Thanks a lot but I do not think the Documentation for the aepp-java-sdk at Overview & Structure - aepp-sdk-java is complete, as it does not cover a lot of things, it only talks about the AeternityService class and uses BaseKeyPair and the likes in the code but it does not explain any other class. It will be helpful if the classes are explained properly, the interfaces they implement are also explained properly and also the various methods in this classes and what they do.
I also checked out the aes-name-claimer example that was made, I’ll suggest that it should be commented just as the Android showcase @marco.chain did was commented.
Nice work @mitch_lbw, @marco.chain and everyone who assisted in making aepp-sdk-java
Thank you

thanks for the kind words! we are aware that the current documentation needs to be improved/extended but in the past weeks/months we were busy with developing new features. especially the contraect-maven-plugin.

I also want to add more details to the aens-name-claimer README and add comments in the sourcecode in the near future.

apart of that you can always reach out to us here in the forum or on our discord chat

1 Like