Почему многие неверно реализуют MVVM или способы создания абстракций

Привет, Хабр! Меня зовут Кирилл Маканков, я iOS-разработчик в ПСБ. Сегодня хочу поговорить про особенности реализации MVVM. Не с практической, а с теоретической стороны. С практической стороны этот архитектурный шаблон давно уже объезжен и в хвост, и в гриву. А вот теоретических исследований, особенно применимых к Swift (и в общем, и к SwiftUI в частности), не так уж и много. Давайте вместе попробуем закрыть этот пробел и обосновать с теоретической точки зрения те или иные вариации реализаций в нашей ежедневной работе. Мобильным разработчикам на ObjC, Java и Kotlin данное исследование и обсуждение тоже будет полезно. Присоединяйтесь! Если Вы уже хорошо знакомы с MVVM, то в конце приведен опрос об используемой лично Вами реализации. Давайте вместе определим, какая из реализаций самая популярная.

https://habr.com/ru/companies/psb/articles/1010690/

#swift #swift__разработка #swift_development #абстракция #mvvm #архитектура #архитектура_приложений #архитектура_androidприложений

Почему многие неверно реализуют MVVM или способы создания абстракций

Привет, Хабр! Меня зовут Кирилл Маканков, я iOS-разработчик в ПСБ.   Сегодня хочу поговорить про особенности реализации MVVM. Не с практической, а с теоретической стороны. С практической...

Хабр

Coordinator в iOS: как я перестал бояться кнопки «Назад» и полюбил навигацию

Эта статья - логическое продолжение нашего погружения в архитектуру. Если в первой части мы навели порядок внутри «черного ящика» под названием ViewModel, то здесь мы выйдем за его пределы. Вы узнаете, как выпилить логику переходов из ViewControllers и ViewModels, почему вызов navigationController?.pushViewController() прямо в экшене кнопки - это архитектурный тупик, и как построить систему навигации, которая не превратит ваш проект в спагетти при добавлении десятого экрана. Мы разберем концепцию Child Coordinators, решим проблему утечек памяти (спойлер: системная кнопка "Назад" - ваш враг) и обсудим, выжил ли этот паттерн в эпоху SwiftUI. Продолжим

https://habr.com/ru/articles/991812/

#ios #swift #архитектор #mvvm #coordinator #mobile

Coordinator в iOS: как я перестал бояться кнопки «Назад» и полюбил навигацию

Эта статья - логическое продолжение нашего погружения в архитектуру. Если в первой части мы навели порядок внутри «черного ящика» под названием ViewModel, то здесь мы выйдем за его пределы. Вы...

Хабр

MVVM-курильщика: почему ваша ViewModel — это помойка на 2000 строк, и как это исправить

Если вы когда-нибудь открывали проект, где ViewModel превратилась в свалку логики, навигации и форматирования дат - поздравляю, вы видели MVVM-курильщика. Рассказываю, почему «чистый» MVVM из учебников рассыпается в бою, как превратить ViewModel в машину состояний вместо мусорного ведра, и почему import UIKit в вашей VM - это диагноз. Без воды, с примерами кода и болью. Эта статья - не очередной пересказ документации. Вы научитесь разделять данные и их представление так, чтобы тесты писались сами собой, а ваши коллеги не проклинали вас на код-ревью. Продолжим

https://habr.com/ru/articles/991252/

#swift #swiftui #mvvm #архитектура #ios

MVVM-курильщика: почему ваша ViewModel — это помойка на 2000 строк, и как это исправить

Если вы когда-нибудь открывали проект, где ViewModel превратилась в свалку логики, навигации и форматирования дат - поздравляю, вы видели MVVM-курильщика. Рассказываю, почему «чистый» MVVM из...

Хабр

Технический гайд по сторис — часть 3: как мы написали свою библиотеку

