The Android Factory
The Android Factory
  • 293
  • 506 928
Custom Search Bar Jetpack Compose 2024
In this episode, you will learn how simple Jetpack Compose makes building a custom search experience for your users! Using the latest compose BoM (bill of materials), I demonstrate how to build a search bar capable of emitting user queries 500ms after they stop typing -- a perfect moment to make an API call for data. Part 2 will be coming out shortly, which will connect this UI to a paginated API for information to display, so stay tuned!
Don't forget to subscribe and enable notifications to stay up-to-date!
Source code here: github.com/the-android-factory/SimpleRick
0:00 Intro demo
1:35 BasicTextField explanation
4:12 Compose implementation
5:54 Observing user input
7:40 Custom delete icon
10:40 Final touches & discussion
=========== Popular Series ===========
Redux e-commerce app: th-cam.com/play/PLLgF5xrxeQQ2qeszlLJTuL9ZO4bSpngQr.html
Rick and Morty app: th-cam.com/play/PLLgF5xrxeQQ01ZWe-5p8_ITUKoPS5c46P.html
=========== Connect with me ===========
LinkedIn: www.linkedin.com/in/domenic-polidoro-802b72b4/
Instagram: dom_polidoro
Twitter: developer_dom
Tiktok: www.tiktok.com/@building_android
มุมมอง: 273

วีดีโอ

