Core java with Android and Kotlin
While many languages can be used to build Android apps, Java is the language Google motivate developers to use. However, its not exactly the same as the Java you may have encountered on other platforms. There are some subtle differences and peculiarities and its important for you as an Android developer to get your head around them.
J2SE (JAVA 2 STANDARD EDITION) INTRODUCTION To JAVA
- Understanding Requirement: why JAVA
- Why java important to the internet
- JAVA on LINUX PLATFORM
INTRODUCTION TO JAVA VIRTUAL MACHINE
- Java Virtual machine Architecture
- Class loading process by class loaders
- Role of Just In time compiler (JIT)
- Execution Engine
- System Loader
- Role Of Just In Time Compiler (Jit)
- Execution Engine
AN OVERVIEW OF JAVA AND BUZZWORDS
- Data Types , Variables ad Arrays
- Operators
- Control statements
- Object oriented paradigms
- Abstractions
- The Three OOP Principles:
- (Encapsulation, Inheritance, Polymorphism)
JAVA CLASSES AND OOP IMPLEMENTATION
- Class fundamentals
- Commands line arguments
- Learning Static Initializer
- Declaration of objects
- Instance variable Hiding
- Overloading and Overriding of Methods
- Understanding of Access Controls (private, public and protected)
- Learning Nested and Inner classes
- Dynamic method Dispatching
- Using Abstract classes
- Using final to prevent Overriding & Inheritance
- Garbage collection
PACKAGES AND INTERFACES
- Defining a package
- Understanding CLASSPATH
- Access Protection
- Importing packages
- Defining and Implementing interfaces
- Anonymous classes
- Abstract classes Vs Interfaces
- Adapter classes
EXCEPTION HANDLING
- Fundamental of Exception handling
- Types of Exceptions
- Learning exceptions handlers
- Try and Catch
- Multiple catch Clauses
- Nested Try statements
- Throw , throws and finally
- Creating custom exceptions
- Assertion
STRING HANDLING
- Learning String Operation
- Learning character Extraction
- Learning string Comparison
- Understanding string Buffer Classes
- String builder class
- Creating Immutable Class
NEW IN JDK 5/6/7
- Premain method , Object size
- Generics
- Annotations
- Vargs
- Static Import
- For each
- String in which
WINDOWS PROGRAMMING Swing & AWT
- Introduction to JFC
- Controls
Event Delegation Method
- Event Classes
- Event listeners
Multi threaded Programming
- The java thread model
- Creating a thread: Extended Thread and Implementing Runable
- Creating multiple Thread and Context Switching
- Synchronization: methods and statements
- Inter thread Communication
- Thread local
- Dead lock
- Threadpool executer class
- Shutdown hookup
- Re-entrent locking
- The java thread model
- Creating a thread: Extended Thread and Implementing Runable
- Creating multiple Thread and Context Switching
- Synchronization: methods and statements
- Inter thread Communication
- Thread local
- Dead lock
- Threadpool executer class
- Shutdown hookup
- Re-entrent locking
Introduction to I/O streams
- File handling
- Binary Streams
- Character stream
- Serialization
- Scanner
- Stream tokenizer
- String tokenizer
- GzipOutStream class
- Data Encryption & decryption
NETWORKING
- URL, InetAddress
- Socket And Server Socket
- Datagram socket
- Socket factories
Reflection API
- Determining the class of an object
- Getting information about classes modifier, fields, methods, constructor, and super classes
- Finding out constant and method declaration belong to an interface
- Creating an instance of a class whose name is not known until runtime
- Invoking a method on an object if the method is unknown until runtime
- Creating a new array whose size and components type are not know until runtime
- Invoking private member of a class
- Getting and setting value of an objects field if field name is unknown until runtime
COLLECTION FRAMEWORK
- The Collection Interfaces (list , set, Sorted set)
- Accessing a Collection via an Iterator
- Working with maps
- Working with Comparators
- The Collection Algorithms
- Date and Time Handling
- COLLECTION CLASS
- Array class
INTRODUCTION TO ANDROID
- Introduction to Android
- Brief history of Android
- What is Android?
- Why is Android important?
- What benefits does Android have?
- What is OHA?
- Why to choose Android?
- Software architecture of Android
- Advantages of Android
- Android features
- Android market
- Comparing Android with other platform
- Terms and acronyms
INSTALLATION AND CONFIGURATION OF ANDROID
- Details about the software requirement
- Download and installation process of Android SDK
- How to select Android version?
- Step to create new project?
- Running your application
- Creation of new AVD
- Android studio
GETTING STARTED
- How to select Android version?
- Step to create new project
- Running Your Application
- Creation of New AVD
- Creating run configuration
- Creating your first Android activity
- List of basic sample programs
INTRODUCTIONS TO APPLICATION COMPONENTS ACTIVITIES
- Services
- Broadcast receivers
- Content providers
- Intents
- Notifications
- Activating and shutting down components
- Brief idea about manifest file
- Brief idea about activities and Task
ANDROID COMPONENT LIFE CYCLE
- Activity Life Cycle with sample program
- Service Life Cycle with sample program
ANDROID LAYOUTS
- What are views, Layouts and there classification?
- How Android Draws views and Layout?
- Classification
- Table Layout ln detail with Example
- Tab Layout ln detail with Example
- Frame Layout ln detail with Example
- Absolute Layout ln detail with Example
- Linear Layout in detail with Example
ANDROID VIEWS
- Grid View In detail With Example
- Map View In detail with Example
- Cont. Sub Topical Views
- Web View In detail with Example
- Spinner In detail with Example
- Gallery In detail with Example
- Google Map View In detail with Example
- Introduction to creating activity user with views
- Different ways of creating views Using xml
STYLES AND THEMES
- Providing resources
- Different resource file location
- Providing alternative resources
- Android finds the best matching resource
- Accessing resources
- Accessing platform resources
- Handling runtime changes
- Introduction to Jquery
- JQuery work in Android
WHAT ARE FRAGMENTS?
- Multipane & Singlepane
- Fragment Life Cycle
- Addition of Fragments
- Fragments Working without UI
INTRODUCTION TO MENUS
- How to create menus?
- Types of Android Application Menus
- Option Menu
- Expanded - In detail with Example
- Context Menu ln detail with example
- Sub Menu-In detail with example
INTRODUCTION TO DRAWERS
- Navigation Drawer
- Simple Side Drawer
- Tab Drawer
- Extra Drawer
HANDLING USER INTERACTION EVENTS
- Handling user events
- Different types of event listener
- OnClickO
- OnLongClickO
- OnFocusChangeO
- OnKeyO
- OnTouchO
- OnCreateContextMenuO
- Different types of event handler
- OnKeyDown (int, KeyEvent)
- OnKeyUp (int, KeyEvent)
- OnTrackballEvent (MotionEvent)
- OnTouchEvent (MotionEvent)
- OnFocusChanged (boolean,int,Rect)
CREATING DIALOGS
- Introduction to dialogs
- Showing and dismissing of dialog boxes
- Alert dialog In detail with example
- Progress dialog In detail with example
- Threading and handler
- Creating running applications-Events
- Creating running applications-Dialogs
NOTIFICATIONS
- Notifying Users
- Status bar Notification
- Toast Notification
- Dialog Notification
INTENTS, BROADCAST RECEIVERS, ADAPTERS AND INTERNET
- Different types of intent?
- Launching sub-activities
- What is intent filter
- Intent objects---In detail with example
- Using intents to take pictures
- Handling sub activity results
DATA STORAGE
- Android techniques for data storage
- Creating and saving shared preferences
- Retrieving shared preferences
- Storing in files
- Loading from files.
- Storing in databases.
WORKING WITH SQL LITE
- Introducing SQLite database.
- Working with Android databases.
- Using SQLite OpenHelper.
- Cursors and content values.
- Opening and closing Database
WORKING IN BACKGROUND
- Introducing services
- Creating and controlling services
- Registering a service in the manifest
- Starting, controlling, and interacting with a service
USING THE CAMERA, TAKING PICTURES AND THE MEDIA API
- Controlling the camera and taking pictures
- Playing audio and video
- Introducing the media player
- Preparing audio for playback
- Packaging audio as an application resource
- Initializing audio content for playback
- Preparing for video playback
- Playing video using the video view
- Setting up a surface for video playback
- Initializing video content for playback
- Supported video formats
- Controlling playback
- Managing media playback output
- Multimedia supported audio formats
- Recording audio and video
- Using Intents to Record Video
- Configuring and Controlling Video Recording
- Previewing Video Recording
- Reading and Writing JPEG EXIF Image Details
- Adding new media to media storage
- Using the Media Scanner
- Inserting Media into the Media Store
- Raw video manipulation
- Recording Sound with Audio Record
- Playing Sound with Audio Track
- Speech recognition
- Creating and Running and Testing
MAPS, GEO CODING AND LOCATION BASED SERVICES
- Using Location Based Services
- Working with the location manager
- Configuring the Emulator to Test Location Based Services
ABOUT ADB (ANDROID DEBUG BRIDGE)
- DDMS: Dalvik debug monitor Service
- Trace View
DATA SECURITY AND PERMISSION
- Security Architecture
- User Ids and File Access
- Using Permissions
- Declaring and Enforcing Permissions
DRAWING 2D AND 3D GRAPHICS
- Rolling your own Widgets
- Drawables
- Bitmaps
- Paint
USING BLUETOOTH AND MANAGING AND MONITORING WI-FI
- Accessing the Local Bluetooth Device
- Adapter
- Managing Bluetooth Properties and State
- Managing Device Discoverability
- Discovering Remote Devices
- Monitoring Active Connection Details
- Scanning for Hotspots
- Managing Wi-Fi Configurations
- Creating Wi-Fi Network Configurations
- Device Vibration
- Controlling device vibration
INTRODUCTION SMS AND MMS
- Using SMS and MMS in Your Application
- Sending SMS and MMS from your Application
- Using Intents and the Native Client
- Sending SMS Messages Manually
- Tracking and Conforming SMS Message
- Delivery
- Conforming to the Maximum SMS
- Message Size Sending DAT Messages
CONTENT PROVIDERS
- What is content provider
- How to access build in Content provider
- Retrieving build - in Content provider data
ANDROID TELEPHONY
- Lanching the Dialer to Initiate Phone
- Calls Replacing the Native Dialer
- Accessing phone and Network Properties & Status
- Reading Phone Device Details
- Reading Data Connection and Transfer State
- Reading Network Details
SENSOR DEVICE
- Using sensors and the sensor manager
- Introducing Sensors
- Supported Android Sensers
- Finding Sensors
- Using Sensors
- Interpreting the sensor values
- Using the compass , accelerometer and orientation sensors
- Introducing Accelerometers
- Detecting Acceleration Changes
- Creating a G-Forceometer
FURTHER ADVANCED TOPICS
- Binding Activities to services
- Prioritizing Background services
- Binding data with service
WEB SERVICES WITH ARCHITECTURE
- What are webservices
- Web service Architecture
- REST & SOAP
- Parsing Techniques JSON, XML
- Consuming WebServices
- CRUD Operations over Server
JSON
- Introduction to JSON
- Advantages of JSON over XML
- Syntax & Structure of JSON
- Why is JSON is preferred for mobile applications
- Different types JSON Parsers ,simple json , Jackson , GSON to parse the JSON
Volley Library
- Introduction Volley Library
- Volley Library Advantages
- Volley Library Components
- How to setup the Environment
- Creating Volley singleton class
- Different Types of Requests
- Adding request headers
- Handling Volley Cache
FIREBASE
- Realtime Database
- Cloud Storage
- Authentication
- Cloud Messaging
- AdMob Crash
- Reporting
GOOGLE CLOUD MESSAGING
- What is GCM ?
- GCM Architecture
- GCM Services
- Instant Messaging
- TTL (Time to Live)
- Group Messaging
- Server Communication
Integration
- Facebook Integration
- Twitter Integration
- Google/Gmail Integration
- Payment Gateway Integration
MATERIAL DESIGN
- List and Card View Shadows/ Custom Shadows
- App Bar /Action Bar
- Matterial Theme
- Adapter view and Recycler View
ANIMATION
- Clockwise
- Zoom
- Fade
- Blink
- Move
- Slide
DEBUGGING AND TESTING ANDROID APPS
- 20g Cat
- Debugger Trace View
- Monkey Runner
- UI Automator
COCOS - 2D
- Introduction to COCOS-2D
- How to setup the Environment for COCOS-2D
- COCOS-2D Components <
- CCDirector
- CCLayer
- CCNode
- CCSprite
- CCMenus Cocos-2D Actions ( CCMoveTo , CCRotateTo, CCJumpTo, CCScale , CCOrbit , CCBlink , CCFadeIn/Out …..)
- CCSequence & CCRepeat actions.
JUNIT
- Android automated testing
- Android test strategy
- How to test Android applications
- What to test on Android applications
- Testing preconditions
- User interface tests
- Which tests require an Android system to run?
- Testing standard Java classes
- Testing Java classes which use the Android
- Android test projects and running tests
- Creating a test project & Running tests
Kotlin
Kotlin for Android Development
- Introduction and Setup the environment
- Introduction
- Install java JDK
- Install IntelliJ IDEA
Variables
- Program concept
- Run first App
- Variable Concept
- Define Variables
- Var vs Val
- Input data – ReadLine
- Add Comments
- Null safety
Operations and Priorities
- Convert between Data Type
- Math operations.
- Priorites
- Increment and Decrement
- What is the Output
- Debug your Code step by step
Decision Making
- Logic statement
- Simple IF
- IF- Else
- IF- ElseIF
- Nested IF
- When
- Expression If and When
Loop Control
- Simple For Loop
- Nested For Loop
- While Loop
- Do While Loop
- Returns and Jumps
Collections and Strings
- String
- One-Dimension Array structure
- One-Dimension Array implementation
- ArrayList
- HashMap
- mapOf, Arrayof, listOf and mutableListOf
- setOf and mutableSetOf
Functions
-
Simple Function
Function Overload
Polymorphism
Global and Local Variables
Object Oriented Programming
-
What is oops
Simple Class
constructor
Inheritance
Visibility Modifiers
Overriding
Casting
super and this
interface
Abstract
Enum
Generic
Extensions
Packages
Inner and Nested Class
Lazy and Singleton design pattern
Storage||Files
-
Exceptions: Try-Catch
File Write
File Read
Multi Threading
-
Multi Threading Concept
Multi Threading example