Categories

Jekyll

DLD Importent notes

DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:

In Jekyll, tutorial, Jan 11, 2024

OS Importent notes

OS

In Jekyll, tutorial, Jul 24, 2020

Network Importent notes

Computer NetworkRange of Private IP 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255

In Jekyll, tutorial, Jul 24, 2020

DLD Importent notes

DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:

In Jekyll, tutorial, Jul 24, 2020

crypto Importent notes

DES Symittric key cryptography key-64 bit/128 bit block- 64 bit key 56 bit key lenght. replace by AES has 4x16 ‘s’ block Double DES- Meet in middle attack prone. Triple Des- 5...

In Jekyll, tutorial, Jul 24, 2020

C Importent notes

C Importent notesPointersSize of pointers is fixed. Size of an array is number of elements multiplied by the type of element, that is why we get sizeof arri as 12 and sizeof arrc as ...

In Jekyll, tutorial, Jul 24, 2020

Powerful things you can do with the Markdown editor

There are lotsss of powerful things you can do with the Markdown editor

In Jekyll, tutorial, android, Jul 24, 2020

tutorial

Android - no_image

Data binding

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Dark themeDark theme is available in Android 10 (API level 29) and higher. It has many benefits: Can reduce power usage by a significant amount (depending on the device’s screen tech...

In tutorial, no_image, android, Jan 23, 2025

Android - work_manager_criteria

WorkManagerWorkManager is an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts. The WorkManager A...

In tutorial, work_manager_criteria, android, Jan 23, 2025

Android - no_image

WidgetHome screen widgets are broadcast receivers which provide interactive components. They are primarily used on the Android home screen. They typically display some kind of data an...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ViewStub

In tutorial, no_image, android, Jan 23, 2025

Android - viewmodel_lifecycle

ViewModelThe ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as scr...

In tutorial, viewmodel_lifecycle, android, Jan 23, 2025

Android - room

Room

In tutorial, room, android, Jan 23, 2025

Android - no_image

RecyclerViewThe RecyclerView class supports the display of a collection of data. You supply the data and define how each item looks, and the RecyclerView library dynamically creates t...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ProguardProguard is free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecod...

In tutorial, no_image, android, Jan 23, 2025

Android - app_signing

Play App SigningWith Play App Signing, Google manages and protects your app’s signing key for you and uses it to sign optimized, distribution APKs that are generated from your app bun...

In tutorial, app_signing, android, Jan 23, 2025

Android - no_image

Navigation componentThe Navigation Architecture Component simplifies implementing navigation, while also helping you visualize your app’s navigation flow. The library provides a numbe...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

LiveDataLiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activ...

In tutorial, no_image, android, Jan 23, 2025

Android - android_jetpack

JetpackJetpack encompasses a collection of Android libraries that incorporate best practices and provide backwards compatibility in your Android apps. The Android Jetpack components b...

In tutorial, android_jetpack, android, Jan 23, 2025

Android - content_provider

Content Provider

In tutorial, content_provider, android, Jan 23, 2025

Android - no_image

BroadcastReceiverA broadcast receiver (receiver) is an Android component which allows you to register for system or application events. Android apps can send or receive broadcast mes...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ActivityThe Activity class is a crucial component of an Android app, and the way activities are launched and put together is a fundamental part of the platform’s application model. Un...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

DataStoreJetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to sto...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Reduce your app sizeSmall app size is directly related to download success, particularly in emerging markets with poor network device connections or low network speeds. This can resul...

In tutorial, no_image, android, Jan 23, 2025

Android - data_modules

Modules types

In tutorial, data_modules, android, Jan 23, 2025

Android - no_image

What tools for multithreading do you know

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Security best practices

In tutorial, no_image, android, Jan 23, 2025

Android - module_mediator

Modularization patterns

In tutorial, module_mediator, android, Jan 23, 2025

Android - singleTop_scenario_1

What launch modes do you know?

In tutorial, singleTop_scenario_1, android, Jan 23, 2025

Android - viewbinding_vs_databinding

View binding vs Data bindingView binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a bin...

In tutorial, viewbinding_vs_databinding, android, Jan 23, 2025

Android - no_image

Serializable vs Parcelable

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Dialog vs DialogFragment

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Bundle savedInstanceState is a reference to the Bundle object that is passed to the onCreate() in an Activity. Activities have capability to restore themselves to a previous state u...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

installLocation tag

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

GradleGradle is an open-source build automation tool flexible enough to build almost any type of software. Gradle makes few assumptions about what you’re trying to build or how to bui...

In tutorial, no_image, android, Jan 23, 2025

Android - user_task_flowchart

What is background taskFor the purposes of this document, we’ll use the term “task” to mean an operation an app is doing outside its main workflow. To ensure alignment in understandin...

In tutorial, user_task_flowchart, android, Jan 23, 2025

Android - no_image

SurfaceView

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

StrictMode

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Overdraw

In tutorial, no_image, android, Jan 23, 2025

Android - compose_1

Jetpack ComposeJetpack Compose is a modern declarative UI Toolkit for Android. Compose makes it easier to write and maintain your app UI by providing a declarative API that allows you...

In tutorial, compose_1, android, Jan 23, 2025

Android - fragments

FragmentA Fragment represents a reusable portion of your app’s UI. A fragment defines and manages its own layout, has its own lifecycle, and can handle its own input events. Fragments...

In tutorial, fragments, android, Jan 23, 2025

Android - context

Context

In tutorial, context, android, Jan 23, 2025

Android - no_image

AndroidManifest

In tutorial, no_image, android, Jan 23, 2025

Android - anr_example_framed

ANR (Application Not Responding)When the UI thread of an Android app is blocked for too long, an “Application Not Responding” (ANR) error is triggered. If the app is in the foreground...

In tutorial, anr_example_framed, android, Jan 23, 2025

Android - diagram_backstack

Tasks and the back stackA task is a collection of activities that users interact with when trying to do something in your app. These activities are arranged in a stack called the back...

In tutorial, diagram_backstack, android, Jan 23, 2025

Android - no_image

taskAffinityThe taskAffinity is the attribute that is declared in the AndroidManifest file.

In tutorial, no_image, android, Jan 23, 2025

Android - slices_image_1

SlicesSlices are UI templates that can display rich, dynamic, and interactive content from your app from within the Google Search app and also in other places like the Google Assistan...

In tutorial, slices_image_1, android, Jan 23, 2025

Android - no_image

Side EffectsA side-effect is a change to the state of the app that happens outside the scope of a composable function. Due to composables’ lifecycle and properties such as unpredictab...

In tutorial, no_image, android, Jan 23, 2025

Android - paging_library_architecture

Paging libraryThe Paging Library helps you load and display small chunks of data at a time. Loading partial data on demand reduces usage of network bandwidth and system resources.

In tutorial, paging_library_architecture, android, Jan 23, 2025

Android - notification

NotificationA notification is a message that Android displays outside your app’s UI to provide the user with reminders, communication from other people, or other timely information fr...

In tutorial, notification, android, Jan 23, 2025

Android - lifecycle_states

LifecycleLifecycle-aware components perform actions in response to a change in the lifecycle status of another component, such as activities and fragments. These components help you p...

In tutorial, lifecycle_states, android, Jan 23, 2025

Android - downloadable_fonts_process

Downloadable fontsThe Downloadable Fonts feature lets APIs request fonts from a provider application instead of bundling files into the app or letting the app download fonts. Download...

In tutorial, downloadable_fonts_process, android, Jan 23, 2025

Android - cold_start

App startup timeApp launch can take place in one of three states: Cold start; Warm start; Hot start.

In tutorial, cold_start, android, Jan 23, 2025

Android - no_image

AccessibilityTry to make your Android app usable for everyone, including people with accessibility needs.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ViewCompositionStrategyViewCompositionStrategy defines when the Composition should be disposed. The default, ViewCompositionStrategy.Default, disposes the Composition when the underly...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

View BindingView binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a binding class for e...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Version catalogGradle version catalogs enable you to add and maintain dependencies and plugins in a scalable way. Using Gradle version catalogs makes managing dependencies and plugins...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Splash screen and SplashScreen libraryThe Splash Screen is the first screen visible to the user when the application is launched. This is an important screen, the user gets the first ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

SparseArraySparseArray maps integers to Objects and, unlike a normal array of Objects, its indices can contain gaps. SparseArray is intended to be more memory-efficient than a HashMap...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

RecyclerView.ItemDecorationAn ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter’s data set. This can be useful f...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Play Feature DeliveryGoogle Play’s app serving model uses Android App Bundles to generate and serve optimized APKs for each user’s device configuration, so users download only the cod...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

PendingIntent

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Parcelable

In tutorial, no_image, android, Jan 23, 2025

Android - lint_tool

LintAndroid Studio provides a code scanning tool called lint that can help you to identify and correct problems with the structural quality of your code without your having to execute...

In tutorial, lint_tool, android, Jan 23, 2025

Android - no_image

IntentAn Intent is a messaging object you can use to request an action from another app component. Although intents facilitate communication between components in several ways, there ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Intent FilterAn intent filter is an expression in an app’s manifest file that specifies the type of intents that the component would like to receive. For instance, by declaring an int...

In tutorial, no_image, android, Jan 23, 2025

Android - handler_looper_message

Handler, MessageQueue, Looper

In tutorial, handler_looper_message, android, Jan 23, 2025

Android - no_image

Foreground Services

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

FileProviderFileProvider is a special subclass of ContentProvider that facilitates secure sharing of files associated with an app by creating a content:// Uri for a file instead of a ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

DiffUtil

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Converters in RoomSometimes, you need your app to store a custom data type in a single database column. You support custom types by providing type converters, which are methods that t...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Chrome custom tabsApp developers face a choice when a user taps a URL to either launch a browser, or build their own in-app browser using WebViews.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

What do you know about Auto Backup?Auto Backup for Apps automatically backs up a user’s data from apps that target and run on Android 6.0 (API level 23) or higher. Android preserves a...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ArrayMapArrayMap is a generic key->value mapping data structure that is designed to be more memory efficient than a traditional HashMap. It keeps its mappings in an array data stru...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

App StartupThe App Startup library provides a straightforward, performant way to initialize components at application startup. Both library developers and app developers can use App S...

In tutorial, no_image, android, Jan 23, 2025

Android - pinned_shortcuts

App ShortcutsShortcuts deliver specific types of content to your users by helping them quickly access parts of your app.1

In tutorial, pinned_shortcuts, android, Jan 23, 2025

Android - no_image

App BundlesAn Android App Bundle is a publishing format that includes all your app’s compiled code and resources, and defers APK generation and signing to Google Play.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Activity Result APIsWhile the underlying startActivityForResult() and onActivityResult() APIs are available on the Activity class on all API levels, it is strongly recommended to use ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Protection levels in permission

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Sticky Intent

In tutorial, no_image, android, Jan 23, 2025

Android - view_lifecycle

View lifecycleView class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event h...

In tutorial, view_lifecycle, android, Jan 23, 2025

Android - no_image

Service vs IntentServiceA Service is an application component that can perform long-running operations in the background, and it doesn’t provide a user interface. Another application ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Main components of android applicationApplication components are the essential building blocks of an Android application. These components are loosely coupled by the application manif...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

How to support different screen sizes in Android?Android devices come in all shapes and sizes, so your app’s layout needs to be flexible. That is, instead of defining your layout with...

In tutorial, no_image, android, Jan 23, 2025

Android - fragment-a-to-b

Communicating with fragmentsTo reuse fragments, build them as completely self-contained components that define their own layout and behavior. Once you define these reusable fragments,...

In tutorial, fragment-a-to-b, android, Jan 23, 2025

Android - no_image

With the advent of Android Lollipop, the RecyclerView made its way officially. The RecyclerView is much more powerful, flexible and a major enhancement over ListView.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

@id vs @+id

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Raw folder vs Assets folder

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Room vs SQLite

In tutorial, no_image, android, Jan 23, 2025

Android - compose_phases

Jetpack Compose PhasesLike most other UI toolkits, Compose renders a frame through several distinct phases. If we look at the Android View system, it has three main phases: measure, l...

In tutorial, compose_phases, android, Jan 23, 2025

Android - modularization_dependency_graph

Android modularizationA project with multiple Gradle modules is known as a multi-module project. In an ever-growing codebase, scalability, readability, and overall code quality often ...

In tutorial, modularization_dependency_graph, android, Jan 23, 2025

Android - fragment_lifecycle

Fragment LifecycleEach Fragment instance has its own lifecycle. When a user navigates and interacts with your app, your fragments transition through various states in their lifecycle ...

In tutorial, fragment_lifecycle, android, Jan 23, 2025

Android - build_type

Build Type, Product Flavor, Build Variant

In tutorial, build_type, android, Jan 23, 2025

Android - activity_lifecycle

Activity Lifecycle

In tutorial, activity_lifecycle, android, Jan 23, 2025

Android - no_image

From the Google-android source code

In tutorial, no_image, android, Jan 23, 2025

Opps - no_image

Symmetric encryption vs Asymmetric encryptionSymmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

git pull vs git fetch

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Abstraction vs Encapsulation

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

TCP vs UDP

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

PUT vs POST

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

HTTP vs HTTPS

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

GET vs POST

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Dependency injection vs Service locatorDependency injection is a technique in which an object receives other objects that it depends on, called dependencies. Typically, the receiving ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - aggregation

Aggregation vs Composition

In tutorial, aggregation, opps, Jan 23, 2025

Opps - no_image

LivelockA thread often acts in response to the action of another thread. If the other thread’s action is also a response to the action of another thread, then livelock may result. As ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - encryption_base

Encryption

In tutorial, encryption_base, opps, Jan 23, 2025

Opps - no_image

DeadlockDeadlock describes a situation where two or more threads are blocked forever, waiting for each other. Deadlock occurs when multiple threads need the same locks but obtain them...

In tutorial, no_image, opps, Jan 23, 2025

Opps - coupling

CouplingCoupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are; the strength of the relationships between m...

In tutorial, coupling, opps, Jan 23, 2025

Opps - cohesion

CohesionCohesion refers to the degree to which the elements inside a module belong together. In one sense, it is a measure of the strength of relationship between the methods and data...

In tutorial, cohesion, opps, Jan 23, 2025

Opps - no_image

ScrumScrum is an agile project management framework that helps teams structure and manage their work through a set of values, principles, and practices. Much like a rugby team (where ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - man_in_the_middle_attack

Man in the middle attackMan-in-the-middle (MITM) attack is a cyberattack where the attacker secretly relays and possibly alters the communications between two parties who believe that...

In tutorial, man_in_the_middle_attack, opps, Jan 23, 2025

Opps - no_image

KanbanKanban is an agile framework used for project and task management. At its core are continuous improvement and just-in-time development, which allows teams to stay on top of any ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - fdd

Feature Driven Development (FDD)Feature-driven development (FDD) is an iterative and incremental software development process that follows the principles of the agile manifesto. The i...

In tutorial, fdd, opps, Jan 23, 2025

Opps - xp_lifycycle

Extreme Programming (XP)Extreme programming is a software development methodology that’s part of what’s collectively known as agile methodologies. XP is built upon values, principles,...

In tutorial, xp_lifycycle, opps, Jan 23, 2025

Opps - agile

AgileAgile software development methodologies often called Agile, preach flexibility and pragmatism in the application delivery process. This iterative software development approach d...

In tutorial, agile, opps, Jan 23, 2025

Opps - waterfall_model

Waterfall methodology

In tutorial, waterfall_model, opps, Jan 23, 2025

Opps - ssl_certificate_work

SSL certificatesAn SSL certificate is a bit of code on your web server that provides security for online communications. When a web browser contacts your secured website, the SSL cert...

In tutorial, ssl_certificate_work, opps, Jan 23, 2025

Opps - ct_components

Certificate transparencyCertificate Transparency (CT) is an Internet security standard for monitoring and auditing the issuance of digital certificates.

In tutorial, ct_components, opps, Jan 23, 2025

Opps - no_image

Certificate pinningCertificate pinning is a security mechanism used in the context of authenticating client-server connections, particularly in the context of secure communication ove...

In tutorial, no_image, opps, Jan 23, 2025

Opps - asymmetric-encryption

Asymmetric Key EncryptionAsymmetric cryptography, also known as public-key cryptography, is a process that uses a pair of related keys - one public key and one private key - to encryp...

In tutorial, asymmetric-encryption, opps, Jan 23, 2025

Opps - yagni_image

YAGNI, KISS, DRY

In tutorial, yagni_image, opps, Jan 23, 2025

Opps - no_image

URLA Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrievi...

In tutorial, no_image, opps, Jan 23, 2025

Opps - uri_syntax

URIA Uniform Resource Identifier (URI) is a unique sequence of characters that identifies a logical or physical resource used by web technologies. URIs may be used to identify anythin...

In tutorial, uri_syntax, opps, Jan 23, 2025

Opps - udp_datagram

UDPUDP (User Datagram Protocol) is a communications protocol that is primarily used for establishing low-latency and loss-tolerating connections between applications on the internet. ...

In tutorial, udp_datagram, opps, Jan 23, 2025

Opps - tcp_header

TCPThe Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented t...

In tutorial, tcp_header, opps, Jan 23, 2025

Opps - symmetric_encryption

Symmetric Key EncryptionSymmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the decryption of cipher...

In tutorial, symmetric_encryption, opps, Jan 23, 2025

Opps - soap_protocol

SOAPSOAP (formerly an acronym for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web services in c...

In tutorial, soap_protocol, opps, Jan 23, 2025

Opps - proto_buffers_types

Protocol BuffersProtocol Buffers (Protobuf) is a free and open-source cross-platform data format used to serialize structured data. It is useful in developing programs to communicate ...

In tutorial, proto_buffers_types, opps, Jan 23, 2025

Opps - osi_model

OSI modelThe Open Systems Interconnection model (OSI model) is a conceptual model that describes the universal standard of communication functions of a telecommunication system or com...

In tutorial, osi_model, opps, Jan 23, 2025

Opps - graphql_general

GraphQLGraphQL is an open source query language that describes how a client should request information through an API. In a broad sense, GraphQL is a syntax developers can use to ask ...

In tutorial, graphql_general, opps, Jan 23, 2025

Opps - no_image

What is Dependency injectionDependency injection is a technique in which an object receives other objects that it depends on, called dependencies. Typically, the receiving object is c...

In tutorial, no_image, opps, Jan 23, 2025

Opps - ci_basics

Continuous IntegrationContinuous Integration (CI) is a software development practice where developers frequently merge their code changes into a central repository, after which automa...

In tutorial, ci_basics, opps, Jan 23, 2025

Opps - no_image

SOLID Principles

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

SOAP vs RESTSOAP (formerly an acronym for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web servi...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

OOP Principles

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

git merge git merge simply remembers the history as it happened. It takes the two current versions, merge them together based on their common ancestor, fix any conflicts, and then re...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Scrum vs Kanban

In tutorial, no_image, opps, Jan 23, 2025

Opps - concurrency

Concurrency vs Parallelism

In tutorial, concurrency, opps, Jan 23, 2025

Opps - no_image

Composition vs InheritanceComposition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic beh...

In tutorial, no_image, opps, Jan 23, 2025

Librariesandroid - no_image

Dependency injection libraries

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Dagger 2Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is based on the Java Specification Request (JSR) 330. It uses code gene...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

@Binds vs @Provides@Provides, the most common construct for configuring a binding, serves three functions: Declare which type (possibly qualified) is being provided — this is the ret...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - hilt_hierarchy

HiltHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires yo...

In tutorial, hilt_hierarchy, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

RetrofitThe Retrofit library is a type-safe REST client for Android, Java, and Kotlin, developed by Square. Retrofit by default leverages OkHttp as the networking layer and is built o...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

RealmRealm includes an embedded, object-oriented database that lets you build real-time, offline-first applications. You can also use Realm’s hosted application services as a secure b...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

OkHttpOkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket; Connection pooling reduces request latency (if HTT...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - interceptors

OkHttp interceptorsInterceptors are pluggable Java components that we can use to intercept and process requests before they are sent to our application code.

In tutorial, interceptors, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

KoinA pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

KodeinKodein is a Dependency Injection library. It allows you to bind your business unit interfaces with their implementation and thus having each business unit being independent.

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Image loading libraries

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Main annotations in Dagger 2The main annotations in Dagger 2 are: @Provides @Inject @Module @Component @Singleton

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Designpatterns - no_image

Visitor patternVisitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add ne...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Design PatternsDesign patterns is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be trans...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Template methodThe template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. Thes...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Strategy patternStrategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code rece...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

State patternThe state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Singleton patternSingleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is useful when exactly one object is needed ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Service locator patternThe service locator pattern is a design pattern used to encapsulate the processes involved in obtaining a service with a strong abstraction layer. This pattern ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Proxy patternThe Proxy design pattern describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to imp...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Prototype patternThe prototype pattern is a creational design pattern. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Observer pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Memento patternThe memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback). The Memento design pattern de...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Mediator patternMediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter t...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - mvvm_android

MVVM patternModel–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the UI - rom the development of the business logic or...

In tutorial, mvvm_android, designpatterns, Jan 23, 2025

Designpatterns - mvp_android

MVP patternMVP is an architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.

In tutorial, mvp_android, designpatterns, Jan 23, 2025

Designpatterns - mvi

MVI patternMVI stands for Model-View-Intent. MVI is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

In tutorial, mvi, designpatterns, Jan 23, 2025

Designpatterns - no_image

Iterator pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Interpreter patternInterpreter design pattern specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a speci...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Flyweight patternA flyweight is an object that minimizes memory usage by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Factory method patternFactory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class o...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Facade patternFacade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can: improve the readability and usability of a...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Decorator patternDecorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Composite patternThe composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. The intent of a composite is to “com...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Command patternCommand pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Chain of ResponsibilityChain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contain...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Builder patternThe builder pattern is a design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming. The intent of the Bu...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Bridge patternThe bridge pattern is a design pattern used for “decouple an abstraction from its implementation so that the two can vary independently”. The bridge uses encapsulation, ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Adapter patternAdapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes w...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Abstract factory pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Testing - no_image

Unit testUnit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage ...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

RobolectricRobolectric is the industry-standard unit testing framework for Android. With Robolectric, your tests run in a simulated Android environment inside a JVM, without the overh...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Functional testingFunctional testing is a quality assurance (QA) process and a type of black-box testing that bases its test cases on the specifications of the software component unde...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

JUnitJUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testin...

In tutorial, no_image, testing, Jan 23, 2025

Testing - ab_testing

A/B testingA/B testing (also known as bucket testing or split-run testing) is a user experience research methodology. A/B tests consist of a randomized experiment with two variants, A...

In tutorial, ab_testing, testing, Jan 23, 2025

Testing - no_image

EspressoEspresso is an open source android user interface (UI) testing framework developed by Google. Espresso is a simple, efficient and flexible testing framework. Google released t...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

MockitoMockito is a popular mock framework which can be used in conjunction with JUnit. If you have minimal Android dependencies and need to test specific interactions between a compo...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

BDDBehavior Driven Development (BDD) is a branch of Test Driven Development (TDD). BDD uses human-readable descriptions of software user requirements as the basis for software tests. ...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Unit testing vs Functional testing

In tutorial, no_image, testing, Jan 23, 2025

Testing - test_pyramid

Test pyramid

In tutorial, test_pyramid, testing, Jan 23, 2025

Testing - no_image

Mock vs Fake vs StubIn automated unit testing, it may be necessary to use objects or procedures that look and behave like their release-intended counterparts, but are actually simplif...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

JUnit 4 vs JUnit 5JUnit 5 aims to adapt Java 8 style of coding and to be more robust and flexible than JUnit 4. One of the main ideas behind the new JUnit version is utilizing the fea...

In tutorial, no_image, testing, Jan 23, 2025

Testing - tdd

Test Driven Development (TDD)Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned i...

In tutorial, tdd, testing, Jan 23, 2025

Testassignments - no_image

Google Images Search

In tutorial, no_image, testAssignments, Jan 23, 2025

Code - no_image

Puzzle 1 - subscribeOn + observeOnOn which thread doSomething() will be executed?

In tutorial, no_image, Rx, Jan 23, 2025

Rx - flatMap

flatMap() vs concatMap() vs switchMap()

In tutorial, flatMap, Rx, Jan 23, 2025

Rx - schedulers

ObserveOn() vs SubscribeOn()

In tutorial, schedulers, Rx, Jan 23, 2025

Rx - transforming_map

map vs flatMap

In tutorial, transforming_map, Rx, Jan 23, 2025

Rx - concat

Concat vs Merge

In tutorial, concat, Rx, Jan 23, 2025

Rx - no_image

Backpressure

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Cold vs Hot Observables

In tutorial, no_image, Rx, Jan 23, 2025

Rx - utility_subscribeon

SubscribeOnSubscribeOn specify the Scheduler on which an Observable will operate.

In tutorial, utility_subscribeon, Rx, Jan 23, 2025

Rx - observeOn

ObserveOnObserveOn specify the Scheduler on which an observer will observe this Observable.

In tutorial, observeOn, Rx, Jan 23, 2025

Rx - no_image

Schedulers

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Repeat vs. Retry

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Observable types

In tutorial, no_image, Rx, Jan 23, 2025

Rx - utility_delay

Utility OperatorsA toolbox of useful Operators for working with Observables: Delay — shift the emissions from an Observable forward in time by a particular amount; Do — register an ...

In tutorial, utility_delay, Rx, Jan 23, 2025

Rx - transforming_buffer

Transforming OperatorsOperators that transform items that are emitted by an Observable. Buffer — periodically gather items from an Observable into bundles and emit these bundles rath...

In tutorial, transforming_buffer, Rx, Jan 23, 2025

Rx - math_concat

Mathematical and aggregate operatorsOperators that operate on the entire sequence of items emitted by an Observable. Concat — emit the emissions from two or more Observables without ...

In tutorial, math_concat, Rx, Jan 23, 2025

Rx - filtering_debounce

Filtering OperatorsOperators that selectively emit items from a source Observable.Debounce — only emit an item from an Observable if a particular timespan has passed without it emitti...

In tutorial, filtering_debounce, Rx, Jan 23, 2025

Rx - error_handling_catch

Error handling operatorsOperators that help to recover from error notifications from an Observable. Catch — recover from an onError notification by continuing the sequence without er...

In tutorial, error_handling_catch, Rx, Jan 23, 2025

Rx - creating_create

Creating OperatorsOperators that originate new Observables. Create — create an Observable from scratch by calling observer methods programmatically; Defer — do not create the Observ...

In tutorial, creating_create, Rx, Jan 23, 2025

Rx - conditional_all

Conditional and Boolean OperatorsOperators that evaluate one or more Observables or items emitted by Observables:All — determine whether all items emitted by an Observable meet some c...

In tutorial, conditional_all, Rx, Jan 23, 2025

Rx - combining_combineLatest

Combining OperatorsOperators that work with multiple source Observables to create a single Observable. CombineLatest — when an item is emitted by either of two Observables, combine t...

In tutorial, combining_combineLatest, Rx, Jan 23, 2025

Patterns - no_image

Visitor patternVisitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add ne...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Design PatternsDesign patterns is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be trans...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Template methodThe template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. Thes...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Strategy patternStrategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code rece...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

State patternThe state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Singleton patternSingleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is useful when exactly one object is needed ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Service locator patternThe service locator pattern is a design pattern used to encapsulate the processes involved in obtaining a service with a strong abstraction layer. This pattern ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Proxy patternThe Proxy design pattern describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to imp...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Prototype patternThe prototype pattern is a creational design pattern. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Observer pattern

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Memento patternThe memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback). The Memento design pattern de...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Mediator patternMediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter t...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - mvvm_android

MVVM patternModel–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the UI - rom the development of the business logic or...

In tutorial, mvvm_android, patterns, Jan 23, 2025

Patterns - mvp_android

MVP patternMVP is an architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.

In tutorial, mvp_android, patterns, Jan 23, 2025

Patterns - mvi

MVI patternMVI stands for Model-View-Intent. MVI is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

In tutorial, mvi, patterns, Jan 23, 2025

Patterns - no_image

Iterator pattern

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Interpreter patternInterpreter design pattern specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a speci...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Flyweight patternA flyweight is an object that minimizes memory usage by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Factory method patternFactory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class o...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Facade patternFacade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can: improve the readability and usability of a...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Decorator patternDecorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Composite patternThe composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. The intent of a composite is to “com...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Command patternCommand pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Chain of ResponsibilityChain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contain...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Builder patternThe builder pattern is a design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming. The intent of the Bu...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Bridge patternThe bridge pattern is a design pattern used for “decouple an abstraction from its implementation so that the two can vary independently”. The bridge uses encapsulation, ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Adapter patternAdapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes w...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Abstract factory pattern

In tutorial, no_image, patterns, Jan 23, 2025

Libraries - no_image

Dependency injection libraries

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Dagger 2Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is based on the Java Specification Request (JSR) 330. It uses code gene...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

@Binds vs @Provides@Provides, the most common construct for configuring a binding, serves three functions: Declare which type (possibly qualified) is being provided — this is the ret...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - hilt_hierarchy

HiltHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires yo...

In tutorial, hilt_hierarchy, libraries, Jan 23, 2025

Libraries - no_image

RetrofitThe Retrofit library is a type-safe REST client for Android, Java, and Kotlin, developed by Square. Retrofit by default leverages OkHttp as the networking layer and is built o...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

RealmRealm includes an embedded, object-oriented database that lets you build real-time, offline-first applications. You can also use Realm’s hosted application services as a secure b...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

OkHttpOkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket; Connection pooling reduces request latency (if HTT...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - interceptors

OkHttp interceptorsInterceptors are pluggable Java components that we can use to intercept and process requests before they are sent to our application code.

In tutorial, interceptors, libraries, Jan 23, 2025

Libraries - no_image

KoinA pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

KodeinKodein is a Dependency Injection library. It allows you to bind your business unit interfaces with their implementation and thus having each business unit being independent.

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Image loading libraries

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Main annotations in Dagger 2The main annotations in Dagger 2 are: @Provides @Inject @Module @Component @Singleton

In tutorial, no_image, libraries, Jan 23, 2025

Kotlin - no_image

val mutableList vs var immutableList

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Map() vs FlatMap()map() - Returns a list containing the results of applying the given transform function to each element in the original array.val numbers = listOf(1, 2, 3)println(num...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Inline class

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Init block

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Infix functionKotlin allows some functions to be called without using the period and brackets. These are called infix methods, and their use can result in code that looks much more li...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

launch vs async

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Difference between == and ===

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Data classes

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Const val

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

SequenceSequences offer the same functions as Iterable but implement another approach to multi-step collection processing.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

RangesRange is a collection of finite values which is defined by endpoints. The range in Kotlin consists of a start, a stop, and the step. The start and stop are inclusive in the Rang...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Diffrence between blocking and suspending in KotlinDifference is explained assuming there are 2 functions Function A and Function B

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

nested class vs inner classA nested class is the class that is declared inside another class, for example:```class Outer { private val bar: Int = 1 class Nested { fun foo...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

lazy vs lateinit

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

abstract class vs interface

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

What is the difference between “*” and “Any” in genericsThe type MutableList<*> represents the list of something (you don’t know what exactly). So if you try to add something to...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Destructuring declarationsDestructuring declarations, or destructuring for short, is a technique for unpacking a class instance into separate variables. This means that you can take a...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - coroutine_context

Coroutine Scope vs Coroutine Context

In tutorial, coroutine_context, kotlin, Jan 23, 2025

Kotlin - no_image

Type aliases

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Sealed classes and interfaceSealed classes and interfaces represent restricted class hierarchies that provide more control over inheritance. All direct subclasses of a sealed class ar...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

reified keyword

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Property references and :: operatorThe :: operator is known as the “member reference” or “callable reference” operator. It can be used to create a references to the following: Class ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Operator overloadingKotlin allows you to provide custom implementations for the predefined set of operators on types. These operators have predefined symbolic representation (like + o...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

object keywordThe object keyword allow you to define a class and create an instance of it in a single step. This is useful when you need either a reusable singleton instance or a one-...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

lateinitlateinit is a keyword used to define a property that will be initialized later. Unlike other properties declared with var, lateinit properties are not initialized at the time ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Functional (SAM) interfaces

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

ExtensionsKotlin provides the ability to extend a class or an interface with new functionality without having to inherit from the class or use design patterns such as Decorator. This ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Delegated propertiesThere are certain common kinds of properties, that, though you can implement them manually every time you need them, it would be helpful to implement them once and...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Data objectsWhen printing a plain object declaration in Kotlin, the string representation contains both its name and the hash of the object:```object MyObject

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

сompanion object

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

StateFlow and SharedFlowStateFlow and SharedFlow are Flow APIs that enable flows to optimally emit state updates and emit values to multiple consumers.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

JvmStatic and JvmField annotations

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

JvmOverloads annotationInstructs the Kotlin compiler to generate overloads for this function that substitute default parameter values.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - flow_entities

FlowIn coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value. For example, you can use a flow to rec...

In tutorial, flow_entities, kotlin, Jan 23, 2025

Kotlin - no_image

Coroutine JobConceptually, a Job is a cancellable thing with a lifecycle that culminates in its completion. For every coroutine that is created, a Job instance is returned to uniquely...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

ChannelsDeferred values provide a convenient way to transfer a single value between coroutines. Channels provide a way to transfer a stream of values. Channel is a non-blocking primit...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Any, Nothing, Unit

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

CoroutinesA coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously. Coroutines were added to Kotlin in version 1.3 and are...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - visibility_modifiers

Visibility modifiers

In tutorial, visibility_modifiers, kotlin, Jan 23, 2025

Kotlin - scope_function

Scope functionsThe Kotlin standard library contains several functions whose sole purpose is to execute a block of code within the context of an object. When you call such a function o...

In tutorial, scope_function, kotlin, Jan 23, 2025

Kotlin - no_image

## Collection(Kotlin)

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Inline keyword

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

GenericsGeneric programming is a way of writing our code in a flexible manner like we would in a dynamically-typed language. At the same time, generics allow us to write code safely a...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Enum in Kotlin

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Reduce reduce method transforms a given collection into a single result. It takes a lamda operator to combine a pair of elements into a accumulated value.It then traverses the co...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - nullability_compile_time_error

Describe nullability and null safetyNullability is the ability of a variable to hold a null value. When a variable contains null, an attempt to dereference the variable leads to a Nul...

In tutorial, nullability_compile_time_error, kotlin, Jan 23, 2025

Kotlin - no_image

Constructors invocation orderSuppose we have next code:```open class Parent {

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Default method in kotlin interfaceBefore getting into Kotlin default method in interface ,lets go through the default interface mthod in Java which was introduced in Java 8 and ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - crossinline

Crossinline keyword

In tutorial, crossinline, kotlin, Jan 23, 2025

Code - no_image

How to create empty constructor for data class? Click to expand! If you give default value to all the fields - empty constructor is generated automatically by Kotlin: ``` data c...

In tutorial, no_image, kotlin, Jan 23, 2025

Java - no_image

InterfaceThere are a number of situations in software engineering when it is important for disparate groups of programmers to agree to a “contract” that spells out how their software ...

In tutorial, no_image, java, Jan 23, 2025

Java - semaphore

SemaphoreSemaphore (java.util.concurrent.Semaphore) used for limit the number of threads accessing a specific resource. Conceptually, a semaphore maintains a set of permits. Each acqu...

In tutorial, semaphore, java, Jan 23, 2025

Java - no_image

Executor interface

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Comparable vs Comparator

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Cloneable interface

In tutorial, no_image, java, Jan 23, 2025

Java - volatile

Volatile keyword

In tutorial, volatile, java, Jan 23, 2025

Java - no_image

Transient

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Ovverriding vs Overloading

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

final, finally, finalize

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Stream vs Iterator

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

String vs StringBuilder vs StringBuffer

In tutorial, no_image, java, Jan 23, 2025

Java - jdk

JDK & JRE & JVM

In tutorial, jdk, java, Jan 23, 2025

Java - no_image

Object monitorSynchronization is built around an internal entity known as the intrinsic lock or monitor lock. (The API specification often refers to this entity simply as a “monitor.”...

In tutorial, no_image, java, Jan 23, 2025

Java - java_memory_leak

Memory leakA Memory Leak is a situation where there are objects present in the heap that are no longer used, but the garbage collector is unable to remove them from memory, and theref...

In tutorial, java_memory_leak, java, Jan 23, 2025

Java - no_image

Immutable objectAn immutable object is an object whose internal state remains constant after it has been entirely created. This means that the public API of an immutable object guaran...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Enum

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Casting

In tutorial, no_image, java, Jan 23, 2025

Java - string_pool

String Pool

In tutorial, string_pool, java, Jan 23, 2025

Java - no_image

Synchronized keyword

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

WildcardIn generic code, the question mark ?, called the wildcard, represents an unknown type. The wildcard can be used in a variety of situations: as the type of a parameter, field, ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

try-catch-finallyJava try, catch and finally blocks help in writing the application code which may throw exceptions in runtime and gives us a chance to either recover from exceptions ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

RecordJDK 14 introduces records, which are a new kind of type declaration. Like an enum, a record is a restricted form of a class. It’s ideal for “plain data carriers,” classes that c...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Double check pattern singletonDouble-checked locking of Singleton is a way to ensure only one instance of Singleton class is created through an application life cycle. As the name sug...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Default method in interfaceJava 8 allows to define default method in interface. Default methods allow us to add new methods in interface that are automatically available to it’s imple...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Access modifiers

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

VectorThe Vector class implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index. However, the size of a Vector can gro...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

TreeSetTreeSet class implements the Set interface that uses a tree for storage. It inherits AbstractSet class and implements the NavigableSet interface. The elements are ordered using...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

TreeMapA Red-Black tree based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Stream interfacepublic interface Stream<T> extends BaseStream<T, Stream<T>>

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

StackThe Stack class represents a last-in-first-out (LIFO) stack of objects. It extends class Vector with five operations that allow a vector to be treated as a stack. The usual push ...

In tutorial, no_image, java, Jan 23, 2025

Java - serialize_deserialize_java

Serializable interfaceSerialization is a mechanism of converting the state of an object into a byte stream. Deserialization is the reverse process where the byte stream is used to rec...

In tutorial, serialize_deserialize_java, java, Jan 23, 2025

Java - linkedlist-node

LinkedListDoubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and permits all elements (including null).

In tutorial, linkedlist-node, java, Jan 23, 2025

Java - no_image

LinkedHashSetHash table and linked list implementation of the Set interface, with predictable iteration order. This implementation differs from HashSet in that it maintains a doubly-l...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

LinkedHashMapHash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap in that it maintains a doubly-l...

In tutorial, no_image, java, Jan 23, 2025

Java - iterators

Iterator interface

In tutorial, iterators, java, Jan 23, 2025

Java - no_image

HashtableThis class implements a hash table, which maps keys to values. Any non-null object can be used as a key or as a value.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashSetThis class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it do...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

EnumSetA specialized Set implementation for use with enum types. All of the elements in an enum set must come from a single enum type that is specified, explicitly or implicitly, when...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

EnumMapA specialized Map implementation for use with enum type keys. All of the keys in an enum map must come from a single enum type that is specified, explicitly or implicitly, when...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ConcurrentHashMap

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Comparator interfaceComparator interface is used to order(sort) the objects in the collection in your own way. It gives you the ability to decide how elements will be sorted and store...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ArrayListResizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Object class methods

In tutorial, no_image, java, Jan 23, 2025

Java - collection

Java Collections FrameworkThe Collection in Java is a framework that provides an architecture to store and manipulate the group of objects. Java Collections can achieve all the operat...

In tutorial, collection, java, Jan 23, 2025

Java - no_image

Lambda expressions

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Anonymous classes

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

References types

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Method signature

In tutorial, no_image, java, Jan 23, 2025

Java - java_memory

Java memory modelThe Java memory model specifies how the Java virtual machine works with the computer’s memory (RAM). The Java virtual machine is a model of a whole computer so this m...

In tutorial, java_memory, java, Jan 23, 2025

Java - no_image

HashMap works

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Hashtable vs ConcurrentHashMap

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashSet vs TreeSet

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

GenericsGenerics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0. They were designed to extend Java’s type syste...

In tutorial, no_image, java, Jan 23, 2025

Java - exception_hierarchy

Exception. Checked vs Unchecked.

In tutorial, exception_hierarchy, java, Jan 23, 2025

Java - no_image

Do objects get passed by reference or value?The two most prevalent modes of passing arguments to methods are “passing-by-value” and “passing-by-reference”. Different programming langu...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Resizable: Array is static in size that is fixed length data structure, one cannot change the length after creating the Array object. ArrayList is dynamic in size. Each ArrayList ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Inner classes vs Static nested classes

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

int vs Integer

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Semaphore vs MonitorBoth semaphores and monitors are used to solve the critical section problem (as they allow processes to access the shared resources in mutual exclusion) and to ach...

In tutorial, no_image, java, Jan 23, 2025

Java - java_map

Map interface An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.

In tutorial, java_map, java, Jan 23, 2025

Java - no_image

Java Comparable interface is used to compare objects and sort them according to the natural order.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

No it can’t. Because the idea of overridden is to get different behavior for children during inherence, but static method is not method of instance it’s method of class.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Constructor inherited

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ArrayList vs LinkedList

In tutorial, no_image, java, Jan 23, 2025

Sw-Projectmgmt - no_image

Software Project Management Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Sw-Dev - no_image

Software Development Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Sw-Architecture - no_image

Software Architecture Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Antipatterns - no_image

Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Part-5B - no_image

Part 5b - Clean Architecture

In tutorial, no_image, architecture, Jan 21, 2025

Part-5A - no_image

Part 5a - Architecture Fundamentals

In tutorial, no_image, architecture, Jan 21, 2025

Part-4 - no_image

Part 4 - Component Principles

In tutorial, no_image, architecture, Jan 21, 2025

Part-2 - no-dependency-inversion

Part 2 - Starting with the bricks: Programming Paradigms

In tutorial, no-dependency-inversion, architecture, Jan 21, 2025

Good-Api-Design-Jb-Talk - no_image

How To Design A Good API and Why it MattersA talk given by Joshua Bloch at a Google Tech Talk - 24 Jan, 2007

In tutorial, no_image, architecture, Jan 21, 2025

Design-Patterns - no_image

Design Patterns: Elements of Reusable Object-Oriented Software

In tutorial, no_image, architecture, Jan 21, 2025

Clean-Architecture - no_image

Clean Architecture

In tutorial, no_image, architecture, Jan 21, 2025

Ch05 - no_image

Behavioral Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch04 - no_image

Structural Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch03 - no_image

Creational Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch02 - no_image

A Case Study: Designing a Document Editor

In tutorial, no_image, architecture, Jan 21, 2025

Ch01 - dp-catalog

IntroductionDesigning object-oriented software is hard: Factor objects into classes with the right granularity Design should be specific for the problem but general enough to addres...

In tutorial, dp-catalog, architecture, Jan 21, 2025

Architecture - no_image

Architecture

In tutorial, no_image, architecture, Jan 21, 2025

12.Discussion - command-example

Behavioral Patterns Discussion

In tutorial, command-example, architecture, Jan 21, 2025

08.Discussion - no_image

Structural Patterns DiscussionThis chapter focuses on outlining the differences between all structural patterns.Most of them use similar mechanisms but have a different intent.

In tutorial, no_image, architecture, Jan 21, 2025

06.Discussion - no_image

Creational Patterns Discussion

In tutorial, no_image, architecture, Jan 21, 2025

03.Composite - composite-example-structure

CompositeIntentRepresent hierarchical objects in an abstract & convenient way for clients, whilst enabling extension for adding new classes without affecting the client.

In tutorial, composite-example-structure, architecture, Jan 21, 2025

Jenkov-Concurrency - cpus-multiple-threads

Jenkov Concurrency Tutorial Tutorial link

In tutorial, cpus-multiple-threads, java, Jan 21, 2025

Java - no_image

Java

In tutorial, no_image, java, Jan 21, 2025

Chapter-16 - monitor-lock-rule

Chapter 16 - The Java Memory ModelThroughout the book, the topic of the Java Memory Model (JMM) was avoided as this includes some low-level details answering the question “why” certai...

In tutorial, monitor-lock-rule, java, Jan 21, 2025

Chapter-15 - high-contention-performance

Chapter 15 - Atomic Variables and Nonblocking synchronization

In tutorial, high-contention-performance, java, Jan 21, 2025

Chapter-14 - no_image

Chapter 14 - Building custom synchronizersWhen building a state-dependent class, you need to have certain preconditions met before performing an operation.E.g. the FutureTask needs to...

In tutorial, no_image, java, Jan 21, 2025

Chapter-13 - intrinsic-vs-explicit-locks

Chapter 13 - Explicit LocksExplicit locks are not a better alternative to intrinsic locks, but rather, an alternative with more advanced features.

In tutorial, intrinsic-vs-explicit-locks, java, Jan 21, 2025

Chapter-12 - bounder-buffer-performance

Chapter 12 - Testing Concurrent ProgramsTesting concurrent programs has some similarities with testing traditional programs.

In tutorial, bounder-buffer-performance, java, Jan 21, 2025

Chapter-11 - blocking-queue-comparison

Chapter 11 - Performance and ScalabilityThe rationale for using concurrency is often because one wants to achieve more performance.

In tutorial, blocking-queue-comparison, java, Jan 21, 2025

Chapter-10 - deadlock-example

Chapter 10 - Avoiding Liveness HazardsToo much safety could lead to liveness problems. Liveness == problems with your program crashing/stalling/being too slow but not necessarily prod...

In tutorial, deadlock-example, java, Jan 21, 2025

Chapter-09 - short-running-task-example

Chapter 09 - GUI ApplicationsGUI Applications have their own peculiar threading issues.

In tutorial, short-running-task-example, java, Jan 21, 2025

Chapter-08 - no_image

Chapter 08 - Applying Thread PoolsThis chapter focuses on advanced options & configuration for tuning thread pools, shows advanced examples for using Executor & demonstrates s...

In tutorial, no_image, java, Jan 21, 2025

Chapter-07 - no_image

Chapter 07 - Cancellation & Shutdown

In tutorial, no_image, java, Jan 21, 2025

Chapter-06 - no_image

Chapter 06 - Task Execution

In tutorial, no_image, java, Jan 21, 2025

Chapter-05 - cache-performance-1

Chapter 05 - Building Blocks

In tutorial, cache-performance-1, java, Jan 21, 2025

Chapter-04 - no_image

Chapter 04 - Composing Objects

In tutorial, no_image, java, Jan 21, 2025

Chapter-03 - thread-visibility

Chapter 03 - Sharing Objects

In tutorial, thread-visibility, java, Jan 21, 2025

Chapter-02 - no_image

Chapter 02 - Thread Safety

In tutorial, no_image, java, Jan 21, 2025

Chapter-01 - no_image

Chapter 01 - Introduction

In tutorial, no_image, java, Jan 21, 2025

System-Design-Interview - no_image

System Design Interview - An Insider’s Guide (vol 1 & 2)These notes are based on the System Design Interview books - vol 1 and vol 2.

In tutorial, no_image, system design, Jan 21, 2025

System-Design - no_image

System Design

In tutorial, no_image, system design, Jan 21, 2025

Part05 - test-pyramid

Maintainability Testing Continuous delivery and deployment Monitoring Observability Traces Manageability Summary

In tutorial, test-pyramid, system design, Jan 21, 2025

Part04 - cascade-failure-1

Resiliency Common failure causes Redundancy Fault isolation Downstream resiliency Upstream resiliency Summary

In tutorial, cascade-failure-1, system design, Jan 21, 2025

Part03 - cruder-app

Scalability HTTP Caching Content delivery networks Partitioning File storage Network load balancing Data storage Caching Microservices Control planes and data planes Messagi...

In tutorial, cruder-app, system design, Jan 21, 2025

Chapter29 - world-stock-exchanges

Stock ExchangeWe’ll design an electronic stock exchange in this chapter.

In tutorial, world-stock-exchanges, system design, Jan 21, 2025

Chapter28 - digital-wallet

Digital WalletPayment platforms usually have a wallet service, where they allow clients to store funds within the application, which they can withdraw later.

In tutorial, digital-wallet, system design, Jan 21, 2025

Chapter27 - high-level-flow

Payment SystemWe’ll design a payment system in this chapter, which underpins all of modern e-commerce.

In tutorial, high-level-flow, system design, Jan 21, 2025

Chapter26 - leaderboard

Real-time Gaming LeaderboardWe are going to design a leaderboard for an online mobile game:

In tutorial, leaderboard, system design, Jan 21, 2025

Chapter25 - storage-comparison

S3-like Object StorageIn this chapter, we’ll be designing an object storage service, similar to Amazon S3.

In tutorial, storage-comparison, system design, Jan 21, 2025

Chapter24 - dns-lookup

Distributed Email ServiceWe’ll design a distributed email service, similar to gmail in this chapter.

In tutorial, dns-lookup, system design, Jan 21, 2025

Chapter23 - qps-estimation

Hotel Reservation SystemIn this chapter, we’re designing a hotel reservation system, similar to Marriott International.

In tutorial, qps-estimation, system design, Jan 21, 2025

Chapter22 - digital-advertising-example

Ad Click Event AggregationDigital advertising is a big industry with the rise of Facebook, YouTube, TikTok, etc.

In tutorial, digital-advertising-example, system design, Jan 21, 2025

Chapter21 - metrics-monitoring-core-components

Metrics Monitoring and Alerting SystemThis chapter focuses on designing a highly scalable metrics monitoring and alerting system, which is critical for ensuring high availability and ...

In tutorial, metrics-monitoring-core-components, system design, Jan 21, 2025

Chapter20 - message-queue-components

Distributed Message QueueWe’ll be designing a distributed message queue in this chapter.

In tutorial, message-queue-components, system design, Jan 21, 2025

Chapter19 - partitioning-system

Google MapsWe’ll design a simple version of Google Maps.

In tutorial, partitioning-system, system design, Jan 21, 2025

Chapter18 - fan-out-backend

Nearby FriendsThis chapter focuses on designing a scalable backend for an application which enables user to share their location and discover friends who are nearby.

In tutorial, fan-out-backend, system design, Jan 21, 2025

Chapter16 - storage-example

Design Google DriveGoogle Drive is a cloud file storage product, which helps you store documents, videos, etc from the cloud.

In tutorial, storage-example, system design, Jan 21, 2025

Chapter15 - high-level-sys-design

Design YouTubeThis chapter is about designing a video sharing platform such as youtube. Its solution can be applied to also eg designing Netflix, Hulu.

In tutorial, high-level-sys-design, system design, Jan 21, 2025

Chapter14 - google-search

Design A Search Autocomplete SystemSearch autocomplete is the feature provided by many platforms such as Amazon, Google and others when you put your cursor in your search bar and star...

In tutorial, google-search, system design, Jan 21, 2025

Chapter13 - store-relay-message

Design a Chat SystemWe’ll be designing a chat system similar to Messenger, WhatsApp, etc.

In tutorial, store-relay-message, system design, Jan 21, 2025

Chapter12 - feed-publishign

Design a News Feed SystemNews feed == constantly updating list of stories on your home page.

In tutorial, feed-publishign, system design, Jan 21, 2025

Chapter11 - ios-push-notifications

Design a Notification SystemNotification systems are a popular feature in many applications - it alerts a user for important news, product updates, events, etc.

In tutorial, ios-push-notifications, system design, Jan 21, 2025

Chapter10 - web-crawler-example

Design a Web CrawlerWe’ll focus next on designing a web crawler - a classical system design problem.

In tutorial, web-crawler-example, system design, Jan 21, 2025

Chapter09 - tinyurl-example

Design a URL ShortenerWe’re tackling a classical system design problem - designing a URL shortening service like tinyurl.

In tutorial, tinyurl-example, system design, Jan 21, 2025

Chapter08 - multi-master-replication

Design a Unique ID Generator in Distributed SystemsWe need to design a unique ID generator, compatible with distributed systems.

In tutorial, multi-master-replication, system design, Jan 21, 2025

Chapter07 - cap-theorem

Design a Key-Value StoreKey-value stores are a type of non-relational databases. Each unique identifier is stored as a key with a value associated to it. Keys must be unique and can...

In tutorial, cap-theorem, system design, Jan 21, 2025

Chapter06 - hash-ring

Design Consistent HashingFor horizontal scaling, it is important to distribute requests across servers efficiently.

In tutorial, hash-ring, system design, Jan 21, 2025

Chapter05 - server-side-rate-limiter

Design a Rate LimiterThe rate limiter’s purpose in a distributed system is to control the rate of traffic sent from clients to a given server.

In tutorial, server-side-rate-limiter, system design, Jan 21, 2025

Chapter04 - feed-publishing

A Framework for System Design InterviewsSystem design interviews are intimidating.

In tutorial, feed-publishing, system design, Jan 21, 2025

Chapter03 - latency-numbers-visu

Back-of-the-envelope EstimationYou are sometimes asked in a system design interview to estimate performance requirements or system capacity.

In tutorial, latency-numbers-visu, system design, Jan 21, 2025

Chapter02 - single-server-setup

Scale From Zero to Millions of UsersHere, we’re building a system that supports a few users & gradually scale it to support millions.

In tutorial, single-server-setup, system design, Jan 21, 2025

Services

Services

In Android, tutorial, Feb 20, 2024

View_Model

ViewModel

In tutorial, Feb 20, 2024

Live_Data

LiveData

In featured, tutorial, android, Feb 20, 2024

Kt Coroutine

Coroutines

In featured, tutorial, android, Feb 20, 2024

Bloc Pattern Decoded

Let’s take a look at a simple example of how to implement the BLoC pattern in Flutter. This example will demonstrate a CounterBloc that increments a counter value.

In tutorial, Feb 20, 2024

DLD Importent notes

DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:

In Jekyll, tutorial, Jan 11, 2024

OS Importent notes

OS

In Jekyll, tutorial, Jul 24, 2020

Network Importent notes

Computer NetworkRange of Private IP 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255

In Jekyll, tutorial, Jul 24, 2020

DLD Importent notes

DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:

In Jekyll, tutorial, Jul 24, 2020

crypto Importent notes

DES Symittric key cryptography key-64 bit/128 bit block- 64 bit key 56 bit key lenght. replace by AES has 4x16 ‘s’ block Double DES- Meet in middle attack prone. Triple Des- 5...

In Jekyll, tutorial, Jul 24, 2020

C Importent notes

C Importent notesPointersSize of pointers is fixed. Size of an array is number of elements multiplied by the type of element, that is why we get sizeof arri as 12 and sizeof arrc as ...

In Jekyll, tutorial, Jul 24, 2020

Android jetpack compose intro

Jetpack ComposeComposable Functions In Jetpack Compose, UI is defined by functions annotated with @Composable. These functions describe what the UI looks like and its behavior. Here’s...

In android, tutorial, Jul 24, 2020

Unit Testing Login Functionality in Android with Kotlin and Mockito

Unit Testing Login Functionality in Android with Kotlin and Mockito

In tutorial, android, Jul 24, 2020

Powerful things you can do with the Markdown editor

There are lotsss of powerful things you can do with the Markdown editor

In Jekyll, tutorial, android, Jul 24, 2020

android

Android - no_image

Data binding

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Dark themeDark theme is available in Android 10 (API level 29) and higher. It has many benefits: Can reduce power usage by a significant amount (depending on the device’s screen tech...

In tutorial, no_image, android, Jan 23, 2025

Android - work_manager_criteria

WorkManagerWorkManager is an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts. The WorkManager A...

In tutorial, work_manager_criteria, android, Jan 23, 2025

Android - no_image

WidgetHome screen widgets are broadcast receivers which provide interactive components. They are primarily used on the Android home screen. They typically display some kind of data an...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ViewStub

In tutorial, no_image, android, Jan 23, 2025

Android - viewmodel_lifecycle

ViewModelThe ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as scr...

In tutorial, viewmodel_lifecycle, android, Jan 23, 2025

Android - room

Room

In tutorial, room, android, Jan 23, 2025

Android - no_image

RecyclerViewThe RecyclerView class supports the display of a collection of data. You supply the data and define how each item looks, and the RecyclerView library dynamically creates t...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ProguardProguard is free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecod...

In tutorial, no_image, android, Jan 23, 2025

Android - app_signing

Play App SigningWith Play App Signing, Google manages and protects your app’s signing key for you and uses it to sign optimized, distribution APKs that are generated from your app bun...

In tutorial, app_signing, android, Jan 23, 2025

Android - no_image

Navigation componentThe Navigation Architecture Component simplifies implementing navigation, while also helping you visualize your app’s navigation flow. The library provides a numbe...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

LiveDataLiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activ...

In tutorial, no_image, android, Jan 23, 2025

Android - android_jetpack

JetpackJetpack encompasses a collection of Android libraries that incorporate best practices and provide backwards compatibility in your Android apps. The Android Jetpack components b...

In tutorial, android_jetpack, android, Jan 23, 2025

Android - content_provider

Content Provider

In tutorial, content_provider, android, Jan 23, 2025

Android - no_image

BroadcastReceiverA broadcast receiver (receiver) is an Android component which allows you to register for system or application events. Android apps can send or receive broadcast mes...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ActivityThe Activity class is a crucial component of an Android app, and the way activities are launched and put together is a fundamental part of the platform’s application model. Un...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

DataStoreJetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to sto...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Reduce your app sizeSmall app size is directly related to download success, particularly in emerging markets with poor network device connections or low network speeds. This can resul...

In tutorial, no_image, android, Jan 23, 2025

Android - data_modules

Modules types

In tutorial, data_modules, android, Jan 23, 2025

Android - no_image

What tools for multithreading do you know

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Security best practices

In tutorial, no_image, android, Jan 23, 2025

Android - module_mediator

Modularization patterns

In tutorial, module_mediator, android, Jan 23, 2025

Android - singleTop_scenario_1

What launch modes do you know?

In tutorial, singleTop_scenario_1, android, Jan 23, 2025

Android - viewbinding_vs_databinding

View binding vs Data bindingView binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a bin...

In tutorial, viewbinding_vs_databinding, android, Jan 23, 2025

Android - no_image

Serializable vs Parcelable

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Dialog vs DialogFragment

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Bundle savedInstanceState is a reference to the Bundle object that is passed to the onCreate() in an Activity. Activities have capability to restore themselves to a previous state u...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

installLocation tag

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

GradleGradle is an open-source build automation tool flexible enough to build almost any type of software. Gradle makes few assumptions about what you’re trying to build or how to bui...

In tutorial, no_image, android, Jan 23, 2025

Android - user_task_flowchart

What is background taskFor the purposes of this document, we’ll use the term “task” to mean an operation an app is doing outside its main workflow. To ensure alignment in understandin...

In tutorial, user_task_flowchart, android, Jan 23, 2025

Android - no_image

SurfaceView

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

StrictMode

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Overdraw

In tutorial, no_image, android, Jan 23, 2025

Android - compose_1

Jetpack ComposeJetpack Compose is a modern declarative UI Toolkit for Android. Compose makes it easier to write and maintain your app UI by providing a declarative API that allows you...

In tutorial, compose_1, android, Jan 23, 2025

Android - fragments

FragmentA Fragment represents a reusable portion of your app’s UI. A fragment defines and manages its own layout, has its own lifecycle, and can handle its own input events. Fragments...

In tutorial, fragments, android, Jan 23, 2025

Android - context

Context

In tutorial, context, android, Jan 23, 2025

Android - no_image

AndroidManifest

In tutorial, no_image, android, Jan 23, 2025

Android - anr_example_framed

ANR (Application Not Responding)When the UI thread of an Android app is blocked for too long, an “Application Not Responding” (ANR) error is triggered. If the app is in the foreground...

In tutorial, anr_example_framed, android, Jan 23, 2025

Android - diagram_backstack

Tasks and the back stackA task is a collection of activities that users interact with when trying to do something in your app. These activities are arranged in a stack called the back...

In tutorial, diagram_backstack, android, Jan 23, 2025

Android - no_image

taskAffinityThe taskAffinity is the attribute that is declared in the AndroidManifest file.

In tutorial, no_image, android, Jan 23, 2025

Android - slices_image_1

SlicesSlices are UI templates that can display rich, dynamic, and interactive content from your app from within the Google Search app and also in other places like the Google Assistan...

In tutorial, slices_image_1, android, Jan 23, 2025

Android - no_image

Side EffectsA side-effect is a change to the state of the app that happens outside the scope of a composable function. Due to composables’ lifecycle and properties such as unpredictab...

In tutorial, no_image, android, Jan 23, 2025

Android - paging_library_architecture

Paging libraryThe Paging Library helps you load and display small chunks of data at a time. Loading partial data on demand reduces usage of network bandwidth and system resources.

In tutorial, paging_library_architecture, android, Jan 23, 2025

Android - notification

NotificationA notification is a message that Android displays outside your app’s UI to provide the user with reminders, communication from other people, or other timely information fr...

In tutorial, notification, android, Jan 23, 2025

Android - lifecycle_states

LifecycleLifecycle-aware components perform actions in response to a change in the lifecycle status of another component, such as activities and fragments. These components help you p...

In tutorial, lifecycle_states, android, Jan 23, 2025

Android - downloadable_fonts_process

Downloadable fontsThe Downloadable Fonts feature lets APIs request fonts from a provider application instead of bundling files into the app or letting the app download fonts. Download...

In tutorial, downloadable_fonts_process, android, Jan 23, 2025

Android - cold_start

App startup timeApp launch can take place in one of three states: Cold start; Warm start; Hot start.

In tutorial, cold_start, android, Jan 23, 2025

Android - no_image

AccessibilityTry to make your Android app usable for everyone, including people with accessibility needs.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ViewCompositionStrategyViewCompositionStrategy defines when the Composition should be disposed. The default, ViewCompositionStrategy.Default, disposes the Composition when the underly...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

View BindingView binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a binding class for e...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Version catalogGradle version catalogs enable you to add and maintain dependencies and plugins in a scalable way. Using Gradle version catalogs makes managing dependencies and plugins...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Splash screen and SplashScreen libraryThe Splash Screen is the first screen visible to the user when the application is launched. This is an important screen, the user gets the first ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

SparseArraySparseArray maps integers to Objects and, unlike a normal array of Objects, its indices can contain gaps. SparseArray is intended to be more memory-efficient than a HashMap...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

RecyclerView.ItemDecorationAn ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter’s data set. This can be useful f...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Play Feature DeliveryGoogle Play’s app serving model uses Android App Bundles to generate and serve optimized APKs for each user’s device configuration, so users download only the cod...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

PendingIntent

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Parcelable

In tutorial, no_image, android, Jan 23, 2025

Android - lint_tool

LintAndroid Studio provides a code scanning tool called lint that can help you to identify and correct problems with the structural quality of your code without your having to execute...

In tutorial, lint_tool, android, Jan 23, 2025

Android - no_image

IntentAn Intent is a messaging object you can use to request an action from another app component. Although intents facilitate communication between components in several ways, there ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Intent FilterAn intent filter is an expression in an app’s manifest file that specifies the type of intents that the component would like to receive. For instance, by declaring an int...

In tutorial, no_image, android, Jan 23, 2025

Android - handler_looper_message

Handler, MessageQueue, Looper

In tutorial, handler_looper_message, android, Jan 23, 2025

Android - no_image

Foreground Services

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

FileProviderFileProvider is a special subclass of ContentProvider that facilitates secure sharing of files associated with an app by creating a content:// Uri for a file instead of a ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

DiffUtil

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Converters in RoomSometimes, you need your app to store a custom data type in a single database column. You support custom types by providing type converters, which are methods that t...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Chrome custom tabsApp developers face a choice when a user taps a URL to either launch a browser, or build their own in-app browser using WebViews.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

What do you know about Auto Backup?Auto Backup for Apps automatically backs up a user’s data from apps that target and run on Android 6.0 (API level 23) or higher. Android preserves a...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ArrayMapArrayMap is a generic key->value mapping data structure that is designed to be more memory efficient than a traditional HashMap. It keeps its mappings in an array data stru...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

App StartupThe App Startup library provides a straightforward, performant way to initialize components at application startup. Both library developers and app developers can use App S...

In tutorial, no_image, android, Jan 23, 2025

Android - pinned_shortcuts

App ShortcutsShortcuts deliver specific types of content to your users by helping them quickly access parts of your app.1

In tutorial, pinned_shortcuts, android, Jan 23, 2025

Android - no_image

App BundlesAn Android App Bundle is a publishing format that includes all your app’s compiled code and resources, and defers APK generation and signing to Google Play.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Activity Result APIsWhile the underlying startActivityForResult() and onActivityResult() APIs are available on the Activity class on all API levels, it is strongly recommended to use ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Protection levels in permission

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Sticky Intent

In tutorial, no_image, android, Jan 23, 2025

Android - view_lifecycle

View lifecycleView class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event h...

In tutorial, view_lifecycle, android, Jan 23, 2025

Android - no_image

Service vs IntentServiceA Service is an application component that can perform long-running operations in the background, and it doesn’t provide a user interface. Another application ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Main components of android applicationApplication components are the essential building blocks of an Android application. These components are loosely coupled by the application manif...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

How to support different screen sizes in Android?Android devices come in all shapes and sizes, so your app’s layout needs to be flexible. That is, instead of defining your layout with...

In tutorial, no_image, android, Jan 23, 2025

Android - fragment-a-to-b

Communicating with fragmentsTo reuse fragments, build them as completely self-contained components that define their own layout and behavior. Once you define these reusable fragments,...

In tutorial, fragment-a-to-b, android, Jan 23, 2025

Android - no_image

With the advent of Android Lollipop, the RecyclerView made its way officially. The RecyclerView is much more powerful, flexible and a major enhancement over ListView.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

@id vs @+id

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Raw folder vs Assets folder

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Room vs SQLite

In tutorial, no_image, android, Jan 23, 2025

Android - compose_phases

Jetpack Compose PhasesLike most other UI toolkits, Compose renders a frame through several distinct phases. If we look at the Android View system, it has three main phases: measure, l...

In tutorial, compose_phases, android, Jan 23, 2025

Android - modularization_dependency_graph

Android modularizationA project with multiple Gradle modules is known as a multi-module project. In an ever-growing codebase, scalability, readability, and overall code quality often ...

In tutorial, modularization_dependency_graph, android, Jan 23, 2025

Android - fragment_lifecycle

Fragment LifecycleEach Fragment instance has its own lifecycle. When a user navigates and interacts with your app, your fragments transition through various states in their lifecycle ...

In tutorial, fragment_lifecycle, android, Jan 23, 2025

Android - build_type

Build Type, Product Flavor, Build Variant

In tutorial, build_type, android, Jan 23, 2025

Android - activity_lifecycle

Activity Lifecycle

In tutorial, activity_lifecycle, android, Jan 23, 2025

Android - no_image

From the Google-android source code

In tutorial, no_image, android, Jan 23, 2025

Live_Data

LiveData

In featured, tutorial, android, Feb 20, 2024

Kt Coroutine

Coroutines

In featured, tutorial, android, Feb 20, 2024

Android jetpack compose intro

Jetpack ComposeComposable Functions In Jetpack Compose, UI is defined by functions annotated with @Composable. These functions describe what the UI looks like and its behavior. Here’s...

In android, tutorial, Jul 24, 2020

Unit Testing Login Functionality in Android with Kotlin and Mockito

Unit Testing Login Functionality in Android with Kotlin and Mockito

In tutorial, android, Jul 24, 2020

Powerful things you can do with the Markdown editor

There are lotsss of powerful things you can do with the Markdown editor

In Jekyll, tutorial, android, Jul 24, 2020

Android

Services

Services

In Android, tutorial, Feb 20, 2024

Hilt DI Deep Dive

#Building a Weather App. This app will display the current weather information for a given location. Here’s how you might structure it using MVVM and Hilt: Create Application Instanc...

In Android, DI, Jan 08, 2023

Hilt DI Deep Dive

All apps that use Hilt must contain an Application class that is annotated with @HiltAndroidApp since it triggers Hilt’s code generation at compile time. And for Hilt to be able to ...

In Android, DI, Jul 24, 2020

DI

Hilt DI Deep Dive

#Building a Weather App. This app will display the current weather information for a given location. Here’s how you might structure it using MVVM and Hilt: Create Application Instanc...

In Android, DI, Jan 08, 2023

Hilt DI Deep Dive

All apps that use Hilt must contain an Application class that is annotated with @HiltAndroidApp since it triggers Hilt’s code generation at compile time. And for Hilt to be able to ...

In Android, DI, Jul 24, 2020

Flutter

Keys in flutter

Keys in flutter.What are the keys?A key is an identifier that allows you to uniquely identify and differentiate between widgets.Wanna watch video instead. Types of Keys Valu...

In Flutter, Oneview, Jan 11, 2024

Simple custom animation in Flutter from scratch using AnimatedBuilder

We’ll create a RotationAnimation widget that makes its child widget rotate over a duration of 5 seconds.Here’s the step-by-step guide: First, you need to import the flutter/material....

In Flutter, Oneview, Jan 11, 2024

Flutter interview questions

Flutter interview questions with answers

In Flutter, oneview, Jan 11, 2024

oneview

Flutter interview questions

Flutter interview questions with answers

In Flutter, oneview, Jan 11, 2024

Oneview

Keys in flutter

Keys in flutter.What are the keys?A key is an identifier that allows you to uniquely identify and differentiate between widgets.Wanna watch video instead. Types of Keys Valu...

In Flutter, Oneview, Jan 11, 2024

Simple custom animation in Flutter from scratch using AnimatedBuilder

We’ll create a RotationAnimation widget that makes its child widget rotate over a duration of 5 seconds.Here’s the step-by-step guide: First, you need to import the flutter/material....

In Flutter, Oneview, Jan 11, 2024

Live_Data

LiveData

In featured, tutorial, android, Feb 20, 2024

Kt Coroutine

Coroutines

In featured, tutorial, android, Feb 20, 2024

single-server-setup

Chapter02 - single-server-setup

Scale From Zero to Millions of UsersHere, we’re building a system that supports a few users & gradually scale it to support millions.

In tutorial, single-server-setup, system design, Jan 21, 2025

system design

System-Design-Interview - no_image

System Design Interview - An Insider’s Guide (vol 1 & 2)These notes are based on the System Design Interview books - vol 1 and vol 2.

In tutorial, no_image, system design, Jan 21, 2025

System-Design - no_image

System Design

In tutorial, no_image, system design, Jan 21, 2025

Part05 - test-pyramid

Maintainability Testing Continuous delivery and deployment Monitoring Observability Traces Manageability Summary

In tutorial, test-pyramid, system design, Jan 21, 2025

Part04 - cascade-failure-1

Resiliency Common failure causes Redundancy Fault isolation Downstream resiliency Upstream resiliency Summary

In tutorial, cascade-failure-1, system design, Jan 21, 2025

Part03 - cruder-app

Scalability HTTP Caching Content delivery networks Partitioning File storage Network load balancing Data storage Caching Microservices Control planes and data planes Messagi...

In tutorial, cruder-app, system design, Jan 21, 2025

Chapter29 - world-stock-exchanges

Stock ExchangeWe’ll design an electronic stock exchange in this chapter.

In tutorial, world-stock-exchanges, system design, Jan 21, 2025

Chapter28 - digital-wallet

Digital WalletPayment platforms usually have a wallet service, where they allow clients to store funds within the application, which they can withdraw later.

In tutorial, digital-wallet, system design, Jan 21, 2025

Chapter27 - high-level-flow

Payment SystemWe’ll design a payment system in this chapter, which underpins all of modern e-commerce.

In tutorial, high-level-flow, system design, Jan 21, 2025

Chapter26 - leaderboard

Real-time Gaming LeaderboardWe are going to design a leaderboard for an online mobile game:

In tutorial, leaderboard, system design, Jan 21, 2025

Chapter25 - storage-comparison

S3-like Object StorageIn this chapter, we’ll be designing an object storage service, similar to Amazon S3.

In tutorial, storage-comparison, system design, Jan 21, 2025

Chapter24 - dns-lookup

Distributed Email ServiceWe’ll design a distributed email service, similar to gmail in this chapter.

In tutorial, dns-lookup, system design, Jan 21, 2025

Chapter23 - qps-estimation

Hotel Reservation SystemIn this chapter, we’re designing a hotel reservation system, similar to Marriott International.

In tutorial, qps-estimation, system design, Jan 21, 2025

Chapter22 - digital-advertising-example

Ad Click Event AggregationDigital advertising is a big industry with the rise of Facebook, YouTube, TikTok, etc.

In tutorial, digital-advertising-example, system design, Jan 21, 2025

Chapter21 - metrics-monitoring-core-components

Metrics Monitoring and Alerting SystemThis chapter focuses on designing a highly scalable metrics monitoring and alerting system, which is critical for ensuring high availability and ...

In tutorial, metrics-monitoring-core-components, system design, Jan 21, 2025

Chapter20 - message-queue-components

Distributed Message QueueWe’ll be designing a distributed message queue in this chapter.

In tutorial, message-queue-components, system design, Jan 21, 2025

Chapter19 - partitioning-system

Google MapsWe’ll design a simple version of Google Maps.

In tutorial, partitioning-system, system design, Jan 21, 2025

Chapter18 - fan-out-backend

Nearby FriendsThis chapter focuses on designing a scalable backend for an application which enables user to share their location and discover friends who are nearby.

In tutorial, fan-out-backend, system design, Jan 21, 2025

Chapter16 - storage-example

Design Google DriveGoogle Drive is a cloud file storage product, which helps you store documents, videos, etc from the cloud.

In tutorial, storage-example, system design, Jan 21, 2025

Chapter15 - high-level-sys-design

Design YouTubeThis chapter is about designing a video sharing platform such as youtube. Its solution can be applied to also eg designing Netflix, Hulu.

In tutorial, high-level-sys-design, system design, Jan 21, 2025

Chapter14 - google-search

Design A Search Autocomplete SystemSearch autocomplete is the feature provided by many platforms such as Amazon, Google and others when you put your cursor in your search bar and star...

In tutorial, google-search, system design, Jan 21, 2025

Chapter13 - store-relay-message

Design a Chat SystemWe’ll be designing a chat system similar to Messenger, WhatsApp, etc.

In tutorial, store-relay-message, system design, Jan 21, 2025

Chapter12 - feed-publishign

Design a News Feed SystemNews feed == constantly updating list of stories on your home page.

In tutorial, feed-publishign, system design, Jan 21, 2025

Chapter11 - ios-push-notifications

Design a Notification SystemNotification systems are a popular feature in many applications - it alerts a user for important news, product updates, events, etc.

In tutorial, ios-push-notifications, system design, Jan 21, 2025

Chapter10 - web-crawler-example

Design a Web CrawlerWe’ll focus next on designing a web crawler - a classical system design problem.

In tutorial, web-crawler-example, system design, Jan 21, 2025

Chapter09 - tinyurl-example

Design a URL ShortenerWe’re tackling a classical system design problem - designing a URL shortening service like tinyurl.

In tutorial, tinyurl-example, system design, Jan 21, 2025

Chapter08 - multi-master-replication

Design a Unique ID Generator in Distributed SystemsWe need to design a unique ID generator, compatible with distributed systems.

In tutorial, multi-master-replication, system design, Jan 21, 2025

Chapter07 - cap-theorem

Design a Key-Value StoreKey-value stores are a type of non-relational databases. Each unique identifier is stored as a key with a value associated to it. Keys must be unique and can...

In tutorial, cap-theorem, system design, Jan 21, 2025

Chapter06 - hash-ring

Design Consistent HashingFor horizontal scaling, it is important to distribute requests across servers efficiently.

In tutorial, hash-ring, system design, Jan 21, 2025

Chapter05 - server-side-rate-limiter

Design a Rate LimiterThe rate limiter’s purpose in a distributed system is to control the rate of traffic sent from clients to a given server.

In tutorial, server-side-rate-limiter, system design, Jan 21, 2025

Chapter04 - feed-publishing

A Framework for System Design InterviewsSystem design interviews are intimidating.

In tutorial, feed-publishing, system design, Jan 21, 2025

Chapter03 - latency-numbers-visu

Back-of-the-envelope EstimationYou are sometimes asked in a system design interview to estimate performance requirements or system capacity.

In tutorial, latency-numbers-visu, system design, Jan 21, 2025

Chapter02 - single-server-setup

Scale From Zero to Millions of UsersHere, we’re building a system that supports a few users & gradually scale it to support millions.

In tutorial, single-server-setup, system design, Jan 21, 2025

latency-numbers-visu

Chapter03 - latency-numbers-visu

Back-of-the-envelope EstimationYou are sometimes asked in a system design interview to estimate performance requirements or system capacity.

In tutorial, latency-numbers-visu, system design, Jan 21, 2025

feed-publishing

Chapter04 - feed-publishing

A Framework for System Design InterviewsSystem design interviews are intimidating.

In tutorial, feed-publishing, system design, Jan 21, 2025

server-side-rate-limiter

Chapter05 - server-side-rate-limiter

Design a Rate LimiterThe rate limiter’s purpose in a distributed system is to control the rate of traffic sent from clients to a given server.

In tutorial, server-side-rate-limiter, system design, Jan 21, 2025

hash-ring

Chapter06 - hash-ring

Design Consistent HashingFor horizontal scaling, it is important to distribute requests across servers efficiently.

In tutorial, hash-ring, system design, Jan 21, 2025

cap-theorem

Chapter07 - cap-theorem

Design a Key-Value StoreKey-value stores are a type of non-relational databases. Each unique identifier is stored as a key with a value associated to it. Keys must be unique and can...

In tutorial, cap-theorem, system design, Jan 21, 2025

multi-master-replication

Chapter08 - multi-master-replication

Design a Unique ID Generator in Distributed SystemsWe need to design a unique ID generator, compatible with distributed systems.

In tutorial, multi-master-replication, system design, Jan 21, 2025

tinyurl-example

Chapter09 - tinyurl-example

Design a URL ShortenerWe’re tackling a classical system design problem - designing a URL shortening service like tinyurl.

In tutorial, tinyurl-example, system design, Jan 21, 2025

web-crawler-example

Chapter10 - web-crawler-example

Design a Web CrawlerWe’ll focus next on designing a web crawler - a classical system design problem.

In tutorial, web-crawler-example, system design, Jan 21, 2025

ios-push-notifications

Chapter11 - ios-push-notifications

Design a Notification SystemNotification systems are a popular feature in many applications - it alerts a user for important news, product updates, events, etc.

In tutorial, ios-push-notifications, system design, Jan 21, 2025

feed-publishign

Chapter12 - feed-publishign

Design a News Feed SystemNews feed == constantly updating list of stories on your home page.

In tutorial, feed-publishign, system design, Jan 21, 2025

store-relay-message

Chapter13 - store-relay-message

Design a Chat SystemWe’ll be designing a chat system similar to Messenger, WhatsApp, etc.

In tutorial, store-relay-message, system design, Jan 21, 2025

Chapter14 - google-search

Design A Search Autocomplete SystemSearch autocomplete is the feature provided by many platforms such as Amazon, Google and others when you put your cursor in your search bar and star...

In tutorial, google-search, system design, Jan 21, 2025

high-level-sys-design

Chapter15 - high-level-sys-design

Design YouTubeThis chapter is about designing a video sharing platform such as youtube. Its solution can be applied to also eg designing Netflix, Hulu.

In tutorial, high-level-sys-design, system design, Jan 21, 2025

storage-example

Chapter16 - storage-example

Design Google DriveGoogle Drive is a cloud file storage product, which helps you store documents, videos, etc from the cloud.

In tutorial, storage-example, system design, Jan 21, 2025

business-table

fan-out-backend

Chapter18 - fan-out-backend

Nearby FriendsThis chapter focuses on designing a scalable backend for an application which enables user to share their location and discover friends who are nearby.

In tutorial, fan-out-backend, system design, Jan 21, 2025

partitioning-system

Chapter19 - partitioning-system

Google MapsWe’ll design a simple version of Google Maps.

In tutorial, partitioning-system, system design, Jan 21, 2025

message-queue-components

Chapter20 - message-queue-components

Distributed Message QueueWe’ll be designing a distributed message queue in this chapter.

In tutorial, message-queue-components, system design, Jan 21, 2025

metrics-monitoring-core-components

Chapter21 - metrics-monitoring-core-components

Metrics Monitoring and Alerting SystemThis chapter focuses on designing a highly scalable metrics monitoring and alerting system, which is critical for ensuring high availability and ...

In tutorial, metrics-monitoring-core-components, system design, Jan 21, 2025

digital-advertising-example

Chapter22 - digital-advertising-example

Ad Click Event AggregationDigital advertising is a big industry with the rise of Facebook, YouTube, TikTok, etc.

In tutorial, digital-advertising-example, system design, Jan 21, 2025

qps-estimation

Chapter23 - qps-estimation

Hotel Reservation SystemIn this chapter, we’re designing a hotel reservation system, similar to Marriott International.

In tutorial, qps-estimation, system design, Jan 21, 2025

dns-lookup

Chapter24 - dns-lookup

Distributed Email ServiceWe’ll design a distributed email service, similar to gmail in this chapter.

In tutorial, dns-lookup, system design, Jan 21, 2025

storage-comparison

Chapter25 - storage-comparison

S3-like Object StorageIn this chapter, we’ll be designing an object storage service, similar to Amazon S3.

In tutorial, storage-comparison, system design, Jan 21, 2025

leaderboard

Chapter26 - leaderboard

Real-time Gaming LeaderboardWe are going to design a leaderboard for an online mobile game:

In tutorial, leaderboard, system design, Jan 21, 2025

high-level-flow

Chapter27 - high-level-flow

Payment SystemWe’ll design a payment system in this chapter, which underpins all of modern e-commerce.

In tutorial, high-level-flow, system design, Jan 21, 2025

digital-wallet

Chapter28 - digital-wallet

Digital WalletPayment platforms usually have a wallet service, where they allow clients to store funds within the application, which they can withdraw later.

In tutorial, digital-wallet, system design, Jan 21, 2025

world-stock-exchanges

Chapter29 - world-stock-exchanges

Stock ExchangeWe’ll design an electronic stock exchange in this chapter.

In tutorial, world-stock-exchanges, system design, Jan 21, 2025

app-capacity

network-protocols

failure-detection

cruder-app

Part03 - cruder-app

Scalability HTTP Caching Content delivery networks Partitioning File storage Network load balancing Data storage Caching Microservices Control planes and data planes Messagi...

In tutorial, cruder-app, system design, Jan 21, 2025

cascade-failure-1

Part04 - cascade-failure-1

Resiliency Common failure causes Redundancy Fault isolation Downstream resiliency Upstream resiliency Summary

In tutorial, cascade-failure-1, system design, Jan 21, 2025

test-pyramid

Part05 - test-pyramid

Maintainability Testing Continuous delivery and deployment Monitoring Observability Traces Manageability Summary

In tutorial, test-pyramid, system design, Jan 21, 2025

no_image

Android - no_image

Data binding

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Dark themeDark theme is available in Android 10 (API level 29) and higher. It has many benefits: Can reduce power usage by a significant amount (depending on the device’s screen tech...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

WidgetHome screen widgets are broadcast receivers which provide interactive components. They are primarily used on the Android home screen. They typically display some kind of data an...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ViewStub

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

RecyclerViewThe RecyclerView class supports the display of a collection of data. You supply the data and define how each item looks, and the RecyclerView library dynamically creates t...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ProguardProguard is free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecod...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Navigation componentThe Navigation Architecture Component simplifies implementing navigation, while also helping you visualize your app’s navigation flow. The library provides a numbe...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

LiveDataLiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

BroadcastReceiverA broadcast receiver (receiver) is an Android component which allows you to register for system or application events. Android apps can send or receive broadcast mes...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ActivityThe Activity class is a crucial component of an Android app, and the way activities are launched and put together is a fundamental part of the platform’s application model. Un...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

DataStoreJetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to sto...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Reduce your app sizeSmall app size is directly related to download success, particularly in emerging markets with poor network device connections or low network speeds. This can resul...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

What tools for multithreading do you know

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Security best practices

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Serializable vs Parcelable

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Dialog vs DialogFragment

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Bundle savedInstanceState is a reference to the Bundle object that is passed to the onCreate() in an Activity. Activities have capability to restore themselves to a previous state u...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

installLocation tag

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

GradleGradle is an open-source build automation tool flexible enough to build almost any type of software. Gradle makes few assumptions about what you’re trying to build or how to bui...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

SurfaceView

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

StrictMode

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Overdraw

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

AndroidManifest

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

taskAffinityThe taskAffinity is the attribute that is declared in the AndroidManifest file.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Side EffectsA side-effect is a change to the state of the app that happens outside the scope of a composable function. Due to composables’ lifecycle and properties such as unpredictab...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

AccessibilityTry to make your Android app usable for everyone, including people with accessibility needs.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ViewCompositionStrategyViewCompositionStrategy defines when the Composition should be disposed. The default, ViewCompositionStrategy.Default, disposes the Composition when the underly...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

View BindingView binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a binding class for e...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Version catalogGradle version catalogs enable you to add and maintain dependencies and plugins in a scalable way. Using Gradle version catalogs makes managing dependencies and plugins...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Splash screen and SplashScreen libraryThe Splash Screen is the first screen visible to the user when the application is launched. This is an important screen, the user gets the first ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

SparseArraySparseArray maps integers to Objects and, unlike a normal array of Objects, its indices can contain gaps. SparseArray is intended to be more memory-efficient than a HashMap...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

RecyclerView.ItemDecorationAn ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter’s data set. This can be useful f...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Play Feature DeliveryGoogle Play’s app serving model uses Android App Bundles to generate and serve optimized APKs for each user’s device configuration, so users download only the cod...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

PendingIntent

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Parcelable

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

IntentAn Intent is a messaging object you can use to request an action from another app component. Although intents facilitate communication between components in several ways, there ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Intent FilterAn intent filter is an expression in an app’s manifest file that specifies the type of intents that the component would like to receive. For instance, by declaring an int...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Foreground Services

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

FileProviderFileProvider is a special subclass of ContentProvider that facilitates secure sharing of files associated with an app by creating a content:// Uri for a file instead of a ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

DiffUtil

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Converters in RoomSometimes, you need your app to store a custom data type in a single database column. You support custom types by providing type converters, which are methods that t...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Chrome custom tabsApp developers face a choice when a user taps a URL to either launch a browser, or build their own in-app browser using WebViews.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

What do you know about Auto Backup?Auto Backup for Apps automatically backs up a user’s data from apps that target and run on Android 6.0 (API level 23) or higher. Android preserves a...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

ArrayMapArrayMap is a generic key->value mapping data structure that is designed to be more memory efficient than a traditional HashMap. It keeps its mappings in an array data stru...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

App StartupThe App Startup library provides a straightforward, performant way to initialize components at application startup. Both library developers and app developers can use App S...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

App BundlesAn Android App Bundle is a publishing format that includes all your app’s compiled code and resources, and defers APK generation and signing to Google Play.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Activity Result APIsWhile the underlying startActivityForResult() and onActivityResult() APIs are available on the Activity class on all API levels, it is strongly recommended to use ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Protection levels in permission

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Sticky Intent

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Service vs IntentServiceA Service is an application component that can perform long-running operations in the background, and it doesn’t provide a user interface. Another application ...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Main components of android applicationApplication components are the essential building blocks of an Android application. These components are loosely coupled by the application manif...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

How to support different screen sizes in Android?Android devices come in all shapes and sizes, so your app’s layout needs to be flexible. That is, instead of defining your layout with...

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

With the advent of Android Lollipop, the RecyclerView made its way officially. The RecyclerView is much more powerful, flexible and a major enhancement over ListView.

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

@id vs @+id

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Raw folder vs Assets folder

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

Room vs SQLite

In tutorial, no_image, android, Jan 23, 2025

Android - no_image

From the Google-android source code

In tutorial, no_image, android, Jan 23, 2025

Opps - no_image

Symmetric encryption vs Asymmetric encryptionSymmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

git pull vs git fetch

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Abstraction vs Encapsulation

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

TCP vs UDP

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

PUT vs POST

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

HTTP vs HTTPS

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

GET vs POST

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Dependency injection vs Service locatorDependency injection is a technique in which an object receives other objects that it depends on, called dependencies. Typically, the receiving ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

LivelockA thread often acts in response to the action of another thread. If the other thread’s action is also a response to the action of another thread, then livelock may result. As ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

DeadlockDeadlock describes a situation where two or more threads are blocked forever, waiting for each other. Deadlock occurs when multiple threads need the same locks but obtain them...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

ScrumScrum is an agile project management framework that helps teams structure and manage their work through a set of values, principles, and practices. Much like a rugby team (where ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

KanbanKanban is an agile framework used for project and task management. At its core are continuous improvement and just-in-time development, which allows teams to stay on top of any ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Certificate pinningCertificate pinning is a security mechanism used in the context of authenticating client-server connections, particularly in the context of secure communication ove...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

URLA Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrievi...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

What is Dependency injectionDependency injection is a technique in which an object receives other objects that it depends on, called dependencies. Typically, the receiving object is c...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

SOLID Principles

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

SOAP vs RESTSOAP (formerly an acronym for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web servi...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

OOP Principles

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

git merge git merge simply remembers the history as it happened. It takes the two current versions, merge them together based on their common ancestor, fix any conflicts, and then re...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Scrum vs Kanban

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Composition vs InheritanceComposition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic beh...

In tutorial, no_image, opps, Jan 23, 2025

Librariesandroid - no_image

Dependency injection libraries

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Dagger 2Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is based on the Java Specification Request (JSR) 330. It uses code gene...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

@Binds vs @Provides@Provides, the most common construct for configuring a binding, serves three functions: Declare which type (possibly qualified) is being provided — this is the ret...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

RetrofitThe Retrofit library is a type-safe REST client for Android, Java, and Kotlin, developed by Square. Retrofit by default leverages OkHttp as the networking layer and is built o...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

RealmRealm includes an embedded, object-oriented database that lets you build real-time, offline-first applications. You can also use Realm’s hosted application services as a secure b...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

OkHttpOkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket; Connection pooling reduces request latency (if HTT...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

KoinA pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

KodeinKodein is a Dependency Injection library. It allows you to bind your business unit interfaces with their implementation and thus having each business unit being independent.

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Image loading libraries

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Main annotations in Dagger 2The main annotations in Dagger 2 are: @Provides @Inject @Module @Component @Singleton

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Designpatterns - no_image

Visitor patternVisitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add ne...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Design PatternsDesign patterns is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be trans...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Template methodThe template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. Thes...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Strategy patternStrategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code rece...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

State patternThe state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Singleton patternSingleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is useful when exactly one object is needed ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Service locator patternThe service locator pattern is a design pattern used to encapsulate the processes involved in obtaining a service with a strong abstraction layer. This pattern ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Proxy patternThe Proxy design pattern describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to imp...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Prototype patternThe prototype pattern is a creational design pattern. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Observer pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Memento patternThe memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback). The Memento design pattern de...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Mediator patternMediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter t...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Iterator pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Interpreter patternInterpreter design pattern specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a speci...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Flyweight patternA flyweight is an object that minimizes memory usage by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Factory method patternFactory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class o...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Facade patternFacade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can: improve the readability and usability of a...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Decorator patternDecorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Composite patternThe composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. The intent of a composite is to “com...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Command patternCommand pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Chain of ResponsibilityChain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contain...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Builder patternThe builder pattern is a design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming. The intent of the Bu...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Bridge patternThe bridge pattern is a design pattern used for “decouple an abstraction from its implementation so that the two can vary independently”. The bridge uses encapsulation, ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Adapter patternAdapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes w...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Abstract factory pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Testing - no_image

Unit testUnit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage ...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

RobolectricRobolectric is the industry-standard unit testing framework for Android. With Robolectric, your tests run in a simulated Android environment inside a JVM, without the overh...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Functional testingFunctional testing is a quality assurance (QA) process and a type of black-box testing that bases its test cases on the specifications of the software component unde...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

JUnitJUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testin...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

EspressoEspresso is an open source android user interface (UI) testing framework developed by Google. Espresso is a simple, efficient and flexible testing framework. Google released t...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

MockitoMockito is a popular mock framework which can be used in conjunction with JUnit. If you have minimal Android dependencies and need to test specific interactions between a compo...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

BDDBehavior Driven Development (BDD) is a branch of Test Driven Development (TDD). BDD uses human-readable descriptions of software user requirements as the basis for software tests. ...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Unit testing vs Functional testing

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Mock vs Fake vs StubIn automated unit testing, it may be necessary to use objects or procedures that look and behave like their release-intended counterparts, but are actually simplif...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

JUnit 4 vs JUnit 5JUnit 5 aims to adapt Java 8 style of coding and to be more robust and flexible than JUnit 4. One of the main ideas behind the new JUnit version is utilizing the fea...

In tutorial, no_image, testing, Jan 23, 2025

Testassignments - no_image

Google Images Search

In tutorial, no_image, testAssignments, Jan 23, 2025

Code - no_image

Puzzle 1 - subscribeOn + observeOnOn which thread doSomething() will be executed?

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Backpressure

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Cold vs Hot Observables

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Schedulers

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Repeat vs. Retry

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Observable types

In tutorial, no_image, Rx, Jan 23, 2025

Patterns - no_image

Visitor patternVisitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add ne...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Design PatternsDesign patterns is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be trans...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Template methodThe template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. Thes...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Strategy patternStrategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code rece...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

State patternThe state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Singleton patternSingleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is useful when exactly one object is needed ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Service locator patternThe service locator pattern is a design pattern used to encapsulate the processes involved in obtaining a service with a strong abstraction layer. This pattern ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Proxy patternThe Proxy design pattern describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to imp...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Prototype patternThe prototype pattern is a creational design pattern. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Observer pattern

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Memento patternThe memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback). The Memento design pattern de...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Mediator patternMediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter t...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Iterator pattern

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Interpreter patternInterpreter design pattern specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a speci...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Flyweight patternA flyweight is an object that minimizes memory usage by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Factory method patternFactory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class o...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Facade patternFacade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can: improve the readability and usability of a...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Decorator patternDecorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Composite patternThe composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. The intent of a composite is to “com...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Command patternCommand pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Chain of ResponsibilityChain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contain...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Builder patternThe builder pattern is a design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming. The intent of the Bu...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Bridge patternThe bridge pattern is a design pattern used for “decouple an abstraction from its implementation so that the two can vary independently”. The bridge uses encapsulation, ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Adapter patternAdapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes w...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Abstract factory pattern

In tutorial, no_image, patterns, Jan 23, 2025

Libraries - no_image

Dependency injection libraries

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Dagger 2Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is based on the Java Specification Request (JSR) 330. It uses code gene...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

@Binds vs @Provides@Provides, the most common construct for configuring a binding, serves three functions: Declare which type (possibly qualified) is being provided — this is the ret...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

RetrofitThe Retrofit library is a type-safe REST client for Android, Java, and Kotlin, developed by Square. Retrofit by default leverages OkHttp as the networking layer and is built o...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

RealmRealm includes an embedded, object-oriented database that lets you build real-time, offline-first applications. You can also use Realm’s hosted application services as a secure b...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

OkHttpOkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket; Connection pooling reduces request latency (if HTT...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

KoinA pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

KodeinKodein is a Dependency Injection library. It allows you to bind your business unit interfaces with their implementation and thus having each business unit being independent.

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Image loading libraries

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Main annotations in Dagger 2The main annotations in Dagger 2 are: @Provides @Inject @Module @Component @Singleton

In tutorial, no_image, libraries, Jan 23, 2025

Kotlin - no_image

val mutableList vs var immutableList

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Map() vs FlatMap()map() - Returns a list containing the results of applying the given transform function to each element in the original array.val numbers = listOf(1, 2, 3)println(num...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Inline class

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Init block

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Infix functionKotlin allows some functions to be called without using the period and brackets. These are called infix methods, and their use can result in code that looks much more li...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

launch vs async

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Difference between == and ===

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Data classes

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Const val

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

SequenceSequences offer the same functions as Iterable but implement another approach to multi-step collection processing.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

RangesRange is a collection of finite values which is defined by endpoints. The range in Kotlin consists of a start, a stop, and the step. The start and stop are inclusive in the Rang...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Diffrence between blocking and suspending in KotlinDifference is explained assuming there are 2 functions Function A and Function B

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

nested class vs inner classA nested class is the class that is declared inside another class, for example:```class Outer { private val bar: Int = 1 class Nested { fun foo...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

lazy vs lateinit

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

abstract class vs interface

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

What is the difference between “*” and “Any” in genericsThe type MutableList<*> represents the list of something (you don’t know what exactly). So if you try to add something to...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Destructuring declarationsDestructuring declarations, or destructuring for short, is a technique for unpacking a class instance into separate variables. This means that you can take a...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Type aliases

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Sealed classes and interfaceSealed classes and interfaces represent restricted class hierarchies that provide more control over inheritance. All direct subclasses of a sealed class ar...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

reified keyword

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Property references and :: operatorThe :: operator is known as the “member reference” or “callable reference” operator. It can be used to create a references to the following: Class ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Operator overloadingKotlin allows you to provide custom implementations for the predefined set of operators on types. These operators have predefined symbolic representation (like + o...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

object keywordThe object keyword allow you to define a class and create an instance of it in a single step. This is useful when you need either a reusable singleton instance or a one-...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

lateinitlateinit is a keyword used to define a property that will be initialized later. Unlike other properties declared with var, lateinit properties are not initialized at the time ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Functional (SAM) interfaces

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

ExtensionsKotlin provides the ability to extend a class or an interface with new functionality without having to inherit from the class or use design patterns such as Decorator. This ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Delegated propertiesThere are certain common kinds of properties, that, though you can implement them manually every time you need them, it would be helpful to implement them once and...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Data objectsWhen printing a plain object declaration in Kotlin, the string representation contains both its name and the hash of the object:```object MyObject

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

сompanion object

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

StateFlow and SharedFlowStateFlow and SharedFlow are Flow APIs that enable flows to optimally emit state updates and emit values to multiple consumers.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

JvmStatic and JvmField annotations

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

JvmOverloads annotationInstructs the Kotlin compiler to generate overloads for this function that substitute default parameter values.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Coroutine JobConceptually, a Job is a cancellable thing with a lifecycle that culminates in its completion. For every coroutine that is created, a Job instance is returned to uniquely...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

ChannelsDeferred values provide a convenient way to transfer a single value between coroutines. Channels provide a way to transfer a stream of values. Channel is a non-blocking primit...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Any, Nothing, Unit

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

CoroutinesA coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously. Coroutines were added to Kotlin in version 1.3 and are...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Collection(Kotlin)

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Inline keyword

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

GenericsGeneric programming is a way of writing our code in a flexible manner like we would in a dynamically-typed language. At the same time, generics allow us to write code safely a...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Enum in Kotlin

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Reduce reduce method transforms a given collection into a single result. It takes a lamda operator to combine a pair of elements into a accumulated value.It then traverses the co...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Constructors invocation orderSuppose we have next code:```open class Parent {

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Default method in kotlin interfaceBefore getting into Kotlin default method in interface ,lets go through the default interface mthod in Java which was introduced in Java 8 and ...

In tutorial, no_image, kotlin, Jan 23, 2025

Code - no_image

How to create empty constructor for data class? Click to expand! If you give default value to all the fields - empty constructor is generated automatically by Kotlin: ``` data c...

In tutorial, no_image, kotlin, Jan 23, 2025

Java - no_image

InterfaceThere are a number of situations in software engineering when it is important for disparate groups of programmers to agree to a “contract” that spells out how their software ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Executor interface

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Comparable vs Comparator

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Cloneable interface

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Transient

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Ovverriding vs Overloading

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

final, finally, finalize

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Stream vs Iterator

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

String vs StringBuilder vs StringBuffer

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Object monitorSynchronization is built around an internal entity known as the intrinsic lock or monitor lock. (The API specification often refers to this entity simply as a “monitor.”...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Immutable objectAn immutable object is an object whose internal state remains constant after it has been entirely created. This means that the public API of an immutable object guaran...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Enum

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Casting

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Synchronized keyword

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

WildcardIn generic code, the question mark ?, called the wildcard, represents an unknown type. The wildcard can be used in a variety of situations: as the type of a parameter, field, ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

try-catch-finallyJava try, catch and finally blocks help in writing the application code which may throw exceptions in runtime and gives us a chance to either recover from exceptions ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

RecordJDK 14 introduces records, which are a new kind of type declaration. Like an enum, a record is a restricted form of a class. It’s ideal for “plain data carriers,” classes that c...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Double check pattern singletonDouble-checked locking of Singleton is a way to ensure only one instance of Singleton class is created through an application life cycle. As the name sug...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Default method in interfaceJava 8 allows to define default method in interface. Default methods allow us to add new methods in interface that are automatically available to it’s imple...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Access modifiers

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

VectorThe Vector class implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index. However, the size of a Vector can gro...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

TreeSetTreeSet class implements the Set interface that uses a tree for storage. It inherits AbstractSet class and implements the NavigableSet interface. The elements are ordered using...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

TreeMapA Red-Black tree based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Stream interfacepublic interface Stream<T> extends BaseStream<T, Stream<T>>

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

StackThe Stack class represents a last-in-first-out (LIFO) stack of objects. It extends class Vector with five operations that allow a vector to be treated as a stack. The usual push ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

LinkedHashSetHash table and linked list implementation of the Set interface, with predictable iteration order. This implementation differs from HashSet in that it maintains a doubly-l...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

LinkedHashMapHash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap in that it maintains a doubly-l...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashtableThis class implements a hash table, which maps keys to values. Any non-null object can be used as a key or as a value.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashSetThis class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it do...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

EnumSetA specialized Set implementation for use with enum types. All of the elements in an enum set must come from a single enum type that is specified, explicitly or implicitly, when...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

EnumMapA specialized Map implementation for use with enum type keys. All of the keys in an enum map must come from a single enum type that is specified, explicitly or implicitly, when...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ConcurrentHashMap

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Comparator interfaceComparator interface is used to order(sort) the objects in the collection in your own way. It gives you the ability to decide how elements will be sorted and store...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ArrayListResizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Object class methods

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Lambda expressions

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Anonymous classes

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

References types

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Method signature

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashMap works

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Hashtable vs ConcurrentHashMap

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashSet vs TreeSet

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

GenericsGenerics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0. They were designed to extend Java’s type syste...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Do objects get passed by reference or value?The two most prevalent modes of passing arguments to methods are “passing-by-value” and “passing-by-reference”. Different programming langu...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Resizable: Array is static in size that is fixed length data structure, one cannot change the length after creating the Array object. ArrayList is dynamic in size. Each ArrayList ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Inner classes vs Static nested classes

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

int vs Integer

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Semaphore vs MonitorBoth semaphores and monitors are used to solve the critical section problem (as they allow processes to access the shared resources in mutual exclusion) and to ach...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Java Comparable interface is used to compare objects and sort them according to the natural order.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

No it can’t. Because the idea of overridden is to get different behavior for children during inherence, but static method is not method of instance it’s method of class.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Constructor inherited

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ArrayList vs LinkedList

In tutorial, no_image, java, Jan 23, 2025

Sw-Projectmgmt - no_image

Software Project Management Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Sw-Dev - no_image

Software Development Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Sw-Architecture - no_image

Software Architecture Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Antipatterns - no_image

Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Part-5B - no_image

Part 5b - Clean Architecture

In tutorial, no_image, architecture, Jan 21, 2025

Part-5A - no_image

Part 5a - Architecture Fundamentals

In tutorial, no_image, architecture, Jan 21, 2025

Part-4 - no_image

Part 4 - Component Principles

In tutorial, no_image, architecture, Jan 21, 2025

Good-Api-Design-Jb-Talk - no_image

How To Design A Good API and Why it MattersA talk given by Joshua Bloch at a Google Tech Talk - 24 Jan, 2007

In tutorial, no_image, architecture, Jan 21, 2025

Design-Patterns - no_image

Design Patterns: Elements of Reusable Object-Oriented Software

In tutorial, no_image, architecture, Jan 21, 2025

Clean-Architecture - no_image

Clean Architecture

In tutorial, no_image, architecture, Jan 21, 2025

Ch05 - no_image

Behavioral Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch04 - no_image

Structural Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch03 - no_image

Creational Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch02 - no_image

A Case Study: Designing a Document Editor

In tutorial, no_image, architecture, Jan 21, 2025

Architecture - no_image

Architecture

In tutorial, no_image, architecture, Jan 21, 2025

08.Discussion - no_image

Structural Patterns DiscussionThis chapter focuses on outlining the differences between all structural patterns.Most of them use similar mechanisms but have a different intent.

In tutorial, no_image, architecture, Jan 21, 2025

06.Discussion - no_image

Creational Patterns Discussion

In tutorial, no_image, architecture, Jan 21, 2025

Java - no_image

Java

In tutorial, no_image, java, Jan 21, 2025

Chapter-14 - no_image

Chapter 14 - Building custom synchronizersWhen building a state-dependent class, you need to have certain preconditions met before performing an operation.E.g. the FutureTask needs to...

In tutorial, no_image, java, Jan 21, 2025

Chapter-08 - no_image

Chapter 08 - Applying Thread PoolsThis chapter focuses on advanced options & configuration for tuning thread pools, shows advanced examples for using Executor & demonstrates s...

In tutorial, no_image, java, Jan 21, 2025

Chapter-07 - no_image

Chapter 07 - Cancellation & Shutdown

In tutorial, no_image, java, Jan 21, 2025

Chapter-06 - no_image

Chapter 06 - Task Execution

In tutorial, no_image, java, Jan 21, 2025

Chapter-04 - no_image

Chapter 04 - Composing Objects

In tutorial, no_image, java, Jan 21, 2025

Chapter-02 - no_image

Chapter 02 - Thread Safety

In tutorial, no_image, java, Jan 21, 2025

Chapter-01 - no_image

Chapter 01 - Introduction

In tutorial, no_image, java, Jan 21, 2025

System-Design-Interview - no_image

System Design Interview - An Insider’s Guide (vol 1 & 2)These notes are based on the System Design Interview books - vol 1 and vol 2.

In tutorial, no_image, system design, Jan 21, 2025

System-Design - no_image

System Design

In tutorial, no_image, system design, Jan 21, 2025

java

Java - no_image

InterfaceThere are a number of situations in software engineering when it is important for disparate groups of programmers to agree to a “contract” that spells out how their software ...

In tutorial, no_image, java, Jan 23, 2025

Java - semaphore

SemaphoreSemaphore (java.util.concurrent.Semaphore) used for limit the number of threads accessing a specific resource. Conceptually, a semaphore maintains a set of permits. Each acqu...

In tutorial, semaphore, java, Jan 23, 2025

Java - no_image

Executor interface

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Comparable vs Comparator

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Cloneable interface

In tutorial, no_image, java, Jan 23, 2025

Java - volatile

Volatile keyword

In tutorial, volatile, java, Jan 23, 2025

Java - no_image

Transient

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Ovverriding vs Overloading

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

final, finally, finalize

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Stream vs Iterator

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

String vs StringBuilder vs StringBuffer

In tutorial, no_image, java, Jan 23, 2025

Java - jdk

JDK & JRE & JVM

In tutorial, jdk, java, Jan 23, 2025

Java - no_image

Object monitorSynchronization is built around an internal entity known as the intrinsic lock or monitor lock. (The API specification often refers to this entity simply as a “monitor.”...

In tutorial, no_image, java, Jan 23, 2025

Java - java_memory_leak

Memory leakA Memory Leak is a situation where there are objects present in the heap that are no longer used, but the garbage collector is unable to remove them from memory, and theref...

In tutorial, java_memory_leak, java, Jan 23, 2025

Java - no_image

Immutable objectAn immutable object is an object whose internal state remains constant after it has been entirely created. This means that the public API of an immutable object guaran...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Enum

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Casting

In tutorial, no_image, java, Jan 23, 2025

Java - string_pool

String Pool

In tutorial, string_pool, java, Jan 23, 2025

Java - no_image

Synchronized keyword

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

WildcardIn generic code, the question mark ?, called the wildcard, represents an unknown type. The wildcard can be used in a variety of situations: as the type of a parameter, field, ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

try-catch-finallyJava try, catch and finally blocks help in writing the application code which may throw exceptions in runtime and gives us a chance to either recover from exceptions ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

RecordJDK 14 introduces records, which are a new kind of type declaration. Like an enum, a record is a restricted form of a class. It’s ideal for “plain data carriers,” classes that c...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Double check pattern singletonDouble-checked locking of Singleton is a way to ensure only one instance of Singleton class is created through an application life cycle. As the name sug...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Default method in interfaceJava 8 allows to define default method in interface. Default methods allow us to add new methods in interface that are automatically available to it’s imple...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Access modifiers

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

VectorThe Vector class implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index. However, the size of a Vector can gro...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

TreeSetTreeSet class implements the Set interface that uses a tree for storage. It inherits AbstractSet class and implements the NavigableSet interface. The elements are ordered using...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

TreeMapA Red-Black tree based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Stream interfacepublic interface Stream<T> extends BaseStream<T, Stream<T>>

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

StackThe Stack class represents a last-in-first-out (LIFO) stack of objects. It extends class Vector with five operations that allow a vector to be treated as a stack. The usual push ...

In tutorial, no_image, java, Jan 23, 2025

Java - serialize_deserialize_java

Serializable interfaceSerialization is a mechanism of converting the state of an object into a byte stream. Deserialization is the reverse process where the byte stream is used to rec...

In tutorial, serialize_deserialize_java, java, Jan 23, 2025

Java - linkedlist-node

LinkedListDoubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and permits all elements (including null).

In tutorial, linkedlist-node, java, Jan 23, 2025

Java - no_image

LinkedHashSetHash table and linked list implementation of the Set interface, with predictable iteration order. This implementation differs from HashSet in that it maintains a doubly-l...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

LinkedHashMapHash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap in that it maintains a doubly-l...

In tutorial, no_image, java, Jan 23, 2025

Java - iterators

Iterator interface

In tutorial, iterators, java, Jan 23, 2025

Java - no_image

HashtableThis class implements a hash table, which maps keys to values. Any non-null object can be used as a key or as a value.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashSetThis class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it do...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

EnumSetA specialized Set implementation for use with enum types. All of the elements in an enum set must come from a single enum type that is specified, explicitly or implicitly, when...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

EnumMapA specialized Map implementation for use with enum type keys. All of the keys in an enum map must come from a single enum type that is specified, explicitly or implicitly, when...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ConcurrentHashMap

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Comparator interfaceComparator interface is used to order(sort) the objects in the collection in your own way. It gives you the ability to decide how elements will be sorted and store...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ArrayListResizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Object class methods

In tutorial, no_image, java, Jan 23, 2025

Java - collection

Java Collections FrameworkThe Collection in Java is a framework that provides an architecture to store and manipulate the group of objects. Java Collections can achieve all the operat...

In tutorial, collection, java, Jan 23, 2025

Java - no_image

Lambda expressions

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Anonymous classes

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

References types

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Method signature

In tutorial, no_image, java, Jan 23, 2025

Java - java_memory

Java memory modelThe Java memory model specifies how the Java virtual machine works with the computer’s memory (RAM). The Java virtual machine is a model of a whole computer so this m...

In tutorial, java_memory, java, Jan 23, 2025

Java - no_image

HashMap works

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Hashtable vs ConcurrentHashMap

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

HashSet vs TreeSet

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

GenericsGenerics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0. They were designed to extend Java’s type syste...

In tutorial, no_image, java, Jan 23, 2025

Java - exception_hierarchy

Exception. Checked vs Unchecked.

In tutorial, exception_hierarchy, java, Jan 23, 2025

Java - no_image

Do objects get passed by reference or value?The two most prevalent modes of passing arguments to methods are “passing-by-value” and “passing-by-reference”. Different programming langu...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Resizable: Array is static in size that is fixed length data structure, one cannot change the length after creating the Array object. ArrayList is dynamic in size. Each ArrayList ...

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Inner classes vs Static nested classes

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

int vs Integer

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Semaphore vs MonitorBoth semaphores and monitors are used to solve the critical section problem (as they allow processes to access the shared resources in mutual exclusion) and to ach...

In tutorial, no_image, java, Jan 23, 2025

Java - java_map

Map interface An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.

In tutorial, java_map, java, Jan 23, 2025

Java - no_image

Java Comparable interface is used to compare objects and sort them according to the natural order.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

No it can’t. Because the idea of overridden is to get different behavior for children during inherence, but static method is not method of instance it’s method of class.

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

Constructor inherited

In tutorial, no_image, java, Jan 23, 2025

Java - no_image

ArrayList vs LinkedList

In tutorial, no_image, java, Jan 23, 2025

Jenkov-Concurrency - cpus-multiple-threads

Jenkov Concurrency Tutorial Tutorial link

In tutorial, cpus-multiple-threads, java, Jan 21, 2025

Java - no_image

Java

In tutorial, no_image, java, Jan 21, 2025

Chapter-16 - monitor-lock-rule

Chapter 16 - The Java Memory ModelThroughout the book, the topic of the Java Memory Model (JMM) was avoided as this includes some low-level details answering the question “why” certai...

In tutorial, monitor-lock-rule, java, Jan 21, 2025

Chapter-15 - high-contention-performance

Chapter 15 - Atomic Variables and Nonblocking synchronization

In tutorial, high-contention-performance, java, Jan 21, 2025

Chapter-14 - no_image

Chapter 14 - Building custom synchronizersWhen building a state-dependent class, you need to have certain preconditions met before performing an operation.E.g. the FutureTask needs to...

In tutorial, no_image, java, Jan 21, 2025

Chapter-13 - intrinsic-vs-explicit-locks

Chapter 13 - Explicit LocksExplicit locks are not a better alternative to intrinsic locks, but rather, an alternative with more advanced features.

In tutorial, intrinsic-vs-explicit-locks, java, Jan 21, 2025

Chapter-12 - bounder-buffer-performance

Chapter 12 - Testing Concurrent ProgramsTesting concurrent programs has some similarities with testing traditional programs.

In tutorial, bounder-buffer-performance, java, Jan 21, 2025

Chapter-11 - blocking-queue-comparison

Chapter 11 - Performance and ScalabilityThe rationale for using concurrency is often because one wants to achieve more performance.

In tutorial, blocking-queue-comparison, java, Jan 21, 2025

Chapter-10 - deadlock-example

Chapter 10 - Avoiding Liveness HazardsToo much safety could lead to liveness problems. Liveness == problems with your program crashing/stalling/being too slow but not necessarily prod...

In tutorial, deadlock-example, java, Jan 21, 2025

Chapter-09 - short-running-task-example

Chapter 09 - GUI ApplicationsGUI Applications have their own peculiar threading issues.

In tutorial, short-running-task-example, java, Jan 21, 2025

Chapter-08 - no_image

Chapter 08 - Applying Thread PoolsThis chapter focuses on advanced options & configuration for tuning thread pools, shows advanced examples for using Executor & demonstrates s...

In tutorial, no_image, java, Jan 21, 2025

Chapter-07 - no_image

Chapter 07 - Cancellation & Shutdown

In tutorial, no_image, java, Jan 21, 2025

Chapter-06 - no_image

Chapter 06 - Task Execution

In tutorial, no_image, java, Jan 21, 2025

Chapter-05 - cache-performance-1

Chapter 05 - Building Blocks

In tutorial, cache-performance-1, java, Jan 21, 2025

Chapter-04 - no_image

Chapter 04 - Composing Objects

In tutorial, no_image, java, Jan 21, 2025

Chapter-03 - thread-visibility

Chapter 03 - Sharing Objects

In tutorial, thread-visibility, java, Jan 21, 2025

Chapter-02 - no_image

Chapter 02 - Thread Safety

In tutorial, no_image, java, Jan 21, 2025

Chapter-01 - no_image

Chapter 01 - Introduction

In tutorial, no_image, java, Jan 21, 2025

thread-visibility

Chapter-03 - thread-visibility

Chapter 03 - Sharing Objects

In tutorial, thread-visibility, java, Jan 21, 2025

cache-performance-1

Chapter-05 - cache-performance-1

Chapter 05 - Building Blocks

In tutorial, cache-performance-1, java, Jan 21, 2025

short-running-task-example

Chapter-09 - short-running-task-example

Chapter 09 - GUI ApplicationsGUI Applications have their own peculiar threading issues.

In tutorial, short-running-task-example, java, Jan 21, 2025

deadlock-example

Chapter-10 - deadlock-example

Chapter 10 - Avoiding Liveness HazardsToo much safety could lead to liveness problems. Liveness == problems with your program crashing/stalling/being too slow but not necessarily prod...

In tutorial, deadlock-example, java, Jan 21, 2025

blocking-queue-comparison

Chapter-11 - blocking-queue-comparison

Chapter 11 - Performance and ScalabilityThe rationale for using concurrency is often because one wants to achieve more performance.

In tutorial, blocking-queue-comparison, java, Jan 21, 2025

bounder-buffer-performance

Chapter-12 - bounder-buffer-performance

Chapter 12 - Testing Concurrent ProgramsTesting concurrent programs has some similarities with testing traditional programs.

In tutorial, bounder-buffer-performance, java, Jan 21, 2025

intrinsic-vs-explicit-locks

Chapter-13 - intrinsic-vs-explicit-locks

Chapter 13 - Explicit LocksExplicit locks are not a better alternative to intrinsic locks, but rather, an alternative with more advanced features.

In tutorial, intrinsic-vs-explicit-locks, java, Jan 21, 2025

high-contention-performance

Chapter-15 - high-contention-performance

Chapter 15 - Atomic Variables and Nonblocking synchronization

In tutorial, high-contention-performance, java, Jan 21, 2025

monitor-lock-rule

Chapter-16 - monitor-lock-rule

Chapter 16 - The Java Memory ModelThroughout the book, the topic of the Java Memory Model (JMM) was avoided as this includes some low-level details answering the question “why” certai...

In tutorial, monitor-lock-rule, java, Jan 21, 2025

cpus-multiple-threads

Jenkov-Concurrency - cpus-multiple-threads

Jenkov Concurrency Tutorial Tutorial link

In tutorial, cpus-multiple-threads, java, Jan 21, 2025

maze-classes

architecture

Part-5B - no_image

Part 5b - Clean Architecture

In tutorial, no_image, architecture, Jan 21, 2025

Part-5A - no_image

Part 5a - Architecture Fundamentals

In tutorial, no_image, architecture, Jan 21, 2025

Part-4 - no_image

Part 4 - Component Principles

In tutorial, no_image, architecture, Jan 21, 2025

Part-2 - no-dependency-inversion

Part 2 - Starting with the bricks: Programming Paradigms

In tutorial, no-dependency-inversion, architecture, Jan 21, 2025

Good-Api-Design-Jb-Talk - no_image

How To Design A Good API and Why it MattersA talk given by Joshua Bloch at a Google Tech Talk - 24 Jan, 2007

In tutorial, no_image, architecture, Jan 21, 2025

Design-Patterns - no_image

Design Patterns: Elements of Reusable Object-Oriented Software

In tutorial, no_image, architecture, Jan 21, 2025

Clean-Architecture - no_image

Clean Architecture

In tutorial, no_image, architecture, Jan 21, 2025

Ch05 - no_image

Behavioral Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch04 - no_image

Structural Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch03 - no_image

Creational Patterns

In tutorial, no_image, architecture, Jan 21, 2025

Ch02 - no_image

A Case Study: Designing a Document Editor

In tutorial, no_image, architecture, Jan 21, 2025

Ch01 - dp-catalog

IntroductionDesigning object-oriented software is hard: Factor objects into classes with the right granularity Design should be specific for the problem but general enough to addres...

In tutorial, dp-catalog, architecture, Jan 21, 2025

Architecture - no_image

Architecture

In tutorial, no_image, architecture, Jan 21, 2025

12.Discussion - command-example

Behavioral Patterns Discussion

In tutorial, command-example, architecture, Jan 21, 2025

08.Discussion - no_image

Structural Patterns DiscussionThis chapter focuses on outlining the differences between all structural patterns.Most of them use similar mechanisms but have a different intent.

In tutorial, no_image, architecture, Jan 21, 2025

06.Discussion - no_image

Creational Patterns Discussion

In tutorial, no_image, architecture, Jan 21, 2025

03.Composite - composite-example-structure

CompositeIntentRepresent hierarchical objects in an abstract & convenient way for clients, whilst enabling extension for adding new classes without affecting the client.

In tutorial, composite-example-structure, architecture, Jan 21, 2025

widgets-class-diagram

object-adapter-example

cor-example-chaining

window-inheritance

rtf-reader-class-diagram

command-example-structure

composite-example-structure

03.Composite - composite-example-structure

CompositeIntentRepresent hierarchical objects in an abstract & convenient way for clients, whilst enabling extension for adding new classes without affecting the client.

In tutorial, composite-example-structure, architecture, Jan 21, 2025

factory-method-example

decorator-example

example-list-iterator

prototype-example

facade-conceptual-example

example-motivation

singleton

naive-structure

connected-rectangles-1

excel-example

proxy-example-structure

tcp-state-example

strategy-example

template-method-example

naive-implementation

command-example

12.Discussion - command-example

Behavioral Patterns Discussion

In tutorial, command-example, architecture, Jan 21, 2025

dp-catalog

Ch01 - dp-catalog

IntroductionDesigning object-oriented software is hard: Factor objects into classes with the right granularity Design should be specific for the problem but general enough to addres...

In tutorial, dp-catalog, architecture, Jan 21, 2025

engineering-staff-growth

no-dependency-inversion

Part-2 - no-dependency-inversion

Part 2 - Starting with the bricks: Programming Paradigms

In tutorial, no-dependency-inversion, architecture, Jan 21, 2025

abstract-factory-example

use-case-analysis

general

Sw-Projectmgmt - no_image

Software Project Management Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Sw-Dev - no_image

Software Development Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Sw-Architecture - no_image

Software Architecture Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

Antipatterns - no_image

Anti Patterns

In tutorial, no_image, general, Jan 21, 2025

deque_interface_java

java_list_class_diagram

queue_interface_java

java_map

Java - java_map

Map interface An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.

In tutorial, java_map, java, Jan 23, 2025

java_set_implementation

exception_hierarchy

Java - exception_hierarchy

Exception. Checked vs Unchecked.

In tutorial, exception_hierarchy, java, Jan 23, 2025

java_memory

Java - java_memory

Java memory modelThe Java memory model specifies how the Java virtual machine works with the computer’s memory (RAM). The Java virtual machine is a model of a whole computer so this m...

In tutorial, java_memory, java, Jan 23, 2025

collection

Java - collection

Java Collections FrameworkThe Collection in Java is a framework that provides an architecture to store and manipulate the group of objects. Java Collections can achieve all the operat...

In tutorial, collection, java, Jan 23, 2025

iterators

Java - iterators

Iterator interface

In tutorial, iterators, java, Jan 23, 2025

linkedlist-node

Java - linkedlist-node

LinkedListDoubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and permits all elements (including null).

In tutorial, linkedlist-node, java, Jan 23, 2025

serialize_deserialize_java

Java - serialize_deserialize_java

Serializable interfaceSerialization is a mechanism of converting the state of an object into a byte stream. Deserialization is the reverse process where the byte stream is used to rec...

In tutorial, serialize_deserialize_java, java, Jan 23, 2025

garbage_collection_step_1

string_pool

Java - string_pool

String Pool

In tutorial, string_pool, java, Jan 23, 2025

java_memory_leak

Java - java_memory_leak

Memory leakA Memory Leak is a situation where there are objects present in the heap that are no longer used, but the garbage collector is unable to remove them from memory, and theref...

In tutorial, java_memory_leak, java, Jan 23, 2025

jdk

Java - jdk

JDK & JRE & JVM

In tutorial, jdk, java, Jan 23, 2025

volatile

Java - volatile

Volatile keyword

In tutorial, volatile, java, Jan 23, 2025

semaphore

Java - semaphore

SemaphoreSemaphore (java.util.concurrent.Semaphore) used for limit the number of threads accessing a specific resource. Conceptually, a semaphore maintains a set of permits. Each acqu...

In tutorial, semaphore, java, Jan 23, 2025

kotlin

Kotlin - no_image

val mutableList vs var immutableList

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Map() vs FlatMap()map() - Returns a list containing the results of applying the given transform function to each element in the original array.val numbers = listOf(1, 2, 3)println(num...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Inline class

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Init block

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Infix functionKotlin allows some functions to be called without using the period and brackets. These are called infix methods, and their use can result in code that looks much more li...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

launch vs async

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Difference between == and ===

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Data classes

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Const val

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

SequenceSequences offer the same functions as Iterable but implement another approach to multi-step collection processing.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

RangesRange is a collection of finite values which is defined by endpoints. The range in Kotlin consists of a start, a stop, and the step. The start and stop are inclusive in the Rang...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Diffrence between blocking and suspending in KotlinDifference is explained assuming there are 2 functions Function A and Function B

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

nested class vs inner classA nested class is the class that is declared inside another class, for example:```class Outer { private val bar: Int = 1 class Nested { fun foo...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

lazy vs lateinit

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

abstract class vs interface

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

What is the difference between “*” and “Any” in genericsThe type MutableList<*> represents the list of something (you don’t know what exactly). So if you try to add something to...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Destructuring declarationsDestructuring declarations, or destructuring for short, is a technique for unpacking a class instance into separate variables. This means that you can take a...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - coroutine_context

Coroutine Scope vs Coroutine Context

In tutorial, coroutine_context, kotlin, Jan 23, 2025

Kotlin - no_image

Type aliases

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Sealed classes and interfaceSealed classes and interfaces represent restricted class hierarchies that provide more control over inheritance. All direct subclasses of a sealed class ar...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

reified keyword

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Property references and :: operatorThe :: operator is known as the “member reference” or “callable reference” operator. It can be used to create a references to the following: Class ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Operator overloadingKotlin allows you to provide custom implementations for the predefined set of operators on types. These operators have predefined symbolic representation (like + o...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

object keywordThe object keyword allow you to define a class and create an instance of it in a single step. This is useful when you need either a reusable singleton instance or a one-...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

lateinitlateinit is a keyword used to define a property that will be initialized later. Unlike other properties declared with var, lateinit properties are not initialized at the time ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Functional (SAM) interfaces

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

ExtensionsKotlin provides the ability to extend a class or an interface with new functionality without having to inherit from the class or use design patterns such as Decorator. This ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Delegated propertiesThere are certain common kinds of properties, that, though you can implement them manually every time you need them, it would be helpful to implement them once and...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Data objectsWhen printing a plain object declaration in Kotlin, the string representation contains both its name and the hash of the object:```object MyObject

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

сompanion object

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

StateFlow and SharedFlowStateFlow and SharedFlow are Flow APIs that enable flows to optimally emit state updates and emit values to multiple consumers.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

JvmStatic and JvmField annotations

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

JvmOverloads annotationInstructs the Kotlin compiler to generate overloads for this function that substitute default parameter values.

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - flow_entities

FlowIn coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value. For example, you can use a flow to rec...

In tutorial, flow_entities, kotlin, Jan 23, 2025

Kotlin - no_image

Coroutine JobConceptually, a Job is a cancellable thing with a lifecycle that culminates in its completion. For every coroutine that is created, a Job instance is returned to uniquely...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

ChannelsDeferred values provide a convenient way to transfer a single value between coroutines. Channels provide a way to transfer a stream of values. Channel is a non-blocking primit...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Any, Nothing, Unit

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

CoroutinesA coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously. Coroutines were added to Kotlin in version 1.3 and are...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - visibility_modifiers

Visibility modifiers

In tutorial, visibility_modifiers, kotlin, Jan 23, 2025

Kotlin - scope_function

Scope functionsThe Kotlin standard library contains several functions whose sole purpose is to execute a block of code within the context of an object. When you call such a function o...

In tutorial, scope_function, kotlin, Jan 23, 2025

Kotlin - no_image

## Collection(Kotlin)

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Inline keyword

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

GenericsGeneric programming is a way of writing our code in a flexible manner like we would in a dynamically-typed language. At the same time, generics allow us to write code safely a...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Enum in Kotlin

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

Reduce reduce method transforms a given collection into a single result. It takes a lamda operator to combine a pair of elements into a accumulated value.It then traverses the co...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - nullability_compile_time_error

Describe nullability and null safetyNullability is the ability of a variable to hold a null value. When a variable contains null, an attempt to dereference the variable leads to a Nul...

In tutorial, nullability_compile_time_error, kotlin, Jan 23, 2025

Kotlin - no_image

Constructors invocation orderSuppose we have next code:```open class Parent {

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - no_image

## Default method in kotlin interfaceBefore getting into Kotlin default method in interface ,lets go through the default interface mthod in Java which was introduced in Java 8 and ...

In tutorial, no_image, kotlin, Jan 23, 2025

Kotlin - crossinline

Crossinline keyword

In tutorial, crossinline, kotlin, Jan 23, 2025

Code - no_image

How to create empty constructor for data class? Click to expand! If you give default value to all the fields - empty constructor is generated automatically by Kotlin: ``` data c...

In tutorial, no_image, kotlin, Jan 23, 2025

crossinline

Kotlin - crossinline

Crossinline keyword

In tutorial, crossinline, kotlin, Jan 23, 2025

nullability_compile_time_error

Kotlin - nullability_compile_time_error

Describe nullability and null safetyNullability is the ability of a variable to hold a null value. When a variable contains null, an attempt to dereference the variable leads to a Nul...

In tutorial, nullability_compile_time_error, kotlin, Jan 23, 2025

scope_function

Kotlin - scope_function

Scope functionsThe Kotlin standard library contains several functions whose sole purpose is to execute a block of code within the context of an object. When you call such a function o...

In tutorial, scope_function, kotlin, Jan 23, 2025

visibility_modifiers

Kotlin - visibility_modifiers

Visibility modifiers

In tutorial, visibility_modifiers, kotlin, Jan 23, 2025

flow_entities

Kotlin - flow_entities

FlowIn coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value. For example, you can use a flow to rec...

In tutorial, flow_entities, kotlin, Jan 23, 2025

coroutine_context

Kotlin - coroutine_context

Coroutine Scope vs Coroutine Context

In tutorial, coroutine_context, kotlin, Jan 23, 2025

libraries

Libraries - no_image

Dependency injection libraries

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Dagger 2Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is based on the Java Specification Request (JSR) 330. It uses code gene...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

@Binds vs @Provides@Provides, the most common construct for configuring a binding, serves three functions: Declare which type (possibly qualified) is being provided — this is the ret...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - hilt_hierarchy

HiltHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires yo...

In tutorial, hilt_hierarchy, libraries, Jan 23, 2025

Libraries - no_image

RetrofitThe Retrofit library is a type-safe REST client for Android, Java, and Kotlin, developed by Square. Retrofit by default leverages OkHttp as the networking layer and is built o...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

RealmRealm includes an embedded, object-oriented database that lets you build real-time, offline-first applications. You can also use Realm’s hosted application services as a secure b...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

OkHttpOkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket; Connection pooling reduces request latency (if HTT...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - interceptors

OkHttp interceptorsInterceptors are pluggable Java components that we can use to intercept and process requests before they are sent to our application code.

In tutorial, interceptors, libraries, Jan 23, 2025

Libraries - no_image

KoinA pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection...

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

KodeinKodein is a Dependency Injection library. It allows you to bind your business unit interfaces with their implementation and thus having each business unit being independent.

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Image loading libraries

In tutorial, no_image, libraries, Jan 23, 2025

Libraries - no_image

Main annotations in Dagger 2The main annotations in Dagger 2 are: @Provides @Inject @Module @Component @Singleton

In tutorial, no_image, libraries, Jan 23, 2025

interceptors

Librariesandroid - interceptors

OkHttp interceptorsInterceptors are pluggable Java components that we can use to intercept and process requests before they are sent to our application code.

In tutorial, interceptors, librariesAndroid, Jan 23, 2025

Libraries - interceptors

OkHttp interceptorsInterceptors are pluggable Java components that we can use to intercept and process requests before they are sent to our application code.

In tutorial, interceptors, libraries, Jan 23, 2025

hilt_hierarchy

Librariesandroid - hilt_hierarchy

HiltHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires yo...

In tutorial, hilt_hierarchy, librariesAndroid, Jan 23, 2025

Libraries - hilt_hierarchy

HiltHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires yo...

In tutorial, hilt_hierarchy, libraries, Jan 23, 2025

patterns

Patterns - no_image

Visitor patternVisitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add ne...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Design PatternsDesign patterns is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be trans...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Template methodThe template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. Thes...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Strategy patternStrategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code rece...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

State patternThe state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Singleton patternSingleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is useful when exactly one object is needed ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Service locator patternThe service locator pattern is a design pattern used to encapsulate the processes involved in obtaining a service with a strong abstraction layer. This pattern ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Proxy patternThe Proxy design pattern describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to imp...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Prototype patternThe prototype pattern is a creational design pattern. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Observer pattern

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Memento patternThe memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback). The Memento design pattern de...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Mediator patternMediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter t...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - mvvm_android

MVVM patternModel–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the UI - rom the development of the business logic or...

In tutorial, mvvm_android, patterns, Jan 23, 2025

Patterns - mvp_android

MVP patternMVP is an architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.

In tutorial, mvp_android, patterns, Jan 23, 2025

Patterns - mvi

MVI patternMVI stands for Model-View-Intent. MVI is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

In tutorial, mvi, patterns, Jan 23, 2025

Patterns - no_image

Iterator pattern

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Interpreter patternInterpreter design pattern specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a speci...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Flyweight patternA flyweight is an object that minimizes memory usage by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Factory method patternFactory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class o...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Facade patternFacade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can: improve the readability and usability of a...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Decorator patternDecorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Composite patternThe composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. The intent of a composite is to “com...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Command patternCommand pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Chain of ResponsibilityChain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contain...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Builder patternThe builder pattern is a design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming. The intent of the Bu...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Bridge patternThe bridge pattern is a design pattern used for “decouple an abstraction from its implementation so that the two can vary independently”. The bridge uses encapsulation, ...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Adapter patternAdapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes w...

In tutorial, no_image, patterns, Jan 23, 2025

Patterns - no_image

Abstract factory pattern

In tutorial, no_image, patterns, Jan 23, 2025

mvi

Designpatterns - mvi

MVI patternMVI stands for Model-View-Intent. MVI is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

In tutorial, mvi, designpatterns, Jan 23, 2025

Patterns - mvi

MVI patternMVI stands for Model-View-Intent. MVI is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

In tutorial, mvi, patterns, Jan 23, 2025

mvp_android

Designpatterns - mvp_android

MVP patternMVP is an architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.

In tutorial, mvp_android, designpatterns, Jan 23, 2025

Patterns - mvp_android

MVP patternMVP is an architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.

In tutorial, mvp_android, patterns, Jan 23, 2025

mvvm_android

Designpatterns - mvvm_android

MVVM patternModel–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the UI - rom the development of the business logic or...

In tutorial, mvvm_android, designpatterns, Jan 23, 2025

Patterns - mvvm_android

MVVM patternModel–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the UI - rom the development of the business logic or...

In tutorial, mvvm_android, patterns, Jan 23, 2025

combining_combineLatest

Rx - combining_combineLatest

Combining OperatorsOperators that work with multiple source Observables to create a single Observable. CombineLatest — when an item is emitted by either of two Observables, combine t...

In tutorial, combining_combineLatest, Rx, Jan 23, 2025

Rx

Code - no_image

Puzzle 1 - subscribeOn + observeOnOn which thread doSomething() will be executed?

In tutorial, no_image, Rx, Jan 23, 2025

Rx - flatMap

flatMap() vs concatMap() vs switchMap()

In tutorial, flatMap, Rx, Jan 23, 2025

Rx - schedulers

ObserveOn() vs SubscribeOn()

In tutorial, schedulers, Rx, Jan 23, 2025

Rx - transforming_map

map vs flatMap

In tutorial, transforming_map, Rx, Jan 23, 2025

Rx - concat

Concat vs Merge

In tutorial, concat, Rx, Jan 23, 2025

Rx - no_image

Backpressure

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Cold vs Hot Observables

In tutorial, no_image, Rx, Jan 23, 2025

Rx - utility_subscribeon

SubscribeOnSubscribeOn specify the Scheduler on which an Observable will operate.

In tutorial, utility_subscribeon, Rx, Jan 23, 2025

Rx - observeOn

ObserveOnObserveOn specify the Scheduler on which an observer will observe this Observable.

In tutorial, observeOn, Rx, Jan 23, 2025

Rx - no_image

Schedulers

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Repeat vs. Retry

In tutorial, no_image, Rx, Jan 23, 2025

Rx - no_image

Observable types

In tutorial, no_image, Rx, Jan 23, 2025

Rx - utility_delay

Utility OperatorsA toolbox of useful Operators for working with Observables: Delay — shift the emissions from an Observable forward in time by a particular amount; Do — register an ...

In tutorial, utility_delay, Rx, Jan 23, 2025

Rx - transforming_buffer

Transforming OperatorsOperators that transform items that are emitted by an Observable. Buffer — periodically gather items from an Observable into bundles and emit these bundles rath...

In tutorial, transforming_buffer, Rx, Jan 23, 2025

Rx - math_concat

Mathematical and aggregate operatorsOperators that operate on the entire sequence of items emitted by an Observable. Concat — emit the emissions from two or more Observables without ...

In tutorial, math_concat, Rx, Jan 23, 2025

Rx - filtering_debounce

Filtering OperatorsOperators that selectively emit items from a source Observable.Debounce — only emit an item from an Observable if a particular timespan has passed without it emitti...

In tutorial, filtering_debounce, Rx, Jan 23, 2025

Rx - error_handling_catch

Error handling operatorsOperators that help to recover from error notifications from an Observable. Catch — recover from an onError notification by continuing the sequence without er...

In tutorial, error_handling_catch, Rx, Jan 23, 2025

Rx - creating_create

Creating OperatorsOperators that originate new Observables. Create — create an Observable from scratch by calling observer methods programmatically; Defer — do not create the Observ...

In tutorial, creating_create, Rx, Jan 23, 2025

Rx - conditional_all

Conditional and Boolean OperatorsOperators that evaluate one or more Observables or items emitted by Observables:All — determine whether all items emitted by an Observable meet some c...

In tutorial, conditional_all, Rx, Jan 23, 2025

Rx - combining_combineLatest

Combining OperatorsOperators that work with multiple source Observables to create a single Observable. CombineLatest — when an item is emitted by either of two Observables, combine t...

In tutorial, combining_combineLatest, Rx, Jan 23, 2025

conditional_all

Rx - conditional_all

Conditional and Boolean OperatorsOperators that evaluate one or more Observables or items emitted by Observables:All — determine whether all items emitted by an Observable meet some c...

In tutorial, conditional_all, Rx, Jan 23, 2025

creating_create

Rx - creating_create

Creating OperatorsOperators that originate new Observables. Create — create an Observable from scratch by calling observer methods programmatically; Defer — do not create the Observ...

In tutorial, creating_create, Rx, Jan 23, 2025

error_handling_catch

Rx - error_handling_catch

Error handling operatorsOperators that help to recover from error notifications from an Observable. Catch — recover from an onError notification by continuing the sequence without er...

In tutorial, error_handling_catch, Rx, Jan 23, 2025

filtering_debounce

Rx - filtering_debounce

Filtering OperatorsOperators that selectively emit items from a source Observable.Debounce — only emit an item from an Observable if a particular timespan has passed without it emitti...

In tutorial, filtering_debounce, Rx, Jan 23, 2025

math_concat

Rx - math_concat

Mathematical and aggregate operatorsOperators that operate on the entire sequence of items emitted by an Observable. Concat — emit the emissions from two or more Observables without ...

In tutorial, math_concat, Rx, Jan 23, 2025

transforming_buffer

Rx - transforming_buffer

Transforming OperatorsOperators that transform items that are emitted by an Observable. Buffer — periodically gather items from an Observable into bundles and emit these bundles rath...

In tutorial, transforming_buffer, Rx, Jan 23, 2025

utility_delay

Rx - utility_delay

Utility OperatorsA toolbox of useful Operators for working with Observables: Delay — shift the emissions from an Observable forward in time by a particular amount; Do — register an ...

In tutorial, utility_delay, Rx, Jan 23, 2025

publish_subject_success

observeOn

Rx - observeOn

ObserveOnObserveOn specify the Scheduler on which an observer will observe this Observable.

In tutorial, observeOn, Rx, Jan 23, 2025

utility_subscribeon

Rx - utility_subscribeon

SubscribeOnSubscribeOn specify the Scheduler on which an Observable will operate.

In tutorial, utility_subscribeon, Rx, Jan 23, 2025

concat

Rx - concat

Concat vs Merge

In tutorial, concat, Rx, Jan 23, 2025

transforming_map

Rx - transforming_map

map vs flatMap

In tutorial, transforming_map, Rx, Jan 23, 2025

schedulers

Rx - schedulers

ObserveOn() vs SubscribeOn()

In tutorial, schedulers, Rx, Jan 23, 2025

flatMap

Rx - flatMap

flatMap() vs concatMap() vs switchMap()

In tutorial, flatMap, Rx, Jan 23, 2025

testAssignments

Testassignments - no_image

Google Images Search

In tutorial, no_image, testAssignments, Jan 23, 2025

tdd

Testing - tdd

Test Driven Development (TDD)Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned i...

In tutorial, tdd, testing, Jan 23, 2025

testing

Testing - no_image

Unit testUnit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage ...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

RobolectricRobolectric is the industry-standard unit testing framework for Android. With Robolectric, your tests run in a simulated Android environment inside a JVM, without the overh...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Functional testingFunctional testing is a quality assurance (QA) process and a type of black-box testing that bases its test cases on the specifications of the software component unde...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

JUnitJUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testin...

In tutorial, no_image, testing, Jan 23, 2025

Testing - ab_testing

A/B testingA/B testing (also known as bucket testing or split-run testing) is a user experience research methodology. A/B tests consist of a randomized experiment with two variants, A...

In tutorial, ab_testing, testing, Jan 23, 2025

Testing - no_image

EspressoEspresso is an open source android user interface (UI) testing framework developed by Google. Espresso is a simple, efficient and flexible testing framework. Google released t...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

MockitoMockito is a popular mock framework which can be used in conjunction with JUnit. If you have minimal Android dependencies and need to test specific interactions between a compo...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

BDDBehavior Driven Development (BDD) is a branch of Test Driven Development (TDD). BDD uses human-readable descriptions of software user requirements as the basis for software tests. ...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

Unit testing vs Functional testing

In tutorial, no_image, testing, Jan 23, 2025

Testing - test_pyramid

Test pyramid

In tutorial, test_pyramid, testing, Jan 23, 2025

Testing - no_image

Mock vs Fake vs StubIn automated unit testing, it may be necessary to use objects or procedures that look and behave like their release-intended counterparts, but are actually simplif...

In tutorial, no_image, testing, Jan 23, 2025

Testing - no_image

JUnit 4 vs JUnit 5JUnit 5 aims to adapt Java 8 style of coding and to be more robust and flexible than JUnit 4. One of the main ideas behind the new JUnit version is utilizing the fea...

In tutorial, no_image, testing, Jan 23, 2025

Testing - tdd

Test Driven Development (TDD)Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned i...

In tutorial, tdd, testing, Jan 23, 2025

test_pyramid

Testing - test_pyramid

Test pyramid

In tutorial, test_pyramid, testing, Jan 23, 2025

ab_testing

Testing - ab_testing

A/B testingA/B testing (also known as bucket testing or split-run testing) is a user experience research methodology. A/B tests consist of a randomized experiment with two variants, A...

In tutorial, ab_testing, testing, Jan 23, 2025

designpatterns

Designpatterns - no_image

Visitor patternVisitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add ne...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Design PatternsDesign patterns is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be trans...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Template methodThe template method is a method in a superclass, usually an abstract superclass, and defines the skeleton of an operation in terms of a number of high-level steps. Thes...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Strategy patternStrategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code rece...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

State patternThe state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Singleton patternSingleton pattern is a software design pattern that restricts the instantiation of a class to one “single” instance. This is useful when exactly one object is needed ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Service locator patternThe service locator pattern is a design pattern used to encapsulate the processes involved in obtaining a service with a strong abstraction layer. This pattern ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Proxy patternThe Proxy design pattern describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to imp...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Prototype patternThe prototype pattern is a creational design pattern. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Observer pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Memento patternThe memento pattern is a software design pattern that provides the ability to restore an object to its previous state (undo via rollback). The Memento design pattern de...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Mediator patternMediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter t...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - mvvm_android

MVVM patternModel–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the UI - rom the development of the business logic or...

In tutorial, mvvm_android, designpatterns, Jan 23, 2025

Designpatterns - mvp_android

MVP patternMVP is an architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic.

In tutorial, mvp_android, designpatterns, Jan 23, 2025

Designpatterns - mvi

MVI patternMVI stands for Model-View-Intent. MVI is one of the newest architecture patterns for Android, inspired by the unidirectional and cyclical nature of the Cycle.js framework.

In tutorial, mvi, designpatterns, Jan 23, 2025

Designpatterns - no_image

Iterator pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Interpreter patternInterpreter design pattern specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a speci...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Flyweight patternA flyweight is an object that minimizes memory usage by sharing as much data as possible with other similar objects; it is a way to use objects in large numbers when ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Factory method patternFactory method pattern is a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class o...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Facade patternFacade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can: improve the readability and usability of a...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Decorator patternDecorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Composite patternThe composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. The intent of a composite is to “com...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Command patternCommand pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Chain of ResponsibilityChain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contain...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Builder patternThe builder pattern is a design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming. The intent of the Bu...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Bridge patternThe bridge pattern is a design pattern used for “decouple an abstraction from its implementation so that the two can vary independently”. The bridge uses encapsulation, ...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Adapter patternAdapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes w...

In tutorial, no_image, designpatterns, Jan 23, 2025

Designpatterns - no_image

Abstract factory pattern

In tutorial, no_image, designpatterns, Jan 23, 2025

librariesAndroid

Librariesandroid - no_image

Dependency injection libraries

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Dagger 2Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is based on the Java Specification Request (JSR) 330. It uses code gene...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

@Binds vs @Provides@Provides, the most common construct for configuring a binding, serves three functions: Declare which type (possibly qualified) is being provided — this is the ret...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - hilt_hierarchy

HiltHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires yo...

In tutorial, hilt_hierarchy, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

RetrofitThe Retrofit library is a type-safe REST client for Android, Java, and Kotlin, developed by Square. Retrofit by default leverages OkHttp as the networking layer and is built o...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

RealmRealm includes an embedded, object-oriented database that lets you build real-time, offline-first applications. You can also use Realm’s hosted application services as a secure b...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

OkHttpOkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket; Connection pooling reduces request latency (if HTT...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - interceptors

OkHttp interceptorsInterceptors are pluggable Java components that we can use to intercept and process requests before they are sent to our application code.

In tutorial, interceptors, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

KoinA pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection...

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

KodeinKodein is a Dependency Injection library. It allows you to bind your business unit interfaces with their implementation and thus having each business unit being independent.

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Image loading libraries

In tutorial, no_image, librariesAndroid, Jan 23, 2025

Librariesandroid - no_image

Main annotations in Dagger 2The main annotations in Dagger 2 are: @Provides @Inject @Module @Component @Singleton

In tutorial, no_image, librariesAndroid, Jan 23, 2025

opps

Opps - no_image

Symmetric encryption vs Asymmetric encryptionSymmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

git pull vs git fetch

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Abstraction vs Encapsulation

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

TCP vs UDP

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

PUT vs POST

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

HTTP vs HTTPS

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

GET vs POST

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Dependency injection vs Service locatorDependency injection is a technique in which an object receives other objects that it depends on, called dependencies. Typically, the receiving ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - aggregation

Aggregation vs Composition

In tutorial, aggregation, opps, Jan 23, 2025

Opps - no_image

LivelockA thread often acts in response to the action of another thread. If the other thread’s action is also a response to the action of another thread, then livelock may result. As ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - encryption_base

Encryption

In tutorial, encryption_base, opps, Jan 23, 2025

Opps - no_image

DeadlockDeadlock describes a situation where two or more threads are blocked forever, waiting for each other. Deadlock occurs when multiple threads need the same locks but obtain them...

In tutorial, no_image, opps, Jan 23, 2025

Opps - coupling

CouplingCoupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are; the strength of the relationships between m...

In tutorial, coupling, opps, Jan 23, 2025

Opps - cohesion

CohesionCohesion refers to the degree to which the elements inside a module belong together. In one sense, it is a measure of the strength of relationship between the methods and data...

In tutorial, cohesion, opps, Jan 23, 2025

Opps - no_image

ScrumScrum is an agile project management framework that helps teams structure and manage their work through a set of values, principles, and practices. Much like a rugby team (where ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - man_in_the_middle_attack

Man in the middle attackMan-in-the-middle (MITM) attack is a cyberattack where the attacker secretly relays and possibly alters the communications between two parties who believe that...

In tutorial, man_in_the_middle_attack, opps, Jan 23, 2025

Opps - no_image

KanbanKanban is an agile framework used for project and task management. At its core are continuous improvement and just-in-time development, which allows teams to stay on top of any ...

In tutorial, no_image, opps, Jan 23, 2025

Opps - fdd

Feature Driven Development (FDD)Feature-driven development (FDD) is an iterative and incremental software development process that follows the principles of the agile manifesto. The i...

In tutorial, fdd, opps, Jan 23, 2025

Opps - xp_lifycycle

Extreme Programming (XP)Extreme programming is a software development methodology that’s part of what’s collectively known as agile methodologies. XP is built upon values, principles,...

In tutorial, xp_lifycycle, opps, Jan 23, 2025

Opps - agile

AgileAgile software development methodologies often called Agile, preach flexibility and pragmatism in the application delivery process. This iterative software development approach d...

In tutorial, agile, opps, Jan 23, 2025

Opps - waterfall_model

Waterfall methodology

In tutorial, waterfall_model, opps, Jan 23, 2025

Opps - ssl_certificate_work

SSL certificatesAn SSL certificate is a bit of code on your web server that provides security for online communications. When a web browser contacts your secured website, the SSL cert...

In tutorial, ssl_certificate_work, opps, Jan 23, 2025

Opps - ct_components

Certificate transparencyCertificate Transparency (CT) is an Internet security standard for monitoring and auditing the issuance of digital certificates.

In tutorial, ct_components, opps, Jan 23, 2025

Opps - no_image

Certificate pinningCertificate pinning is a security mechanism used in the context of authenticating client-server connections, particularly in the context of secure communication ove...

In tutorial, no_image, opps, Jan 23, 2025

Opps - asymmetric-encryption

Asymmetric Key EncryptionAsymmetric cryptography, also known as public-key cryptography, is a process that uses a pair of related keys - one public key and one private key - to encryp...

In tutorial, asymmetric-encryption, opps, Jan 23, 2025

Opps - yagni_image

YAGNI, KISS, DRY

In tutorial, yagni_image, opps, Jan 23, 2025

Opps - no_image

URLA Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrievi...

In tutorial, no_image, opps, Jan 23, 2025

Opps - uri_syntax

URIA Uniform Resource Identifier (URI) is a unique sequence of characters that identifies a logical or physical resource used by web technologies. URIs may be used to identify anythin...

In tutorial, uri_syntax, opps, Jan 23, 2025

Opps - udp_datagram

UDPUDP (User Datagram Protocol) is a communications protocol that is primarily used for establishing low-latency and loss-tolerating connections between applications on the internet. ...

In tutorial, udp_datagram, opps, Jan 23, 2025

Opps - tcp_header

TCPThe Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented t...

In tutorial, tcp_header, opps, Jan 23, 2025

Opps - symmetric_encryption

Symmetric Key EncryptionSymmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the decryption of cipher...

In tutorial, symmetric_encryption, opps, Jan 23, 2025

Opps - soap_protocol

SOAPSOAP (formerly an acronym for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web services in c...

In tutorial, soap_protocol, opps, Jan 23, 2025

Opps - proto_buffers_types

Protocol BuffersProtocol Buffers (Protobuf) is a free and open-source cross-platform data format used to serialize structured data. It is useful in developing programs to communicate ...

In tutorial, proto_buffers_types, opps, Jan 23, 2025

Opps - osi_model

OSI modelThe Open Systems Interconnection model (OSI model) is a conceptual model that describes the universal standard of communication functions of a telecommunication system or com...

In tutorial, osi_model, opps, Jan 23, 2025

Opps - graphql_general

GraphQLGraphQL is an open source query language that describes how a client should request information through an API. In a broad sense, GraphQL is a syntax developers can use to ask ...

In tutorial, graphql_general, opps, Jan 23, 2025

Opps - no_image

What is Dependency injectionDependency injection is a technique in which an object receives other objects that it depends on, called dependencies. Typically, the receiving object is c...

In tutorial, no_image, opps, Jan 23, 2025

Opps - ci_basics

Continuous IntegrationContinuous Integration (CI) is a software development practice where developers frequently merge their code changes into a central repository, after which automa...

In tutorial, ci_basics, opps, Jan 23, 2025

Opps - no_image

SOLID Principles

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

SOAP vs RESTSOAP (formerly an acronym for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web servi...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

OOP Principles

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

git merge git merge simply remembers the history as it happened. It takes the two current versions, merge them together based on their common ancestor, fix any conflicts, and then re...

In tutorial, no_image, opps, Jan 23, 2025

Opps - no_image

Scrum vs Kanban

In tutorial, no_image, opps, Jan 23, 2025

Opps - concurrency

Concurrency vs Parallelism

In tutorial, concurrency, opps, Jan 23, 2025

Opps - no_image

Composition vs InheritanceComposition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic beh...

In tutorial, no_image, opps, Jan 23, 2025

concurrency

Opps - concurrency

Concurrency vs Parallelism

In tutorial, concurrency, opps, Jan 23, 2025

ci_basics

Opps - ci_basics

Continuous IntegrationContinuous Integration (CI) is a software development practice where developers frequently merge their code changes into a central repository, after which automa...

In tutorial, ci_basics, opps, Jan 23, 2025

graphql_general

Opps - graphql_general

GraphQLGraphQL is an open source query language that describes how a client should request information through an API. In a broad sense, GraphQL is a syntax developers can use to ask ...

In tutorial, graphql_general, opps, Jan 23, 2025

osi_model

Opps - osi_model

OSI modelThe Open Systems Interconnection model (OSI model) is a conceptual model that describes the universal standard of communication functions of a telecommunication system or com...

In tutorial, osi_model, opps, Jan 23, 2025

proto_buffers_types

Opps - proto_buffers_types

Protocol BuffersProtocol Buffers (Protobuf) is a free and open-source cross-platform data format used to serialize structured data. It is useful in developing programs to communicate ...

In tutorial, proto_buffers_types, opps, Jan 23, 2025

soap_protocol

Opps - soap_protocol

SOAPSOAP (formerly an acronym for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web services in c...

In tutorial, soap_protocol, opps, Jan 23, 2025

symmetric_encryption

Opps - symmetric_encryption

Symmetric Key EncryptionSymmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both the encryption of plaintext and the decryption of cipher...

In tutorial, symmetric_encryption, opps, Jan 23, 2025

tcp_header

Opps - tcp_header

TCPThe Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented t...

In tutorial, tcp_header, opps, Jan 23, 2025

udp_datagram

Opps - udp_datagram

UDPUDP (User Datagram Protocol) is a communications protocol that is primarily used for establishing low-latency and loss-tolerating connections between applications on the internet. ...

In tutorial, udp_datagram, opps, Jan 23, 2025

uri_syntax

Opps - uri_syntax

URIA Uniform Resource Identifier (URI) is a unique sequence of characters that identifies a logical or physical resource used by web technologies. URIs may be used to identify anythin...

In tutorial, uri_syntax, opps, Jan 23, 2025

yagni_image

Opps - yagni_image

YAGNI, KISS, DRY

In tutorial, yagni_image, opps, Jan 23, 2025

asymmetric-encryption

Opps - asymmetric-encryption

Asymmetric Key EncryptionAsymmetric cryptography, also known as public-key cryptography, is a process that uses a pair of related keys - one public key and one private key - to encryp...

In tutorial, asymmetric-encryption, opps, Jan 23, 2025

ct_components

Opps - ct_components

Certificate transparencyCertificate Transparency (CT) is an Internet security standard for monitoring and auditing the issuance of digital certificates.

In tutorial, ct_components, opps, Jan 23, 2025

ssl_certificate_work

Opps - ssl_certificate_work

SSL certificatesAn SSL certificate is a bit of code on your web server that provides security for online communications. When a web browser contacts your secured website, the SSL cert...

In tutorial, ssl_certificate_work, opps, Jan 23, 2025

waterfall_model

Opps - waterfall_model

Waterfall methodology

In tutorial, waterfall_model, opps, Jan 23, 2025

agile

Opps - agile

AgileAgile software development methodologies often called Agile, preach flexibility and pragmatism in the application delivery process. This iterative software development approach d...

In tutorial, agile, opps, Jan 23, 2025

xp_lifycycle

Opps - xp_lifycycle

Extreme Programming (XP)Extreme programming is a software development methodology that’s part of what’s collectively known as agile methodologies. XP is built upon values, principles,...

In tutorial, xp_lifycycle, opps, Jan 23, 2025

fdd

Opps - fdd

Feature Driven Development (FDD)Feature-driven development (FDD) is an iterative and incremental software development process that follows the principles of the agile manifesto. The i...

In tutorial, fdd, opps, Jan 23, 2025

man_in_the_middle_attack

Opps - man_in_the_middle_attack

Man in the middle attackMan-in-the-middle (MITM) attack is a cyberattack where the attacker secretly relays and possibly alters the communications between two parties who believe that...

In tutorial, man_in_the_middle_attack, opps, Jan 23, 2025

cohesion

Opps - cohesion

CohesionCohesion refers to the degree to which the elements inside a module belong together. In one sense, it is a measure of the strength of relationship between the methods and data...

In tutorial, cohesion, opps, Jan 23, 2025

coupling

Opps - coupling

CouplingCoupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are; the strength of the relationships between m...

In tutorial, coupling, opps, Jan 23, 2025

encryption_base

Opps - encryption_base

Encryption

In tutorial, encryption_base, opps, Jan 23, 2025

aggregation

Opps - aggregation

Aggregation vs Composition

In tutorial, aggregation, opps, Jan 23, 2025

activity_lifecycle

Android - activity_lifecycle

Activity Lifecycle

In tutorial, activity_lifecycle, android, Jan 23, 2025

build_type

Android - build_type

Build Type, Product Flavor, Build Variant

In tutorial, build_type, android, Jan 23, 2025

fragment_lifecycle

Android - fragment_lifecycle

Fragment LifecycleEach Fragment instance has its own lifecycle. When a user navigates and interacts with your app, your fragments transition through various states in their lifecycle ...

In tutorial, fragment_lifecycle, android, Jan 23, 2025

modularization_dependency_graph

Android - modularization_dependency_graph

Android modularizationA project with multiple Gradle modules is known as a multi-module project. In an ever-growing codebase, scalability, readability, and overall code quality often ...

In tutorial, modularization_dependency_graph, android, Jan 23, 2025

compose_phases

Android - compose_phases

Jetpack Compose PhasesLike most other UI toolkits, Compose renders a frame through several distinct phases. If we look at the Android View system, it has three main phases: measure, l...

In tutorial, compose_phases, android, Jan 23, 2025

fragment-a-to-b

Android - fragment-a-to-b

Communicating with fragmentsTo reuse fragments, build them as completely self-contained components that define their own layout and behavior. Once you define these reusable fragments,...

In tutorial, fragment-a-to-b, android, Jan 23, 2025

view_lifecycle

Android - view_lifecycle

View lifecycleView class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event h...

In tutorial, view_lifecycle, android, Jan 23, 2025

pinned_shortcuts

Android - pinned_shortcuts

App ShortcutsShortcuts deliver specific types of content to your users by helping them quickly access parts of your app.1

In tutorial, pinned_shortcuts, android, Jan 23, 2025

handler_looper_message

Android - handler_looper_message

Handler, MessageQueue, Looper

In tutorial, handler_looper_message, android, Jan 23, 2025

lint_tool

Android - lint_tool

LintAndroid Studio provides a code scanning tool called lint that can help you to identify and correct problems with the structural quality of your code without your having to execute...

In tutorial, lint_tool, android, Jan 23, 2025

cold_start

Android - cold_start

App startup timeApp launch can take place in one of three states: Cold start; Warm start; Hot start.

In tutorial, cold_start, android, Jan 23, 2025

downloadable_fonts_process

Android - downloadable_fonts_process

Downloadable fontsThe Downloadable Fonts feature lets APIs request fonts from a provider application instead of bundling files into the app or letting the app download fonts. Download...

In tutorial, downloadable_fonts_process, android, Jan 23, 2025

lifecycle_states

Android - lifecycle_states

LifecycleLifecycle-aware components perform actions in response to a change in the lifecycle status of another component, such as activities and fragments. These components help you p...

In tutorial, lifecycle_states, android, Jan 23, 2025

notification

Android - notification

NotificationA notification is a message that Android displays outside your app’s UI to provide the user with reminders, communication from other people, or other timely information fr...

In tutorial, notification, android, Jan 23, 2025

paging_library_architecture

Android - paging_library_architecture

Paging libraryThe Paging Library helps you load and display small chunks of data at a time. Loading partial data on demand reduces usage of network bandwidth and system resources.

In tutorial, paging_library_architecture, android, Jan 23, 2025

slices_image_1

Android - slices_image_1

SlicesSlices are UI templates that can display rich, dynamic, and interactive content from your app from within the Google Search app and also in other places like the Google Assistan...

In tutorial, slices_image_1, android, Jan 23, 2025

diagram_backstack

Android - diagram_backstack

Tasks and the back stackA task is a collection of activities that users interact with when trying to do something in your app. These activities are arranged in a stack called the back...

In tutorial, diagram_backstack, android, Jan 23, 2025

anr_example_framed

Android - anr_example_framed

ANR (Application Not Responding)When the UI thread of an Android app is blocked for too long, an “Application Not Responding” (ANR) error is triggered. If the app is in the foreground...

In tutorial, anr_example_framed, android, Jan 23, 2025

context

Android - context

Context

In tutorial, context, android, Jan 23, 2025

fragments

Android - fragments

FragmentA Fragment represents a reusable portion of your app’s UI. A fragment defines and manages its own layout, has its own lifecycle, and can handle its own input events. Fragments...

In tutorial, fragments, android, Jan 23, 2025

compose_1

Android - compose_1

Jetpack ComposeJetpack Compose is a modern declarative UI Toolkit for Android. Compose makes it easier to write and maintain your app UI by providing a declarative API that allows you...

In tutorial, compose_1, android, Jan 23, 2025

spannable_table

user_task_flowchart

Android - user_task_flowchart

What is background taskFor the purposes of this document, we’ll use the term “task” to mean an operation an app is doing outside its main workflow. To ensure alignment in understandin...

In tutorial, user_task_flowchart, android, Jan 23, 2025

viewbinding_vs_databinding

Android - viewbinding_vs_databinding

View binding vs Data bindingView binding is a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a bin...

In tutorial, viewbinding_vs_databinding, android, Jan 23, 2025

singleTop_scenario_1

Android - singleTop_scenario_1

What launch modes do you know?

In tutorial, singleTop_scenario_1, android, Jan 23, 2025

module_mediator

Android - module_mediator

Modularization patterns

In tutorial, module_mediator, android, Jan 23, 2025

data_modules

Android - data_modules

Modules types

In tutorial, data_modules, android, Jan 23, 2025

content_provider

Android - content_provider

Content Provider

In tutorial, content_provider, android, Jan 23, 2025

android_jetpack

Android - android_jetpack

JetpackJetpack encompasses a collection of Android libraries that incorporate best practices and provide backwards compatibility in your Android apps. The Android Jetpack components b...

In tutorial, android_jetpack, android, Jan 23, 2025

app_signing

Android - app_signing

Play App SigningWith Play App Signing, Google manages and protects your app’s signing key for you and uses it to sign optimized, distribution APKs that are generated from your app bun...

In tutorial, app_signing, android, Jan 23, 2025

room

Android - room

Room

In tutorial, room, android, Jan 23, 2025

service_lifecycle

view_hierarchy

viewmodel_lifecycle

Android - viewmodel_lifecycle

ViewModelThe ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as scr...

In tutorial, viewmodel_lifecycle, android, Jan 23, 2025

work_manager_criteria

Android - work_manager_criteria

WorkManagerWorkManager is an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts. The WorkManager A...

In tutorial, work_manager_criteria, android, Jan 23, 2025