# MVC

Published articles for MVC.

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

## Use C# unions and closed hierarchies in ASP.NET Core

DevFeed: [Use C# unions and closed hierarchies in ASP.NET Core](<https://devfeed.tech/articles/use-c-unions-and-closed-hierarchies-in-asp-net-core-2954.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/dotnet/unions-and-closed-hierarchies-in-aspnetcore/>)

Author: Dmitrii Korolev

Published: 2026-09-10T17:00:00Z

Content type: tutorial

Language: en

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

Topics: [C# 15](<https://devfeed.tech/topics/c-sharp-15.md>), [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>), [.NET](<https://devfeed.tech/topics/net.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>)

Tags: [asp-net-core](<https://devfeed.tech/tags/asp-net-core.md>), [blazor](<https://devfeed.tech/tags/blazor.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [c-sharp-15](<https://devfeed.tech/tags/c-sharp-15.md>), [closed-hierarchies](<https://devfeed.tech/tags/closed-hierarchies.md>), [json](<https://devfeed.tech/tags/json.md>), [minimal-api](<https://devfeed.tech/tags/minimal-api.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [net](<https://devfeed.tech/tags/net.md>), [net-11](<https://devfeed.tech/tags/net-11.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [polymorphism](<https://devfeed.tech/tags/polymorphism.md>), [signalr](<https://devfeed.tech/tags/signalr.md>), [system-text-json](<https://devfeed.tech/tags/system-text-json.md>), [union-types](<https://devfeed.tech/tags/union-types.md>)

### AI overview

Explains how C# unions and closed hierarchies model API values with a fixed set of possible types in ASP.NET Core. It contrasts unions with open inheritance-based polymorphism and describes System.Text.Json support.

### Source excerpt

Learn how C# unions and closed hierarchies work with System.Text.Json across ASP.NET Core Minimal APIs, MVC, SignalR, Blazor, and OpenAPI. The post Use C# unions and closed hierarchies in ASP.NET Core appeared first on .NET Blog.

## Android Architecture Patterns: A Comprehensive Pre-Interview Guide

DevFeed: [Android Architecture Patterns: A Comprehensive Pre-Interview Guide](<https://devfeed.tech/articles/android-architecture-patterns-a-comprehensive-pre-interview-guide-25146.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/android-architecture-patterns-a-comprehensive-pre-interview-guide/>)

Author: Ishan Khanna

Published: 2025-03-18T20:01:26Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-architecture](<https://devfeed.tech/tags/android-architecture.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [code](<https://devfeed.tech/tags/code.md>), [comparisons](<https://devfeed.tech/tags/comparisons.md>), [examples](<https://devfeed.tech/tags/examples.md>), [guide](<https://devfeed.tech/tags/guide.md>), [interview](<https://devfeed.tech/tags/interview.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [patterns](<https://devfeed.tech/tags/patterns.md>)

### AI overview

A pre-interview guide to Android architecture patterns. It explains why architectural patterns matter and covers MVC, MVP, MVVM, MVI, and modern Jetpack Compose implementations, with code examples and comparisons.

### Source excerpt

Looking to brush up on Android architecture patterns before your next mobile interview? This guide covers everything from traditional MVC to modern Jetpack Compose implementations, with code examples and comparisons of MVC, MVP, MVVM, and MVI patterns.

## Essential Annotations Every Spring Developer Should Know

DevFeed: [Essential Annotations Every Spring Developer Should Know](<https://devfeed.tech/articles/essential-annotations-every-spring-developer-should-know-17739.md>)

Original publisher: [Read original article](<https://blog.amigoscode.com/p/essential-annotations-every-spring>)

Author: Nelson Djalo

Published: 2024-10-08T16:03:11Z

Content type: tutorial

Language: en

Sources: [Amigoscode Newsletter](<https://devfeed.tech/sources/amigoscode-newsletter.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Java](<https://devfeed.tech/topics/java.md>), [Application Development](<https://devfeed.tech/topics/application-development.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Spring MVC](<https://devfeed.tech/topics/spring-mvc.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [application-development](<https://devfeed.tech/tags/application-development.md>), [developer](<https://devfeed.tech/tags/developer.md>), [http](<https://devfeed.tech/tags/http.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A tutorial explaining commonly used Spring Boot annotations for configuring applications, managing dependencies, enabling auto-configuration, scanning components, defining MVC controllers, handling HTTP responses, and binding URL and request parameters.

### Source excerpt

Understanding Key Annotations for Simplified Development

## Understanding Non-Blocking Services with Kotlin Coroutines and Spring Boot

DevFeed: [Understanding Non-Blocking Services with Kotlin Coroutines and Spring Boot](<https://devfeed.tech/articles/why-non-blocking-39356.md>)

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

Published: 2024-03-25T00: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>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Spring MVC](<https://devfeed.tech/topics/spring-mvc.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [coroutines](<https://devfeed.tech/tags/coroutines.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [programming](<https://devfeed.tech/tags/programming.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial examines blocking request handling in Spring Boot and Spring MVC, then introduces Kotlin Coroutines as a way to model non-blocking services. It uses a simple greeting service to illustrate thread usage and request processing.

### Source excerpt

From blocking to non-blocking with Kotlin, Coroutines and Spring Boot

## VIPER Architecture for iOS Apps

DevFeed: [VIPER Architecture for iOS Apps](<https://devfeed.tech/articles/viper-architecture-for-ios-apps-24758.md>)

Original publisher: [Read original article](<https://medium.com/ymedialabs-innovation/viper-architecture-for-ios-apps-656ee687ba76?source=rss----8b5620c36355---4>)

Author: Surbhi Gupta

Published: 2023-05-18T14:59:24Z

Content type: tutorial

Language: en

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

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Code](<https://devfeed.tech/topics/code.md>), [business logic](<https://devfeed.tech/topics/business-logic.md>), [ui](<https://devfeed.tech/topics/ui.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [mvc](<https://devfeed.tech/topics/mvc.md>)

Tags: [apps](<https://devfeed.tech/tags/apps.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [code](<https://devfeed.tech/tags/code.md>), [controllers](<https://devfeed.tech/tags/controllers.md>), [flow](<https://devfeed.tech/tags/flow.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modular](<https://devfeed.tech/tags/modular.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [mvvm](<https://devfeed.tech/tags/mvvm.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [swift](<https://devfeed.tech/tags/swift.md>), [ui](<https://devfeed.tech/tags/ui.md>), [viper](<https://devfeed.tech/tags/viper.md>)

### AI overview

This tutorial explains VIPER, an architectural pattern for iOS apps. It describes how VIPER divides each module into View, Presenter, Interactor, Entity, and Router components, with separate responsibilities and delegation-based communication.

### Source excerpt

What is a Good Architecture? Architecture serves as a blueprint for a system. It provides a mechanism to communicate between various components and abstracts the complexity. It is important to separate out code components so that they are identifiable, serve a single purpose/responsibility and also fit logically. Code should be scalable, stable upon expansion, and flexible, which brings in the need for a good architecture. A good architecture not only helps in the success of the product but also allows for easy maintenance and makes people's lives easier. This article will talk about VIPER architecture, which is used to build many large projects. What is VIPER? VIPER is an architectural pattern like MVC and MVVM. One of the major issues with MVC and MVVM is bulky controllers. VIPER solves this problem by following Single Responsibility Principle and making the code more modular. Flow of Control Each module created with VIPER has five classes, each with their own responsibilities. No class does anything other than the specified role. These classes are listed below: View: It is responsible for only maintaining and displaying the view. It picks up any user interactions and passes the information to the presenter to decide the next step. Unlike other architecture patterns like MVC or MVVM, its sole responsibility is to manage and show the UI. Presenter: It is the only class that interacts with all other components except Entity. It is the decision-making engine for routing the flow. Interactor: It interacts with Entity and contains business logic. This class is where all the API calls and database interactions are added. Entity: Data model that is used by the interactor. Router: It does all the wire-framing or navigation from one module to another based on the information passed by the presenter. An ideal folder structure would be like below: Ideal Folder Structure with VIPER The communication between various components follows a delegation pattern. One component calls

## Graphical Applications in Haskell with MVC and Gloss

DevFeed: [Graphical Applications in Haskell with MVC and Gloss](<https://devfeed.tech/articles/graphical-applications-in-haskell-with-mvc-and-gloss-27925.md>)

Original publisher: [Read original article](<http://alt-romes.github.io/posts/lectures/2022-06-27-mvc-gloss.html>)

Published: 2022-06-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Romes' Musings](<https://devfeed.tech/sources/romes-musings.md>)

Topics: [mvc](<https://devfeed.tech/topics/mvc.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>), [Library](<https://devfeed.tech/topics/library.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>)

Tags: [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [library](<https://devfeed.tech/tags/library.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [simulation](<https://devfeed.tech/tags/simulation.md>), [user-interfaces](<https://devfeed.tech/tags/user-interfaces.md>)

### AI overview

This article explains the model-view-controller pattern and how it maps to functional programming in Haskell. It uses the Gloss library to build a graphical application and illustrate the model, view, and event-handling components with a simple employee simulation.

### Source excerpt

Contents 1 MVC 2 Functional MVC: Gloss 2.1 Picture 2.2 Event 2.3 Gloss 1 MVC Model-view-controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. MVC says that an interactive application should consist roughly of three main parts - Model, View, and Controller. The Model is the data and state that we need to keep track of to model our application. If you're programming a Chess game, the model could consist of the state of the board (which pieces are where), the time passed since the last player played, whose turn it is, etc... The View is the definition of how our model should be displayed to the user. Intuitively, you can think of it as a function Model -> UI (and begin to see how functional MVC might be interesting). For the above example, the view would define how the chess board can be shown to the user (a 3d object, a 2d ascii board, ...), where the time passed shows up in the screen, etc. The Controller handles all events and interactions with the application and how they modify the existing model. In chess, the controller could define that when a player drags a piece in the board, the position of that piece in the board model changes to the new position, the current turn changes to the other player, and the time passed is reset to zero. And the three relate in the following manner: MVC diagram from Wikipedia 2 Functional MVC: Gloss How does the model-view-controller idea translate into functional programming? It turns out to be quite simple because the three parts match basic FP concepts. We'll focus on the library Gloss to develop a graphical application. Gloss is very easy to setup, provides abstractions for drawing graphics, and outlines the MVC compoonents clearly. We'll implement a simple simulation of the 101companies employees to illustrate the concepts. To define the model, the structure which is updated thorought the program, we simply define

## Why Businesses Use the Zend Framework

DevFeed: [Why Businesses Use the Zend Framework](<https://devfeed.tech/articles/why-do-businesses-popularly-use-the-zend-framework-17724.md>)

Original publisher: [Read original article](<https://orionesolutions.com/why-do-businesses-popularly-use-the-zend-framework/>)

Author: Neeraj Khosla

Published: 2022-05-17T08:30:36Z

Content type: article

Language: en

Sources: [Our Latest Backend Development Insights](<https://devfeed.tech/sources/our-latest-backend-development-insights.md>)

Topics: [PHP](<https://devfeed.tech/topics/php.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Application Development](<https://devfeed.tech/topics/application-development.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [application-development](<https://devfeed.tech/tags/application-development.md>), [backend-development](<https://devfeed.tech/tags/backend-development.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [framework](<https://devfeed.tech/tags/framework.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [php](<https://devfeed.tech/tags/php.md>), [testing](<https://devfeed.tech/tags/testing.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>), [zend-application-development](<https://devfeed.tech/tags/zend-application-development.md>), [zend-framework](<https://devfeed.tech/tags/zend-framework.md>), [zend-framework-development-services-in-toronto](<https://devfeed.tech/tags/zend-framework-development-services-in-toronto.md>)

### AI overview

This article explains why businesses use the Zend Framework, now known as Laminas, for PHP web application development. It describes its MVC support, encryption, database support, libraries, integration, rapid development features, testing components, and maintenance benefits.

### Source excerpt

Statista's reports say that PHP is the most popular language contributing to 45.43% of the market. PHP is ruling the web and computer technology all over the world. However, with the vast array of frameworks available, businesses only choose the best and the most suitable ones. Zend Framework has more than 570 million installations. Zend ... WHY DO BUSINESSES POPULARLY USE THE ZEND FRAMEWORK? Read More " The post WHY DO BUSINESSES POPULARLY USE THE ZEND FRAMEWORK? appeared first on Orion.

## Using GraphQL with Ruby on Rails

DevFeed: [Using GraphQL with Ruby on Rails](<https://devfeed.tech/articles/using-graphql-with-ruby-on-rails-23563.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/using-graphql-with-ruby-on-rails>)

Author: Erin Fox

Published: 2021-11-18T11:00:05Z

Content type: tutorial

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [API](<https://devfeed.tech/topics/api.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [applications](<https://devfeed.tech/tags/applications.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [backend](<https://devfeed.tech/tags/backend.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [community](<https://devfeed.tech/tags/community.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [framework](<https://devfeed.tech/tags/framework.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [programming](<https://devfeed.tech/tags/programming.md>), [rails](<https://devfeed.tech/tags/rails.md>), [react](<https://devfeed.tech/tags/react.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [ruby-programming-language](<https://devfeed.tech/tags/ruby-programming-language.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

A tutorial introducing Ruby on Rails and GraphQL, then demonstrating how to build and query a Rails-GraphQL API with React and Apollo.

### Source excerpt

Objective: Learn how to create a new project with Ruby on Rails and GraphQL while setting it up to use React and Apollo. The focus is on getting the API running and executing a query. Introduction Ruby on Rails is an MVC (model, view, controller) framework that you can use to build web applications using the Ruby programming language. GraphQL is a declarative query language and server-side runtime that makes it easier for frontend developers to perform data fetching.

## Converting a Laravel App to a Shopify App

DevFeed: [Converting a Laravel App to a Shopify App](<https://devfeed.tech/articles/converting-a-laravel-app-to-a-shopify-app-28188.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/laravel/2021/08/27/converting-a-laravel-app-to-a-shopify-app.html>)

Author: Fuzzygroup

Published: 2021-08-27T14:11:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Laravel](<https://devfeed.tech/topics/laravel.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [PHP](<https://devfeed.tech/topics/php.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Composer](<https://devfeed.tech/topics/composer.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [ecommerce](<https://devfeed.tech/tags/ecommerce.md>), [framework](<https://devfeed.tech/tags/framework.md>), [laravel](<https://devfeed.tech/tags/laravel.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [php](<https://devfeed.tech/tags/php.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial explaining how to build a private or custom Shopify app with Laravel. It covers creating the app in the Shopify Dashboard, configuring callback and redirect URLs, adding Shopify support to Laravel, installing the osiset Shopify component, and setting credentials and API scopes.

### Source excerpt

This blog post tackles the odd topic of taking a Laravel application and converting it to a Shopify app. Overview Shopify is an ecommerce platform for building hosted shopping sites. With Shopify your whole ecommerce experience exists on a shopify url (whether the domain is .shopify.com or not; Shopify is serving everything and the underlying source of data is Shopify itself). Laravel is an MVC based framework for building web applications using the php language. In this blog post, I will attempt to document all the steps to build a "shopify app" using Laravel. A Shopify app is a web application which, can be hosted anywhere, that authenticates itself to Shopify and is embedded in a page on the Shopify website. Step 1: Create a Shopify App Using the Shopify Dashboard There are a few different types of Shopify apps: Private / Custom - A private app can only be used by one shopify site and cannot be listed in the Shopify app catalog. Private apps have no review / approval cycle. Public - A public app is listed in the Shopify catalog, is reviewed and approved by Shopify In this tutorial we will be focused on private / custom apps. The first step is to create our app. This can be done with this url: https://partners.shopify.com/ There are two url settings: The Callback url; this might also be called the App url (Shopify has changed their UI a number of times) The Redirect uri; this might be called the "Allowed redirection URL(s)" The callback url needs to be set to your home route, the default route for your application. The redirect uri needs to be set to the /authenticate route (this is automatically provided by ) Note: Everything you do with the Shopify website needs to be done in Chrome. No other browser such as Brave seems to work. Step 2: Adding Shopify Support to Your Laravel App The first step is to install the osiset shopify component: composer require osiset/laravel-shopify After that you need to generate a configuration file: php artisan vendor:publish --tag=

## Announcing CodeRAD 2.0 Preview

DevFeed: [Announcing CodeRAD 2.0 Preview](<https://devfeed.tech/articles/announcing-coderad-2-0-preview-19195.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/announcing-coderad-2-0-preview/>)

Author: Steve Hannah

Published: 2021-08-13T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [feature](<https://devfeed.tech/tags/feature.md>), [framework](<https://devfeed.tech/tags/framework.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [native](<https://devfeed.tech/tags/native.md>), [performance](<https://devfeed.tech/tags/performance.md>), [preview](<https://devfeed.tech/tags/preview.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [user-interfaces](<https://devfeed.tech/tags/user-interfaces.md>), [view](<https://devfeed.tech/tags/view.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

CodeRAD 2.0 is announced as a developer preview of an MVC framework for building native, mobile-first applications in Java and Kotlin. The release adds XML-based declarative views, property binding, and a simulator-based pseudo-hot-reload workflow with a stated 1-2 second update delay.

### Source excerpt

We are proud to announce the immediate availability of the CodeRAD 2.0 developer preview. CodeRAD is a modern MVC framework for building truly native, mobile-first, pixel-perfect applications in Java and Kotlin.

## Battle-tested template project for backend with Kotlin and Ktor

DevFeed: [Battle-tested template project for backend with Kotlin and Ktor](<https://devfeed.tech/articles/battle-tested-template-project-for-backend-with-kotlin-and-ktor-24731.md>)

Original publisher: [Read original article](<https://medium.com/xorum-io/battle-tested-template-project-for-backend-with-kotlin-and-ktor-c655a2e276c2?source=rss----92bb7980cc9f---4>)

Author: Yev Kanivets

Published: 2021-07-16T05:24:17Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [Template](<https://devfeed.tech/topics/template.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [API](<https://devfeed.tech/topics/api.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Postman](<https://devfeed.tech/topics/postman.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [backend](<https://devfeed.tech/tags/backend.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [postman](<https://devfeed.tech/tags/postman.md>), [project](<https://devfeed.tech/tags/project.md>)

### AI overview

This article presents a personal Ktor template for Kotlin backend applications, describing its production use, project structure, tools, libraries, MVC-based architecture, API design, Heroku deployment files, and Firebase Auth integration.

### Source excerpt

With Kotlin and Ktor technologies gaining more popularity among the community of backend developers, dozens of different sample applications and templates are created and published as open-source projects. Ktor is an asynchronous framework for creating microservices, web applications, and more. It's fun, free, and open source. So it doesn't force any particular architecture, set of libraries, or framework to be used, which means that you are free to choose what's best for you and your project. Today, I'm finally ready to share my personal Ktor template, polished by almost a year of use in production applications. This article gives a short overview of the template, its architecture, chosen tools, and libraries. Tools Since we are using Kotlin to develop Ktor applications, pretty much any IDE compatible with Java/Kotlin should work. But the default choice is IntelliJ IDEA, of course. Community edition (free) will work just fine. Postman is a great choice for documenting, testing, and sharing your backend APIs. There are many similar tools. You can use cURL requests, for example. But always think about your API users first. What will be the most convenient for them, as they depend on you a lot. Structure Most of the Kotlin projects (including Ktor) are powered by Gradle, so they look quite similar. My template isn't different, with many Gradle-related files in the root and single src folder. Other files are related to Heroku deployment, but more on this later. Architecture Ktor isn't forcing you for any particular approach, so you are free to choose and implement the architecture that fits your needs best. In our case, we implemented classical MVC (Model -- View -- Controller) architecture with a public API instead of View and dedicated Interactors, which encapsulate all business logic related to each endpoint. Firebase Auth Most applications require some authentication and authorization business logic, so my template includes one of the possible implementations out of

## A Simple Laravel Hello World

DevFeed: [A Simple Laravel Hello World](<https://devfeed.tech/articles/a-simple-laravel-hello-world-28186.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/laravel/2021/05/27/a-simple-laravel-hello-world.html>)

Author: Fuzzygroup

Published: 2021-05-27T13:02:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Laravel](<https://devfeed.tech/topics/laravel.md>), [Composer](<https://devfeed.tech/topics/composer.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [laravel](<https://devfeed.tech/tags/laravel.md>), [make](<https://devfeed.tech/tags/make.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [php](<https://devfeed.tech/tags/php.md>), [route](<https://devfeed.tech/tags/route.md>), [view](<https://devfeed.tech/tags/view.md>)

### AI overview

A step-by-step Laravel tutorial that builds a minimal Hello World application using Composer, a controller, a route, a variable, and an HTML view. It explains that the example demonstrates parts of an MVC framework without covering models or database connectivity.

### Source excerpt

As of late I've been working in Laravel and figuring out how Laravel differs from Rails. And while I have a bigger blog post in the works, I thought there was learning value in a simple Hello World implemented in Laravel. Hello World is a simple program that just puts Hello World on the screen. Here's how I thought a Laravel version of this should work: Be a whole Laravel application Be a single controller Be a single route Define the text "Hello World" as a variable, $text, in the controller Display that on the screen via an HTML template While this doesn't illustrated models and database connectivity, this actually illustrates how to use a surprising amount of an overall MVC framework. Step 1: Creating an Application The first step is to use composer to generate the overall application with: composer create-project laravel/laravel hello_world The next step is to change into the directory with: cd hello_world and then open the code base with: mate . or if you use Sublime: subl . Step 2: Generating a Controller Back at your command line, you want to generate a controller with: php artisan make:controller HelloController This will create a file named HelloController in app/http/Controllers: ls -l app/Http/Controllers total 16 -rw-r--r-- 1 sjohnson staff 361 May 18 11:37 Controller.php -rw-r--r-- 1 sjohnson staff 122 May 27 09:12 HelloController.php Inside the controller you want to add the following code (some of which will already be there from the generator): public function index() { return view('hello_index'); } inside the "class HelloController extends Controller" block of code (it goes inside the {} braces). Step 3: Adding a Route Moving back to the code base, you want to edit the file routes/web.php and add this line: Route::get('/hello', 'App\Http\Controllers\HelloController@index'); This adds a single route, /hello, which is then handled by the Hello controller and the hello_index action. You can test that this route is available by running: php artisan rout

## RAD Chat Room - Part 5

DevFeed: [RAD Chat Room - Part 5](<https://devfeed.tech/articles/rad-chat-room-part-5-19490.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/rad-chatroom-part-5/>)

Author: Steve Hannah

Published: 2020-05-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>), [ui](<https://devfeed.tech/topics/ui.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [webcam](<https://devfeed.tech/topics/webcam.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [back-end](<https://devfeed.tech/tags/back-end.md>), [camera](<https://devfeed.tech/tags/camera.md>), [capture](<https://devfeed.tech/tags/capture.md>), [library](<https://devfeed.tech/tags/library.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

Part 5 of a RAD Chatroom tutorial adds a capturePhoto action that lets users select or take an image and insert it into a chat message. It also explains that the mock application has no server integration and recommends the cn1-websockets library as a starting point.

### Source excerpt

This is part 5 of the RAD Chatroom tutorial. You can find part 1 here, part 2 here, part 3 here and part 4 here. Adding A Photo Capture Feature Most messaging applications include the ability to add photos to messages. Let's add this feature to our chat app now. First we'll define a new action called "capturePhoto", and add to the TEXT_ACTIONS category of our view node. public static final ActionNode capturePhoto = action( icon(FontImage.MATERIAL_CAMERA) ); ... ViewNode viewNode = new ViewNode( actions(ChatRoomView.SEND_ACTION, send), actions(ProfileAvatarView.PROFILE_AVATAR_CLICKED_MENU, phone, videoConference), actions(ChatBubbleView.CHAT_BUBBLE_LONG_PRESS_MENU, likeAction), actions(ChatBubbleView.CHAT_BUBBLE_BADGES, likedBadge), actions(ChatRoomView.TEXT_ACTIONS, capturePhoto) __**(1)** ); __1 Added capturePhoto action to the TEXT_ACTIONS category so that it will appear as a button beside the text field. And we'll also add a handler for this action, which will capture a photo, and embed the photo in a message that we will add to the chat room's view model.

## RAD Chat Room - Part 1

DevFeed: [RAD Chat Room - Part 1](<https://devfeed.tech/articles/rad-chat-room-part-1-19486.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/rad-chatroom-part-1/>)

Author: Steve Hannah

Published: 2020-04-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [App](<https://devfeed.tech/topics/app.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [ide](<https://devfeed.tech/tags/ide.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [project](<https://devfeed.tech/tags/project.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A step-by-step tutorial on using the RADChatRoom library and CodeRAD in a Codename One application. It introduces the ChatRoomView component, explains the MVC-based setup, and covers project creation, CSS activation, and dependency installation.

### Source excerpt

This tutorial describes how to use the RADChatRoom library to quickly and easily add a nice-looking, fully functional chat room to your Codename One application. This is part 1 of a multi-part series of posts over the next few weeks. The finished product will look like the following: You can download the full source of this tutorial's project here. You can also try it out yourself here.

## Managing Massive View Controllers in iOS MVC Applications

DevFeed: [Managing Massive View Controllers in iOS MVC Applications](<https://devfeed.tech/articles/mvc-many-view-controllers-39511.md>)

Original publisher: [Read original article](<https://rambo.codes/posts/2020-02-20-mvc-with-sugar>)

Published: 2020-02-20T18:00:00Z

Content type: opinion

Language: en

Sources: [Rambo Codes](<https://devfeed.tech/sources/rambo-codes.md>)

Topics: [mvc](<https://devfeed.tech/topics/mvc.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [iOS development](<https://devfeed.tech/topics/ios-development.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [app-architecture](<https://devfeed.tech/tags/app-architecture.md>), [apple](<https://devfeed.tech/tags/apple.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

The article discusses problems that arise when iOS MVC applications develop massive view controllers, tightly coupled screens, and difficult-to-write unit tests. It considers how to split view controllers while supporting older iOS versions and UIKit alongside SwiftUI.

### Source excerpt

Gui Rambo writes about his coding and reverse engineering adventures.

## Choosing an Architecture Pattern for Android Applications

DevFeed: [Choosing an Architecture Pattern for Android Applications](<https://devfeed.tech/articles/mvwtf-demystifying-architecture-patterns-22826.md>)

Original publisher: [Read original article](<http://androidessence.com/mvwtf/>)

Author: Adam McNeilly

Published: 2019-08-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Android Essence](<https://devfeed.tech/sources/android-essence.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [architecture-pattern](<https://devfeed.tech/tags/architecture-pattern.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [mvi](<https://devfeed.tech/tags/mvi.md>), [mvvm](<https://devfeed.tech/tags/mvvm.md>), [patterns](<https://devfeed.tech/tags/patterns.md>)

### AI overview

This tutorial explains why Android applications need architecture patterns and compares approaches including MVC, MVP, MVVM, MVI, and MVU. It emphasizes separating application code into distinct components rather than placing all code in an Activity.

### Source excerpt

As an Android developer, one of the questions I constantly see asked within the community is "what architecture pattern should I use?" This discussion usually leads to a handful of buzzwordy acronyms: MVC MVP MVVM MVI MVU?? (We don't talk about this but apparently it's the new kid on the block) This can be really intimidating to new Android devs, as well as seasoned veterans who are constantly questioning if they're using the right one. Whether you're trying to decide which one to learn, or wondering if the one you already use is best for you, this post will help lead you to the right decision.

## Что случилось с GUI-фреймворками?

DevFeed: [Что случилось с GUI-фреймворками?](<https://devfeed.tech/articles/gui-34249.md>)

Original publisher: [Read original article](<https://tonsky.livejournal.com/320961.html>)

Published: 2019-04-12T21:46:29Z

Content type: opinion

Language: ru

Sources: [Tonsky Стой под стрелой](<https://devfeed.tech/sources/tonsky.md>)

Topics: [GUI](<https://devfeed.tech/topics/gui.md>), [ui](<https://devfeed.tech/topics/ui.md>), [SVG](<https://devfeed.tech/topics/svg.md>)

Tags: [flat](<https://devfeed.tech/tags/flat.md>), [gui](<https://devfeed.tech/tags/gui.md>), [livejournal](<https://devfeed.tech/tags/livejournal.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [svg](<https://devfeed.tech/tags/svg.md>), [tag-5e1c061eda96](<https://devfeed.tech/tags/tag-5e1c061eda96.md>), [tag-c40b78a8c8a6](<https://devfeed.tech/tags/tag-c40b78a8c8a6.md>), [tag-d16a2c26554f](<https://devfeed.tech/tags/tag-d16a2c26554f.md>), [tag-e3028c5e0ab2](<https://devfeed.tech/tags/tag-e3028c5e0ab2.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The author discusses what a desktop GUI framework should provide, arguing that customizable low-level primitives and core capabilities such as input handling, scrolling, rendering, font output, and DPI handling are more valuable than large collections of ready-made widgets or platform-specific look and feel. The article expresses a preference for designing polished interfaces directly and cautions against imposing patterns such as MVC or VDOM.

### Source excerpt

Это третий пост в моем квесте по поиску GUI-фреймворка для десктопных приложений. Первый, второй. Давайте немного сориентирую, что я ищу. Для многих "GUI-фреймворк" почти равно библиотека виджетов, чем больше тем лучше. Чтобы GUI собрать из кубиков лего минимальными силами. Меня это не очень возбуждает, потому что универсальных виджетов мало, а что-то более интересное надо делать под себя все равно. Поэтому для фреймворка важнее "уметь доделать свое", чем "побольше готового". Также популярно мнение что GUI-фреймворк это look and feel, платформенно-зависимый или же просто не вырвиглазный. Типа это сложная часть, повторить лук платформы. Мне тоже пофиг. Дело в том, что сейчас самое идеальное время для GUI-фреймворка: все наигрались в игру "сделай look and feel как настоящий" и привыкли к веб-приложениям, где вообще каждый первый сайт разный. Плюс в моду вошел flat и минимализм, то есть виджеты рисовать дешево и просто, как никогда. А платформенный look and feel это иллюзия, все равно в каждом реальном приложении миллион случаев, которые не укладываются в стандартные checkbox/input/dropdown. И чем больше приложение, тем больше надо тюнить и дорисовывать самому. UI это не лего, его надо дизайнить и рисовать как целое, тогда будет гармонично. Таким образом, от GUI фреймворка мне бы хотелось иметь базовые сложные вещи покрытыми (платформенно-зависимая обработка ввода, скроллинг, быстрый рендеринг, вывод шрифтов, dpi handling), какие-то базовые графические примитивы (прямоугольник там, линия, градиент, тенюшечки, svg) и возможность залезть под капот и все застайлить и запрогать как хочется. Я НЕ ищу сокращения затрат на дизайнера за счет использования готовых компонент/дефолтного look and feel. Меня интересует возможность потратить много и долго, но сделать самому и хорошо, чем кое-как и из готового. Pixel-перфект и именно так, как мне нужно, а не так, как автор фреймворка сделал и сейчас уже хрен отковыряешь. Качественное вылизанное end-user приложение, а не дешево выгляд

## The next CEO of Stack Overflow

DevFeed: [The next CEO of Stack Overflow](<https://devfeed.tech/articles/the-next-ceo-of-stack-overflow-37528.md>)

Original publisher: [Read original article](<https://www.joelonsoftware.com/2019/03/28/the-next-ceo-of-stack-overflow/>)

Author: Joel Spolsky

Published: 2019-03-28T14:00:53Z

Content type: news

Language: en

Sources: [Joel Spolsky](<https://devfeed.tech/sources/joel-spolsky.md>)

Topics: [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [ASP.NET](<https://devfeed.tech/topics/aspnet.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [advertising](<https://devfeed.tech/tags/advertising.md>), [asp-net](<https://devfeed.tech/tags/asp-net.md>), [browser](<https://devfeed.tech/tags/browser.md>), [ceo](<https://devfeed.tech/tags/ceo.md>), [co-founder](<https://devfeed.tech/tags/co-founder.md>), [employees](<https://devfeed.tech/tags/employees.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [net](<https://devfeed.tech/tags/net.md>), [news](<https://devfeed.tech/tags/news.md>), [revenue](<https://devfeed.tech/tags/revenue.md>), [saas](<https://devfeed.tech/tags/saas.md>), [software](<https://devfeed.tech/tags/software.md>), [stack-overflow](<https://devfeed.tech/tags/stack-overflow.md>)

### AI overview

Joel Spolsky announces that Stack Overflow is looking for a new CEO. He is stepping away from day-to-day operations to become chairman of the board, while describing the company's growth, profitability, products, employees, and audience.

### Source excerpt

We're looking for a new CEO for Stack Overflow. I'm stepping out of the day-to-day and up to the role of Chairman of the Board. Read more "The next CEO of Stack Overflow"

## How We Develop New Features Using Offsites and Clean Architecture

DevFeed: [How We Develop New Features Using Offsites and Clean Architecture](<https://devfeed.tech/articles/how-we-develop-new-features-using-offsites-and-clean-architecture-2052.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//how-we-develop-new-features-using-offsites-and-clean-architecture>)

Published: 2018-11-02T00:00:00Z

Content type: article

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [apple](<https://devfeed.tech/tags/apple.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [new-feature](<https://devfeed.tech/tags/new-feature.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

SoundCloud describes how its iOS team developed new features while modernizing a large legacy codebase containing Objective-C and Swift. The team adopted the VIPER architectural pattern, compared with MVC, and used it successfully for the Mini Player and later features. The article also explains how project kickoffs and focused offsites support feature planning, brainstorming, and team productivity.

### Source excerpt

The current SoundCloud iOS App was built back in 2014, resulting in a huge codebase consisting of both Objective-C and Swift, with multiple...

## Building Shopify POS for Android Using MVVM

DevFeed: [Building Shopify POS for Android Using MVVM](<https://devfeed.tech/articles/building-shopify-pos-for-android-using-mvvm-1334.md>)

Original publisher: [Read original article](<https://shopify.engineering/building-shopify-pos-android-using-mvvm>)

Author: Richa Khanna

Published: 2018-10-31T17:30:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Shopify](<https://devfeed.tech/topics/shopify.md>), [Android](<https://devfeed.tech/topics/android.md>), [mvc](<https://devfeed.tech/topics/mvc.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [developers](<https://devfeed.tech/tags/developers.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [state](<https://devfeed.tech/tags/state.md>), [testing](<https://devfeed.tech/tags/testing.md>), [user-interface](<https://devfeed.tech/tags/user-interface.md>)

### AI overview

This article explains why Shopify standardized its Android POS app on the Model-View-ViewModel (MVVM) architecture. It describes the earlier use of MVC and MVP, the benefits of consistency, state retention, separation of concerns, testing, and onboarding, and the gradual migration strategy for legacy screens.

### Source excerpt

There are many architectures out there to structure your app. The one we use in Shopify's Point of Sale (POS) for Android app is the Model-View-ViewModel (MVVM) pattern based on Google's App Architecture Guide which was announced last year at Google I/O 2017. Shopify POS History Our POS app is three and a half years old, and we didn't build it using MVVM from scratch.

## Accelerating Android Talent Through Community Bootcamps

DevFeed: [Accelerating Android Talent Through Community Bootcamps](<https://devfeed.tech/articles/accelerating-android-talent-through-community-bootcamps-1286.md>)

Original publisher: [Read original article](<https://shopify.engineering/accelerating-android-talent-through-community-bootcamps>)

Author: Julia Hurrelmann

Published: 2018-02-27T22:00:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [coding-community](<https://devfeed.tech/topics/coding-community.md>), [software-development](<https://devfeed.tech/topics/software-development.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [community](<https://devfeed.tech/tags/community.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [json](<https://devfeed.tech/tags/json.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [skills](<https://devfeed.tech/tags/skills.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

Shopify describes an Android Bootcamp designed to help developers transition into mobile development through a two-day workshop. Participants build a simple quiz app while learning Android views with XML, lifecycles, MVC, JSON parsing, libraries, and remote data retrieval.

### Source excerpt

6 minute read The mobile team knew they needed developers, particularly Android developers. A few years ago, Shopify pivoted to mobile-first, which led to the launches of Shopify Mobile, Shopify Pay, Frenzy, and others. To maintain momentum, Shopify had to keep building up its mobile talent. Back when Shopify's mobile teams spun up, many of our then-early mobile developers never did any mobile development before, instead teaching themselves how to do it on the job. From this observation, we had an insight: what if we could teach developers how to build an Android app, via a Shopify-hosted workshop? The benefits were obvious: this educational initiative could help our local developer community pick up some new skills, while potentially allowing us to meet exciting new talent. The idea for Android Bootcamp was born.

## Events in spring v2

DevFeed: [Events in spring v2](<https://devfeed.tech/articles/events-in-spring-v2-27282.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201709/spring-events-more/>)

Published: 2017-09-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [async](<https://devfeed.tech/topics/async.md>), [Exception](<https://devfeed.tech/topics/exception.md>), [mvc](<https://devfeed.tech/topics/mvc.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [errors](<https://devfeed.tech/tags/errors.md>), [event](<https://devfeed.tech/tags/event.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [handler](<https://devfeed.tech/tags/handler.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [spring](<https://devfeed.tech/tags/spring.md>)

### AI overview

This tutorial explains advanced event handling in Spring applications, including ordered handlers, asynchronous processing, and exception handling. It describes using @Order, @Async, custom executors, and custom error handlers, and notes that exceptions can stop further event propagation by default.

### Source excerpt

Last time I wrote about events in a spring based application I've introduced some basics on how events can be dispatched using spring infrastructure. In this post, I'm going to dig deeper into an order of handlers, exceptions and asynchronous events handlers. Read more

## Reactive Apps with Model-View-Intent - Part 1: Model

DevFeed: [Reactive Apps with Model-View-Intent - Part 1: Model](<https://devfeed.tech/articles/reactive-apps-with-model-view-intent-part-1-model-25454.md>)

Original publisher: [Read original article](<https://hannesdorfmann.com/android/mosby3-mvi-1/>)

Author: Hannes Dorfmann

Published: 2017-01-09T09:00:00Z

Content type: tutorial

Language: en

Sources: [Hannes Dorfmann](<https://devfeed.tech/sources/hannes-dorfmann.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [mvc](<https://devfeed.tech/topics/mvc.md>)

Tags: [android-development](<https://devfeed.tech/tags/android-development.md>), [immutability](<https://devfeed.tech/tags/immutability.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [mvi](<https://devfeed.tech/tags/mvi.md>), [mvvm](<https://devfeed.tech/tags/mvvm.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [process](<https://devfeed.tech/tags/process.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>)

### AI overview

This first part of a blog series explains why a well-defined Model matters in Android applications using Reactive Apps, RxJava, and Model-View-Intent (MVI). It contrasts this approach with MVC, MVP, and MVVM, and connects a Model to issues such as state, configuration changes, navigation, process death, and immutability.

### Source excerpt

Once I have figured out that I have modeled my Model classes wrong all the time, a lot of issues and headache I previously had with some Android platform related topics are gone. Moreover, finally I was able to build Reactive Apps using RxJava and Model-View-Intent (MVI) as I never was able before although the apps I have built so far are reactive too but not on the same level of reactiveness as I'm going to describe in this blog post series.

## Lessons from Square's College Code Camp

DevFeed: [Lessons from Square's College Code Camp](<https://devfeed.tech/articles/becoming-a-well-rounded-square-15541.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/becoming-a-well-rounded-square>)

Author: Elana Tee

Published: 2016-09-13T18:10:41Z

Content type: opinion

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [mvc](<https://devfeed.tech/topics/mvc.md>)

Tags: [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

A personal reflection on Square's five-day College Code Camp, covering technical workshops in Ruby, Rails, design, iOS, and web development, as well as mentorship and leadership experiences.

### Source excerpt

Lessons learned at Square's College Code Camp

[Next page](<https://devfeed.tech/tags/mvc.md?cursor=WyIyMDE2LTA5LTEzVDE4OjEwOjQxKzAwOjAwIiwgImQ1MWU2ZTczLWZiNTItNGE1Yy1iZWQwLTJlMzMwYjFjNmRkYiJd>)