What do you need to know to work on industry-based projects(Android App Development)?

Firstly let’s understand one thing is why there is a difference between learning and working.
So, let’s break this and try to understand,
Usually, when you learn something, the teacher or the person who teaches does not give us any glimpse of the industry's work. And, any idea about how things work in reality or how am I gonna use this, when I will try to solve real-life problems. At that moment, we regret and fail to perform according to the requirement.
Here I explain to you in a simple manner by adopting that you will able to perform at your best.
What actually happens with real-life problems?
When you work on a real-life problem, you need to not only think from developers or the programmer's mindset but also from the consumer mindset. For example, when you use Zomato(Food ordering app), what you do as a user? What are the test cases any human being can choose to use this app? You have to think like this. I will explain more at the end of this.
Let’s focus on Android App Development.
Here I am dividing whole learning into three sections(Basic, Intermediate, and Advanced).
Basic:
- What is Android?
- How it works internally? (Linux Kernal)
- A glimpse of Android Versions
- How does Android Studio work? (All sections of the studio)
- Understanding of the files in the android studio when you open studio for the first time and how is it going to help while working on any project.
Intermediate:
- Layouts(Linear, Relative, Coordinator)
- Views(TextView, ImageView, etc)
- CardView
- Scroll(Horizontal and Vertical)
- ListView and GridView
- Toolbar and Statusbar
- EditText
- CheckBox, RadioButton, Spinner, Switch and Toggle Button
- Date and Time picker
- Theme setting and App Styling
Advanced:
- Activities
- Activity life cycle
- View Groups
- Intent
- Constraint Layout
- Navigation Drawer
- Bottom Navbar
- Swipe refresh
- Frame Layout and Table Layout
- Splash Screen
- Image Libraries(Glide, Picasso, etc)
- Custom Font
- RecyclerView(Static and Dynamic)
- ViewModel
- Adapter
- Fragment
- Fragment lifecycle
- Video and audio player
- ViewPager
- Multi-language support
- Notification
- API
- JSON and GSON
- API call(POST and GET method)
- Webservices(Retrofit, Volly, etc)
- Permission
- Accessing system services
- URIs Handling
- Uses of third party libraries for android
Java:
- Collection Framework(ArrayList, HasMap)
- Method overloading and overriding
- Constructor
- Interface
- Static
- Abstract class
- Threading
- AsyncTask
- Object
- String
Along with all these things,
You must focus on these points also:
- Database:(Shared Preference(must), SQLite(must), MySql(must), Firebase, AWS, etc)
- Software engineering: (Prototyping model(Basic), Agile or DevOps(Advance), Testing(Different types)
- UI & UX( User Interface and User experience): By getting an idea about this will allow you to relate with user response for any action for any app. And, you should learn about the design(Color theory and placement of any element, etc)
- Presentation and Client dealing skills: By having this skill, you will be able to deal with any client and present what you have built.
If I forget something here, I will try to add this later.
Thanks for reading.