Basic Android App Development Course with Kotlin, MVP, MVVM
(Online Android course in Bangladesh)
Possible starting date of the course: 13 September, 2020
Class time: 8:00 PM to 10:00 PM (Bangladesh time), weekly two days.
You don’t need any course! Learn yourself by following this guideline: https://hellohasan.com/2017/07/16/android-app-development-guideline/
Check all source code and course materials of my previous course (so you can learn it by yourself!): https://github.com/hasancse91/Android-Development-Course
Still want to attend my course? OK… go on…
Prerequisites of this course
- If you think that, “I’m not so good at programming. so I wanna be an Android Developer”, go home and take a long nap. It’s not the right time for you to learn Android.
- You must have a basic knowledge of programming and Java language. I don’t show you Java syntax without Android. You have to know the topics given below. I will never discuss things like: “how to determine the number even or odd” OR “how to find the largest value from an array?”
- You must have Basic idea about data structures and algorithms
- You must have Basic idea about Object Oriented Programming
- You should have Basic idea about Relational Database
- Personal Computer with good internet connection (8 GB RAM is preferable)
- At least 1 “Hello World” print Android App by your own (that means you have to ready your Android Studio and Emulator by yourself. I don’t help you to install Android Studio, it’s also a symbol of your seriousness!)
Required Java/Kotlin Knowledge
- Input, Output, data type
- For, While Loop
- String, List, ArrayList, Stack, Queue
- Class and Object
Are you confused about your basics of Java programming? Solve this problem in the Java/Kotlin programming language. If you can solve it, I think you are capable of this course. Otherwise it can be a time waste and money waste course for you. I don’t review your code for this problem. It’s totally your responsibility. If you can’t solve this problem but think you are capable of doing this course, I have nothing to say. You are most welcome!
Suppose you are a software developer. I’m a client. I came to you and told you about my Android App Development Course. I want to start a basic course for Android. To maintain the student information I need a software (don’t think about user interface, button blah blah blah! Just need a console. I’ll use the program from the command line).
I need to store these information of every student: Name, phone number, email, address, institute name and student ID. Student ID is an auto-generated integer number. First student ID will be 1, the second will be 2 and so on. Student ID must be unique.
Every time I’ll run the program. It should give me some options like: “Enter 1 for input a student information. Enter 2 for searching any student by his ID. Enter 3 for deleting any student by his ID… etc”. Then if I enter 1, your program should take all the information (Name, phone number, email, address, institute name and student ID) as console input and MUST STORE IT IN A TEXT FILE. You have to maintain a SINGLE TEXT FILE to store information of all students.
When I run your program to find any student information by his ID, your program should search the data from that TEXT FILE and show on console, if the student is available.
To delete a student, I’ll enter the student ID and your program must search for the id in the file and if it exists, delete it from the file.
- How to ask questions?
- How to use Google?
Chapter 1: Hello World
- Android Activity
- UI design with TextView, Layout. Use most used properties of TextView and layout
- Input with: EditText, Button, Radio Button, Checkbox
- Project: Design a calculator
Chapter 2: Some basic views, phone call and email
- Phone Call
- Project: Develop a static information App for your class. It contains all the information of your classmates. Also functional for phone call and email them.
Chapter 3: Data storage
- SQLite database
- Android default camera
- Project: Create an App for storing all information of your friends with photo. All information will be stored in SQLite database. Have to perform CRUD operations.
Chapter 4: Connect to the server
- Introduction to PHP
- Introduction to GET and POST method
- Retrofit network library
- JSON object and JSON array basic idea
- Send data to the server and receive response from the server
- Scraping data from web page using JSOUP library
- Project: Login and registration from App, connecting PHP backend and data storing on remote MySQL server. Edit user information from the app.
Chapter 5: Material Design
- Idea of material design
- Navigation drawer
- Floating Action Button (FAB)
- Pull to refresh (Swipe refresh)
- Project: Develop a TO DO list App using material design. Implement Navigation drawer, fragment, FAB and pull to refresh. Users can store data in local storage or can upload to the server.
Chapter 6: Multimedia
- Introduction to background service
- Play an audio file in as a background service
- Play a video file
- Project: Develop an App to manage your favorite audio, video of your device. All of audios and videos can be played using the App.
Chapter 7: Git
- Introduction to VCS
- Introduction to Git
- Introduction to GitHub and BitBucket
- Some basic commands like initialization, add remote, commit, push, pull etc.
Chapter 8: Firebase
- Firebase analytics
- Firebase Crash Reporting
- Firebase push notification using PHP backend
Chapter 9: GPS
- Get latitude and longitude
- Place a marker of current location on Map
- Find city name or country name using Reverse GeoCoding
Chapter 10: Architecture (MVP, MVVM)
- Concept of MVP
- Code example of MVP
- Concept of MVVM
- Code example of MVVM
Chapter 11: App distribution
- App build in release mode
- Publish App to Google Play Store
- Maintenance and update of existing App
Some other topics
- Web scraping with jsoup
- ADB tool
- ProGuard tool
Point to be noted
- I might not know each and everything of android programming, as it has a vast range of topics. But I will teach the basics to start with and how to grow from that point
- It’s not a certification course anymore.
- After this course you might not get any JOB instantly. You need to practice more (may be 6-12+ months)
- This course outline is not final. It can be expanded or reduced. Depends on your capabilities. If all of you are quick learners and hard workers we can play with more and more topics. Believe me, I love to teach and enjoy this work a lot, if learners are dynamic and enthusiastic about learning.
- There are some project ideas in outline. This is not final. It can be changed at any time. Don’t think that if you are stuck in any project then I’ll write your code to complete it. Sometimes I’ll give you some keywords or topic names. Your job is to research using them. I’m a full time job holder. So it’s difficult to help you online. I’ll try but can’t give you a word for online support over the week. But I’ll teach you how to find a solution using Google! Some projects you can’t complete within time. Don’t worry! If you finish it later it’s ok.
Number of seats: Minimum 8, maximum 15
Course Fee: 15,000 BDT (+bKash charge)
It’s absolutely FIXED and the full amount has to be paid in ADVANCE.
(please don’t ask me for any type of concession or installments. I have a very bad experience about installment payment!). I prefer bank transfer because you’ll get a strong evidence of this payment and it’s important for my transparency.