Project Title

Hyperledger Web3j: Enhancing Android Support with Updated web3j-android Integration

Status

IN PROGRESS

Primary Focus

CODING DOCUMENTATION  

Description 

The Hyperledger Web3j-android library is pivotal for developers integrating Android applications with Ethereum blockchain, leveraging the robust capabilities of Hyperledger web3j in a mobile context. Despite its critical role, the current state of web3j-android, last updated to version 4.8.8, faces challenges in coherence, functionality, and modern Android development practices. This project proposes a comprehensive update and restructuring of the web3j-android library to align with the latest Android development standards and Ethereum blockchain technologies.

Learning Objectives

  • To establish a unified and coherent versioning and release strategy for web3j-android that aligns with web3j core releases, ensuring seamless functionality across platforms.
  • To enhance compatibility by updating the library to support the latest Android SDK versions, ensuring it meets modern app development requirements.
  • To refactor existing codebase for improving support and compatibility in Android context
  • To introduce comprehensive testing and documentation, providing a solid foundation for developers to contribute and leverage the library effectively.

Expected Outcome and Deliverables

Scope

  • Evaluation and Planning: Conduct a review of the current web3j-android architecture, dependencies, and Android development guidelines to draft a detailed plan.
  • Versioning Strategy Revision: Analyze the current state of versioning and branch management to propose and implement a streamlined process.
  • Android Compatibility: Adjust the minSDKVersion and targetSDKVersion to widen the library's applicability, focusing on compatibility with recent Android versions without sacrificing support for older devices.
  • Java Compatibility: Address issues arising from sourceCompatibility and targetCompatibility with Java versions supported by Android, ensuring the library utilizes Android-compatible Java APIs.
  • Dependency Management: Review and update gradle.properties to ensure all dependencies are compatible with Android development standards, reducing conflicts and build issues.
  • Testing and Documentation: Develop a robust suite of tests and comprehensive documentation to facilitate easy adoption and contribution by the community.

The successful completion of this project will result in a revitalised web3j-android library that is well-documented, easy to use, and fully supports modern Android development practices. It will serve as a crucial tool for developers building decentralised applications on Android devices, fostering innovation and growth in the blockchain ecosystem.

Relation to Hyperledger and Impact on the community

Web3j has recently become the newest member of the Hyperledger family, marking a significant step towards bridging the Ethereum ecosystem with enterprise blockchain needs. You can learn more about this integration in the official announcement on the Hyperledger blog: Introducing Hyperledger Web3j: The Ethereum Integration Library for Enterprises. This inclusion is poised to open up avenues for developers to familiarise themselves with web3j, encouraging contributions and enhancements to the project.

Recommended Skills

  1. Strong Understanding of Android Development: Knowledge of Android SDK, Android Studio, and the Android app development lifecycle.
  2. Very good understanding of Java and Kotlin: Since Android development can involve both languages, familiarity with Java and Kotlin is essential, especially considering the existing web3j-android library is in Java, and new developments in Android often leverage Kotlin.
  3. Experience with Ethereum and Smart Contracts: Understanding of Ethereum blockchain, smart contracts, and how they interact with Android applications using web3j.
  4. Familiarity with web3j Library: A grasp of the existing web3j library functionalities, structures, and its application in Android environments.
  5. Knowledge of Blockchain Principles: Basics of blockchain technology, including consensus algorithms, transaction processing, and blockchain data structures.
  6. Problem-Solving Skills: Ability to diagnose and troubleshoot complex issues that may arise during development or integration of blockchain technologies in Android applications.
  7. Version Control with Git: Experience with Git for version control to manage code changes and collaborate with other developers.
  8. Communication and Collaboration Skills: Ability to work effectively in a team, articulate ideas clearly, and collaborate on complex projects.

Mentor(s) Names and Contact Info

Name: Nischal Sharma

Email: nischal@web3labs.com

Company affiliation: Web3 Labs

LFXID: Nischal Sharma


Name: George Tebrean

Email: george@web3labs.com

Company affiliation: Web3 Labs

LFXID: George Ţebrean

Additional Information

Hyperledger Web3j Github - https://github.com/web3j/web3j