Open karntrehan opened 1 month ago
I have renamed stencil ui
repository to stencil-web
. Also, I have deleted redundant repositories except molecules-cli
.
I would like to wait until the new monorepo structure gets merged in dev
branch before deleting it.
@ankitmlesmagico will be picking up documentation restructuring in the next sprint.
cc: @ChakshuGautam
Criteria | React Native | Flutter | Jetpack Compose |
---|---|---|---|
Community Support | Large, active, many resources. | Growing, strong Google support. | Smaller, strong Kotlin and Google support. |
Performance | Overall good, however lags for complex graphics. Performance gets weaker if architecturally not defined well | High, near-native performance. Slower startup. | Improved over XML, deep Android integration. Faster startup because of AOT compilation |
Ease of Contribution | Easy for JavaScript/React devs, hot reload. Web developers can also contribute | Easy with good docs, hot reload. Dart knowledge required | Simplifies UI, may have higher learning curve. |
Code Reusability | High between iOS and Android. Can check if web NextJs code can be reused as well | High across iOS, Android, web, desktop. | More focus on Android with jetpack. iOS still under Beta |
UI Consistency | Varies, needs extra effort for uniformity. | Consistent across platforms. | Consistent within Android. Not much about iOS checked |
Ecosystem and Libraries | Extensive JavaScript Closed/ Open source libraries, some native modules. | Good set of libraries, still growing. Major contribution by Google itself | Growing, benefits from Android/Kotlin ecosystem. |
Learning Curve | Moderate, easier for JavaScript devs. | Moderate, good docs and simple model. | Steeper for new to Kotlin/declarative UI. iOS not known yet |
App Size | Larger, especially with many libraries. | Larger, includes Dart runtime/Skia engine. Results AOT | Comparable to traditional Android apps. |
Development Speed | Fast, hot reloading, reusable components. | Rapid, hot reload, pre-designed widgets. | Fast with pre-knowledge of kotlin |
Integration with Native Code | Allows, but can add complexity. | Supports platform channels, need bridging. | Seamless with existing Android code/libraries. |
Stencil Mobile
Stencil Mobile is an initiative to create a comprehensive design library for mobile that encapsulates various components, referred to as "molecules". Each molecule is a small, self-contained component that integrates multiple mobile features. When combined, these molecules can be used to build fully functional features, referred to as "pages". The library will rely on native mobile widgets wrapped in Material3 components, and it will be packaged as a mobile SDK, making it easy to integrate into any existing or new project.
Stencil Mobile draws inspiration from the existing web version of Stencil, which includes a front-end design library (Stencil-UI) and a back-end service (Stencil). The complete documentation for which is mentioned here.
Repositories
Stencil Mobile will be divided into two main repositories:
Next Steps
We will set up the base of Stencil Mobile internally before the community can contribute functionality/molecules to it.
By following these steps, Stencil Mobile aims to provide a robust, reusable, and scalable set of design components that streamline the development process and enhance the consistency and quality of mobile applications.