I'm taking an onsite course on Android App Development at Dhaka, Bangladesh (see here for details course outlines: https://goo.gl/SP6yzk). I'll add all source codes of my training program is this repository. You'll find here step by step source code and topics of Android App Development training.
- ConstraintLayout
- TextView
- Button
- Click listener Java method
- Toast
- Intent (start another activity)
- ConstraintLayout
- TextView
- EditText
- Button
- Click listener Java method
- Click listener XML attribute
- Toast
- Intent (start another activity)
- Pass values from one activity to another activity
- Reusable XML layout (using
include
tag) - Using third party library (See Bengali blog post)
- ImageView with Android Piccasso Library
- SharedPreference
- WebView
- Send an E-mail using Intent
- Discussing about Singleton Design Pattern
- Discussing about Android compile and build system. Keyword: Dalvik
ButterKnife
Library to reduce boilerplate code- Phone call
- Run time permission for phone call
- Send a POST request to a PHP server and receive a response (See Bengali Blog post)
- Update UI from another class using
interface
- For signing in, send a POST request to server with user name and password
- If sign in is success, finish the login Activity and start another Activity to show user's IP address
- Send a GET request to this site. That site will send a response body of JSON with user's IP address. Set the IP address to a
TextView
- Use of mention string resources in
string.xml
file instead of hardcoded text - Use of
@OnClick
annotation ofButterKnife
library to listen any button/view click event - Check these awesome blog posts on Retrofit
- ListView - show a static string list from
<string-array>
ofstring.xml
- ListView - item click event listen
- ListView - item long click event listen
- RecyclerView - show a movie list with image (using
Picasso
Library). Data will come from server usingRetrofit
- POJO to JSON covert using Gson Library and print in Log
- Check this Bengali Blog post for
RecyclerView
andCardView
RecyclerView
- show a movie list with image (usingPicasso
Library). Data will come from server usingRetrofit
RecyclerView
- item click event listen (listen every component click event of theRecyclerView
item)RecyclerView
will be refreshable usingSwipeRefreshLayout
- Check network state (is internet available) using
ConnectivityManager
andNetworkInfo
classes before any network call - Show
ProgressDialog
when first time call to network for movie list - Pass Movie Object from
MovieListActivity
toMovieDetailsActivity
usingIntent
and show theMovie
data inMovieDetailsActivity
- Enable back button on
ActionBar
ofMovieDetailsActivity
- Enable Click Again to Exit feature in
MovieListActivity
when device's back button pressed
Activity Lifecycle
- Use of
dimen
value for widget's height-width or padding-margin instead of hardcodeddp
value - Use different
xml layout
for responsive UI AlertDialog
to show a pop up dialog
Resources:
- Android Activity Lifecycle - Android official documentation
- Activity Lifecycle - Tutorials Point
- Dimension
- Managing Screen Sizes
- Different values folder for different screens
- Supporting Different Screen Sizes - Android official documentation
- Capture image using default camera App of device
- Web scraping using JSOUP library
ProgressBar
Resources:
- Bengali Blog Post on JSOUP Library
- Android working with Camera - AndroidHive
- Android Uploading Camera Image, Video to Server with Progress Bar - AndroidHive
- Implement an Abstraction Layer for Retrofit Network call
- Android debugging
- Refactor/rename (class, variable, method etc.)
- Rename Android unique package name
- Change Launcher Icon of Android App
- Some Android Studio keyboard shortcuts
Resources:
- Bengali Blog Post on Abstraction in network layer using Retrofit
- Debug your App - Android Official Documentation
- Refactor/rename file in Android Studio
- Refactor your code in Android Studio - OneTouchCode
- Rename package in Android Studio
- Change Launcher icon
- Android Studio Keyboard Shortcuts - Android Official Documentation
- SQLite Database
- Create Database
- Create Table
- Write a record (row) into table
- Read all records from table
- Count the number of row in table
- Git
- Branching
- gitignore
Resources:
- Android SQLite Database - TutorialsPoint
- Local Databases with SQLiteOpenHelper - CodePath
- Android SQLite Database Tutorial - AndroidHive
- Git branching and Merging
- gitignore in Android Studio
- SQLite Database implementation with abstraction layer
- Create Database
- Create Table
- Write a record (row) into table
- Read all records from table
- Count the number of row in table
- Search a student by his registration number
No concrete implementation for database query. I implement here an abstraction layer for query. Activity class just call a method of an interface
and implement a callback
for query result.
Fragment
- SQLite Database implementation with abstraction layer
- Create Database
- Create Table
- Write a record (row) into table
- Read all records from
student
table and show in aRecyclerView
- Count the number of row in table
- Search a student by his registration number
- Delete a student by his registration number
- SQLite Database implementation with abstraction layer
- Create Database
- Create two tables and make relationship using
Foreign Key
ON CASCADE DELETE
implementation- Insert operation
- Read operation
- Update operation
- Delete operation
- Count table row
DialogFragment
implementation
- In App
Notification
ProGuard
to prevent reverse engineering of APK
Resources:
- Show Google Map using
SupportMapFragment
- Show user's current location on Map
Service
- to do any task in background- Get user's current location (Latitude and Longitude) from GPS using
SmartLocation
library
Firebase Analytics
Firebase Crashlytics
EventBus
Library
- Audio Player
- Service