Categories
Jekyll
DLD Importent notes
DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:
In Jekyll, tutorial, Jan 11, 2024Network 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, 2020DLD Importent notes
DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:
In Jekyll, tutorial, Jul 24, 2020crypto 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, 2020C 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, 2020Powerful 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, 2020tutorial
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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
What tools for multithreading do you know
In tutorial, no_image, android, Jan 23, 2025Android - module_mediator
Modularization patterns
In tutorial, module_mediator, android, Jan 23, 2025Android - singleTop_scenario_1
What launch modes do you know?
In tutorial, singleTop_scenario_1, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
taskAffinityThe taskAffinity is the attribute that is declared in the AndroidManifest file.
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
AccessibilityTry to make your Android app usable for everyone, including people with accessibility needs.
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - handler_looper_message
Handler, MessageQueue, Looper
In tutorial, handler_looper_message, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - build_type
Build Type, Product Flavor, Build Variant
In tutorial, build_type, android, Jan 23, 2025Android - activity_lifecycle
Activity Lifecycle
In tutorial, activity_lifecycle, android, Jan 23, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Librariesandroid - no_image
Dependency injection libraries
In tutorial, no_image, librariesAndroid, Jan 23, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - no_image
Image loading libraries
In tutorial, no_image, librariesAndroid, Jan 23, 2025Librariesandroid - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - no_image
Abstract factory pattern
In tutorial, no_image, designpatterns, Jan 23, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testassignments - no_image
Google Images Search
In tutorial, no_image, testAssignments, Jan 23, 2025Code - no_image
Puzzle 1 - subscribeOn + observeOnOn which thread doSomething() will be executed?
In tutorial, no_image, Rx, Jan 23, 2025Rx - utility_subscribeon
SubscribeOnSubscribeOn specify the Scheduler on which an Observable will operate.
In tutorial, utility_subscribeon, Rx, Jan 23, 2025Rx - observeOn
ObserveOnObserveOn specify the Scheduler on which an observer will observe this Observable.
In tutorial, observeOn, Rx, Jan 23, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - coroutine_context
Coroutine Scope vs Coroutine Context
In tutorial, coroutine_context, kotlin, Jan 23, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - visibility_modifiers
Visibility modifiers
In tutorial, visibility_modifiers, kotlin, Jan 23, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - no_image
Constructors invocation orderSuppose we have next code:```open class Parent {
In tutorial, no_image, kotlin, Jan 23, 2025Kotlin - 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, 2025Code - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - garbage_collection_step_1
Garbage Collection
In tutorial, garbage_collection_step_1, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - no_image
Stream interfacepublic interface Stream<T> extends BaseStream<T, Stream<T>>
In tutorial, no_image, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - exception_hierarchy
Exception. Checked vs Unchecked.
In tutorial, exception_hierarchy, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - java_set_implementation
Set interface
In tutorial, java_set_implementation, java, Jan 23, 2025Java - 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, 2025Java - java_list_class_diagram
List interface
In tutorial, java_list_class_diagram, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Sw-Projectmgmt - no_image
Software Project Management Anti Patterns
In tutorial, no_image, general, Jan 21, 2025Sw-Architecture - no_image
Software Architecture Anti Patterns
In tutorial, no_image, general, Jan 21, 2025Part-6 - use-case-analysis
Part 6 - Details
In tutorial, use-case-analysis, architecture, Jan 21, 2025Part-5A - no_image
Part 5a - Architecture Fundamentals
In tutorial, no_image, architecture, Jan 21, 2025Part-3 - abstract-factory-example
Part 3 - Design Principles
In tutorial, abstract-factory-example, architecture, Jan 21, 2025Part-2 - no-dependency-inversion
Part 2 - Starting with the bricks: Programming Paradigms
In tutorial, no-dependency-inversion, architecture, Jan 21, 2025Part-1 - engineering-staff-growth
Part 1 - Introduction
In tutorial, engineering-staff-growth, architecture, Jan 21, 2025Good-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, 2025Design-Patterns - no_image
Design Patterns: Elements of Reusable Object-Oriented Software
In tutorial, no_image, architecture, Jan 21, 2025Ch02 - no_image
A Case Study: Designing a Document Editor
In tutorial, no_image, architecture, Jan 21, 2025Ch01 - 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, 202512.Discussion - command-example
Behavioral Patterns Discussion
In tutorial, command-example, architecture, Jan 21, 202511.Visitor - naive-implementation
Visitor
In tutorial, naive-implementation, architecture, Jan 21, 202510.Template-Method - template-method-example
Template Method
In tutorial, template-method-example, architecture, Jan 21, 202508.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, 202507.Proxy - proxy-example-structure
Proxy
In tutorial, proxy-example-structure, architecture, Jan 21, 202506.Memento - connected-rectangles-1
Memento
In tutorial, connected-rectangles-1, architecture, Jan 21, 202506.Discussion - no_image
Creational Patterns Discussion
In tutorial, no_image, architecture, Jan 21, 202505.Mediator - example-motivation
Mediator
In tutorial, example-motivation, architecture, Jan 21, 202505.Facade - facade-conceptual-example
Facade
In tutorial, facade-conceptual-example, architecture, Jan 21, 202504.Prototype - prototype-example
Prototype
In tutorial, prototype-example, architecture, Jan 21, 202504.Iterator - example-list-iterator
Iterator
In tutorial, example-list-iterator, architecture, Jan 21, 202504.Decorator - decorator-example
Decorator
In tutorial, decorator-example, architecture, Jan 21, 202503.Factory-Method - factory-method-example
Factory Method
In tutorial, factory-method-example, architecture, Jan 21, 202503.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, 202502.Command - command-example-structure
Command
In tutorial, command-example-structure, architecture, Jan 21, 202502.Builder - rtf-reader-class-diagram
Builder
In tutorial, rtf-reader-class-diagram, architecture, Jan 21, 202501.Chain-Of-Responsibility - cor-example-chaining
Chain of Responsibility
In tutorial, cor-example-chaining, architecture, Jan 21, 202501.Adapter - object-adapter-example
Adapter
In tutorial, object-adapter-example, architecture, Jan 21, 202501.Abstract-Factory - widgets-class-diagram
Abstract Factory
In tutorial, widgets-class-diagram, architecture, Jan 21, 2025Jenkov-Concurrency - cpus-multiple-threads
Jenkov Concurrency Tutorial Tutorial link
In tutorial, cpus-multiple-threads, java, Jan 21, 2025Chapter-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, 2025Chapter-15 - high-contention-performance
Chapter 15 - Atomic Variables and Nonblocking synchronization
In tutorial, high-contention-performance, java, Jan 21, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-07 - no_image
Chapter 07 - Cancellation & Shutdown
In tutorial, no_image, java, Jan 21, 2025Chapter-05 - cache-performance-1
Chapter 05 - Building Blocks
In tutorial, cache-performance-1, java, Jan 21, 2025Chapter-03 - thread-visibility
Chapter 03 - Sharing Objects
In tutorial, thread-visibility, java, Jan 21, 2025System-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, 2025Part05 - test-pyramid
Maintainability Testing Continuous delivery and deployment Monitoring Observability Traces Manageability Summary
In tutorial, test-pyramid, system design, Jan 21, 2025Part04 - cascade-failure-1
Resiliency Common failure causes Redundancy Fault isolation Downstream resiliency Upstream resiliency Summary
In tutorial, cascade-failure-1, system design, Jan 21, 2025Part03 - 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, 2025Part01 - network-protocols
Communication
In tutorial, network-protocols, system design, Jan 21, 2025Chapter29 - world-stock-exchanges
Stock ExchangeWe’ll design an electronic stock exchange in this chapter.
In tutorial, world-stock-exchanges, system design, Jan 21, 2025Chapter28 - 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, 2025Chapter27 - 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, 2025Chapter26 - leaderboard
Real-time Gaming LeaderboardWe are going to design a leaderboard for an online mobile game:
In tutorial, leaderboard, system design, Jan 21, 2025Chapter25 - 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, 2025Chapter24 - 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, 2025Chapter23 - 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, 2025Chapter22 - 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, 2025Chapter21 - 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, 2025Chapter20 - 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, 2025Chapter19 - partitioning-system
Google MapsWe’ll design a simple version of Google Maps.
In tutorial, partitioning-system, system design, Jan 21, 2025Chapter18 - 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, 2025Chapter17 - business-table
Proximity Service
In tutorial, business-table, system design, Jan 21, 2025Chapter16 - 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, 2025Chapter15 - 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, 2025Chapter14 - 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, 2025Chapter13 - 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, 2025Chapter12 - 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, 2025Chapter11 - 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, 2025Chapter10 - 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, 2025Chapter09 - 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, 2025Chapter08 - 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, 2025Chapter07 - 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, 2025Chapter06 - hash-ring
Design Consistent HashingFor horizontal scaling, it is important to distribute requests across servers efficiently.
In tutorial, hash-ring, system design, Jan 21, 2025Chapter05 - 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, 2025Chapter04 - feed-publishing
A Framework for System Design InterviewsSystem design interviews are intimidating.
In tutorial, feed-publishing, system design, Jan 21, 2025Chapter03 - 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, 2025Chapter02 - 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, 2025Bloc 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, 2024DLD Importent notes
DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:
In Jekyll, tutorial, Jan 11, 2024Network 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, 2020DLD Importent notes
DLD Imp notesAccording to Amdahl’s law speed up for infinite number of process:
In Jekyll, tutorial, Jul 24, 2020crypto 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, 2020C 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, 2020Android 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, 2020Unit Testing Login Functionality in Android with Kotlin and Mockito
Unit Testing Login Functionality in Android with Kotlin and Mockito
In tutorial, android, Jul 24, 2020Powerful 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, 2020android
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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
What tools for multithreading do you know
In tutorial, no_image, android, Jan 23, 2025Android - module_mediator
Modularization patterns
In tutorial, module_mediator, android, Jan 23, 2025Android - singleTop_scenario_1
What launch modes do you know?
In tutorial, singleTop_scenario_1, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
taskAffinityThe taskAffinity is the attribute that is declared in the AndroidManifest file.
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
AccessibilityTry to make your Android app usable for everyone, including people with accessibility needs.
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - handler_looper_message
Handler, MessageQueue, Looper
In tutorial, handler_looper_message, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - build_type
Build Type, Product Flavor, Build Variant
In tutorial, build_type, android, Jan 23, 2025Android - activity_lifecycle
Activity Lifecycle
In tutorial, activity_lifecycle, android, Jan 23, 2025Android 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, 2020Unit Testing Login Functionality in Android with Kotlin and Mockito
Unit Testing Login Functionality in Android with Kotlin and Mockito
In tutorial, android, Jul 24, 2020Powerful 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, 2020Android
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, 2023Hilt 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, 2020DI
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, 2023Hilt 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, 2020Flutter
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, 2024Simple 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, 2024Flutter interview questions
Flutter interview questions with answers
In Flutter, oneview, Jan 11, 2024oneview
Flutter interview questions
Flutter interview questions with answers
In Flutter, oneview, Jan 11, 2024Oneview
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, 2024Simple 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, 2024featured
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, 2025system 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, 2025Part05 - test-pyramid
Maintainability Testing Continuous delivery and deployment Monitoring Observability Traces Manageability Summary
In tutorial, test-pyramid, system design, Jan 21, 2025Part04 - cascade-failure-1
Resiliency Common failure causes Redundancy Fault isolation Downstream resiliency Upstream resiliency Summary
In tutorial, cascade-failure-1, system design, Jan 21, 2025Part03 - 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, 2025Part01 - network-protocols
Communication
In tutorial, network-protocols, system design, Jan 21, 2025Chapter29 - world-stock-exchanges
Stock ExchangeWe’ll design an electronic stock exchange in this chapter.
In tutorial, world-stock-exchanges, system design, Jan 21, 2025Chapter28 - 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, 2025Chapter27 - 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, 2025Chapter26 - leaderboard
Real-time Gaming LeaderboardWe are going to design a leaderboard for an online mobile game:
In tutorial, leaderboard, system design, Jan 21, 2025Chapter25 - 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, 2025Chapter24 - 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, 2025Chapter23 - 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, 2025Chapter22 - 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, 2025Chapter21 - 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, 2025Chapter20 - 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, 2025Chapter19 - partitioning-system
Google MapsWe’ll design a simple version of Google Maps.
In tutorial, partitioning-system, system design, Jan 21, 2025Chapter18 - 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, 2025Chapter17 - business-table
Proximity Service
In tutorial, business-table, system design, Jan 21, 2025Chapter16 - 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, 2025Chapter15 - 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, 2025Chapter14 - 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, 2025Chapter13 - 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, 2025Chapter12 - 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, 2025Chapter11 - 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, 2025Chapter10 - 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, 2025Chapter09 - 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, 2025Chapter08 - 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, 2025Chapter07 - 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, 2025Chapter06 - hash-ring
Design Consistent HashingFor horizontal scaling, it is important to distribute requests across servers efficiently.
In tutorial, hash-ring, system design, Jan 21, 2025Chapter05 - 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, 2025Chapter04 - feed-publishing
A Framework for System Design InterviewsSystem design interviews are intimidating.
In tutorial, feed-publishing, system design, Jan 21, 2025Chapter03 - 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, 2025Chapter02 - 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, 2025latency-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, 2025feed-publishing
Chapter04 - feed-publishing
A Framework for System Design InterviewsSystem design interviews are intimidating.
In tutorial, feed-publishing, system design, Jan 21, 2025server-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, 2025hash-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, 2025cap-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, 2025multi-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, 2025tinyurl-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, 2025web-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, 2025ios-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, 2025feed-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, 2025store-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, 2025google-search
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, 2025high-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, 2025storage-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, 2025business-table
Chapter17 - business-table
Proximity Service
In tutorial, business-table, system design, Jan 21, 2025fan-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, 2025partitioning-system
Chapter19 - partitioning-system
Google MapsWe’ll design a simple version of Google Maps.
In tutorial, partitioning-system, system design, Jan 21, 2025message-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, 2025metrics-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, 2025digital-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, 2025qps-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, 2025dns-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, 2025storage-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, 2025leaderboard
Chapter26 - leaderboard
Real-time Gaming LeaderboardWe are going to design a leaderboard for an online mobile game:
In tutorial, leaderboard, system design, Jan 21, 2025high-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, 2025digital-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, 2025world-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, 2025app-capacity
network-protocols
Part01 - network-protocols
Communication
In tutorial, network-protocols, system design, Jan 21, 2025failure-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, 2025cascade-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, 2025test-pyramid
Part05 - test-pyramid
Maintainability Testing Continuous delivery and deployment Monitoring Observability Traces Manageability Summary
In tutorial, test-pyramid, system design, Jan 21, 2025no_image
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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - no_image
What tools for multithreading do you know
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - no_image
taskAffinityThe taskAffinity is the attribute that is declared in the AndroidManifest file.
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - no_image
AccessibilityTry to make your Android app usable for everyone, including people with accessibility needs.
In tutorial, no_image, android, Jan 23, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Android - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Librariesandroid - no_image
Dependency injection libraries
In tutorial, no_image, librariesAndroid, Jan 23, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - no_image
Image loading libraries
In tutorial, no_image, librariesAndroid, Jan 23, 2025Librariesandroid - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - no_image
Abstract factory pattern
In tutorial, no_image, designpatterns, Jan 23, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testassignments - no_image
Google Images Search
In tutorial, no_image, testAssignments, Jan 23, 2025Code - no_image
Puzzle 1 - subscribeOn + observeOnOn which thread doSomething() will be executed?
In tutorial, no_image, Rx, Jan 23, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - no_image
Constructors invocation orderSuppose we have next code:```open class Parent {
In tutorial, no_image, kotlin, Jan 23, 2025Kotlin - 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, 2025Code - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - no_image
Stream interfacepublic interface Stream<T> extends BaseStream<T, Stream<T>>
In tutorial, no_image, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Sw-Projectmgmt - no_image
Software Project Management Anti Patterns
In tutorial, no_image, general, Jan 21, 2025Sw-Architecture - no_image
Software Architecture Anti Patterns
In tutorial, no_image, general, Jan 21, 2025Part-5A - no_image
Part 5a - Architecture Fundamentals
In tutorial, no_image, architecture, Jan 21, 2025Good-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, 2025Design-Patterns - no_image
Design Patterns: Elements of Reusable Object-Oriented Software
In tutorial, no_image, architecture, Jan 21, 2025Ch02 - no_image
A Case Study: Designing a Document Editor
In tutorial, no_image, architecture, Jan 21, 202508.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, 202506.Discussion - no_image
Creational Patterns Discussion
In tutorial, no_image, architecture, Jan 21, 2025Chapter-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, 2025Chapter-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, 2025Chapter-07 - no_image
Chapter 07 - Cancellation & Shutdown
In tutorial, no_image, java, Jan 21, 2025System-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, 2025java
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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - garbage_collection_step_1
Garbage Collection
In tutorial, garbage_collection_step_1, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - no_image
Stream interfacepublic interface Stream<T> extends BaseStream<T, Stream<T>>
In tutorial, no_image, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - exception_hierarchy
Exception. Checked vs Unchecked.
In tutorial, exception_hierarchy, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Java - 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, 2025Java - java_set_implementation
Set interface
In tutorial, java_set_implementation, java, Jan 23, 2025Java - 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, 2025Java - java_list_class_diagram
List interface
In tutorial, java_list_class_diagram, java, Jan 23, 2025Java - 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, 2025Java - 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, 2025Jenkov-Concurrency - cpus-multiple-threads
Jenkov Concurrency Tutorial Tutorial link
In tutorial, cpus-multiple-threads, java, Jan 21, 2025Chapter-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, 2025Chapter-15 - high-contention-performance
Chapter 15 - Atomic Variables and Nonblocking synchronization
In tutorial, high-contention-performance, java, Jan 21, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-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, 2025Chapter-07 - no_image
Chapter 07 - Cancellation & Shutdown
In tutorial, no_image, java, Jan 21, 2025Chapter-05 - cache-performance-1
Chapter 05 - Building Blocks
In tutorial, cache-performance-1, java, Jan 21, 2025Chapter-03 - thread-visibility
Chapter 03 - Sharing Objects
In tutorial, thread-visibility, java, Jan 21, 2025thread-visibility
Chapter-03 - thread-visibility
Chapter 03 - Sharing Objects
In tutorial, thread-visibility, java, Jan 21, 2025cache-performance-1
Chapter-05 - cache-performance-1
Chapter 05 - Building Blocks
In tutorial, cache-performance-1, java, Jan 21, 2025short-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, 2025deadlock-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, 2025blocking-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, 2025bounder-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, 2025intrinsic-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, 2025high-contention-performance
Chapter-15 - high-contention-performance
Chapter 15 - Atomic Variables and Nonblocking synchronization
In tutorial, high-contention-performance, java, Jan 21, 2025monitor-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, 2025cpus-multiple-threads
Jenkov-Concurrency - cpus-multiple-threads
Jenkov Concurrency Tutorial Tutorial link
In tutorial, cpus-multiple-threads, java, Jan 21, 2025maze-classes
architecture
Part-6 - use-case-analysis
Part 6 - Details
In tutorial, use-case-analysis, architecture, Jan 21, 2025Part-5A - no_image
Part 5a - Architecture Fundamentals
In tutorial, no_image, architecture, Jan 21, 2025Part-3 - abstract-factory-example
Part 3 - Design Principles
In tutorial, abstract-factory-example, architecture, Jan 21, 2025Part-2 - no-dependency-inversion
Part 2 - Starting with the bricks: Programming Paradigms
In tutorial, no-dependency-inversion, architecture, Jan 21, 2025Part-1 - engineering-staff-growth
Part 1 - Introduction
In tutorial, engineering-staff-growth, architecture, Jan 21, 2025Good-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, 2025Design-Patterns - no_image
Design Patterns: Elements of Reusable Object-Oriented Software
In tutorial, no_image, architecture, Jan 21, 2025Ch02 - no_image
A Case Study: Designing a Document Editor
In tutorial, no_image, architecture, Jan 21, 2025Ch01 - 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, 202512.Discussion - command-example
Behavioral Patterns Discussion
In tutorial, command-example, architecture, Jan 21, 202511.Visitor - naive-implementation
Visitor
In tutorial, naive-implementation, architecture, Jan 21, 202510.Template-Method - template-method-example
Template Method
In tutorial, template-method-example, architecture, Jan 21, 202508.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, 202507.Proxy - proxy-example-structure
Proxy
In tutorial, proxy-example-structure, architecture, Jan 21, 202506.Memento - connected-rectangles-1
Memento
In tutorial, connected-rectangles-1, architecture, Jan 21, 202506.Discussion - no_image
Creational Patterns Discussion
In tutorial, no_image, architecture, Jan 21, 202505.Mediator - example-motivation
Mediator
In tutorial, example-motivation, architecture, Jan 21, 202505.Facade - facade-conceptual-example
Facade
In tutorial, facade-conceptual-example, architecture, Jan 21, 202504.Prototype - prototype-example
Prototype
In tutorial, prototype-example, architecture, Jan 21, 202504.Iterator - example-list-iterator
Iterator
In tutorial, example-list-iterator, architecture, Jan 21, 202504.Decorator - decorator-example
Decorator
In tutorial, decorator-example, architecture, Jan 21, 202503.Factory-Method - factory-method-example
Factory Method
In tutorial, factory-method-example, architecture, Jan 21, 202503.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, 202502.Command - command-example-structure
Command
In tutorial, command-example-structure, architecture, Jan 21, 202502.Builder - rtf-reader-class-diagram
Builder
In tutorial, rtf-reader-class-diagram, architecture, Jan 21, 202501.Chain-Of-Responsibility - cor-example-chaining
Chain of Responsibility
In tutorial, cor-example-chaining, architecture, Jan 21, 202501.Adapter - object-adapter-example
Adapter
In tutorial, object-adapter-example, architecture, Jan 21, 202501.Abstract-Factory - widgets-class-diagram
Abstract Factory
In tutorial, widgets-class-diagram, architecture, Jan 21, 2025widgets-class-diagram
01.Abstract-Factory - widgets-class-diagram
Abstract Factory
In tutorial, widgets-class-diagram, architecture, Jan 21, 2025object-adapter-example
01.Adapter - object-adapter-example
Adapter
In tutorial, object-adapter-example, architecture, Jan 21, 2025cor-example-chaining
01.Chain-Of-Responsibility - cor-example-chaining
Chain of Responsibility
In tutorial, cor-example-chaining, architecture, Jan 21, 2025window-inheritance
rtf-reader-class-diagram
02.Builder - rtf-reader-class-diagram
Builder
In tutorial, rtf-reader-class-diagram, architecture, Jan 21, 2025command-example-structure
02.Command - command-example-structure
Command
In tutorial, command-example-structure, architecture, Jan 21, 2025composite-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, 2025factory-method-example
03.Factory-Method - factory-method-example
Factory Method
In tutorial, factory-method-example, architecture, Jan 21, 2025decorator-example
04.Decorator - decorator-example
Decorator
In tutorial, decorator-example, architecture, Jan 21, 2025example-list-iterator
04.Iterator - example-list-iterator
Iterator
In tutorial, example-list-iterator, architecture, Jan 21, 2025prototype-example
04.Prototype - prototype-example
Prototype
In tutorial, prototype-example, architecture, Jan 21, 2025facade-conceptual-example
05.Facade - facade-conceptual-example
Facade
In tutorial, facade-conceptual-example, architecture, Jan 21, 2025example-motivation
05.Mediator - example-motivation
Mediator
In tutorial, example-motivation, architecture, Jan 21, 2025singleton
naive-structure
connected-rectangles-1
06.Memento - connected-rectangles-1
Memento
In tutorial, connected-rectangles-1, architecture, Jan 21, 2025excel-example
proxy-example-structure
07.Proxy - proxy-example-structure
Proxy
In tutorial, proxy-example-structure, architecture, Jan 21, 2025tcp-state-example
strategy-example
template-method-example
10.Template-Method - template-method-example
Template Method
In tutorial, template-method-example, architecture, Jan 21, 2025naive-implementation
11.Visitor - naive-implementation
Visitor
In tutorial, naive-implementation, architecture, Jan 21, 2025command-example
12.Discussion - command-example
Behavioral Patterns Discussion
In tutorial, command-example, architecture, Jan 21, 2025dp-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, 2025engineering-staff-growth
Part-1 - engineering-staff-growth
Part 1 - Introduction
In tutorial, engineering-staff-growth, architecture, Jan 21, 2025no-dependency-inversion
Part-2 - no-dependency-inversion
Part 2 - Starting with the bricks: Programming Paradigms
In tutorial, no-dependency-inversion, architecture, Jan 21, 2025abstract-factory-example
Part-3 - abstract-factory-example
Part 3 - Design Principles
In tutorial, abstract-factory-example, architecture, Jan 21, 2025use-case-analysis
Part-6 - use-case-analysis
Part 6 - Details
In tutorial, use-case-analysis, architecture, Jan 21, 2025general
Sw-Projectmgmt - no_image
Software Project Management Anti Patterns
In tutorial, no_image, general, Jan 21, 2025Sw-Architecture - no_image
Software Architecture Anti Patterns
In tutorial, no_image, general, Jan 21, 2025deque_interface_java
java_list_class_diagram
Java - java_list_class_diagram
List interface
In tutorial, java_list_class_diagram, java, Jan 23, 2025queue_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, 2025java_set_implementation
Java - java_set_implementation
Set interface
In tutorial, java_set_implementation, java, Jan 23, 2025exception_hierarchy
Java - exception_hierarchy
Exception. Checked vs Unchecked.
In tutorial, exception_hierarchy, java, Jan 23, 2025java_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, 2025collection
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, 2025iterators
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, 2025serialize_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, 2025garbage_collection_step_1
Java - garbage_collection_step_1
Garbage Collection
In tutorial, garbage_collection_step_1, java, Jan 23, 2025string_pool
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, 2025jdk
volatile
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, 2025kotlin
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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - coroutine_context
Coroutine Scope vs Coroutine Context
In tutorial, coroutine_context, kotlin, Jan 23, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - visibility_modifiers
Visibility modifiers
In tutorial, visibility_modifiers, kotlin, Jan 23, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - 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, 2025Kotlin - no_image
Constructors invocation orderSuppose we have next code:```open class Parent {
In tutorial, no_image, kotlin, Jan 23, 2025Kotlin - 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, 2025Code - 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, 2025crossinline
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, 2025scope_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, 2025visibility_modifiers
Kotlin - visibility_modifiers
Visibility modifiers
In tutorial, visibility_modifiers, kotlin, Jan 23, 2025flow_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, 2025coroutine_context
Kotlin - coroutine_context
Coroutine Scope vs Coroutine Context
In tutorial, coroutine_context, kotlin, Jan 23, 2025libraries
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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025Libraries - 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, 2025interceptors
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, 2025Libraries - 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, 2025hilt_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, 2025Libraries - 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, 2025patterns
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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025Patterns - 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, 2025mvi
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, 2025Patterns - 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, 2025mvp_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, 2025Patterns - 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, 2025mvvm_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, 2025Patterns - 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, 2025combining_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, 2025Rx
Code - no_image
Puzzle 1 - subscribeOn + observeOnOn which thread doSomething() will be executed?
In tutorial, no_image, Rx, Jan 23, 2025Rx - utility_subscribeon
SubscribeOnSubscribeOn specify the Scheduler on which an Observable will operate.
In tutorial, utility_subscribeon, Rx, Jan 23, 2025Rx - observeOn
ObserveOnObserveOn specify the Scheduler on which an observer will observe this Observable.
In tutorial, observeOn, Rx, Jan 23, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025Rx - 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, 2025conditional_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, 2025creating_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, 2025error_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, 2025filtering_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, 2025math_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, 2025transforming_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, 2025utility_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, 2025publish_subject_success
observeOn
Rx - observeOn
ObserveOnObserveOn specify the Scheduler on which an observer will observe this Observable.
In tutorial, observeOn, Rx, Jan 23, 2025utility_subscribeon
Rx - utility_subscribeon
SubscribeOnSubscribeOn specify the Scheduler on which an Observable will operate.
In tutorial, utility_subscribeon, Rx, Jan 23, 2025concat
transforming_map
schedulers
flatMap
testAssignments
Testassignments - no_image
Google Images Search
In tutorial, no_image, testAssignments, Jan 23, 2025tdd
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, 2025testing
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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025Testing - 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, 2025test_pyramid
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, 2025designpatterns
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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - 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, 2025Designpatterns - no_image
Abstract factory pattern
In tutorial, no_image, designpatterns, Jan 23, 2025librariesAndroid
Librariesandroid - no_image
Dependency injection libraries
In tutorial, no_image, librariesAndroid, Jan 23, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - 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, 2025Librariesandroid - no_image
Image loading libraries
In tutorial, no_image, librariesAndroid, Jan 23, 2025Librariesandroid - 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, 2025opps
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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025Opps - 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, 2025concurrency
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, 2025graphql_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, 2025osi_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, 2025proto_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, 2025soap_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, 2025symmetric_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, 2025tcp_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, 2025udp_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, 2025uri_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, 2025yagni_image
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, 2025ct_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, 2025ssl_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, 2025waterfall_model
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, 2025xp_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, 2025fdd
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, 2025man_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, 2025cohesion
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, 2025coupling
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, 2025encryption_base
aggregation
activity_lifecycle
Android - activity_lifecycle
Activity Lifecycle
In tutorial, activity_lifecycle, android, Jan 23, 2025build_type
Android - build_type
Build Type, Product Flavor, Build Variant
In tutorial, build_type, android, Jan 23, 2025fragment_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, 2025modularization_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, 2025compose_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, 2025fragment-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, 2025view_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, 2025pinned_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, 2025handler_looper_message
Android - handler_looper_message
Handler, MessageQueue, Looper
In tutorial, handler_looper_message, android, Jan 23, 2025lint_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, 2025cold_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, 2025downloadable_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, 2025lifecycle_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, 2025notification
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, 2025paging_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, 2025slices_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, 2025diagram_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, 2025anr_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, 2025context
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, 2025compose_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, 2025spannable_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, 2025viewbinding_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, 2025singleTop_scenario_1
Android - singleTop_scenario_1
What launch modes do you know?
In tutorial, singleTop_scenario_1, android, Jan 23, 2025module_mediator
Android - module_mediator
Modularization patterns
In tutorial, module_mediator, android, Jan 23, 2025data_modules
content_provider
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, 2025app_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, 2025room
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, 2025work_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, 2025Featured
-
Live_Data
In featured, tutorial, android, -
Kt Coroutine
In featured, tutorial, android, -
Flutter interview questions
In Flutter, oneview, -
Hilt DI Deep Dive
In Android, DI,