- 293
- 506 928
The Android Factory
United States
เข้าร่วมเมื่อ 30 ธ.ค. 2020
Hello there! My name is Domenic and I am a passionate developer with a bunch of Android experience. Over the last 8 years I have found myself building apps for a variety of companies, spanning a range of industries, with varying team sizes. I have started this channel to give back to the community, start my passion for teaching, and provide a practical resource that I wish I had when first getting started.
Whether you are a seasoned vet or someone with no development experience, I'll provide a comprehensive overview of core components and everything you'll need to publish an app on your own! This channel will be entirely focused on Kotlin (the suggested programming language for Android apps) and will keep up to date on the latest Android news, trends, tools, and development practices. Compose coming soon - need to learn it better myself before trying to mentor others about it! xD
Whether you are a seasoned vet or someone with no development experience, I'll provide a comprehensive overview of core components and everything you'll need to publish an app on your own! This channel will be entirely focused on Kotlin (the suggested programming language for Android apps) and will keep up to date on the latest Android news, trends, tools, and development practices. Compose coming soon - need to learn it better myself before trying to mentor others about it! xD
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
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
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
Please the AppStata file updated....thanks so much
WOW! Great, quick and concise teaching!
Glad it helped :)
good practice 🔥
thank you for having american accent
LOL. I didn't do too much for this, but I will send the appreciation to my parents!
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
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
Please 😢 upload faster 😅
Hahaha thank you for the support!
good video, I have a question, is it a good idea to create textfield state and snapshotflow in a composable function?
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).
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.
@@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 😛
Woah interesting... I haven't worked with the suite scaffold you are talking about 🤔
We need more apps... Not just one app a season
I need more time haha 😅
@@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...❤
I appreciate your support! All the code is on GitHub for you to consume as well :)
how is this handling config changes? currently launchEffect will fire on every rotation
How would you handle it? What you're saying isn't wrong by the way
@@TheAndroidFactory i think that yo can put the function directly in the ViewModel on init block
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
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.
sticky head was one line of code awesome 😀
Kinda crazy, isn't it lolol
Very nice bro, very interested in the rest of the series ❤️
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!
What if we have multiple environments and we wanna release a specific one? What are the charges that need to be done?
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!
Is windows 11 good for android development?
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
@@TheAndroidFactory thanks
A very good tutorial. Thanks a lot man!
Glad it helped :)
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.
Thanks for following along!!
Did not know about Bundle; thank you!
Bundle is great!
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?
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
@@TheAndroidFactory I fixed it! It was the app id, you have a explanation in a closed issue in the repository
Amazing! Something simple like I suspected :)
@@TheAndroidFactory BTW I made it working at kotlin multiplatform and I made the compilation with kotlin multiplatform for iOS on Xcode Cloud
Thank you for this great video)
💪
Thank you!
Thank you for following along haha! I've seen you watching and commenting on the whole series so far ❤️
Thank you for the great tutorial)
Thank you for the video) Vertical gradient looks great)
Congratulations on your marriage! Wish you and your loved one a lot of happy moments!
Thank you so much!
Just letting you know - we appreciate your content)
And I appreciate everyone's feedback!!
Doesnt multimodule suppose you to have to add another @module-ed file at least? Or am i getting something wrong?
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
Great first look into DI with Hilt.
Appreciate the support!
Great video, dude season 1 in 2013 makes me old as hell
Great, thank you
Great content, never used sticky headers, but I definitely will implement them in my next project
Sticky headers are so simple and such a great addition to your apps!
Great and clean
Clean and simple is king!
Great video
Thank you!!
Great Jetpack Compose video! Yes, it is cool to see basic stuff done quickly, along with the source code provided.
Source code all on GitHub!
Great first look into setting up Ktor.
Great first look into API mapping.
Great first look into multi-module app
Appreciate the support! I'll be back making content for this series soon :)
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
Appreciate this feedback 🫶
Such a useful playlist for CI/CD in Android Developement. Loved it....Great work and Thanks
Glad it helps! Simple automation (and knowing how it works) is suuuuuper helpful!
Nice one.....
Thanks for the support ☺️
very subtle way of doing these kind of stuff
Compose is just fun 🔥
Nice one
Thank you!
👏👏❤
Glad it helped! There's much newer content on the channel that might be helpful too 😃
Detailed explanation. Good work and its very helpful
Glad it helped you :)
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!
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
Congrats! I'm glad I could help you get there haha. Many more apps to come 💪
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)