Giter Club home page Giter Club logo

razaghimahdi / shopping-by-kmp Goto Github PK

View Code? Open in Web Editor NEW
173.0 3.0 27.0 55.09 MB

This is a cross-platform application that is built using Jetpack Compose Multiplatform, a declarative framework for sharing UIs across multiple platforms with Kotlin.

Home Page: https://github.com/razaghimahdi/Shopping-By-KMP

License: MIT License

Kotlin 99.84% Swift 0.12% Shell 0.04%
android clean-architecture compose compose-android compose-ios ios kmm kmp kotlin ktor

shopping-by-kmp's Introduction

Shopping-By-KMP (Compose Multiplatform application)

Welcome to the documentation for the Jetpack Compose Multiplatform Shopping Application! This is a cross-platform application that is built using Jetpack Compose Multiplatform, a declarative framework for sharing UIs across multiple platforms with Kotlin. The application allows users to browse, search, and purchase products from a shopping catalog on Android, iOS.

Wallpaper Wallpaper

1402-10-21.18.37.00.mp4

Give a Star! ⭐

If you like or are using this project to learn or start your solution, please give it a star. Thanks!

Features ✨

Feature Status
Login, Sign Up ✔️ Implemented
Home ✔️ Implemented
Product Detail and Comments ✔️ Implemented
Wishlist ✔️ Implemented
Cart ✔️ Implemented
Profile ✔️ Implemented
Search ✔️ Implemented
Category ✔️ Implemented
Edit Profile ✔️ Implemented
Manage Address ✔️ Implemented
Payment Method ✔️ Implemented
My Orders ✔️ Implemented
My Coupons ✔️ Implemented
Notifications ✔️ Implemented
Setting ✔️ Implemented

Next Features 🏄‍♂️

Obviously it would be more updates, What we are working on these days?

  • Notifications: Getting Notifications when any updates come from app for both Android & IOS

Future Plans:

  • Web platfrom: Soon we gonna have release for web

Tech Stack 📚

  • Kotlin Multiplatform
  • Kotlin Coroutines
  • Compose Multiplatform
  • Material3
  • Ktor
  • Datastore
  • Compose Navigation
  • Koin
  • Coil
  • Kotest
  • Fake Data

Development 💻

Firs, let me say the backend is also in progress. You can find the backend source code here.

We appreciate any feedback or suggestions that you may have to help us improve the project.

We plan to add more features, improve the code quality, and make the application more user-friendly.

Our goal is to create a high-quality, multiplatform shopping application that demonstrates the power and flexibility of Jetpack Compose.

Please stay tuned for updates and feel free to contribute to the project by submitting pull requests or opening issues. Together, we can create a great shopping application that meets the needs of users across multiple platforms.

Challenges Faced 👨‍💻

During the development of this project, i encountered several challenges that required creative solutions. Some of the key challenges I addressed include:

  • Native Functionality Challenges: Implementing native functionalities posed challenges in image selection, camera access permissions, status bar customization, and image upload via Ktor.
  • UI Testing: Developing comprehensive UI tests across multiple platforms presented challenges in ensuring consistent behavior and visual presentation.
  • Unit Testing: Writing unit tests for shared code and platform-specific implementations required careful consideration of differences in testing frameworks and environments.
  • User Session Management: Securely managing user sessions across platforms involved implementing robust authentication mechanisms while prioritizing privacy and security.
  • UI/UX Design: Crafting an intuitive and visually appealing UI/UX for diverse devices presented creative challenges, driving iterative design processes.

These challenges underscored the complexity of developing a cross-platform shopping application and pushed us to innovate and refine our solutions continually.

Architecture 🏢

The Jetpack Compose Multiplatform Shopping Application is built using the Clean Architecture and the MVI (Model-View-Intent) pattern.

Testing 🧪

Testing is a crucial aspect of software development to ensure the reliability and functionality of the application. In the Shopping-By-KMP project, we utilize various testing frameworks and tools to maintain the quality of our codebase.

Backend 🌐

This project involves building a robust admin panel for managing an e-commerce platform. It utilizes Laravel for the backend structure and Livewire for dynamic frontend interactions. The panel comes with a comprehensive API, ensuring scalability and flexibility.

Features

  • Admin Dashboard: Manage products, categories, orders, and customers seamlessly.
  • Laravel & Livewire: Leverage the power of Laravel's backend with Livewire for reactive UI.
  • Full API: Enables external integrations and interactions with the shopping platform.

Contributing

Contributions are welcome! If you have any feedback or suggestions, please don't hesitate to let us know. We appreciate your contributions and support. Also if you find a bug or would like to create a new feature, please submit a pull request.

License

This library is licensed under the MIT License. See LICENSE.txt

more ideas:

https://github.com/JetBrains/compose-multiplatform-ios-android-template

https://github.com/JetBrains/compose-multiplatform

Developed by Mahdi Razzaghi Ghaleh

shopping-by-kmp's People

Contributors

razaghimahdi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

shopping-by-kmp's Issues

while re-building the project getting the error

Task :shared:linkDebugFrameworkIosArm64
w: Cannot infer a bundle ID from packages of source files and exported dependencies, use the bundle name instead: shared. Please specify the bundle ID explicitly using the -Xbinary=bundleId= compiler flag.

Task :androidApp:packageDebug
Task :shared:packageDebugAndroidTest
Task :shared:linkDebugFrameworkIosX64
w: Cannot infer a bundle ID from packages of source files and exported dependencies, use the bundle name instead: shared. Please specify the bundle ID explicitly using the -Xbinary=bundleId= compiler flag.

Configuration changes ignore?

android:configChanges="orientation|screenSize|screenLayout|keyboardHidden|mnc|colorMode|density|fontScale|fontWeightAdjustment|keyboard|layoutDirection|locale|mcc|navigation|smallestScreenSize|touchscreen|uiMode"

Why this is added? If you remove this and try to rotate the device koin will cause a crash:

Caused by: org.koin.core.error.KoinAppAlreadyStartedException: Trying to run new Koin Application whereas Koin is already started. Use 'KoinContext()' instead of check for any 'startKoin' usage.

I don't think so ignoring configuration changes is a good idea.

Getting the error while running the project

In android iam getting the error while running the project below is the error

Can not extract resource from com.android.aaptcompiler.ParsedResource@aa7f82a.,Can not extract resource from com.android.aaptcompiler.ParsedResource@e986da6.

Execution failed for task ':androidApp:mergeDebugResources'.

A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable
Resource compilation failed (Failed to compile values resource file /Users/zaid/Downloads/Shopping-By-KMP-master/androidApp/build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml. Cause: java.lang.IllegalStateException: Can not extract resource from com.android.aaptcompiler.ParsedResource@aa7f82a.,Can not extract resource from com.android.aaptcompiler.ParsedResource@e986da6.). Check logs for more details.

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.