Android MySQL Retrofit2 Multipart CRUD,Search,Pagination
- 11.5 hours on-demand video
- 15 articles
- 16 downloadable resources
- Full lifetime access
- Access on mobile and TV
- Certificate of Completion
Get your team access to 4,000+ top Udemy courses anytime, anywhere.Try Udemy for Business
- FULL CRUD : Performing INSERT SELECT UPDATE and DELETE against MySQL from Android
- Retrofit2 MULTIPART : Upload/download/Update/Delete of images and text
- PAGINATION : Server side pagination using 'Load more' technique.
- SEARCHING: Performing server side Search, Render SearchView in ToolBar,Highlight Search Results
- DESIGN : Splash Screen, Dashboard, Editing/CRUD screen, Lsting screen, Detail screen,CollapsingToolBar
- DATA PASSING: Serialize Objects,Pass them to Activities and Deserialize them, Show them
- SPLASH SCREEN: Use Animation class to load animations and apply them to widgets.
- CUSTOM FONTS: Apply any downloaded Custom Fonts to an android application
- PHP: Write Object Oriented PHP code that can perform all CRUD operations as well as search and page data
- RECYCLERVIEW: With Letter Icons,Search capability, Scroll events,Images Text
- Many more because we code in Realtime explaining line by line.
Learn Full app Kotlin Android development involving several technologies.
CONCEPTS YOU WILL LEARN FROM THIS PROJECT
Kotlin Programming Language
Retrofit2(Latest version) - Multipart Uploads,Update,Downloads,Delete
Object Oriented PHP + MySQL
Memory and LRU Disk Caching
Server side Pagination
Capture images from camera,gallery,file picker and upload
Several Page designs (Splash,Dashboard,CRUD,Listings,Detail)
Swipeable Image slider - Carousel
Runtime Permissions implemented
Implement ClearText communication(Communication over non-secure http)
Highly efficient app creation(We make single requests to server,cache data in both disk and memory,download data in small chunks)
This is the second app we create. In this part we will learn how to perform multipart uploads/update/delete/download. In short a full CRUD application but with images and text. User can pick images, type text then upload. Users can also view, edit and delete as well as search. This is a perfect template to use if you plan on using mysql with android especially as there aren't many online courses and tutorials that put it all together in an easy to follow manner.
UPLOAD/DOWNLOAD/UPDATE/DELETE images and text to the server using Retrofit2
Capture Photos directly from camera and upload.
Replace existing images and text with new ones.
Paginate data using load more technique. Control how many items you want per page.
Beautiful UI with many activities already designed and working well.
Show amazing image carousel/slider at the top of your recyclerview. The slider autoslides images. Images can also be swiped manually.
Runtime permissions integrated.
ClearText communication implemented. This implies it will support even non-https traffic.
Updates almost every month. We keep on adding features and improving the app.
Suggest us features you want integrated.
This is the first app we create. We do this in detail. It is perfect for absolute beginners. You will know how to create a full application that you can use to as a template in creating other apps. You can download the APK and test it. We are hosting a online test mysql database to start with.
This is a gift for you because you are dear to me. You've bought my courses so I have to give you some extras. This is an app that I have created and it's play store ready. Use it to learn the following:
Kotlin Programming Language
ExpandableRecyclerView with images and text
Single Page design
Am trying to say thank for purchasing my course by creating this project for you. This project is meant to teach you:
Room Data Access Layer - Full CRUD
Model View ViewModel
How to import data from csv to room
Page creation and designs
It is basically a template. Be creative and turn it into your own idea app.
Am showing you the preview of the app we will create in this course. In the process we will learn alot including but not limited to:
How to use Retrofit to perform all the CRUD(Create Read Update Delete) operations against a mysql database. We do this by making HTTP POST and GET requests asynchronously. While performing this we show progressbar and handle response appropriately.
How to perform a sever side search against our data and render the result in a recyclerview. I also teach you how to highlight search results. We render as searchview in the toolbar which the user can then use to search.
How to perform a server side pagination using the load more technique. For this we will see how to listen to RecyclerView scroll events to assist us in pagination.
How to create several re-usable screens using XML in android studio. These screens will include splash screen, dashboard screen, listing screen, details screen and editing screen. In the process we use several widgets like cardviews, datepickers, lovely dialogs etc.
How to write quality Object Oriented PHP code that can listen, interpret our requests and return us a response which we can then process.
How to use custom professional fonts in your android app. The fonts can be applied as per widget, per activity or to the whole application.
This is part is for students who are not sure how to create a mysql database. We use a tool called PHPMyAdmin. This tool comes packaged with our XAMPP or WAMP server and allows us easily and visually create databases and tables. Am showing you how to do that in this lecture.
In this class we are creating another class. This class will hold all our CRUD methods. After this lesson you will know how to create a re-usable method to establish a connection to MySQL database and return a mysqli instance. This method will be used by other methods to establish connection.
Am teaching you how to select all data/rows from mysql table using PHP. After this class you will know how to:
Write SQL select all statement and Execute it.
Hold the result in an array and alongside a response code and message.
JSON Encode that result into a JSON Object and print it out for the client.
In this class we write one method that will do for us both search and pagination in mysql. After this class you will be able to:
Receive search Query and Pagination parameters from the client.
Apply these into a SQL statement, against multiple columns as for the search.
Return a response to the client based on his search and pagination requests.
This class is all about our value resources. These resources include:
Colors - many color definitions in their Hex format. We will use these in several places in our app like toolbars and backgrounds.
Strings - The static strings like the app name.
Styles - I tell you how to create custom styles by deriving from existing styles.
Arrays - To hold our array of colors. We will use this array in our adapter to set random backgrounds to our material letter icon.
The video tells you the objectives we will aim to achieve practically. That is am showing you the part of the app that this section will allow us create.
This is a preview of this section's Objectives, visually. Basically the splash screen we will be creating and how it works visually.
After this class you will learn:
Load animations using the static loadAnimation method of the Animation class.
How to apply the top to bottom and fade animations to imageview and textview respectively.
How to sleep a thread for a custom amount of time then open our dashboard page.
I had told you that we will be performing CRUD operations. These operations I said are very fast and work smoothly. I said we are using Retrofit as our HTTP Client. This is a preview of how those operations work visually in this app before we sink into coding them.
We first need to define our model class. This is our data object or java bean if you like. Here I show you how to:
Make a class/object serializeable using the Serializeable interface in the java.io package.
I explain why we are making it serializeable.
I show and explain the @SerializedName attribute, and why we decorate our model fields with it.
We code this interface to define methods that will act as our RestAPI methods. We use special Retrofit attributes to designate them HTTP request types. These method include:
Method for retrieving data via HTTP GET request.
Method for inserting data via HTTP POST request.
Method for updating data via HTTP POST request.
Method for deleting data via HTTP request.
Method for searching and pagination data via HTTP POST request.
We pass them fields to be sent to the server, however they are abstract and we use special Retrofit attributes to empower them.
Am spending these 9 minutes showing you visually some of the features our utility methods will perform for us. Those methods will be static will be re-usable throughout the application. This saves us time and from typing repetitive code.
- Be able to use android studio
LATEST PROJECT - Retrofit CRUD Multipart Image Upload/Download
Making any type of Software is all about data manipulation, be it pixels, images, text. Being able to write to and read from a database is therefore of paramount importance if you desire to create any meaningful app. Unfortunately there are surprisingly not many android tutorials online that give you an all in one solution for this.
I have been making apps for several NGOs here in Nairobi,Kenya and mostly I use MySQL, sometimes Firebase. Hence I have decided to produce a course to make working with MySQL and performing HTTP requests as easy as possible yet robust enough to be used in production.
Main Things You Will Learn
This course aims to teach you the following:
How to Perform all CRUD operations against MySQL: INSERT SELECT UPDATE DELETE.
How to perform a fast server side search and pagination.
How to use retrofit as all in one solution HTTP Client to make HTTP Requests in the background thread.
How to write Object Oriented quality PHP code to perform CRUD, search and pagination for students coming from Java background who find most PHP code in the web weird and dirty looking.
How to design and incorporate splash screen, dashboard, detail pages, data entry pages and listing pages into a an app.
How to Create a reusable real world app template that can be modified by inexperienced programmers.
The process of coding a full app in realtime.
My Style of Teaching
I have done many tutorials in YouTube in Java,Android and C# mainly, so am able to take students through a full course, covering everything, emphasizing important part yet moving at an amazing peace.
My courses assume no experience at all in app creation. Maybe my only assumption is that you can install android studio. Hence beginners can find this course very important. Intermediates can also benefit from this course as we cover several intermediate topics like Making HTTP requests and achieving pagination and search highlighting.
We code line by line and at the same time narrate and explain. We explain method by method.
What Can I create after this course?
Any app that involves CRUD. Your imagination is your limit.
For example recently I have used this template to create for a client an app. I will also be using this as a template to create other mysql apps as well as Firebase. Hence if you follow this course keenly, you will be able to create any type of app that involves CRUD.
Your app will be able to perform reliably in production. Your app won't crush as we have handled exceptions reliably. For example if there is no connection or user enters wrong data. A beautiful dialog gets shown to the user informing of him of the error.
The app will be very fast, no matter how many hundreds of thousands or millions of rows you have. This is because the app doesn't download all data at once. Instead short HTTP requests are made as the user scrolls through the recyclerview. The pagination takes place at the database engine level which is heavily optimized. The client downloads just a small chunk of data weighing a few bytes.
Your users will be able to take advantage of a search feature that doesn't slow your app. This because the search also occurs at the database level. This is a multi-column search, hence you can add as many columns in as you want. I have used two columns as an example in this app.
What if I don't know PHP? How will I maintain the app?
Well you are in luck. The PHP code is the easiest to understand code you will ever find especially if you are a Java/C#/Python developer. It's completely Object Oriented and is written in a single file. That file has only two classes. One class where you add the database credentials and the other class performs all the CRUD operations. All you will need to do is replace the table name and database name.
What Technologies does this course teach and Why?
The technologies that we use to create this simple app. And we cover them in a practical manner by coding.
We use it as our HTTP Client. It takes advantage of GSON as a dependency, using it to map our JSON data to our model classes. Thus this saves us from having to use JSONArray and JSONObjects to parse our JSON data.
Moreover Retrofit allows us uniquely map our HTTP requests using an interface. This gives us a higher level of abstraction and makes our code maintenable and clean.
We use it's enqueue method to queue and asynchronously send our HTTP requests. Thus we are liberated from having to deal with AsyncTasks here and there.
Retrofit also allows us abstract our response from the server easily in a response model class. Moreover handling of Failure is abstracted away for us, thus we only have to log or show the exception message. No more try--catch blocks.
It's the most powerful adapterview in android. It's more powerful and flexible than ListView. We rely on it's onScroll events to do our pagination.
We will use it almost all our upcoming courses.
It's great and beautiful. It allows us show an image on top. It gives our app material design feel.
Rather than showing exceptions and warnings in toasts, we use the lovely dialogs. I will use this library in many of my upcoming courses. It's beautiful and is easy to wrap in a utility method that can then be invoked from anywhere.
Moreover it gives almost 4 dialog options: info,single-choice,multi-choice and input. It allows us easily align the dialog contents, control number of buttons shown, assign custom dialog images and handle onclick events.
For your app to dominate play store you need the app to feel and taste nice. Fonts will make massively help with that. However not old fonts like sans serif and Times New Roman. We need custom fonts. Those you can download from the web.
Calligraphy is the best custom font library. I show you how to use it to load any font throughout your app or in individual widgets.
Do you provide support?
Obviously. I come from a YouTube background so am used to providing support to my students. I also welcome suggestions to improve myself as I enjoy learning, sharing and growing.
- Beginner and Intermediate Android students
- Students who want a reusable template to create full app