Displaying API data in a list + sticky headers! | Jetpack Compose 2024
มุมมอง 34314 วันที่ผ่านมา
HELLO EVERYBODY THIS IS MY FIRST VIDEO BACK FROM THE WEDDING!! Quick side note: thank you all for the support and I appreciate your patience. Life has been quite overwhelming lately, and one area that affected deeply was content creation. I hope to get back to a more normal schedule. Anyway, this video is cool and demonstrates how to make a bunch of API calls for information and manipulate the ...
NavigationBar Jetpack Compose Tutorial -- Android 2024
มุมมอง 8983 หลายเดือนก่อน
The bottom navigation bar is an extremely common UI pattern across mobile apps. Check out this short tutorial to learn everything you need to implement it yourself! Don't forget to subscribe and enable notifications to stay up-to-date! Docs: developer.android.com/develop/ui/compose/navigation#bottom-nav Full playlist here: th-cam.com/play/PLLgF5xrxeQQ1yTgJKBbEAgsEFAoMV93qS.html Source code here...
How to migrate to libs.versions.toml -- Android 2024
มุมมอง 1K4 หลายเดือนก่อน
The libs.versions.toml file is a weird one if you haven't seen it before, but this video breaks it down perfectly for you! Let me know what you think in the comments below; I quite like the [bundles] implementation :) Don't forget to subscribe and enable notifications to stay up-to-date! Migration docs: developer.android.com/build/migrate-to-catalogs Full playlist here: th-cam.com/play/PLLgF5xr...
Jetpack Compose Custom Toolbar
มุมมอง 7174 หลายเดือนก่อน
I love Jetpack Compose because of how easy it is to build UIs. For instance, this simple example of how to create your own Toolbar implementation! Yes the built in Toolbar is more "powerful", and likely the "better way to go", but in case you need something custom this can help you out. Don't forget to subscribe and enable notifications to stay up-to-date! Full playlist here: th-cam.com/play/PL...
Custom Pagination Tutorial with Jetpack Compose | Android 2024
มุมมอง 1.7K6 หลายเดือนก่อน
Have you ever worked with a paginated endpoint? Do you know how "infinite scrolling" works under the hood? Take a dozen minutes or so to learn something new with this simple and elegant tutorial to paginating with Jetpack Compose! Don't forget to subscribe and enable notifications to stay up-to-date! Full playlist here: th-cam.com/play/PLLgF5xrxeQQ1yTgJKBbEAgsEFAoMV93qS.html Source code here: g...
Display API data with LazyVerticalGrid | Android 2024
มุมมอง 5506 หลายเดือนก่อน
Displaying data in a grid is an extremely common practice and Jetpack Compose's LazyVerticalGrid makes this very simple! Sit back and learn how to display network data in a grid :) Don't forget to subscribe and enable notifications to stay up-to-date! Full playlist here: th-cam.com/play/PLLgF5xrxeQQ1yTgJKBbEAgsEFAoMV93qS.html Source code here: github.com/the-android-factory/SimpleRick 0:00 Intr...
Compose UI work: List items vs. Grid items
มุมมอง 6276 หลายเดือนก่อน
Hey, welcome back! Sorry it took so long, but we will ease into the next bit of this season with some fun UI work in Jetpack Compose. We will eventually allow the user to toggle between a grid mode and a list mode for layout purposes, so today we are going to build the components they will see in the app! Don't forget to subscribe and enable notifications to stay up-to-date! Full playlist here:...
MVVM + Hilt + Compose Navigation Masterclass | Android 2024
มุมมอง 2.6K9 หลายเดือนก่อน
Architecture is a popular topic, and truthfully it doesn't matter for our end users. The benefits of a good architecture are realized by the development team behind the application, so sit back and enjoy as I convert this project that had no architecture into a case study! Don't forget to subscribe and enable notifications to stay up-to-date! Full playlist here: th-cam.com/play/PLLgF5xrxeQQ1yTg...
Adding Hilt to Multi-Module App | Android 2024
มุมมอง 3K9 หลายเดือนก่อน
Step 1 to create a well-architected app: add Dagger Hilt! Sit back and enjoy as I add in this powerful library to our multi-module app. We will use it to properly manage dependencies in our main app module from our "external" networking library. Hilt docs: developer.android.com/training/dependency-injection/hilt-android#kts Don't forget to subscribe and enable notifications to stay up-to-date! ...
You Should Use Sequence Diagrams
มุมมอง 8099 หลายเดือนก่อน
Hey everyone thanks for stopping by! Sequence diagrams are simple and effective ways to map out any flow or sequence of events. This translates extremely nicely to technical implementation and I've used them a number of times to collaborate with others about a specific problem. Let me know what you think and if I should add them to future videos! Don't forget to subscribe and enable notificatio...
API call transformation with Ktor | Android Tutorial 2024
มุมมอง 1K9 หลายเดือนก่อน
HAPPY NEW YEAR! Welcome back everybody, I hope you had a wonderful holiday break :) today's episode we resume building and I demonstrate a clean way to transform your network call from one data type to another in a very Kotlin-friendly syntax! I'd love to know if you find this useful so let me know in the comments any thoughts. Don't forget to subscribe and enable notifications to stay up-to-da...
Add horizontal scroll to your LazyColumn!
มุมมอง 1.3K10 หลายเดือนก่อน
This video demonstrates how simple it can be to add horizontal scrolling content to your vertically scrolling content! Leveraging Jetpack Compose's LazyRow inside of a LazyColumn provides a very clean interface for us to work with, and translate our data into a beautiful UI. Sit back and enjoy this video with me :D Don't forget to subscribe and enable notifications to stay up-to-date! Full play...
Sticky headers in Jetpack Compose!
มุมมอง 2.7K10 หลายเดือนก่อน
This video demonstrates how to build a beautiful UI with Compose's LazyColumn, and "sticky headers" can be a great way to improve the experience for your user! Sticky headers are specific UI elements (typically headers in a list of content) that "stick" to the top of your screen as the rest of the list content scrolls beneath it. Watch the whole video for a complete tutorial on this concept and...
Simple Guide to Network Caching in Android
มุมมอง 1.1K10 หลายเดือนก่อน
Today I am demonstrating just how simple it can be to cache the network data we receive inside our application for improved performance! This is a shorter video (with a funny moment in the middle) so sit back for a few minutes and gain some knowledge on this extremely powerful professional tactic. Don't forget to subscribe and enable notifications to stay up-to-date! Full playlist here: th-cam....
Compose Navigation Tutorial: Passing data between screens
มุมมอง 3.6K10 หลายเดือนก่อน
Compose Navigation Tutorial: Passing data between screens
How to handle network errors with Ktor
มุมมอง 1.7K10 หลายเดือนก่อน
How to handle network errors with Ktor
Jetpack Compose + Coil image loading tutorial
มุมมอง 2.6K10 หลายเดือนก่อน
Jetpack Compose Coil image loading tutorial
Practical API mapping Android example
มุมมอง 2.1K10 หลายเดือนก่อน
Practical API mapping Android example
Setup Ktor for your Android app!
มุมมอง 6K10 หลายเดือนก่อน
Setup Ktor for your Android app!
Multi-module Android App Tutorial
มุมมอง 11K10 หลายเดือนก่อน
Multi-module Android App Tutorial
Deploy your Android app to Firebase App Distribution w/ GitHub Actions (CI/CD)
มุมมอง 7K11 หลายเดือนก่อน
Deploy your Android app to Firebase App Distribution w/ GitHub Actions (CI/CD)
Deploy to Firebase with GitHub Actions (part 2)
มุมมอง 65611 หลายเดือนก่อน
Deploy to Firebase with GitHub Actions (part 2)
Deploy to Firebase: Service account creation (part 1)
มุมมอง 92911 หลายเดือนก่อน
Deploy to Firebase: Service account creation (part 1)
GitHub Actions: Run tests on pull request open
มุมมอง 4K11 หลายเดือนก่อน
GitHub Actions: Run tests on pull request open
GitHub Actions: Linting your codebase
มุมมอง 53111 หลายเดือนก่อน
GitHub Actions: Linting your codebase
GitHub Actions Intro: Automate your codebase!
มุมมอง 86711 หลายเดือนก่อน
GitHub Actions Intro: Automate your codebase!
Jetpack Compose: Build Your First App (2023) - Android for Beginners
มุมมอง 2.7Kปีที่แล้ว
Jetpack Compose: Build Your First App (2023) - Android for Beginners
How to Build Server Driven UI w/ Firebase + Jetpack Compose
มุมมอง 4.6Kปีที่แล้ว
How to Build Server Driven UI w/ Firebase Jetpack Compose
Reviewing Pull Requests as a NYC Staff Engineer
มุมมอง 695ปีที่แล้ว
Reviewing Pull Requests as a NYC Staff Engineer

