---
title: "#composable-architecture articles | Hashnode"
description: "Explore 22 articles tagged #composable-architecture on Hashnode. Tutorials, guides, and how-tos from the community."
url: "https://hashnode.com/tag/composable-architecture"
---

Tag

# #composable-architecture

22 posts · 1 followers

[Sarika Lal](https://hashnode.com/@thesarikalal) · [Aug 15](https://hashnode.com/posts/the-architecture-behind-pay-only-for-what-you-need-saas/6a808de1e19cc88696b6138b)

### [The Architecture Behind “Pay Only for What You Need” SaaS](https://sarikalal.hashnode.dev/the-architecture-behind-pay-only-for-what-you-need-saas?utm_source=hashnode&utm_medium=feed)

Exploring the tug of war between customer choice, product complexity, and sustainable SaaS economics.

10 min read · [sarikalal.hashnode.dev](https://sarikalal.hashnode.dev/the-architecture-behind-pay-only-for-what-you-need-saas?utm_source=hashnode&utm_medium=feed)

[黃小黃](https://hashnode.com/@supra126) · [Feb 6](https://hashnode.com/posts/erp-composable-architecture-cost-analysis/698585541e6e39fbd492c5f9)

### [ERP 之後：如何用組合式架構降低 60% 的系統成本](https://tw.suprahuang.cc/erp-composable-architecture-cost-analysis?utm_source=hashnode&utm_medium=feed)

傳統 ERP 太貴又不敢換？組合式架構讓你用更低成本獲得更高彈性

4 min read · [tw.suprahuang.cc](https://tw.suprahuang.cc/erp-composable-architecture-cost-analysis?utm_source=hashnode&utm_medium=feed)

[Vue Academy](https://hashnode.com/@VueAcademy) · [Feb 1](https://hashnode.com/posts/scaling-the-future-why-vue-academy-is-moving-to-typescript-and-enterprise-grade-architecture/698906acae91a6ce9ba02acc)

### [Scaling the Future: Why Vue Academy is Moving to TypeScript and Enterprise-Grade Architecture](https://blog.vue.ac/scaling-the-future-why-vue-academy-is-moving-to-typescript-and-enterprise-grade-architecture?utm_source=hashnode&utm_medium=feed)

In the rapidly evolving world of frontend development, "good enough" is no longer the standard. As applications grow in complexity—handling massive datasets, real-time updates, and large-scale team collaborations—the tools we use must evolve too. Tha...

2 min read · [blog.vue.ac](https://blog.vue.ac/scaling-the-future-why-vue-academy-is-moving-to-typescript-and-enterprise-grade-architecture?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 12, 2025](https://hashnode.com/posts/chapter-31-imagesearchscreen-composable-testing-final-code/6914fe70e1ffda5f6ea6d8d8)

### [Chapter 31 : ImageSearchScreen Composable Testing (Final Code)](https://androidavatar.hashnode.dev/chapter-31-imagesearchscreen-composable-testing-final-code?utm_source=hashnode&utm_medium=feed)

package androidavatar.learning.artlearnersapp.presentation.ui import androidx.compose.ui.test.\* import androidx.compose.ui.test.junit4.createComposeRule import org.junit.Rule import org.junit.Test class ImageSearchScreenTest { @get:Rule va...

3 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-31-imagesearchscreen-composable-testing-final-code?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 12, 2025](https://hashnode.com/posts/chapter-23-coding-the-navigation-graph/69145f241177e99b9c099b7c)

### [Chapter 23 - Coding the Navigation Graph](https://androidavatar.hashnode.dev/chapter-23-coding-the-navigation-graph?utm_source=hashnode&utm_medium=feed)

/\*\* \* ## AppNavGraph \* \* This composable function defines the \*\*navigation graph\*\* for the entire app. \* \* ### Responsibilities: \* - Sets up navigation destinations (screens) for the app. \* - Manages a \*\*shared \`ArtViewModel\`\*\* across multiple...

5 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-23-coding-the-navigation-graph?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 12, 2025](https://hashnode.com/posts/chapter-25-coding-the-composable-artlistscreen-with-the-left-swipe-functionality/69147877004f98dce9d6c28e)

### [Chapter 25 - Coding the Composable ArtListScreen with the Left Swipe Functionality](https://androidavatar.hashnode.dev/chapter-25-coding-the-composable-artlistscreen-with-the-left-swipe-functionality?utm_source=hashnode&utm_medium=feed)

@OptIn(ExperimentalMaterialApi::class) @Composable fun ArtListScreen( viewModel: ArtViewModel = hiltViewModel(), isLoading: Boolean = false, onFabClick: () -> Unit = {}, onDeleteClick: (Art) -> Unit = {}, errorMessage: String? = n...

4 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-25-coding-the-composable-artlistscreen-with-the-left-swipe-functionality?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 12, 2025](https://hashnode.com/posts/chapter-24-coding-the-composable-addartscreen/6914739b2b4c47ea99f08f53)

### [Chapter 24 - Coding the Composable AddArtScreen](https://androidavatar.hashnode.dev/chapter-24-coding-the-composable-addartscreen?utm_source=hashnode&utm_medium=feed)

@Composable fun AddArtScreen( imageUrl: String?, // Displayed image onSaveClick: (String, String, String,String) -> Unit, // Emits form data upward modifier: Modifier = Modifier, onNavigateToImageSearch:() -> Unit, ...

3 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-24-coding-the-composable-addartscreen?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 2, 2025](https://hashnode.com/posts/chapter-18-coding-the-composable-ui-for-the-searchimageusecase/69079918dd48053d17eb820b)

### [Chapter 18 - Coding the Composable UI for the SearchImageUseCase](https://androidavatar.hashnode.dev/chapter-18-coding-the-composable-ui-for-the-searchimageusecase?utm_source=hashnode&utm_medium=feed)

Look at the LazyVerticalGrid in the snippet below which holds the images received from viewmodel. @Composable fun ImageSearchScreen( isLoading: Boolean, images: List<String>, onSearch: (String) -> Unit, onImageClick: (String) -> Unit ...

2 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-18-coding-the-composable-ui-for-the-searchimageusecase?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 1, 2025](https://hashnode.com/posts/chapter-13-testing-the-composable-ui-artlistscreen/69064f4121447cfbd80f8ad7)

### [Chapter 13 - Testing the Composable UI ArtListScreen](https://androidavatar.hashnode.dev/chapter-13-testing-the-composable-ui-artlistscreen?utm_source=hashnode&utm_medium=feed)

@RunWith(AndroidJUnit4::class) class ArtListScreenTest { @get:Rule val composableRule = createComposeRule() //fake repository private val fakeRepo = object : ArtRepositoryInterface { override fun getArt(): Flow<List<Art>> = ...

3 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-13-testing-the-composable-ui-artlistscreen?utm_source=hashnode&utm_medium=feed)

[Ganesh Rama Hegde](https://hashnode.com/@hegde10122) · [Nov 1, 2025](https://hashnode.com/posts/chapter-12-developing-the-composable-ui-artlistscreen/690644d8211e87764dbabc58)

### [Chapter 12 - Developing the Composable UI ArtListScreen](https://androidavatar.hashnode.dev/chapter-12-developing-the-composable-ui-artlistscreen?utm_source=hashnode&utm_medium=feed)

Let us now code the composable for the ArtListScreen and complete the flow. package androidavatar.learning.artlearnersapp.presentation.artlist import androidavatar.learning.artlearnersapp.domain.model.Art import androidx.compose.foundation.layout.Bo...

3 min read · [androidavatar.hashnode.dev](https://androidavatar.hashnode.dev/chapter-12-developing-the-composable-ui-artlistscreen?utm_source=hashnode&utm_medium=feed)
