Full Stack Android Development

Full Stack Android Development
Duration: 6 months;

Why You Should Learn Android Development:
A great reason for you to learn android app development and programming is that it is a growing market. The number of smartphone users all over the world is increasing rapidly, and there are only two major players in the Smartphone Industry. The Demand for Android App Developers is High. There are several organizations and individuals out there who have ideas for android apps but do not have the necessary skills to turn those ideas into reality. The demand for android app developers is therefore at an all-time high.
Businesses want to reach out to their customers, individuals want to make money, brands want to increase their visibility, organizations want to increase awareness, and all of that can easily be achieved through mobile apps.

Technologies: Android, Java, Kotlin, Flutter, React Native, Xamarin
Getting Started
● Fundamentals of Computer Science
● Introduction to android ecosystem – Android Studio,
● Java, OS The history of Android and architectural
● framework of Android Downloading and installation
● process of Android SDK
● The process of creating an Android application
● The fundamentals of Android application and the
● composition of Android applications framework
● and pre-existing components and Preferences
● Shared Preferences Storage Structure and the
● Android File System and Notifications
● Create a simple one screen app reading hello world
● Test the app in AVD Android virtual device and
● physical devices Learning the various controls and
● their properties in layouts
● Prototyping using Figma
● Introduction to Activities
● Create multiple Activities
● Introduction to the activity life-cycle
● Images, Videos & Sounds

Tools and Software
1. IDE (Android Studio)
2. Java Development Kit (JDK)
3. Design Mockup (Figma)
4. 3rd Party Terminal
5. Git bash
Java –
● Intro to Java
● Java Language Basics – Understanding the syntax
● Variables
● Operations on Variables
● Arrays and Lists
● Arrays & List Operatins
● If & Switch Statements
● While Loops
● For Loops
● Functions Itro
● Parameters & Return Values
● Classes & Objects IntroSuperclass & Subclass
● Static Variable & Axix Modifiers
● Kotlin
● Flutter
● React Native
● Xamarin
Threading, asyncTask –
● Threading in android apps
● Difference between services and loaders
● Carrying background tasks via an intent service
● Carrying out periodic tasks using a job scheduler
● Implementing an asyncTask loader

Course Outline for Full Stack Android Development
● Explain Android
● Explain the history of Android
● Describe the architectural framework of Android
● Explain the downloading and installation process of Android SDK
● Explain the process of creating an Android application
● Explain the fundamentals of Android application
● Explain the composition of Android applications framework
● Explain communication components
● Explain pre-existing components
● Explain Preferences
● Explain Shared Preferences Storage Structure
● Explain the Android File System
● Explain Notifications
● Explain the process to create the UI for Android applications
● Describe the views, layouts, UI components, styles and themes
● Explain the procedure for handling user events
● Explain the use of adapters
● Identify the different types of adapters
● Describe the advanced and complex UI Components
● Explain the use of custom dialogs
● Explain and create Custom Widgets
● Explain and use Material Design Philosophy
● Explain the use of graphics in Android
● Explain animation
● Explain OpenGL and OpenGL rendering
● Explain playing of audio and video with Media Player
● Explain the process of capturing image and video using camera
● Explain the process of creating a live wallpaper
● Explain the process of saving and loading preferences.
● Explain persistence of data to file
● Explain external storage
● Explain internal storage
● Explain SQLite Database
● Explain the process of storing and retrieving data from the database
● Explain Content Providers
● Make and use content providers
● Explain Resources and assets
● Explain services
● Explain service lifecycle
● Describe broadcast receiver and its working
● Explain filters
● Explain intent matching and its rules
● Explain filters in manifest file and broadcast receivers
● Explain API and its uses
● Explain Google API
● Explain location based service
● Explain and use Web Services
● Explain standards for Web Services Communication
● Use third party API
● Create Web Services
● Understand the correct use of Web Service
● Explain and use Text to Speech and Voice Recognition
● Explain Bluetooth, Network, Wi-Fi, and NFC
● Explain the process of using Bluetooth
● Explain network management and Internet connectivity
● Explain working with Wi-Fi Explain working with NFC
● Explain Telephony
● Explain Telephony Manager
● Explain SMS
● Explain the process of sending SMS messages programmatically from within your application
● Explain the process of receiving incoming SMS messages
● Explain SIP and VoIP
● Use the SIP Framework to make a VoIP application
● Explain various types of Sensors Use Motion Sensors
● Use Position Sensors
● Use Status Sensors
● Explain Context aware services based on sensor information
● Explain the requirement for Google Play Store
● Explain the different versions and feature set
● Explain the share of Android in the market
● Explain different kinds of devices available in the market
● Describes the making of an .apk file
● Explain the process of publishing the .apk file in Google Play Store
● Explain the best practices to be followed
● Explain good marketing and promotion strategies
● Identify the updated features of Android Studio 3.0
● Explain the updated and new features of Android 6.0 Marshmallow
● Explain material design
● Describe the material design environment elements
● Describe various material design elements
● Explain the AIDL Interface
● Explain how to create an AIDL file
● Explain how to implement the interface
● Explain the process of communication through IPC
● Explain how the IPC method is invoked
● Describe app components
● Explain the process to install the NDK
● Explain the steps to create and test a sample native app
Firebase DB
● Introduction to Firebase Database
● Firebase Integration
● Firebase Auth using Email/Password
● Firebase Auth with Phone number
● Insert strings into Firebase real-time database
● Inserting custom objects into the firebase database
● Upload images to firebase Android
● Edit and update date from Firebase
● Search data from Firebase
● Delete data from Firebase
● Displaying lists on a recycler View
● Handling clicks on a recycler View
Firebase (more) –
● Performing firebase analytics
● Setting up the App Bar
● Handling the click Events of Menu items on the
● App bar
● Placing Home button on App Bar
● Placing Search Action View on App Bar
● Filter Recycler View using Search View on App Bar
● Introduction to Android Notifications
● Create a simple Notification
● Create a Notification Channel
● Set the notification’s tap Icon
● Delaying display of notifications using the alarm manager
● Using BroadCast receivers with notifications

