
Create a Backendless account and an application; design the color palette table with fields and relations; connect the Android app using the app ID and Android key from the dashboard.
Discover how the Android app design preview leverages the Backendless platform to enable Google sign-in, palette browsing, like and save actions, and admin-approved submissions.
Explore backendless database schema for color palette, detailing approved boolean, color string with comma-separated colors, total X double, and the save relational column moving from users to color palette.
Explore android studio dependencies and plugins, including compose navigation, backendless sdk, real-time database, google earth and client api for authentication, degree health library, material icons, and compose color picker.
Define a sealed screen class with six routes in Android app: login, home, details, saved, submit, create; build a nav graph and nav host, and wire navigation in main activity.
Design a login screen message bar in an Android app using Kotlin and Jetpack Compose, introducing a message bar state, animated visibility, and enter/exit animations to display error messages.
Create a Google button in Jetpack Compose for Android apps, featuring default and loading states, a Google icon, text swap, and a circular progress indicator, with preview components.
Design and implement the login screen using a scaffold with a top app bar labeled sign in and a content area featuring a Google button and message bar.
I've noticed a bug in our app which is associated with the Login Screen. It may happen that you're not going to log in, and the Google Button will just keep loading. In that case, just run the app once again, and everything should work fine.
Btw, in the lesson #33, I've showed how to fix that bug, so you can check it out. :)
Set up a backendless data source and repository to fetch color palettes from the backendless database using a non blocking suspend function and map results to the color palette class.
Display color palettes on the home screen by wiring a home view model to a repository and rendering palettes fetched from the back end list database in a lazy column.
Implement a real-time database to reflect approved and deleted color palettes in the app. Observe approvals and deletions and update the home view accordingly.
Design a details screen for color palettes with a top bar, bookmark and like actions, and hex color boxes that copy to clipboard, while handling palette data across screens.
Learn to control the detail screen's floating action button by passing a showFab boolean through the navigation graph, hiding the fab when opening from saved or submitted screens.
Implement the submitted palettes screen by querying color palettes owned by the current user using the owner ID, and observe real-time updates with a flow to refresh the list.
Design the create screen with color pickers, a top bar, and a submit button enabled after three colors are chosen, joining selections into a comma separated string for backendless database.
Explore the UI builder's five sections—user interface, logic, components, theme, and settings—to design pages, manage logic, style elements, and preview responsive layouts.
Explore data models and data binding in the course, including page, application, and zone data models, plus data containers and binding inputs to properties.
Apply global themes for a consistent look across all components. Use extensions to add localized styles with CSS or less, defined as classes that can be applied to individual components.
Explore codeless programming with the code list in the UI builder, learning to design app logic through visual blocks, events, and data binding in a practical, code-free environment.
Learn how to use data types and variables in the code editor, including strings, numbers, booleans, null, undefined, and arrays, with print blocks, arithmetic, and type checks.
Demonstrates using condition blocks in a code less programming approach to show text based on counter value, with increment, decrement, and reset, and explore if, else if, and else branches.
Explore lists and loops in Backendless by creating lists with blocks, printing and assigning them to variables, checking length, supporting mixed data types, initializing empty lists, and looping over items.
Create and manipulate objects in code-less programming by defining multi-property objects with name and age, then set, get, and delete properties, view keys, and convert to and from text (JSON).
Preview a web app ui with a reusable header, sign-in dynamics, and pages for home, saved and submitted palettes, plus create palette with color picker and copyable codes.
Design and convert a header component into a reusable header with three equal blocks using flex layout, including logo text, centered home title, and sign-in/out menu.
The logic for displaying the number of likes that was introduced in this video, will CHANGE in some of the next videos, because I've experienced some issues with displaying the correct number of likes in the palette holder. Making an extra request for each palette is not efficient, which is why that logic will be merged with the initial request. Watch the video under the name of 'Modify Home Page Logic'. :)
Create a saved palettes page that fetches the current user's saved color palettes via a data API relation, with an empty state and dynamic page titles.
Handle header navigation by wiring on-click events to navigate to landing and saved pages, and apply a reusable set-selected-style to highlight the active menu item.
Learn to create engaging css animations on the details page, including a hover-scaled save icon with shadows and color block flex-grow transitions in the Backendless UI Builder.
Design the create page by building a screen with a header, five color picker components in 30% columns with borders, and a disabled submit button for the palette.
Enable the submit button only after selecting at least three colors. Save the color palette to the backend database and display a success message.
Design the submitted page by enabling dynamic submit button color, building the submitted page with header navigation, and loading the current user's submitted palettes from the color palette table.
Add a waiting for approval overlay on unapproved color palettes with a black scrim and centered hourglass icon, initializing it as hidden.
Make the create page responsive with media queries to adjust color picker containers from 30% to 60% on tablets and 90% on mobiles, and ensure palettes are clickable if approved.
Update the android app to support the new color palette saved column and switch backend queries to the color palette table with group by and properties, ensuring correct like counts.
In this course I'm going to teach you how to build your own startup project, that will be available on multiple platforms like Android and Web.
The startup application that we are going to build, will include a user authentication, so that we can create our own user database. And the purpose of that application will be to provide different kind of a color palettes to our users or visitors.
Now everyone will be able to check out those color palettes in our applications, but also we are going to create the logic that will allow our users to submit their own color palettes as well. And you as an admin will have a full control over the process of approving those submitted colors from those users.
When it comes to an Android application, we are going to develop that application in Android Studio, by using the modern UI toolkit called Jetpack Compose and a Kotlin programming language as well.
Now the most exciting part comes after that, when we should focus on creating the Web application as well. Now for creating a web application you are not going to need any prior knowledge about Web Development itself, because the front and the back end part will be developed with No-Code approach. Codeless approach means that you are going to play with puzzles, and create your Web App at the same time!
And that's just the beginning, there are a plenty of other things that you're going to learn through this course. So what are you waiting for, let's get started!