# interface

An interface is a boundary or mechanism through which independent computing systems, software components, hardware components, or people communicate and interact.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## GNOME 51 released

DevFeed: [GNOME 51 released](<https://devfeed.tech/articles/gnome-51-released-41294.md>)

Original publisher: [Read original article](<https://lwn.net/Articles/1094963/>)

Author: corbet

Published: 2026-09-17T13:08:12Z

Content type: release

Language: en

Sources: [LWN.net](<https://devfeed.tech/sources/lwn-net.md>)

Topics: [version](<https://devfeed.tech/topics/version.md>), [App](<https://devfeed.tech/topics/app.md>), [data](<https://devfeed.tech/topics/data.md>), [interface](<https://devfeed.tech/topics/interface.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [application](<https://devfeed.tech/tags/application.md>), [changes](<https://devfeed.tech/tags/changes.md>), [data](<https://devfeed.tech/tags/data.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [file](<https://devfeed.tech/tags/file.md>), [gnome](<https://devfeed.tech/tags/gnome.md>), [gnome-51](<https://devfeed.tech/tags/gnome-51.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [interface](<https://devfeed.tech/tags/interface.md>), [maps](<https://devfeed.tech/tags/maps.md>), [offline](<https://devfeed.tech/tags/offline.md>), [performance](<https://devfeed.tech/tags/performance.md>), [transit](<https://devfeed.tech/tags/transit.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

GNOME 51 has been released with performance improvements, offline data and improved transit information in Maps, a new file previewer interface, and other changes.

### Source excerpt

Version 51 of the GNOME desktop environment has been released. The list of changes includes a number of performance improvements, offline data and better transit information in the Maps application, a new interface for the file previewer, and more.

## LibreQoS 2.2 is out

DevFeed: [LibreQoS 2.2 is out](<https://devfeed.tech/articles/libreqos-2-2-is-out-40183.md>)

Original publisher: [Read original article](<https://blog.j2sw.com/resources/libreqos-2-2-is-out/>)

Author: j2sw

Published: 2026-08-20T15:11:31Z

Content type: release

Language: en

Sources: [Justin Wilson (j2sw)](<https://devfeed.tech/sources/justin-wilson-j2sw.md>)

Topics: [changelog](<https://devfeed.tech/topics/changelog.md>), [Network](<https://devfeed.tech/topics/network.md>), [service](<https://devfeed.tech/topics/service.md>), [browser](<https://devfeed.tech/topics/browser.md>), [interface](<https://devfeed.tech/topics/interface.md>), [sessions](<https://devfeed.tech/topics/sessions.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [2-2](<https://devfeed.tech/tags/2-2.md>), [api](<https://devfeed.tech/tags/api.md>), [browser](<https://devfeed.tech/tags/browser.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [interface](<https://devfeed.tech/tags/interface.md>), [libreqos](<https://devfeed.tech/tags/libreqos.md>), [network](<https://devfeed.tech/tags/network.md>), [network-engineering-resources](<https://devfeed.tech/tags/network-engineering-resources.md>), [service](<https://devfeed.tech/tags/service.md>), [sessions](<https://devfeed.tech/tags/sessions.md>)

### AI overview

This changelog describes LibreQoS 2.2, released on August 18, 2026, and its changes since version 2.1. It covers browser-based installation and setup, visual topology building, subscriber shaping from RADIUS sessions, traffic comparisons, and related improvements to LibreQoS Insight and the paid LibreQoS API.

### Source excerpt

LibreQoS 2.2 ChangeLog LibreQoS 2.2: What Changed Since 2.1 LibreQoS 2.2 guides operators from a fresh install through admin creation, interface selection, network preview, and service startup in the browser. Operators can build topology visually, shape subscribers created from RADIUS sessions, and compare queued demand with traffic that actually crossed the wire. This changelog covers ... Read more The post LibreQoS 2.2 is out appeared first on Justin Wilson (j2sw).

## Multi-Core Fiber: Several Optical Cores Inside One Strand

DevFeed: [Multi-Core Fiber: Several Optical Cores Inside One Strand](<https://devfeed.tech/articles/multi-core-fiber-several-optical-cores-inside-one-strand-40157.md>)

Original publisher: [Read original article](<https://blog.j2sw.com/inetarch/multi-core-fiber-mcf/>)

Author: j2sw

Published: 2026-08-18T13:39:00Z

Content type: tutorial

Language: en

Sources: [Justin Wilson (j2sw)](<https://devfeed.tech/sources/justin-wilson-j2sw.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [Networks](<https://devfeed.tech/topics/networks.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [400g](<https://devfeed.tech/tags/400g.md>), [cabling](<https://devfeed.tech/tags/cabling.md>), [channel](<https://devfeed.tech/tags/channel.md>), [connectors](<https://devfeed.tech/tags/connectors.md>), [data-center](<https://devfeed.tech/tags/data-center.md>), [fiber](<https://devfeed.tech/tags/fiber.md>), [fiber-optics](<https://devfeed.tech/tags/fiber-optics.md>), [internet-architecture](<https://devfeed.tech/tags/internet-architecture.md>), [multi-core-fiber](<https://devfeed.tech/tags/multi-core-fiber.md>), [network-engineering-resources](<https://devfeed.tech/tags/network-engineering-resources.md>), [networks](<https://devfeed.tech/tags/networks.md>), [optical-networking](<https://devfeed.tech/tags/optical-networking.md>), [optics](<https://devfeed.tech/tags/optics.md>), [space-division-multiplexing](<https://devfeed.tech/tags/space-division-multiplexing.md>), [transmission](<https://devfeed.tech/tags/transmission.md>)

### AI overview

This article explains how multi-core fiber places several optical cores inside one standard 125-micron cladding. It distinguishes MCF from high-fiber-count cable, describes aggregate capacity using separate channels and space-division multiplexing, and explains the need for specialized optical interfaces, connectors, splicing, and testing.

### Source excerpt

Multi-core fiber places several independent optical cores inside one standard 125-micron cladding. It increases channel density, but it also requires different connectors, splicing methods, and testing procedures. The post Multi-Core Fiber: Several Optical Cores Inside One Strand appeared first on Justin Wilson (j2sw).

## How Voice-Directed AI Agents Could Change Computer Use

DevFeed: [How Voice-Directed AI Agents Could Change Computer Use](<https://devfeed.tech/articles/how-we-use-computers-is-about-to-change-forever-35002.md>)

Original publisher: [Read original article](<https://creatoreconomy.so/p/how-we-use-computers-is-about-to-change-forever-ai>)

Author: Peter Yang

Published: 2026-08-12T14:03:57Z

Content type: opinion

Language: en

Sources: [Behind the Craft](<https://devfeed.tech/sources/behind-the-craft.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [ChatGPT](<https://devfeed.tech/topics/chatgpt.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [interface](<https://devfeed.tech/topics/interface.md>), [OpenClaw](<https://devfeed.tech/topics/openclaw.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [chatgpt](<https://devfeed.tech/tags/chatgpt.md>), [interface](<https://devfeed.tech/tags/interface.md>), [openclaw](<https://devfeed.tech/tags/openclaw.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

This opinion article argues that computer use may shift from manually operating keyboards, mice, and laptops toward directing AI agents with voice. It outlines possible changes involving voice orchestration, cloud-based personal computers, agent-first products, software commoditization, and trust.

### Source excerpt

Why we'll soon be orchestrating agents in the cloud with voice instead of manually using our keyboard, mouse, and laptop

## Why Two Similar Compiler Cases Cannot Share One Calling Convention

DevFeed: [Why Two Similar Compiler Cases Cannot Share One Calling Convention](<https://devfeed.tech/articles/keleusma-research-spike-when-an-apparent-design-wart-is-a-semantic-boundary-39753.md>)

Original publisher: [Read original article](<https://sgeos.github.io/engineering/compilers/verification/2026/08/07/two_calling_conventions.html>)

Author: Brendan Sechter

Published: 2026-08-07T09:00:00Z

Content type: article

Language: en

Sources: [Brendan A R Sechter's Development Blog](<https://devfeed.tech/sources/brendan-a-r-sechter-s-development-blog.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [test](<https://devfeed.tech/topics/test.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [backend](<https://devfeed.tech/tags/backend.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [class](<https://devfeed.tech/tags/class.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [interface](<https://devfeed.tech/tags/interface.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [measurement](<https://devfeed.tech/tags/measurement.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This compiler backend case study argues that two similar cases cannot be unified when one must report two values through an interface with only one available slot. A counting argument shows that the apparent similarity of nine measured occurrences is irrelevant to the shared interface design. The article also identifies an earlier rule that unnecessarily excluded ten of twenty-four cases.

### Source excerpt

A system had grown two ways of doing what looked like one thing. The obvious move was to tidy them into one. The tidying turns out to be impossible, and the reason it is impossible is the reason the two ways exist. The argument that settles it needs no specialist knowledge and fits in a sentence. One of the two cases has two things to report and only one slot to report them in. Whichever thing the slot is given, the other is lost. The other case has only one thing to report, so the single slot is exactly enough. That is a counting argument, it is decided before any code is written, and it is not the argument an engineer reaches for by default. The engineer's instinct is to look at the cases and ask whether they resemble one another. They did. Every one of the nine measured occurrences had exactly the shape that invited the tidy-up, and the measurement encouraged precisely the wrong conclusion. The resemblance was real and it was irrelevant, because the defect was never in the instances. It was in the interface they would have had to share. This article is about that distinction, which is between evidence about members of a class and evidence about the channel the class must pass through. The second dominates the first and is cheaper to check. The article reports the measurement, the way the measurement pointed the wrong direction, and the argument that settled it. It also reports a rule this author shipped one increment earlier which turns out to be stricter than the property it enforces, excluding ten of twenty-four cases for no reason. No test found that. It surfaced while gathering data for this article. How to read this The general argument is in the opening, in the section called The Argument That Settled It, and in Pattern Extraction. Those three need nothing but attention. The sections between them work the argument through a real case with real numbers, and they use the vocabulary of the trade. Every term is glossed at first use, but a reader who wants the r

## Use My /Human-Review Skill to Edit HTML and Markdown Files Visually

DevFeed: [Use My /Human-Review Skill to Edit HTML and Markdown Files Visually](<https://devfeed.tech/articles/use-my-human-review-skill-to-edit-html-and-markdown-files-visually-35007.md>)

Original publisher: [Read original article](<https://creatoreconomy.so/p/use-my-human-review-skill-to-edit-html-markdown-visually>)

Author: Peter Yang

Published: 2026-08-05T14:03:23Z

Content type: tutorial

Language: en

Sources: [Behind the Craft](<https://devfeed.tech/sources/behind-the-craft.md>)

Topics: [human review](<https://devfeed.tech/topics/human-review.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [cost](<https://devfeed.tech/tags/cost.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [human-review](<https://devfeed.tech/tags/human-review.md>), [interface](<https://devfeed.tech/tags/interface.md>), [markdown](<https://devfeed.tech/tags/markdown.md>)

### AI overview

The article introduces /human-review, a free AI skill that opens HTML and Markdown files in a visual editor. Users can edit text and basic formatting, resize images, select content or components for comments, and send grouped feedback to an AI coding tool.

### Source excerpt

Tired of giving AI feedback in chat? My new skill lets you edit files, leave comments, and send feedback directly to your agent using a beautiful visual interface

## Technical Development of The Incident at Galley House

DevFeed: [Technical Development of The Incident at Galley House](<https://devfeed.tech/articles/building-galley-house-40648.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2026-07-28-building-galley-house/>)

Published: 2026-07-28T00:00:00Z

Content type: article

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Game engine](<https://devfeed.tech/topics/game-engine.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [development](<https://devfeed.tech/tags/development.md>), [game](<https://devfeed.tech/tags/game.md>), [html](<https://devfeed.tech/tags/html.md>), [interface](<https://devfeed.tech/tags/interface.md>), [steam](<https://devfeed.tech/tags/steam.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

A technical development post about The Incident at Galley House, covering its origins as a Twine and HTML prototype, iterative content and puzzle testing, and adaptation of its typing-based gameplay for a controller interface.

### Source excerpt

Evil Trout's second game, The Incident at Galley House, is out now on Steam! Last year, after The Roottrees are Dead shipped, I wrote a technical blog post about its development, which was well received, so I decided to do the same thing for this game. Note: The images in this post have minor spoilers for the beginning of the game. If you want to be 100% spoiler free, now's your chance to run away.

## 3 Questions: Neural transparency and the future of AI design

DevFeed: [3 Questions: Neural transparency and the future of AI design](<https://devfeed.tech/articles/3-questions-neural-transparency-and-the-future-of-ai-design-37938.md>)

Original publisher: [Read original article](<https://news.mit.edu/2026/3-questions-neural-transparency-and-future-of-ai-design-0715>)

Author: Media Lab

Published: 2026-07-15T20:25:00Z

Content type: article

Language: en

Sources: [MIT AI News](<https://devfeed.tech/sources/mit-ai-news.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Neural Network](<https://devfeed.tech/topics/neural-network.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Language models](<https://devfeed.tech/topics/language-models.md>)

Tags: [3-questions](<https://devfeed.tech/tags/3-questions.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-companion](<https://devfeed.tech/tags/ai-companion.md>), [ai-empathy](<https://devfeed.tech/tags/ai-empathy.md>), [ai-hallucinations](<https://devfeed.tech/tags/ai-hallucinations.md>), [ai-personalization](<https://devfeed.tech/tags/ai-personalization.md>), [ai-safety](<https://devfeed.tech/tags/ai-safety.md>), [ai-sycophancy](<https://devfeed.tech/tags/ai-sycophancy.md>), [ai-toxicity](<https://devfeed.tech/tags/ai-toxicity.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [anthony-baez](<https://devfeed.tech/tags/anthony-baez.md>), [apps](<https://devfeed.tech/tags/apps.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [behavioral-prediction](<https://devfeed.tech/tags/behavioral-prediction.md>), [character-ai](<https://devfeed.tech/tags/character-ai.md>), [chatbot-behavior](<https://devfeed.tech/tags/chatbot-behavior.md>), [computer-science-and-technology](<https://devfeed.tech/tags/computer-science-and-technology.md>), [data](<https://devfeed.tech/tags/data.md>), [ethics](<https://devfeed.tech/tags/ethics.md>), [faculty](<https://devfeed.tech/tags/faculty.md>), [human-ai-interaction](<https://devfeed.tech/tags/human-ai-interaction.md>), [human-computer-interaction](<https://devfeed.tech/tags/human-computer-interaction.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interview](<https://devfeed.tech/tags/interview.md>), [language-models](<https://devfeed.tech/tags/language-models.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [mechanistic-interpretability](<https://devfeed.tech/tags/mechanistic-interpretability.md>), [media-lab](<https://devfeed.tech/tags/media-lab.md>), [mental-health](<https://devfeed.tech/tags/mental-health.md>), [mit-faculty-interview](<https://devfeed.tech/tags/mit-faculty-interview.md>), [mit-media-lab](<https://devfeed.tech/tags/mit-media-lab.md>), [neural](<https://devfeed.tech/tags/neural.md>), [neural-transparency](<https://devfeed.tech/tags/neural-transparency.md>), [pat-pataranutaporn](<https://devfeed.tech/tags/pat-pataranutaporn.md>), [persona-scores](<https://devfeed.tech/tags/persona-scores.md>), [persona-vectors](<https://devfeed.tech/tags/persona-vectors.md>), [personalized-ai](<https://devfeed.tech/tags/personalized-ai.md>), [research](<https://devfeed.tech/tags/research.md>), [safety](<https://devfeed.tech/tags/safety.md>), [school-of-architecture-and-planning](<https://devfeed.tech/tags/school-of-architecture-and-planning.md>), [sheer-karny](<https://devfeed.tech/tags/sheer-karny.md>), [sunburst-visualization](<https://devfeed.tech/tags/sunburst-visualization.md>), [technology-and-society](<https://devfeed.tech/tags/technology-and-society.md>), [transparency](<https://devfeed.tech/tags/transparency.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

An MIT Media Lab team introduces "neural transparency," an interface that visualizes internal patterns in AI models to help users anticipate how personalized chatbots may behave. The approach compares model activations associated with contrasting traits such as empathy, honesty, toxicity, hallucination, and sycophancy, then maps custom system prompts onto those behavior directions.

### Source excerpt

Assistant Professor Pat Pataranutaporn describes a new interface that lets everyday users glimpse inside an AI's neural network before their chatbot ever says a word.

## How to Design APIs

DevFeed: [How to Design APIs](<https://devfeed.tech/articles/how-to-design-apis-34680.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/how-to-design-apis>)

Author: Saurabh Dashora

Published: 2026-06-02T06:41:25Z

Content type: tutorial

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [interface](<https://devfeed.tech/topics/interface.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [crud](<https://devfeed.tech/tags/crud.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [interface](<https://devfeed.tech/tags/interface.md>), [json](<https://devfeed.tech/tags/json.md>), [rest](<https://devfeed.tech/tags/rest.md>), [rpc](<https://devfeed.tech/tags/rpc.md>)

### AI overview

A tutorial on API design covering interface contracts, resource and endpoint naming, request and response formats, API paradigms, and modeling relationships between entities.

### Source excerpt

Key considerations to keep in mind

## What is the BFF Pattern?

DevFeed: [What is the BFF Pattern?](<https://devfeed.tech/articles/what-is-the-bff-pattern-34694.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/what-is-the-bff-pattern>)

Author: Saurabh Dashora

Published: 2026-04-07T08:41:56Z

Content type: tutorial

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [BFF](<https://devfeed.tech/topics/bff.md>), [Amazon API Gateway](<https://devfeed.tech/topics/amazon-api-gateway.md>), [backends](<https://devfeed.tech/topics/backends.md>), [client](<https://devfeed.tech/topics/client.md>), [interface](<https://devfeed.tech/topics/interface.md>), [resiliency](<https://devfeed.tech/topics/resiliency.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>)

Tags: [api-gateway](<https://devfeed.tech/tags/api-gateway.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [backends](<https://devfeed.tech/tags/backends.md>), [bff](<https://devfeed.tech/tags/bff.md>), [cache-control](<https://devfeed.tech/tags/cache-control.md>), [client](<https://devfeed.tech/tags/client.md>), [decoupling](<https://devfeed.tech/tags/decoupling.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>)

### AI overview

The article explains the Backends-for-Frontends (BFF) pattern, in which dedicated API gateways serve different client types such as web browsers, mobile apps, and public or partner APIs. It describes how BFFs tailor APIs, isolate client-specific logic, and support functions including rate limiting, authentication, header sanitization, and cache control. It also discusses benefits such as resiliency, client-specific optimization, and faster development, along with drawbacks including code duplication and increasing complexity.

### Source excerpt

And when do you need it?

## Object Oriented Programming - The Key Terms

DevFeed: [Object Oriented Programming - The Key Terms](<https://devfeed.tech/articles/object-oriented-programming-the-key-terms-34688.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/object-oriented-programming-the-key>)

Author: Saurabh Dashora

Published: 2026-03-24T08:38:43Z

Content type: article

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [Object-oriented programming (OOP)](<https://devfeed.tech/topics/oop.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [concepts](<https://devfeed.tech/tags/concepts.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [polymorphism](<https://devfeed.tech/tags/polymorphism.md>), [programming](<https://devfeed.tech/tags/programming.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This tutorial introduces object-oriented programming through four principles: abstraction, encapsulation, inheritance, and polymorphism. It explains how abstraction hides implementation details, encapsulation controls access to data and methods, and inheritance supports reuse and hierarchical relationships. The supplied text begins its discussion of polymorphism but is truncated.

### Source excerpt

The essential concepts

## Migrating from Nav2 to Nav3

DevFeed: [Migrating from Nav2 to Nav3](<https://devfeed.tech/articles/simplest-nav2-to-nav3-migration-guide-39354.md>)

Original publisher: [Read original article](<https://kt.academy/article/nav2-to-nav3>)

Published: 2026-02-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interface](<https://devfeed.tech/tags/interface.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [migration-guide](<https://devfeed.tech/tags/migration-guide.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A practical guide to migrating a Compose navigation setup from Nav2 to Nav3. It covers adding dependencies, updating destinations to use NavKey, and migrating NavHosts incrementally while preserving the existing navigation during the transition.

### Source excerpt

How to migrate routes, navigation calls, and transitions from Nav2 to Nav3.

## Using Coolify for subdomain direct redirect without a app resource

DevFeed: [Using Coolify for subdomain direct redirect without a app resource](<https://devfeed.tech/articles/using-coolify-for-subdomain-direct-redirect-without-a-app-resource-38832.md>)

Original publisher: [Read original article](<https://lengrand.fr/using-coolify-for-subdomain-direct-redirect-without-a-app-resource/>)

Author: Julien

Published: 2025-09-14T19:07:33Z

Content type: tutorial

Language: en

Sources: [Thoughts, stories and ideas.](<https://devfeed.tech/sources/thoughts-stories-and-ideas.md>)

Topics: [proxy](<https://devfeed.tech/topics/proxy.md>), [Redirection](<https://devfeed.tech/topics/redirection.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [coolify](<https://devfeed.tech/tags/coolify.md>), [devops](<https://devfeed.tech/tags/devops.md>), [dns](<https://devfeed.tech/tags/dns.md>), [habits](<https://devfeed.tech/tags/habits.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [ssl](<https://devfeed.tech/tags/ssl.md>), [tls](<https://devfeed.tech/tags/tls.md>), [traefik](<https://devfeed.tech/tags/traefik.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A tutorial showing how to use Coolify's dynamic proxy configuration to redirect a subdomain to an external URL without creating a full application resource. It uses a YAML configuration with Traefik to define the redirect, router, TLS handling, and required dummy service.

### Source excerpt

Coolify's dynamic proxy configuration lets you redirect subdomains to external URLs without creating full resources. Using a simple YAML file with Traefik configuration, you can set up SSL-enabled redirects directly through Coolify's interface.

## Developing an Internal Tool for Our Puzzle Editor

DevFeed: [Developing an Internal Tool for Our Puzzle Editor](<https://devfeed.tech/articles/developing-an-internal-tool-for-our-puzzle-editor-39151.md>)

Original publisher: [Read original article](<https://open.nytimes.com/developing-an-internal-tool-for-our-puzzle-editor-d5dc7a9a6464?source=rss----51e1d1745b32---4>)

Author: The NYT Open Team

Published: 2025-06-02T15:54:44Z

Content type: article

Language: en

Sources: [New York Times](<https://devfeed.tech/sources/new-york-times.md>)

Topics: [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Data Management](<https://devfeed.tech/topics/data-management.md>), [interface](<https://devfeed.tech/topics/interface.md>), [payload](<https://devfeed.tech/topics/payload.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Tool](<https://devfeed.tech/topics/tool.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dashboard](<https://devfeed.tech/tags/dashboard.md>), [data-management](<https://devfeed.tech/tags/data-management.md>), [developing](<https://devfeed.tech/tags/developing.md>), [interface](<https://devfeed.tech/tags/interface.md>), [internal-tools](<https://devfeed.tech/tags/internal-tools.md>), [payload](<https://devfeed.tech/tags/payload.md>), [puzzle](<https://devfeed.tech/tags/puzzle.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tool](<https://devfeed.tech/tags/tool.md>), [web-development](<https://devfeed.tech/tags/web-development.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

The article describes how The New York Times developed the Connections Reference Dashboard, an internal tool for managing puzzle data and supporting the Connections editor's workflow. It explains the tool's interface, handling of changing puzzle data, search capabilities, and reduction of manual cross-referencing steps.

### Source excerpt

How we developed a dashboard tool created to help ease the workflow of managing puzzles for our Connections editor.Illustration by Su Yun Song By Shafik Quoraishee and Wyna Liu In the game Connections, every puzzle is a meticulously crafted challenge designed to captivate our audience and spark intellectual curiosity. Developing these puzzles can sometimes be a time consuming and intricate task. Each puzzle requires planning, beginning with conceptualizing fresh categories and plausible misleads, followed by testing the combinations for balance and solvability, and concluding with refinement and publication-ready formatting. The process requires both creativity and quality control. Wyna Liu, the editor of Connections has the responsibility of constructing and reviewing multiple puzzles spanning various dates, ensuring that each board remains consistent, fresh and challenging to our puzzle solvers. This is a challenging endeavor where there isn't much room for error. In order to address the challenge, we developed the Connections Reference Dashboard -- an in company tool aimed at streamlining data management while providing the puzzle editor with an intuitive, aesthetically pleasing interface that enhances the daily workflow. There were two considerations in developing this tool. Firstly was technical work in handling a dynamically changing payload of puzzle data. We wanted to create a rich and visually resonating interface that was easy to navigate and gave a bit of the feel of the Connections game itself. Therefore, everything from the board results to the search interface was designed with these ergonomics in mind. We wanted to create a level of tactility to the tool which was reminiscent of and which reduced the number of manual steps needed to cross reference both categories and words in individual boards. The primary functionality that Wyna was after was the ability to quickly identify words that have appeared in previous Connections boards, as well as their con

## Item 29: Minimize elements' visibility

DevFeed: [Item 29: Minimize elements' visibility](<https://devfeed.tech/articles/item-29-minimize-elements-visibility-39277.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-element-visibility>)

Published: 2024-05-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [interface](<https://devfeed.tech/topics/interface.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [class](<https://devfeed.tech/topics/class.md>), [properties](<https://devfeed.tech/topics/properties.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [properties](<https://devfeed.tech/tags/properties.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

The article explains why APIs should minimize visible elements: smaller interfaces are easier to learn, maintain, test, and change. It also shows how restricting visibility in Kotlin helps protect class invariants by encapsulating internal state, including making property setters private.

### Source excerpt

Why we should minimize elements' visibility and how to do it.

## Improving the Workflow experience: A look at Temporal's new UI

DevFeed: [Improving the Workflow experience: A look at Temporal's new UI](<https://devfeed.tech/articles/improving-the-workflow-experience-a-look-at-temporal-s-new-ui-36059.md>)

Original publisher: [Read original article](<https://temporal.io/blog/the-dark-magic-of-workflow-exploration>)

Author: Alex Tideman

Published: 2024-04-23T16:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [ui](<https://devfeed.tech/topics/ui.md>), [interface](<https://devfeed.tech/topics/interface.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [real-time](<https://devfeed.tech/topics/real-time.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [debug](<https://devfeed.tech/tags/debug.md>), [product-news](<https://devfeed.tech/tags/product-news.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [ui](<https://devfeed.tech/tags/ui.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

Temporal's new Workflow Execution UI uses Compact, Timeline, and Full History views to help users understand workflow state, inspect event groups, and debug executions.

### Source excerpt

Explore how Temporal's new UI transforms the workflow experience with intuitive views, real-time updates, and a cleaner, faster path to workflow clarity.

## What is CoroutineContext and how does it work?

DevFeed: [What is CoroutineContext and how does it work?](<https://devfeed.tech/articles/what-is-coroutinecontext-and-how-does-it-work-39235.md>)

Original publisher: [Read original article](<https://kt.academy/article/cc-coroutine-context>)

Published: 2024-03-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [context](<https://devfeed.tech/topics/context.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [context](<https://devfeed.tech/tags/context.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains CoroutineContext as an indexed set of coroutine context elements. It covers combining elements, retrieving them by key or square-bracket syntax, and the role of companion objects as keys in kotlinx.coroutines.

### Source excerpt

A deep explanation of the coroutine context - the powerful data holder for coroutines.

## MLIR -- Using Traits

DevFeed: [MLIR -- Using Traits](<https://devfeed.tech/articles/mlir-using-traits-40473.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2023/09/07/mlir-using-traits/>)

Published: 2023-09-07T08:00:00Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [optimize](<https://devfeed.tech/topics/optimize.md>), [Code](<https://devfeed.tech/topics/code.md>), [interface](<https://devfeed.tech/topics/interface.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [heir](<https://devfeed.tech/tags/heir.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [mlir](<https://devfeed.tech/tags/mlir.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [programming](<https://devfeed.tech/tags/programming.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>)

### AI overview

This tutorial explains how to add predefined MLIR traits to operations in a polynomial-arithmetic dialect. It shows how traits and interfaces enable reuse of existing compiler passes, including loop-invariant code motion, and support operation verification and type inference.

### Source excerpt

Table of Contents Last time we defined a new dialect poly for polynomial arithmetic. This time we'll spruce up the dialect by adding some pre-defined MLIR traits, and see how the application of traits enables some general purpose passes to optimize poly programs. The code for this article is in this pull request, and as usual the commits are organized to be read in order. Traits and Loop Invariant Code Motion As a compiler toolchain, MLIR heavily emphasizes code reuse.

## Sealed classes and interfaces in Kotlin

DevFeed: [Sealed classes and interfaces in Kotlin](<https://devfeed.tech/articles/sealed-classes-and-interfaces-in-kotlin-39339.md>)

Original publisher: [Read original article](<https://kt.academy/article/kfde-sealed>)

Published: 2023-09-04T00:01:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [sealed class](<https://devfeed.tech/topics/sealed-class.md>), [sealed interface](<https://devfeed.tech/topics/sealed-interface.md>), [interface](<https://devfeed.tech/topics/interface.md>), [abstract class](<https://devfeed.tech/topics/abstract-class.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>)

Tags: [inheritance](<https://devfeed.tech/tags/inheritance.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [polymorphism](<https://devfeed.tech/tags/polymorphism.md>), [sealed](<https://devfeed.tech/tags/sealed.md>), [sealed-classes](<https://devfeed.tech/tags/sealed-classes.md>), [sealed-interface](<https://devfeed.tech/tags/sealed-interface.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Kotlin tutorial explains sealed classes and sealed interfaces as restricted hierarchies whose direct subclasses are controlled. It contrasts them with regular interfaces and abstract classes, describes their package and module requirements, and explains their use in exhaustive expressions.

### Source excerpt

What are sealed classes and interfaces in Kotlin and how do we use them.

## How to dynamically change UIStackView axis

DevFeed: [How to dynamically change UIStackView axis](<https://devfeed.tech/articles/how-to-dynamically-change-uistackview-axis-37165.md>)

Original publisher: [Read original article](<https://arkadiuszchmura.com/posts/how-to-dynamically-change-uistackview-axis/>)

Published: 2023-06-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Arkadiusz Chmura](<https://devfeed.tech/sources/arkadiusz-chmura.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [ui](<https://devfeed.tech/topics/ui.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [interface](<https://devfeed.tech/topics/interface.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [interface](<https://devfeed.tech/tags/interface.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ui](<https://devfeed.tech/tags/ui.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

A tutorial explains how to dynamically switch a UIStackView from horizontal to vertical when its arranged label and button no longer fit without compression. It uses layout changes and the view's layout method to compare the elements' required width with the available width.

### Source excerpt

Let's see how we can change the axis from horizontal to vertical once the elements no longer fit the screen properly.

## Understanding Flow

DevFeed: [Understanding Flow](<https://devfeed.tech/articles/understanding-flow-39242.md>)

Original publisher: [Read original article](<https://kt.academy/article/cc-understanding-flow>)

Published: 2023-05-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [interface](<https://devfeed.tech/topics/interface.md>), [function](<https://devfeed.tech/topics/function.md>), [object](<https://devfeed.tech/topics/object.md>), [Parameter](<https://devfeed.tech/topics/parameter.md>), [Type Parameter](<https://devfeed.tech/topics/type-parameter.md>)

Tags: [coroutines](<https://devfeed.tech/tags/coroutines.md>), [function](<https://devfeed.tech/tags/function.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [object](<https://devfeed.tech/tags/object.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [type-parameter](<https://devfeed.tech/tags/type-parameter.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains Kotlin Coroutines Flow by deriving its implementation from a suspending lambda, then introducing a functional interface, receiver, object expression, builder function, and generic type parameter. It concludes that the basic builder closely models how flow, emit, and collect are implemented.

### Source excerpt

We will explore how flow and its processing really works.

## Map as a property delegate

DevFeed: [Map as a property delegate](<https://devfeed.tech/articles/map-as-a-property-delegate-39211.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-map-delegate>)

Published: 2023-05-08T00:15:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [properties](<https://devfeed.tech/topics/properties.md>), [interface](<https://devfeed.tech/topics/interface.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [function](<https://devfeed.tech/tags/function.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maps](<https://devfeed.tech/tags/maps.md>), [property](<https://devfeed.tech/tags/property.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [state](<https://devfeed.tech/tags/state.md>), [variables](<https://devfeed.tech/tags/variables.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A Kotlin tutorial explains how Map can act as a read-only property delegate, including use cases for objects with known and dynamically added properties. It also explains variable assignment and shared mutable-object behavior through a community puzzle.

### Source excerpt

How do we use Map as a property delegate, and why the result of a famous puzzler should not be surprising.

## Interface Delegation

DevFeed: [Interface Delegation](<https://devfeed.tech/articles/interface-delegation-39200.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-interface-delegation>)

Published: 2023-03-06T00:15:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>)

Tags: [delegates](<https://devfeed.tech/tags/delegates.md>), [delegation](<https://devfeed.tech/tags/delegation.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [safety](<https://devfeed.tech/tags/safety.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains Kotlin interface delegation through the delegation pattern, composition, and comparison with inheritance. It describes how delegation reuses implementations, supports polymorphic behavior, and reduces the additional code needed when specifying a delegate.

### Source excerpt

One of the least known Kotlin features, that can be sometimes found really useful.

## OkLayoutInflater: Improving Android XML Layout Inflation with Parallel Coroutines

DevFeed: [OkLayoutInflater: Improving Android XML Layout Inflation with Parallel Coroutines](<https://devfeed.tech/articles/oklayoutinflater-37405.md>)

Original publisher: [Read original article](<https://medium.com/okcredit/oklayoutinflater-3c5cd93c6ebc?source=rss----40ea5327aac7---4>)

Author: Anjal Saneen

Published: 2022-10-26T01:27:02Z

Content type: tutorial

Language: en

Sources: [OkCredit - Medium](<https://devfeed.tech/sources/okcredit-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Code](<https://devfeed.tech/topics/code.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [IO](<https://devfeed.tech/topics/io.md>), [callback](<https://devfeed.tech/topics/callback.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [anr](<https://devfeed.tech/tags/anr.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [file](<https://devfeed.tech/tags/file.md>), [io](<https://devfeed.tech/tags/io.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This tutorial explains how OkLayoutInflater addresses limitations in AndroidX AsyncLayoutInflater. It describes the existing implementation's sequential background inflation and presents a coroutine-based approach intended to use parallelism based on CPU cores, helping recycler view items load and scroll faster.

### Source excerpt

The loading of large XML layouts is one of the major performance bottlenecks in android. Loading XML layout into memory through IO operations and parsing views through reflection can be expensive. This is especially true when the XML file is too large or when initializing the layout view takes a while. We know that when the main thread performs some time-consuming operations, it may cause the page to freeze, and even more, serious ANR may occur. Androidx AsyncLayoutInflater helps to load those layouts asynchronously. However, we found that it has some limitations. The goal of this blog post is to explain how OkLayoutInflater addresses these limitations. Source code analysis of AndroidX AsyncLayoutInflater https://android.googlesource.com/platform/frameworks/support/+/89f7eba/v4/java/android/support/v4/view/AsyncLayoutInflater.java Source code is short and easy to understand with only a few lines of code. In the inflate method, it creates an InflateRequest object and stores variables such as resid, parent, callback, etc. Then it calls enqueue to add the request to the InflateThread queue. The main purpose of InflateThread is to add requests to the blocking queue and perform BasicInflater.inflate operations in order. Regardless of inflating success or failure, the request message will be sent to the main thread for processing. The BasicInflater Inherited from LayoutInflater. In OnCreateView these prefixes are loaded on the layout. At last, mHandlerCallback implements handleMessage which executes the operation on main thread, and there is a fallback mechanism, that is when the child thread inflates fails. it will continue to inflate on the main thread, and finally, gives a callback to the main thread through the OnInflateFinishedListener interface. The limitations of AsyncLayoutInflater and how we improve it Single thread to do all the inflate work AsyncLayoutInflater has this major limitation. This was the main reason for creating a custom implementation. One of our r

[Next page](<https://devfeed.tech/topics/interface.md?cursor=WyIyMDIyLTEwLTI2VDAxOjI3OjAyKzAwOjAwIiwgImVhMGJmNGMxLTZiMzAtNDI3Zi04YWM3LTRkYjQ5NmQ1Y2FhNiJd>)