Android
volley
HTTP lib that makes networking for android apps easier and faster
viewmodel
a class that is responsible for preparing and managing the data for an activity or fragment. manages data for the UI
thread
a component that does some type of execution within a program
collection
a group of individual objects represented as a single unit
rxjava
a library for composing asynchronous and event-based programs using observable sequences for the JVM
fragments
a piece of an application's user interface or behavior that can be placed in an Activity which enable a more modular activity design. It will not be wrong if we say a fragment is a kind of subactivity.
method-overloading
a single method that performs different functions depending on the context in which its called
inheritance
allows a new class to adopt the properties of another
content providers
allows applications to publish and share data with other applications
notifications manager
allows apps to send and display alerts/notifications to the user
view system
an extensible set of views used to create application user interfaces
api level
an integer value that uniquely identifies the framework API revision offered by a version of the android platform
service
application component representing either an app's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other apps to use.
espresso
automatically synchronizes your test actions with the UI of your app. -ensures that your activity starts before your tests run
view
basic building block for UI components
view object
basic building block for ui
finally
block that contains all the crucial statements that must be executed whether an exception occurs or not
gradle
build system that is used for android to automate building, testing and development
application components
building blocks of android apps. -components are loosely coupled by the application's manifest file that describes each component and how they interact
intents
carries information that the android system uses to determine which component to start
method-overriding
child class can use oop polymorphism concept to override method of its parent class
lifecycle
class that holds information about the lifecycle state of a component (e.g. activity/fragment) and allows others to observe this state
bundle
collection of data stored as a key/value pairs, to pass info from one activity to another.
modules
collection of source files and build settings that allow you to divide your project into discrete units
val
constant variables and cannot be assigned multiple times, can only be initialized a single time. -immutable variable in kotlin
activity manager
controls all aspects of the application and activity stack
livedata
data holder that can be observed within a given lifecycle
async task
designed to be a helper class around thread and handler and does not constitute a generic threading framework. - computation that runs on a background thread and whose result is published on the UI thread.
activities
dictate the ui and handle user interaction to the device screen
relative layout
displays child views in a relative position
grid layout
displays items in a two-dimensional, scrollable grid
list layout
displays list of scrollable items
?:
elvis operator, evaluates the left expression and will return it if its not null, else will evaluate the right side of the expression
absolute layout
enables you to specify the exact location of its children
extension functions
extends the functionality of classes without having to touch their code
navigation
framework for navigating between 'destinations' within an android app. -provides a consistent api whether destinations are implemented as fragments, activities or other components
var
general variable and can be assigned multiple times. -mutable variable in kotlin
table layout
groups views into rows and columns
services
handle background processing associated with the application
broadcast receivers
handle communication between android operating system and applications
content providers
handle data and database management issues
okhttp
how we exchange data and media -makes stuff load faster and saves bandwidth
coil
image loading library backed by kotlin coroutines
glide
image loading library focused on smooth scrolling
picasso
image loading library with minimal memory use, also includes automatic memory and disk caching
event listeners
interfaces in the view class that contains a single callback method. -the method will be called when the view to which the listener has been registered is triggered by user interaction with the item in the ui
gson
java library that can be used to convert java objects into their JSON representation (vice-versa)
encapsulation
keeping details (like data and procedures) together in one part of a program so that programmers working on other parts of the program don't need to know about them.
intent extras
key/value pairs in a bundle
linear layout
layout that aligns all children in a single direction, vertical or horizontal
work manager
makes it easy to schedule deferable, asynchronous tasks that are expected to run even if the app exits or device restarts
mockito
mocking framework used for testing
mvvm
model, view, view model.
moshi
modern JSON serialization tool, allowing you to put into annotations for a more fine grained/contextual deserialization.
implicit intent
one in which you do not have the name of the target component, but have a general action to perform
singleton
only a single instance of a class is required to control the action throughout the execution
frame layout
placeholder on screen that you can use to display a single view
event listeners registration
process by which an event handler gets registered with an event listener so that the handler is called when the event listener fires the event
oop
programming paradigm that is based on the concept of "objects", which contain data, in the form of fields and code
resource manager
provides access to non-coded resources such as strings, color settings and user-interface layouts
infix notation
provides more readability to a function similar to other operators like in , is , as
inline
requests the cpu to not allocate any memory for the function and simply copy the body of that function at the calling place
?.
safe calls, or another way of using a nullable property.
data class
simple way to represent, encapsulate and move information around
access modifier
specify the scope of a data member, method, constructor or a class
lateinit
stands for late-initialization and is used when you are sure a variable wont be null or empty and will be initialized before you use it.
view group
subclass of view, provides invisible container that hold other views or other view groups and define layout properties
jetpack
suite of libraries, tools and guidance to help write high quality apps easier
databinding
support library that allows you to bind UI components in your layouts to data sources in your app using declarative format rather than programmatically
junit
testing framework for java
roboelectric
tests that run inside a sandbox, which allows the android environment to be precisely configured to the desired conditions for each test
main thread
the thread that begins running immediately as soon as the program starts up
try/catch
try: allows you to define a block of code to be tested for errors while being executed. catch: allows you to define a block of code to be executed, if an error occurs in the try block
dalvik virtual machine
type of virtual machine specifically designed for android. -allows every android app to run on its own process, with its own instance on the dvm.
retrofit
type-safe HTTP client for android and java that makes it easy to consume JSON or XML data which is parsed into plain old java objects
!!
used explicitly to tell the compiler that the property it is not null, if it is null, throw a null pointer exception
coroutines
used predefined thread pools and smart scheduling. -lightweight threads
events
useful way to collect data about a users interaction with interactive components of applications
polymorphism
using a reference to a parent class to affect an object in the child class
lazy
value gets computed only upon first access
ten
version 10
lollipop
version 5
marshmallow
version 6
nougat
version 7
oreo
version 8
pie
version 9
event handlers
when an event happens and we have registered an event listener for the event, event listener calls event handlers, which is the method that actually handles the event.
explicit intent
you know the target of that intent. already know the fully qualified class name of that specific activity