APIs –
● Camera API
● Payment APIs (Paypal & Mpesa)
● Google Maps APIs
● etc

Activities –
● Activity 1: Build a Chat App like Whatsapp
● Activity 2: Build a Twitter Clone
● Activity 2: Build an Instagram Clone
● Activity 2: Build an Uber Clone

Activities & Fragments –
● The process to create the UI for Android applications
● Describe the views, layouts, UI components, styles and themes
● The procedure for handling user events and the use of adapters
● Identify the different types of adapters and advanced and complex UI Components
● The use of custom dialogs and create Custom Widgets
● Uses of Material Design Philosophy and the use of graphics in Android
● Animation and OpenGL and OpenGL rendering
● Playing of audio and video with Media Player and the process of capturing image and video using camera
● The process of creating a live wallpaper and the process of saving and loading preferences.
● Create a simple user interface with a floating action button and a bottom navigation view
● Send string to another activity through intent
● Enable UP Navigation for your Android App
● Create a Navigation Drawer
● Add menu items for the Navigation Drawer
● Actionbars & Tabs
● Introduction to Fragments
● Add Fragments to an Activity using XML
● Add a fragment to an Activity at Runtime
● Enable Fragment backward navigation using back Stack
● Fragment Activity communication
● Fragment to Fragment Communication
● Implement Swipe Views using View Pager
● Swipe View using Tabs

Side technologies
● Version control
● a. github
● Command line
● a. npm / yarn
● b. git
● c. navigation
● 3. API & REST

Fundamentals of Conversational AI
1. Introduction
2. Setting up your account
3. Build your first chatbot in 15 minutes
4. Small talks
5. Adeep dive into Intents
6. Prebuilt Agents
7. Making your chatbot smarter with knowledge

Base
8. Multichannel Integration
9. Entities
10. Advanced Intents
11. Webhooks for DialogFlow Chatbot

Data and API
1. Explain persistence of data to file
2. Explain external storage
3. Explain internal storage
4. Explain SQLite Database
5. Explain the process of storing and retrieving data from the database
6. Explain Content Providers
7. Make and use content providers
8. Explain Resources and assets
9. Explain services
10. Explain service lifecycle
11. Describe broadcast receiver and its working
12. Explain filters
13. Explain intent matching and its rules
14. Explain filters in manifest file and broadcast receivers
15. Explain API and its uses
16. Explain Google API
17. Explain location based service
18. Explain and use Web Services
19. Explain standards for Web Services Communication
20. Use third party API
21. Create Web Services
22. Understand the correct use of Web Service
23. Explain and use Text to Speech and Voice Recognition
24. Explain Bluetooth, Network, Wi-Fi, and NFC
25. Explain the process of using Bluetooth
26. Explain network management and Internet connectivity
27. Explain working with Wi-Fi Explain working with NFC
28. Explain Telephony
29. Explain Telephony Manager
30. Explain SMS
31. Explain the process of sending SMS messages programmatically from within your application
32. Explain the process of receiving incoming SMS messages
33. Explain SIP and VoIP
34. Use the SIP Framework to make a VoIP application
35. Explain persistence of data to file
36. Explain external storage
37. Explain internal storage
38. Explain SQLite Database
39. Explain the process of storing and retrieving data from the database
40. Explain Content Providers
41. Make and use content providers
42. Explain Resources and assets
43. Explain services
44. Explain service lifecycle
45. Describe broadcast receiver and its working
46. Explain filters
47. Explain intent matching and its rules
48. Explain filters in manifest file and broadcast receivers
49. Explain API and its uses
50. Explain Google API
51. Explain location based service
52. Explain and use Web Services
53. Explain standards for Web Services Communication
54. Use third party API
55. Create Web Services
56. Understand the correct use of Web Service
57. Explain and use Text to Speech and Voice Recognition
58. Explain Bluetooth, Network, Wi-Fi, and NFC
59. Explain the process of using Bluetooth
60. Explain network management and Internet connectivity
61. Explain working with Wi-Fi Explain working with NFC
62. Explain Telephony
63. Explain Telephony Manager
64. Explain SMS
65. Explain the process of sending SMS messages programmatically from within your application
66. Explain the process of receiving incoming SMS messages
67. Explain SIP and VoIP
68. Use the SIP Framework to make a VoIP application
69. Explain the steps to create and test a sample native app