Привет! Меня зовут Владислав Фальзан, я работаю android-разработчиком в М2. Наша команда мобильной разработки развивает приложение — онлайн-платформу для решения вопросов с недвижимостью. Основные пользователи приложения — физические лица (B2C) и риелторы (B2B2C). Эта статья — технический гайд для android-разработчиков о том, как использовать нашу новую библиотеку по сторис с деталями и нюансами реализации. Из статьи вы поймете: как использовать библиотеку на полную мощность для своих задач и как она устроена изнутри. Для удобства изучения статьи я решил разбить ее на блоки:

https://habr.com/ru/companies/m2tech/articles/980424/

#android #ddd #compose #stories #mvvm #kotlin #coroutines #clean_architecture #room

Технический гайд по сторис — часть 3: как мы написали свою библиотеку

Привет! Меня зовут Владислав Фальзан, я работаю android-разработчиком в М2. Наша команда мобильной разработки развивает приложение — онлайн-платформу для решения вопросов с недвижимостью. Основные...

Хабр
Implementing Cross-Platform In-App Billing in .NET MAUI Applications - .NET Blog

Learn how to implement in-app purchases in your .NET MAUI apps with our new cross-platform billing sample for Android, iOS, Mac Catalyst, and Windows.

.NET Blog
WPF + MVVM https://leanpub.com/set/leanpub/full-testing-csharp by EngineerSpock is the featured Track of online courses on the Leanpub homepage! https://leanpub.com #WPF #MVVM #programming

💾 𝐼𝑠 𝑆𝑤𝑖𝑓𝑡𝐷𝑎𝑡𝑎 𝑖𝑛𝑐𝑜𝑚𝑝𝑎𝑡𝑖𝑏𝑙𝑒 𝑤𝑖𝑡ℎ 𝑀𝑉𝑉𝑀? by Matteo Manferdini

Thinking MVVM and SwiftData don't mix? Learn how proper understanding of SwiftUI's core principles makes them perfectly compatible.

#Swift #SwiftData #MVVM #iOSDev

https://matteomanferdini.com/swiftdata-mvvm/

Is SwiftData incompatible with MVVM? The standard answer betrays a deep misunderstanding of 3 key principles that drive SwiftUI’s architecture

Some developers claim that MVVM is incompatible with SwiftUI. However, with a proper understanding of SwiftUI, it is possible to address any criticism and remove the boilerplate code shown in many online blogs. In this article, we will explore some fundamental yet ignored SwiftUI features to understand how to replicate its integration with SwiftData inside ... Read more

Matteo Manferdini
WPFのMVVM、「理想」と「現実」のギャップを埋めるハイブリッド設計 - Qiita

はじめに:MVVMの理想と、現場で直面する「つらさ」 WPFでUIを開発するとき、MVVMパターンは今やデファクトスタンダードですよね。ViewModelはViewを知らず、テストが容易で、関心の分離が美しい...。理想は素晴らしいものです。 しかし、現場で実装していると...

Qiita

Are you struggling with SwiftUI view models?

This article challenges the common practice of dismissing view models and presents a more testable and maintainable MVVM-ish alternative.

🔗: https://matteomanferdini.com/swiftui-viewmodel/

#SwiftUI #MVVM #Architecture

Why Dismissing View Models in SwiftUI is Stifling your App’s Maintainability and Testability (And the Proven Principles for a Better Architecture)

If you’ve been working with SwiftUI, you’ve likely noticed that your views start pretty simple but then balloon into large, unmaintainable monoliths that are hard to preview and test. While there are several techniques to keep SwiftUI views modular and reusable, some problems are architectural in nature and can only be addressed by following proven ... Read more

Matteo Manferdini
WPFプロジェクトをMVVMにすべき理由個人的まとめ - Qiita

イメージ図 説明に入る前に、WPFにおけるMVVMとはどんな感じなのかイメージ図を出しておきます。今回はDBと接続するアプリケーションを想定しています。 AIに頼んだらサクッと作ってくれました。すごいですね😎 MVVM で設計すると嬉しいこと まず理解して欲しいのが ...

Qiita