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 to add, I will try to add this later.
One more thing, Here, I am sharing the link of the best resources to learn these topics on the internet. If you face any issue, feel free to contact me. I would love to help.
Here it is: (Java)
- Java Basics: This course provides complete coverage of the Java programming language and serves as a strong foundation for all Java-based development environments including client-based, server-side, and Android. (https://www.pluralsight.com/courses/java-fundamentals-language)
- Collections in Java: Learn why you would want to use collections instead of arrays and understand the power of Lists, Sets, and Maps. https://www.pluralsight.com/courses/java-fundamentals-collections
- API Handling in Java: The Reflection API brings class and object introspection to Java, on top of which Spring and Hibernate are built. This course covers object creation, field modification, and method invocation, as well as Method and Var, handles for improved performances. (https://www.pluralsight.com/courses/java-fundamentals-reflection-api-method-handles)
- Object-Oriented Programming in Java: This course will teach you important techniques of object-oriented design that help develop highly flexible and maintainable designs, even in the most complex business domains. Your code will never look the same again after watching this course. (https://www.pluralsight.com/courses/object-oriented-programming-java)
- HttpClient in Java: With Java’s HttpClient API you can easily perform HTTP calls. It’s a modern API supporting HTTP/1.1, HTTP/2, and WebSockets. This course shows how to work with HttpClient in a practical manner, and also explores some advanced features. https://www.pluralsight.com/courses/java-fundamentals-httpclient
- Knowledge about JDBC(Java core libraries): In this course, you will learn how to read and write data directly to a relational database using the JDBC API — a must-have skill for developing enterprise Java applications. (https://www.pluralsight.com/courses/java-core-libraries-jdbc)
Android:
- Android Basic: Start learning the skills necessary to become a successful Android developer by developing your understanding of Android application development and the creation of interactive user experiences with Android Activities. (https://www.pluralsight.com/courses/android-application-basics-understanding)
- Explore Android Studio: This course provides a detailed look into using Android Studio to develop Android applications. https://www.pluralsight.com/courses/exploring-android-studio
- Android Intermediate: Start learning the skills necessary to create Android apps that provide the kind of rich, high-quality, and engaging experience users expect. (https://www.pluralsight.com/courses/android-enhancing-application-experience)
- Learn to use SQLite: Persistent data storage is at the heart of most modern applications. In this course, you will learn how to use SQLite, the most widely used persistent data storage solution for Android. (https://www.pluralsight.com/courses/android-managing-app-data-sqlite)
- Learn about Notification and Content Provider: Android allows apps to extend beyond the reach of their traditional boundaries. In this course, you’ll learn how to capitalize on these capabilities through the use of Content Providers, notifications, and PendingIntents. https://www.pluralsight.com/courses/android-exposing-data-information-outside-app
- Android Advance: Android provides a powerful threading model and rich background execution capabilities. In this course, you’ll learn how to leverage these capabilities through the use of AsyncTask, Handlers, Services, Job Scheduler, Broadcast Receivers, and more. https://www.pluralsight.com/courses/android-leveraging-power-platform
- Android with Firebase: This course will teach you how to use Firebase within your app so that you can build great full-stack apps quickly and follow best practices. (https://www.pluralsight.com/courses/android-app-android-studio-firebase)
- Android Store for libraries, projects, and tool: https://mindorks.com/android/store
Misc:
- API Marketplace: https://rapidapi.com/
- Get an idea about Why User Experience(UX): https://uxplanet.org/user-experience-design-process-d91df1a45916
- Material Design: https://material.io/design/introduction/
- Color Picker: https://uicolorpicker.com/
- App UI inspiration: https://in.pinterest.com/ashandilya64/app-design/
- Android Developer blog(Official): https://android-developers.googleblog.com/
- Organization to follow in India: https://mindorks.com/
If you find this useful, do not forget to clap and share it with your friends.
For the future update, must follow.
Thanks for reading.