In this modern era where computer science has become a vast domain and demand for developers has increased exponentially, every student wants to excel and extract the best knowledge of this field. When students enter college, they usually try to explore as much as possible, especially in technical domains like web development, android development, IoT, machine learning, competitive programming and many more.
I am a sophomore and talking about my journey, I have learnt a lot and aspire to learn even more. When I entered college, I had a desire to become proficient in the tech and design fields. After my first semester ended, it got ascertained that I was not inclined much towards the design stuff (I had tried 3D animation in the first semester). Although, I loved the technical domain. I was inspired by many wonderful developers who were my college mates and seniors. I had to choose between web development and android development. Reason: I had started working on HTML and CSS, but I had to quit in 3 days because I didn’t like to work on the frontend so hard (it was my personal preference), and there were so many web developers in my surroundings that my will expired very soon. So, I picked up android development as it is also in demand, and comparatively fewer developers are pursuing android development.
After six months of starting, I have made some pretty good applications, converted my imaginary ideas into reality, came 6th with my team out of 80 teams in my first-ever hackathon, and then came 9th out of 250+ teams in my second hackathon. Not bad, right? So this android development journey of mine has been pretty fruitful to me.
Where to start and pre-requisites:
If you are a newbie coder and reading this, first make sure you have completed the pre-requisites written below.
· Learn the programming basics (any basics).
· Have a good/average grip on data structures and algorithms
· Must know OOP (Object Oriented Programming).
· Endless motivation.
If completed, start with native development and use the Android Studio as a software and a programming language JAVA (although Kotlin has become the official language and is booming nowadays for native android development). Why JAVA? Since it has been around for so long, JAVA has a better community. And JAVA is very useful in placements too, and once you master JAVA, the transition from JAVA to Kotlin will be very smooth and easy.
Now, start from the very basics like building layouts, components and lifecycle of applications etc. Find a free playlist of android basics to learn or if you can afford a course that will work too and follow the official documentation provided by android studio creators Google. I will put up few resources at the end of this article (Initially, it would be hard to understand the documentation but soon enough you will get used to it if you maintain consistency).
Steps to follow (Learn every step with a new project):
- Learn and explore the Android Studio. Be comfortable with navigation and learn about the Gradle build system, manifest files, resource files, layout files, JAVA class files. Also, learn about the lifecycle of android applications.
- Try components of the Android Studio like text views, buttons, image views, toast messages, intents etc., and learn and understand the Java Activity class thoroughly and run your first basic app.
- Learn ‘Shared Preferences and data saving’.
- Practice Lists and Views (understand the concept of recycler view thoroughly).
- Create a to-do list project.
- Learn about sending data between screens and Fragments.
- Learn about Fragment operations.
- Create a good project like an information book/encyclopedia.
- Learn about Databases (how to access and save in local storage) using a room database.
- Make a photo album application.
- Access some of the features of the android devices like sending SMS, notifications, etc.
- Learn Firebase (Basically a backend provided by Google itself).
- Learn about Rest APIs, Retrofit library and start making projects which involve calling APIs and stuff you have learnt so far.
This field is endless, so keep practising and learning new things. The steps mentioned above will clear the basics.
Best Way to Learn
Learning any technical thing could be tedious and strenuous if you just keep learning it theoretically without actually applying them to projects. The most successful way to learn is to make projects of your own, those in which you are interested, and those which require skills higher than your capabilities. In such a scenario, your brain will try to accomplish the projects which you can barely think of while just learning through the course. So, open the innovative doors of your brains and let the ideas fall into your projects.
Resources to learn:
· https://www.youtube.com/watch?v=mXjZQX3UzOs&t=2974s (11-hour video on basics, Hindi)
· https://www.youtube.com/channel/UCoNZZLhPuuRteu02rh7bzsw (Coding with Mitch Youtube channel.)
· https://developer.android.com/docs (Official Documentation)
· https://www.youtube.com/channel/UC_Fh8kvtkVPkeihBs42jGcA (Coding in flow Youtube channel.)
· https://www.youtube.com/channel/UCKNTZMRHPLXfqlbdOI7mCkg (Philip Lackner Youtube channel)
IEEE-PCS Chapter, VIT Vellore