Giter Club home page Giter Club logo

Comments (6)

mikepenz avatar mikepenz commented on September 26, 2024 1

As it's been a while I've went through the pain and upgrade all dependencies and gradle (including Kotlin 2)
While this does not yet enable multiplatform support, it should at least make it simpler to test.

Still need to find time at some point to completely redo the build set-up for this project 🙃

from android-iconics.

Nek-12 avatar Nek-12 commented on September 26, 2024 1

I took a look at the library code, and my findings, in summary, are:

  1. The core module is extremely android SDK-oriented. Core module does not contain much of an api. Instead, it defines the logic to create the platform SDK drawables that "are" icons.
  2. The compose module is a simple two-file wrapper around a drawable, exposed as a painter. This means that 80% of the code is delegated to the platform APIs.
  3. Iconics relies on obscure platform APIs for initialization and a global singleton to manage icon registries. While a valid solution for the XML world, compose offers LocalComposition APIs that operate under a different paradigm.

In order to port the library to compose multiplatform, a huge amount of breaking changes is required, with a re-implementation of the API and interfaces, untying the library from the platform code, changing the initialization logic, creating new modules and designing a new API layer that does not rely on any of the android.graphics APIs. In the process, a significant amount of existing functionality will be lost or would take time to re-implement for little to no benefit, given that the library has not been very actively developed and/or used lately.

Our decision was unfortunately to develop an in-house solution that is specifically tailored to CMP and our needs, as porting iconics would be a far greater ordeal than migrating our whole project to a new composable Icon function. According to my research, rendering icons as a font at the minimum number of functionality that we require (letting users choose their own icons) should not take a significant amount of code to implement. We may consider opensourcing our solution.

I am going to close this issue for now as judging by the conversation, without additional interest, no CMP support will be planned. Feel free to reopen as needed.

from android-iconics.

mikepenz avatar mikepenz commented on September 26, 2024

That is a great suggestion. I have not looked into the font rendering support of KMP recently. But I would be eager to add and expand support for it if possible.

from android-iconics.

mikepenz avatar mikepenz commented on September 26, 2024

Also happy to take PRs related to this

from android-iconics.

Nek-12 avatar Nek-12 commented on September 26, 2024

I can't promise a PR, but we're migrating to CMP right now and I may take some time to fiddle with iconics and see whether I am able to run it with CMP.

from android-iconics.

mikepenz avatar mikepenz commented on September 26, 2024

No worries. Eager to hear what you find

from android-iconics.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.