ความคิดเห็น

  • @yusufhandal9758
    @yusufhandal9758 5 วันที่ผ่านมา

    Please the AppStata file updated....thanks so much

  • @normanndiritu8806
    @normanndiritu8806 5 วันที่ผ่านมา

    WOW! Great, quick and concise teaching!

  • @neyasbit
    @neyasbit 7 วันที่ผ่านมา

    good practice 🔥

  • @A2359-ic7kv
    @A2359-ic7kv 11 วันที่ผ่านมา

    thank you for having american accent

    • @TheAndroidFactory
      @TheAndroidFactory 11 วันที่ผ่านมา

      LOL. I didn't do too much for this, but I will send the appreciation to my parents!

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

    im new to the code world currently i have a recyclerview with item that have multiple tags how do i make a category filter for that and im using java so this is confuse me even more anyway nice video

    • @TheAndroidFactory
      @TheAndroidFactory 14 วันที่ผ่านมา

      Feel free to email some code snippets, it is quite hard for me to help from just the comments section haha. You can find the email on the `About` tab of the channel

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

    Please 😢 upload faster 😅

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

      Hahaha thank you for the support!

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

    good video, I have a question, is it a good idea to create textfield state and snapshotflow in a composable function?

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

    Hey man... I appreciate this one-feature-tutorial videos, but I'd really love the app series. Specifically, I'd really like to know how you'd approach an app with a login feature which also has something like a bottom nav bar in the main app itself. I still haven't found an optimal way to go about this (navigation-wise).

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

      I do think the next app I want to build would have a login screen and what not. But what is the issue you're running into? You should easily be able to have logic on all start that either pushes the user to a sign up/in Composable if they are signed out and then a "signed in screen" when they are authenticated. The signed in Composable would have the bottom nav at that point and the signed out state wouldn't. Alternatively, if you reeeeeaally needed to, you could have two activities if that is simpler for some reason.

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

      @@TheAndroidFactory Yeah, I believe it is fairly easy to do with a bunch of when statements. However, I don't know how to approach the situation using purely Compose's Navigation Component. FYI the "signed in screen" that I'm using is a composable which uses the NavigationSuiteScaffold. I'm a beginner so I might just be totally missing something though 😛

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

      Woah interesting... I haven't worked with the suite scaffold you are talking about 🤔

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

    We need more apps... Not just one app a season

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

      I need more time haha 😅

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

      ​@@TheAndroidFactory I meant no pressure it's just I love how professional your code and your explanation is will definitely build all your projects from now on...❤

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

      I appreciate your support! All the code is on GitHub for you to consume as well :)

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

    how is this handling config changes? currently launchEffect will fire on every rotation

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

      How would you handle it? What you're saying isn't wrong by the way

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

      @@TheAndroidFactory i think that yo can put the function directly in the ViewModel on init block

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

      That's one way to solve it. Personally, I'm not a big fan of using the init blocks to run "significant" code (like networking or something), but that doesn't mean what you said is wrong. Your solution would work. Another way around it could be to add logic to the function itself that would terminate early if you already had data on screen. Sort of like a cache check

  • @AA-qu8yt
    @AA-qu8yt 17 วันที่ผ่านมา

    I’m so happy I found your playlist on TH-cam where you explain the Multi-Module approach in a simple way. I really need to learn this architectural approach, so I did a lot of searching and looked everywhere. Most resources are either just articles or involve complex projects, but yours is different. I’d like to ask if you plan to convert all features(maybe screen here) into modules and do it like the NowInAndroidApp (a fully functional Android app published by the Android Developer team). If not, I hope you will consider doing that, as we really need such a resource. Thank you so much.

  • @rogercolque
    @rogercolque 18 วันที่ผ่านมา

    sticky head was one line of code awesome 😀

  • @moattia9126
    @moattia9126 23 วันที่ผ่านมา

    Very nice bro, very interested in the rest of the series ❤️

    • @TheAndroidFactory
      @TheAndroidFactory 23 วันที่ผ่านมา

      Appreciate your support! There are a bunch of videos already in the series (check the playlist it is a part of) and I plan on continuing making content for it this week!

  • @NiteshRathore-n6t
    @NiteshRathore-n6t 23 วันที่ผ่านมา

    What if we have multiple environments and we wanna release a specific one? What are the charges that need to be done?

    • @TheAndroidFactory
      @TheAndroidFactory 23 วันที่ผ่านมา

      You'd just need to setup multiple environments in your GitHub repo and set the corresponding information that differs between them (typically API keys, etc.). Then in your scripts you can invoke a specific environment at runtime to pull from. This might make a good video actually - I'll get to it this week!

  • @DarkMatter_911
    @DarkMatter_911 25 วันที่ผ่านมา

    Is windows 11 good for android development?

    • @TheAndroidFactory
      @TheAndroidFactory 25 วันที่ผ่านมา

      My personal computer is Windows 11 (what I record all these videos on), but I use Mac for work. Both are fine for the overwhelming majority of cases

    • @DarkMatter_911
      @DarkMatter_911 25 วันที่ผ่านมา

      @@TheAndroidFactory thanks

  • @panmat3186
    @panmat3186 28 วันที่ผ่านมา

    A very good tutorial. Thanks a lot man!

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Thank you for the content. It seems like the last video was uploaded three times, so I will passionately wait for the next one. Until then, I wish you all the best, and one more thank you for making us better at Android programming.

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Did not know about Bundle; thank you!

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

    Hi sir! thank you so much for this action but I am having a issue failed to upload release. HTTP Error: 400, Request contains an invalid argument. It happend just after the assemble, do you have an idea about what could be happening?

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

      Glad it helped. Double check the docs and your syntax -- it is likely something very simple, just hard to find because there is no IDE highlighting

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

      @@TheAndroidFactory I fixed it! It was the app id, you have a explanation in a closed issue in the repository

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

      Amazing! Something simple like I suspected :)

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

      @@TheAndroidFactory BTW I made it working at kotlin multiplatform and I made the compilation with kotlin multiplatform for iOS on Xcode Cloud

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Thank you for this great video)

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Thank you!

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

      Thank you for following along haha! I've seen you watching and commenting on the whole series so far ❤️

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Thank you for the great tutorial)

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Thank you for the video) Vertical gradient looks great)

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Congratulations on your marriage! Wish you and your loved one a lot of happy moments!

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Just letting you know - we appreciate your content)

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

      And I appreciate everyone's feedback!!

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

    Doesnt multimodule suppose you to have to add another @module-ed file at least? Or am i getting something wrong?

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

      Sorry, this is specifically talking about modules for the project, not just module-annotated files as it relates to Hilt. So for this project we have an 'app' module (the standard one) and also a 'network' module (that has a bunch of our network related code). These modules are a bit different than the files annotated @Module

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great first look into DI with Hilt.

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great video, dude season 1 in 2013 makes me old as hell

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great, thank you

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great content, never used sticky headers, but I definitely will implement them in my next project

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

      Sticky headers are so simple and such a great addition to your apps!

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great and clean

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great video

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great Jetpack Compose video! Yes, it is cool to see basic stuff done quickly, along with the source code provided.

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great first look into setting up Ktor.

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great first look into API mapping.

  • @king-rabbit
    @king-rabbit หลายเดือนก่อน

    Great first look into multi-module app

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

      Appreciate the support! I'll be back making content for this series soon :)

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

    There are many types of tutorials : 1. Bad audio 2. No audio just codes 3. Says what they’re doing but doesn’t explain 4. Breaks it down, and shows a simple example, makes sense, You sir are #4 , thank goodness

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

    Such a useful playlist for CI/CD in Android Developement. Loved it....Great work and Thanks

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

      Glad it helps! Simple automation (and knowing how it works) is suuuuuper helpful!

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

    Nice one.....

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

    very subtle way of doing these kind of stuff

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

    Nice one

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

    👏👏❤

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

      Glad it helped! There's much newer content on the channel that might be helpful too 😃

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

    Detailed explanation. Good work and its very helpful

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

    Hi Android Factory, Thank you so much for your amazing tutorials! They've been incredibly helpful in my Android development journey that I just started. I did encounter an issue while following along: when trying to store a button in a variable, I got an error saying "Type mismatch: inferred type is Unit but WindowInsetsCompat was expected." I googled it and found that this might be related to changes in API level 26 or higher (we're using 30 in your tutorial), but I'm still stuck. I'd really appreciate any guidance or help you could provide! Thanks again for all you do!

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

    THANK YOU SO MUCH!, this is my first time making an entire app that I'm gonna publish into the play store and having this type of in depth tutorials really helps me to analyze and see how those things works behind the scenes

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

      Congrats! I'm glad I could help you get there haha. Many more apps to come 💪

  • @user-Farooqzx
    @user-Farooqzx หลายเดือนก่อน

    I opened your video hoping I could find a solution to my problem but it seems you have the same problem which is when I use .animatedItem() with LazyColumn it shows a weird animation when flipping quickly and sometimes when changing the sorting type(look at the last item in the list here 18:22)