Build an eCommerce App with Clean Architecture in Android | Jetpack Compose, Ktor, Koin | Part 1

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2024

ความคิดเห็น • 68

  • @adityadeshbhartar7172
    @adityadeshbhartar7172 หลายเดือนก่อน +2

    First man making a project with Jetpack compose. Thanks a lot sir 🙌. Waiting for an awesome project.

    • @CodeWithFK
      @CodeWithFK  21 วันที่ผ่านมา

      Hope you enjoy it!

  • @mishaq-j5q
    @mishaq-j5q 2 หลายเดือนก่อน +6

    Sir using jetpack compose with advance features

  • @SatyamSingh-kk5uf
    @SatyamSingh-kk5uf หลายเดือนก่อน

    Thank you sooo much sor, have been waiting for hood project to learn deeply jetpack compose

    • @CodeWithFK
      @CodeWithFK  21 วันที่ผ่านมา

      Glad You liked it.

  • @makindeisrael9635
    @makindeisrael9635 2 หลายเดือนก่อน +1

    Great job, weldone sir....patiently anticipating for the other parts. Also, please consider uploading the other parts of the expense app, I mean the complete video on the project, I have been waiting for it for the past months.
    Thanks

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      Hello, which part of the expense tracker app is missing?

    • @makindeisrael9635
      @makindeisrael9635 2 หลายเดือนก่อน

      @@CodeWithFK
      Part 4.....It ended in part 3, I was thinking there will be part 4, according to the number of pages on the figma file.

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      @@makindeisrael9635 th-cam.com/video/xolI_2svC6w/w-d-xo.html here is the part 4

    • @makindeisrael9635
      @makindeisrael9635 2 หลายเดือนก่อน

      @@CodeWithFK Thanks sir

  • @tarikuzzamantito
    @tarikuzzamantito 2 หลายเดือนก่อน

    I really enjoyed the Part 1 video of This Series. Few people are working on new technologies such as Jetpack Compose, Ktor, Koin, Compose Navigation, and MVVM, and I eagerly await for The next Part.

  • @KundanKumar-tc4ut
    @KundanKumar-tc4ut 2 หลายเดือนก่อน +3

    Bhai abhi abhi hilt and retrofit pe haath baitha tha. I thought ki ab bss backend part pe dhyan dena hai but aapne ab lgta h kator and coin v sikha ke hi manoge

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน +1

      Basically, mera plan yeh hai k is project ko Android me bana k Compose Multiplateform pe shift karenge. so that's why I chose Ktor and Koin because they are core Kotlin-based. Yeah, android pe dependent ni hain.

    • @KundanKumar-tc4ut
      @KundanKumar-tc4ut 2 หลายเดือนก่อน +1

      @@CodeWithFK thanks to you for you tremendous job ❤️
      Als waiting for your videos...

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน +2

      keep supporting, I have a lot in the pipeline.

  • @U4Universe
    @U4Universe 2 หลายเดือนก่อน +1

    Hi Furqan, very nice effort with these videos. But your presentation layer is depending upon domain and data both, which violates the core principle of clean architecture. Data and presentation should only depend on domain layer.
    I can understand that we'll need to depend upon data for wiring up the DI but in that case, we should have an app module(not presentation) and each feature module can have it's own UI. And if we want to keep the UI in app module, renaming it to presentation will cause the confusion for new learners IMO.
    Secondly, can you tell me what mic you're using for audio recording?
    Again great effort with the videos.

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      Hello Brother,
      Thank you so much for your thoughtful feedback and for appreciating the effort put into the videos. You're absolutely right that, in the purest form of Clean Architecture, the Presentation layer should only depend on the Domain layer, keeping the Data layer isolated. This is something I strive to follow in most cases.
      However, in this series, I opted to simplify some aspects, especially around dependency injection (DI), to make it easier for beginners to grasp the concepts without getting too overwhelmed. I agree that introducing an "app" module could have been a better approach to managing DI, keeping the Presentation layer more aligned with the core principles of Clean Architecture.
      Regarding the module naming, I see your point about potential confusion. I’ll definitely consider that in future tutorials to ensure that the structure remains intuitive for all learners, especially those new to these concepts.
      I also wanted to let you know that since the first four parts of this series are already recorded and edited, I will post an update video in part 5 that will cover the use of an app module. This should help clarify things and align the project more closely with the Clean Architecture principles.
      As for your second question, I'm currently using the boya.com.pk/product/boya-by-m1-lavalier-microphone/ for audio recording. It's been working well for my needs, providing clear audio for my tutorials.
      Again, I really appreciate your input-it helps me improve the content and ensure it’s as helpful as possible for everyone. Thanks for watching and for the great suggestions!
      Best,
      Furqan

    • @U4Universe
      @U4Universe 2 หลายเดือนก่อน

      @@CodeWithFK Great work Furqan, I've been making videos on Basic Android development for some time and can understand the effort that goes into making such content behind the camera.
      Regarding the clean arch question, you're right about keeping the things simple for beginners but they can also take this as the CORRECT implementation on clean architecture, because they're learning it for the first time.
      I just wanted to highlight this point. It is very kind of you to put extra effort in making a separate video for explaining this.
      Best of luck with the channel brother ❣

    • @U4Universe
      @U4Universe 2 หลายเดือนก่อน

      @@CodeWithFK Regarding the mic, I purchased the same back when I started my channel but didn't quite get it to record clean audio. I've been struggling with audio for a long time. But your audio is quite clean.
      Recently, I started using OBS and the noice suppression filters on OBS are very very good.
      Good Job with the audio as well

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      @@U4Universe Thank you, brother, I have been using OBS as well with Noice Suppression. I just subscribed to your channel and would love to collaborate someday on some project :)

    • @U4Universe
      @U4Universe 2 หลายเดือนก่อน

      @@CodeWithFK Will be my pleasure to collaborate brother.
      Unfortunately due to the job, I wasn't able to make much content in the last 2 years, but I have planned some courses and will be launching soon.

  • @ShortBits786
    @ShortBits786 2 หลายเดือนก่อน +2

    Is it for beginners , I don't know about koin and ktor

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน +4

      If you are just starting Android development, I would recommend starting with my Expense Tracker app -> News App -> Chat App and then eCommerce App. Ktor and Koin are just alternative to Retrofit and Dagger Hilt.

    • @ShortBits786
      @ShortBits786 2 หลายเดือนก่อน

      Thank you sir

  • @IOSALive
    @IOSALive 2 หลายเดือนก่อน +2

    Code with FK, great job on this video

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      @@IOSALive thank you so much 😊

  • @JubayerAhamadTayef-Official
    @JubayerAhamadTayef-Official 5 วันที่ผ่านมา

    I am just starting android app development. Please advise me and guide me what can I do?

  • @hussamasad
    @hussamasad 2 หลายเดือนก่อน +2

    THANK YOU SIR 👍👍👍

  • @obeddougan1505
    @obeddougan1505 หลายเดือนก่อน +2

    Part 2. please 🙏 🙏 🙏 🙏 🙏 🙏

    • @CodeWithFK
      @CodeWithFK  หลายเดือนก่อน +2

      @@obeddougan1505 video till part 8 are available on my channel.

  • @AissamElboudi
    @AissamElboudi 2 หลายเดือนก่อน +2

    Thank you for this

  • @mmohammadtalha296
    @mmohammadtalha296 2 หลายเดือนก่อน +2

    Hey im stuck in network module in (CIO) when i click it not showing import object it shows create val

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      @@mmohammadtalha296 please join my discord server and post your problem I will try to help you out.

    • @mmohammadtalha296
      @mmohammadtalha296 2 หลายเดือนก่อน

      @@CodeWithFK discord link

    • @mmohammadtalha296
      @mmohammadtalha296 2 หลายเดือนก่อน

      I have sent a photo of my problem in your discord

  • @snowcat2233
    @snowcat2233 24 วันที่ผ่านมา +1

    could you please show to me sir if I use Hilt DI instead of Koin

    • @CodeWithFK
      @CodeWithFK  21 วันที่ผ่านมา +1

      You can use replace the existing DI framework with whatever you want. there are slight differences in how the DI frameworks are implemented, In my previous apps i have used Hilt so you can follow those videos and implement it in this project.

    • @snowcat2233
      @snowcat2233 21 วันที่ผ่านมา

      @@CodeWithFK thank you so much sir. You explained very well for the multi modules

  • @ubersticks
    @ubersticks 16 วันที่ผ่านมา

    At 15:45, why are we adding the implementation()s to build.gradle.presentation, rather than add api("koin android") and api("koin android compose") to the domain gradle? Is it because we want to limit exposing these two dependencies to ONLY the domain and presentation?

    • @CodeWithFK
      @CodeWithFK  15 วันที่ผ่านมา +1

      We want android specific libs to be added only to presentation to keep domain and data kotlin specific. That's why we only added the koin android and koin android compose to presentation module using implementation.

  • @KhodeCamp
    @KhodeCamp 2 หลายเดือนก่อน +1

    Thank you so much!

  • @snowcat2233
    @snowcat2233 24 วันที่ผ่านมา

    And could you please tell me, why your code auto complete is awesome 😎

    • @ahmedzain3416
      @ahmedzain3416 23 วันที่ผ่านมา +1

      I think after enabling Gemini "Use context from your projects to improve responses" from settings

    • @CodeWithFK
      @CodeWithFK  21 วันที่ผ่านมา +1

      I am using GitHub Copilot.

    • @snowcat2233
      @snowcat2233 21 วันที่ผ่านมา

      @@CodeWithFK thank you so much sir

    • @snowcat2233
      @snowcat2233 21 วันที่ผ่านมา

      @@ahmedzain3416 thank you sir, now I know

  • @aliapochi1678
    @aliapochi1678 หลายเดือนก่อน

    Amazing!

    • @CodeWithFK
      @CodeWithFK  21 วันที่ผ่านมา

      Glad you liked it!

  • @ubersticks
    @ubersticks 15 วันที่ผ่านมา

    In NetworkServiceImpl, "val result: R = mapper?.invoke(response) ?: response as R" the warning appears that "unchecked cast T to R" which seems like a valid concern. Why is this ok to cast Response as type R?

    • @CodeWithFK
      @CodeWithFK  15 วันที่ผ่านมา +1

      In typical use, this function operates as follows: if a web call is made with a request of type A and receives a response of type B from the backend, but we want to pass the response as type C to the domain layer, we use the mapper function to transform B into C.
      However, there are cases where we don’t want to map the response to another type. In these cases, we know that both T and R are the same type, so we can safely cast the response directly to R.
      To be extra certain, you can add a nullability check before casting the response. This check verifies that the response matches the expected type. If it doesn’t, you can throw a specific exception, which will then be caught in the catch block below, allowing you to return a meaningful error response if there is a type mismatch.
      val result: R = mapper?.invoke(response) ?: (response as? R
      ?: throw IllegalArgumentException("Response type mismatch"))

  • @sushant-chauhan-08
    @sushant-chauhan-08 หลายเดือนก่อน

    Hey bro waiting for the next you said it will come on Monday.

    • @CodeWithFK
      @CodeWithFK  หลายเดือนก่อน

      Really sorry, a new video will be released this monday.

  • @Muhammad-Shafqat
    @Muhammad-Shafqat 2 หลายเดือนก่อน +1

    ik adimn panel nam sai ik or app bnaye usmy ham product ko add krdey tu realtime is app mai wo product show hu

  • @glionn
    @glionn 2 หลายเดือนก่อน

    Hello live edit and preview are not very functional in jetpack compose ui development, it takes me time to create instant ui designs for me my application development speed in flutter is very fast, but I cannot realize this for kotlin, how do you do it how can I perform faster editing process for ui

  • @ugayashan8659
    @ugayashan8659 หลายเดือนก่อน

    Clean architecture and MVVM architecture are different from one another?

    • @CodeWithFK
      @CodeWithFK  21 วันที่ผ่านมา

      Yes, they are different but can work together.

  • @mehmetaltinsoy525
    @mehmetaltinsoy525 หลายเดือนก่อน

    Thanks

  • @mostafamohamed.
    @mostafamohamed. 2 หลายเดือนก่อน

    great work , can you share the design link ?

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      Design File: www.figma.com/design/IINva9f5ZcXCkYIJ2wDUx9/e-commerce-app-(Community)

  • @maxeraxe7413
    @maxeraxe7413 2 หลายเดือนก่อน

    Sir can you add testing too❤

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      @@maxeraxe7413 yes this project will have testing

  • @heyAshuK
    @heyAshuK 21 วันที่ผ่านมา

    16

  • @khanra17
    @khanra17 2 หลายเดือนก่อน

    Fonts aur thoda chota kar leta !🤡

    • @CodeWithFK
      @CodeWithFK  2 หลายเดือนก่อน

      Thank you for your feedback! I appreciate you bringing this to my attention. I'll make sure to use a larger font in future videos to make the content easier to follow.