I am applying for a $5k Developer Grant to build Java SDK for Andorid and Java applications.
At present, ICP has very low presence in mobile application. That’s mainly due to lack of infrastructure. We will solve this problem by building a secure open source Java SDK that will enable Android and other Java developer’s build their application on top of ICP.
I have woking on this domain for more than 7 years and has extensive knowledge in building and spreding developer tools for Andorid and Java developers.
I belive with this SDK we can have 100+ Android app’s built on ICP and can bring 10k+ user’s that currently access internet through Mobile. Our SDK will be optimised primarily for Android but can be used used in other Java Applications as well.
@Severin The library you shared is primarily designed for backend side Java Applications. Developer created a library to easy the Java backend ICP integration and then simply created an OkHttp wrapper to make it usable for Android as well but problem is many of the libraries used here are not supported/ works well in Android application.
Some of dependencies that are Not Supported/Works well in Andorid:
Jackson Libraries (com.fasterxml.jackson.*): While Jackson works on Android, it can be overkill for simpler applications and could contribute to larger application size and slower performance due to its comprehensive feature set.
Apache HttpClient5 : Apache HTTP Client was removed from the Android SDK due to multiple issues.
Other apache libs might work with android but it will make application very bulky.
icj4-candid: This has multiple dependencies that can’t be use in Android.
Jakarta XML Binding API (jakarta.xml.bind:jakarta.xml.bind-api): This library is part of Java EE and is not directly supported in Android, which uses a different XML processing approach.
SLF4J Simple (org.slf4j:slf4j-simple): SLF4J on Android can lead to issues because Android uses its own logging system (Logcat).
Mock Server Libraries (org.mock-server:mockserver-netty, org.mock-server:mockserver-junit-jupiter): These libraries are typically used for server mocks in Java applications and are not designed for direct use in Android
Currently even if we somehow able to run this package in Android, it will make overall Android app too bulky to use. And hence it will not be preffered by most of the developers.
What we need is a Lite version, that can be used on devices with low computation power.
Thank you for the advisement. Community reviewers are taking more time to review. Why not integrate with the existing Java CDK instead of building a new CDK?
I have discussed this approach with the Roman, and we have decided to start with this approach only for ic4j-candid. I will start with making changes in existing module and try to build a lighter version for both the libraries i.e. ic4j-candid and ic4j-agent. However we should be aware that there is high risk of getting blocked.