Compose Sushi 🍣
Sushi Design System for Compose Multiplatform - A comprehensive design system built for Android,
iOS, Desktop and Web platforms.
🏗️ Project Structure
sushi/sushi-core - Core classes used by the Sushi
sushi/sushi-compose - Compose implementation of the Sushi design system
app/ - Sample Android/iOS application demonstrating the components
website/ - WASM/JS web application for the documentation
📋 Prerequisites
- Java 17 or higher
- Android Studio (for Android development)
- Xcode 15+ (for iOS development)
- Node.js (for web development)
🔧 Building the Project
Build Sushi Libraries
./gradlew :sushi-compose:assemble
./gradlew :sushi-core:publishToMavenLocal :sushi-compose:publishToMavenLocal
📱 Running Sample Applications
Android Sample App
./gradlew :app:installDebug
./gradlew :app:assembleDebug
Or open the project in Android Studio and run the app configuration.
iOS Sample App
Prerequisites
- macOS with Xcode 15+
- iOS Simulator or physical iOS device
Steps
-
Generate iOS framework:
./gradlew :app:embedAndSignAppleFrameworkForXcode
-
Run from Android Studio:
open iosApp/iosApp.xcodeproj
- Select your target device/simulator
- Press
Cmd + R or click the Run button
Alternative: Command Line
./gradlew :app:iosX64MainKlibrary
./gradlew :app:iosArm64MainKlibrary
🌐 Running WASM Website
Development Server
./gradlew :website:wasmJsBrowserDevelopmentRun
./gradlew :website:jsBrowserDevelopmentRun
The website will be available at http://localhost:8080
Production Build
./gradlew :website:wasmJsBrowserDistribution
./gradlew :website:jsBrowserDistribution
Built files will be available in:
- WASM:
website/build/dist/wasmJs/productionExecutable/
- JS:
website/build/dist/js/productionExecutable/
Desktop Application (Bonus)
./gradlew :website:run
./gradlew :website:runHot
./gradlew :website:runDistributable
./gradlew :website:createDistributable
🧪 Testing
./gradlew test
./gradlew :sushi-core:test
./gradlew :sushi-compose:test
./gradlew :app:testDebugUnitTest
🔄 Development Workflow
Local Development
- Make changes to sushi libraries
- Publish locally:
./localPublish.sh
- Test in sample apps by running Android/iOS apps or website
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test on all platforms
- Submit a pull request
📄 License
© 2025 Eternal Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http:
Unless applicable law agreed to writing, software
distributed under the License distributed an BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express implied.
See the License the specific language governing permissions
limitations under the License.