Mentee Name | Shashank Kumar |
---|---|
Mentee Email | shashank.kumar.phe22@itbhu.ac.in |
Mentee GitHub | shashankiitbhu |
Completed Work
Deliverables
Testing App Repository: https://github.com/shashankiitbhu/web3japp
Setting up web3j-android library : Link to blog
New Android Branch : https://github.com/hyperledger-web3j/web3j/tree/web3j-android
What We Did
This project is divided into multiple phases, targeting specific challenges and delivering a Android compatible version of the web3j library. Below is a comprehensive breakdown of the completed work:
Library Analysis and Environment Testing
Analyzed behavior of the existing Java-based web3j library in an Android environment.
Tested the app in different target SDK levels and various Java versions to identify potential compatibility issues.
Solved significant issues:
Upgraded Java version from 8 to 17 for compatibility
Fixed packaging issues with conflicting files like
META-INF/DISCLAIMER
using Gradle configurations.
Android Library Conversion
Rearranged the directory structure and configurations for consistency with an Android library
Dependency Conflict Issues Resolved -Java-specific dependencies like Javadocs, Spotless, and Jacoco were addressed
Unsupported javax Imports Replaced with alternative ones -javapoet has been replaced with kotlinpoet.
Configured custom publishing settings for Android libraries, with proper Maven publishing
Testing App and Documentation
Built a testing app to verify the library’s performance in real-world scenarios.
Documented the setup process and created a guide to help developers easily integrate the library into their Android projects.
What I Learned
Improved my knowledge of blockchain ideas, especially about Smart Contracts.
Gathered a lot of hands-on experience with tools such as Ganache, smart contract wrappers, and blockchain integration on Android.
Faced a great number of technical problems that ranged from dependency conflicts to platform-specific issues, so learned how to address those issues with care.
Developed better debugging practices and techniques, often solving intricate bugs instantly.
Had 4 calls each week with mentors, where we talked about progress, looked for solutions to problems, and improved our methods. Those meetings gave very important advice and helped me learn much faster.
Learned to deal with issues in an organised way, breaking problems into smaller, easier tasks.
Gained deep knowledge of Android settings, how to publish libraries, and Gradle build processes. - Learned how to adjust Java libraries for Android.
Gained insights into how to contribute to open-source projects in terms of best practices for code structure, documentation, and collaboration.
I would like to thank my mentors for their guidance and support in this project. They provided me with their expertise and encouragement to overcome the most crucial challenges and ensure the success of the work.
A heartfelt thank you to the Linux Foundation Decentralised Trust for this amazing opportunity to contribute to an open-source project and develop skills as a developer. It has been really enriching and rewarding.