Моделирование состояния ViewModel в Android: чистый, масштабируемый паттерн
Плохо спроектированные модели создают каскад сложностей для каждого компонента, который от них зависит. В случае с моделями представления, когда они не соответствуют реальным потребностям экрана, другие компоненты (например, ViewModel) вынуждены работать в обход них, что приводит к появлению раздутых, трудно поддерживаемых классов, наполненных хаками и обходными путями. Такая несогласованность вносит двусмысленность и путаницу, что приводит к нечеткому, подверженному ошибкам коду, который дорого поддерживать.
Статья: https://apptractor.ru/info/articles/modelirovanie-sostoyaniya-viewmodel-v-android-chistyy-masshtabiruemyy-pattern.html
Платформа: Android
Плохо спроектированные модели создают каскад сложностей для каждого компонента, который от них зависит. В случае с моделями представления, когда они не соответствуют реальным потребностям экрана, другие компоненты (например, ViewModel) вынуждены работать в обход них, что приводит к появлению раздутых, трудно поддерживаемых классов, наполненных хаками и обходными путями. Такая несогласованность вносит двусмысленность и путаницу, что приводит к нечеткому, подверженному ошибкам коду, который дорого поддерживать.
Статья: https://apptractor.ru/info/articles/modelirovanie-sostoyaniya-viewmodel-v-android-chistyy-masshtabiruemyy-pattern.html
Платформа: Android
❤2
Как я уменьшил размер моего приложения на 73%
Было больно, но оно того стоило. Размер приложения имеет значение, и я не мог оставить все как есть теперь, когда обнаружил свою ошибку.
Статья: https://apptractor.ru/info/articles/kak-ya-umenshil-razmer-moego-prilozheniya-na-73.html
Платформа: iOS
Было больно, но оно того стоило. Размер приложения имеет значение, и я не мог оставить все как есть теперь, когда обнаружил свою ошибку.
Статья: https://apptractor.ru/info/articles/kak-ya-umenshil-razmer-moego-prilozheniya-na-73.html
Платформа: iOS
👍1
SwiftUIFormValidator - чистый, простой и настраиваемый подход к декларативной проверке форм в SwiftUI. С помощью этого решения вы сможете легко проверять вводимые пользователем данные и предоставлять обратную связь в режиме реального времени, сохраняя при этом элегантный и интуитивно понятный пользовательский интерфейс.
SwiftUIFormValidator на GitHub: https://github.com/Open-Bytes/SwiftUIFormValidator
Платформа: iOS
⭐️: 8105
SwiftUIFormValidator на GitHub: https://github.com/Open-Bytes/SwiftUIFormValidator
Платформа: iOS
⭐️: 8105
Видео и подкасты за неделю на @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#ios #android #mobile #video
•
(iOS En) The Composable Architecture (TCA) - New Project Setup in SwiftUI using XCode 16 and Swift Testing•
(iOS En) SwiftUI Navigation Stack Hero Animation - iOS 17 & 18•
(iOS En) Google Engineer Explains How to Integrate Gemini AI in iOS•
(iOS En) Reading and Parsing CSV Files in Swift•
(iOS En) Github Copilot for Xcode: Let's Explore and Discover•
(iOS En) Mediator Pattern in Swift: Explaining a Real-World Example from My Job•
(iOS En) Expandable Custom Slider•
(And En) Ultra HDR images | Android Build Time•
(And En) Previewing the Unpreviewable - Placeholder Previews in Compose•
(And En) How to Create Material3 List Items With THIS Composable•
(And En) Exploring Android Trunk-Stable & Aconfig•
(And En) Fun with Function Types in Kotlin•
(Crs En) Flutter Full Stack Tutorial – Spotify Clone w/ MVVM Architecture, Python, FastAPI, Riverpod•
(Crs En) Mix Native iOS Views in Compose Multiplatform With Touchlab's New Library•
(Dev Ru) Как начинающему программисту получить первый оффер•
(Dev Ru) Релокация в США, часть 1: Безопасность, оружие, визы и медицина•
(Anl Ru) А/В-тесты на коленке#ios #android #mobile #video
Разбираем iOS-приложение: код, сборка, статические и динамические библиотеки, компиляция, запуск
Больше всего мне нравится изучать процессы мобильной разработки, включая самые низкоуровневые вещи. Из чего состоит iOS-приложение? Какие этапы оно проходит перед тем, как оказаться на устройстве пользователя? Что такое Executable binary? Что происходит внутри препроцессора?
Статья: https://habr.com/ru/companies/alfa/articles/858252/
Платформа: iOS
Больше всего мне нравится изучать процессы мобильной разработки, включая самые низкоуровневые вещи. Из чего состоит iOS-приложение? Какие этапы оно проходит перед тем, как оказаться на устройстве пользователя? Что такое Executable binary? Что происходит внутри препроцессора?
Статья: https://habr.com/ru/companies/alfa/articles/858252/
Платформа: iOS
Как поднять инфраструктуру для запуска автотестов Android в облаках
Меня зовут Денис Веренцов, я Android-инженер из команды Emcee. Это технопродукт Авито, универсальное решение для запуска iOS и Android-тестов, с его помощью можно быстрее выкатывать новые фичи пользователям и клиентам. В этой статье я расскажу, как можно развернуть облачную инфраструктуру для запуска нативных автотестов Android-приложений на основе разработанного нами решения.
Статья: https://habr.com/ru/companies/avito/articles/858222/
Платформа: Android
Меня зовут Денис Веренцов, я Android-инженер из команды Emcee. Это технопродукт Авито, универсальное решение для запуска iOS и Android-тестов, с его помощью можно быстрее выкатывать новые фичи пользователям и клиентам. В этой статье я расскажу, как можно развернуть облачную инфраструктуру для запуска нативных автотестов Android-приложений на основе разработанного нами решения.
Статья: https://habr.com/ru/companies/avito/articles/858222/
Платформа: Android
Swift PNG - это кроссплатформенный фреймворк, не требующий Foundation, для декодирования, проверки, редактирования и кодирования PNG-изображений. Фреймворк написан на чистом Swift, компилируется и обеспечивает согласованное поведение на всех Swift-платформах. Библиотека также поставляется со встроенной поддержкой файловой системы в linux, macOS и Windows. В библиотеку так же встроена нативная реализация Swift DEFLATE, которую можно использовать как отдельный модуль.
Swift PNG на GitHub: https://github.com/tayloraswift/swift-png
Платформа: iOS
⭐️: 356
Swift PNG на GitHub: https://github.com/tayloraswift/swift-png
Платформа: iOS
⭐️: 356
О зацикливании рекомпозиции в Jetpack Compose
Jetpack Compose — это мощный инструмент, который упрощает создание UI в Android, но его освоение может быть не таким уж простым. Многие разработчики сталкиваются с неожиданными результатами и ошибками, которые на первый взгляд кажутся неочевидными. Сегодня разберем один из таких примеров и посмотрим, как зациклить рекомпозицию в Compose — и самое главное, как этого избежать.
Статья: https://habr.com/ru/articles/859084/
Платформа: Android
Jetpack Compose — это мощный инструмент, который упрощает создание UI в Android, но его освоение может быть не таким уж простым. Многие разработчики сталкиваются с неожиданными результатами и ошибками, которые на первый взгляд кажутся неочевидными. Сегодня разберем один из таких примеров и посмотрим, как зациклить рекомпозицию в Compose — и самое главное, как этого избежать.
Статья: https://habr.com/ru/articles/859084/
Платформа: Android
Apple убивает Swift
Swift был отличным языком, но он далеко ушел от своего первоначального видения.
Довольно далеко.
Сегодня мы узнаем, как управляются современные языки программирования. Я объясню, чем уникально плоха диктаторская структура Swift, и продемонстрирую вам, насколько плохой стала ситуация.
Статья: https://apptractor.ru/info/articles/apple-ubivaet-swift.html
Платформа: iOS/Swift
Swift был отличным языком, но он далеко ушел от своего первоначального видения.
Довольно далеко.
Сегодня мы узнаем, как управляются современные языки программирования. Я объясню, чем уникально плоха диктаторская структура Swift, и продемонстрирую вам, насколько плохой стала ситуация.
Статья: https://apptractor.ru/info/articles/apple-ubivaet-swift.html
Платформа: iOS/Swift
Composable Screens - подборка экранов, воплощенных Android-разработчиками с помощью инструментария Compose. Пока там, судя по всему, всего два приложения, но автор определенно предполагает расширять свою подборку.
Composable Screens на GitHub: https://github.com/erfansn/ComposableScreens
Платформа: Android
⭐️: 138
Composable Screens на GitHub: https://github.com/erfansn/ComposableScreens
Платформа: Android
⭐️: 138
Менеджер UndoManager в Foundation громоздок в использовании, в нем много шаблонного кода для добавления действий отмены и повтора. Поскольку он основан на замыкании, можно легко допустить ошибку. Revertible - этот фреймворк добавляет простой способ отслеживать изменений состояния и обеспечивает простой обход истории состояния с помощью функций
Revertible на GitHub: https://github.com/AndyHeardApps/Revertible
Платформа: iOS
⭐️: 3
undo() и redo().Revertible на GitHub: https://github.com/AndyHeardApps/Revertible
Платформа: iOS
⭐️: 3
Forwarded from Mobile Development by AppTractor
Вышла Developer Preview версия Android 16
Android 16 Developer Preview 1 уже доступен для тестирования ваших приложений. Это начало более частого выпуска API для Android в рамках усилий по ускорению инноваций в приложениях и устройствах.
Есть четыре заметных изменения - это новый встроенный инструмент выбора фотографий, поддержка медицинских записей FHIR в приложении Health Connect, обновленная версия Privacy Sandbox на Android, а также новая константа, отличающая Android 16 от предстоящего минорного релиза Q4.
Эта предварительная версия для следующего большого релиза Android, запуск которого запланирован на 2 квартал 2025 года. Этот выпуск похож на все API-выпуски в прошлом, где можно понять запланированные изменения поведения, которые часто привязаны к targetSdkVersion. Конец первого квартала 2025 года намечен для достижения стабильности платформы. На этом этапе предоставят финальные API SDK/NDK, а также финальные внутренние API и системное поведение приложений. Ожидается, что Platform Stability будет достигнута в марте 2025 года, и с этого момента у вас будет несколько месяцев до официального релиза (он будет во втором, а не в третьем квартале), чтобы провести финальное тестирование.
Android 16 Developer Preview 1 уже доступен для тестирования ваших приложений. Это начало более частого выпуска API для Android в рамках усилий по ускорению инноваций в приложениях и устройствах.
Есть четыре заметных изменения - это новый встроенный инструмент выбора фотографий, поддержка медицинских записей FHIR в приложении Health Connect, обновленная версия Privacy Sandbox на Android, а также новая константа, отличающая Android 16 от предстоящего минорного релиза Q4.
Эта предварительная версия для следующего большого релиза Android, запуск которого запланирован на 2 квартал 2025 года. Этот выпуск похож на все API-выпуски в прошлом, где можно понять запланированные изменения поведения, которые часто привязаны к targetSdkVersion. Конец первого квартала 2025 года намечен для достижения стабильности платформы. На этом этапе предоставят финальные API SDK/NDK, а также финальные внутренние API и системное поведение приложений. Ожидается, что Platform Stability будет достигнута в марте 2025 года, и с этого момента у вас будет несколько месяцев до официального релиза (он будет во втором, а не в третьем квартале), чтобы провести финальное тестирование.
Об анатомии крэшей на iOS «по-взрослому»
В работе любого ПО как на iOS, так и на других ОС, важна стабильность и отказоустойчивость. Вместе с тем, полностью исключить сбои и ошибки в работе приложений попросту невозможно. Соответственно, ключевое значение имеет возможность оперативного отлавливания ошибок и их устранения. В этом не обойтись без знания «анатомии» крэшей и понимания принципов работы с ними.
В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.
Статья: https://habr.com/ru/companies/odnoklassniki/articles/858302/
Платформа: iOS
В работе любого ПО как на iOS, так и на других ОС, важна стабильность и отказоустойчивость. Вместе с тем, полностью исключить сбои и ошибки в работе приложений попросту невозможно. Соответственно, ключевое значение имеет возможность оперативного отлавливания ошибок и их устранения. В этом не обойтись без знания «анатомии» крэшей и понимания принципов работы с ними.
В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.
Статья: https://habr.com/ru/companies/odnoklassniki/articles/858302/
Платформа: iOS
❤2
Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
Главное, на что я хотел бы обратить ваше внимание — это то, насколько логика становится целостной, если проектировать ее с точки зрения приложения, а не пользовательского интерфейса. А ещё насколько она гибкая, тестируемая и масштабируемая, если каждая функция отделена от своих зависимостей на уровне действий (функций), а не объектов.
Статья: https://habr.com/ru/articles/851808/
Платформа: Android
Главное, на что я хотел бы обратить ваше внимание — это то, насколько логика становится целостной, если проектировать ее с точки зрения приложения, а не пользовательского интерфейса. А ещё насколько она гибкая, тестируемая и масштабируемая, если каждая функция отделена от своих зависимостей на уровне действий (функций), а не объектов.
Статья: https://habr.com/ru/articles/851808/
Платформа: Android
Поиск нашего Золотого пути к устойчивой Android-разработке
Следуя «Золотому пути», мы не просто пишем код — мы создаем устойчивую и адаптируемую культуру разработки, которая выдержит испытание временем.
Статья: https://apptractor.ru/info/articles/poisk-nashego-zolotogo-puti-k-ustoychivoy-android-razrabotke.html
Платформа: Android
Следуя «Золотому пути», мы не просто пишем код — мы создаем устойчивую и адаптируемую культуру разработки, которая выдержит испытание временем.
Статья: https://apptractor.ru/info/articles/poisk-nashego-zolotogo-puti-k-ustoychivoy-android-razrabotke.html
Платформа: Android
Focus Launcher - минималистичный лаунчер для Android, созданный с помощью Jetpack Compose. Поддерживает светлый и темный режим, есть свой пак иконок, данные о фазе Луны, анимированные часы, избранные приложения. Стек: Kotlin, Jetpack Compose, корутины, архитектура Circuit, коллекция Android Architecture Component, Hilt-Dagger, Ktor.
Focus Launcher на GitHub: https://github.com/mslalith/focus_launcher
Платформа: Android
⭐️: 138
Focus Launcher на GitHub: https://github.com/mslalith/focus_launcher
Платформа: Android
⭐️: 138
❤3
Реверс-инжиниринг новой функции iOS Inactivity Reboot
В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.
Статья: https://habr.com/ru/companies/ruvds/articles/859884/
Платформа: iOS
В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.
Статья: https://habr.com/ru/companies/ruvds/articles/859884/
Платформа: iOS
Избавляемся от Android в api-модулях
Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами».
Статья: https://habr.com/ru/companies/alfa/articles/859450/
Платформа: Android
Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами».
Статья: https://habr.com/ru/companies/alfa/articles/859450/
Платформа: Android
RichEditorSwiftUI - библиотека на основе Swift, позволяющая легко сделать редактор текста в SwiftUI. Поддерживает жирный, наклонный, подчеркнутый шрифт и разные заголовки.
RichEditorSwiftUI на GitHub: https://github.com/canopas/rich-editor-swiftui
Платформа: iOS
⭐️: 81
RichEditorSwiftUI на GitHub: https://github.com/canopas/rich-editor-swiftui
Платформа: iOS
⭐️: 81
Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1
В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени. Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.
Статья: https://habr.com/ru/articles/860194/
Платформа: iOS
В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени. Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.
Статья: https://habr.com/ru/articles/860194/
Платформа: iOS
Видео и подкасты за неделю на @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#ios #android #mobile #video
•
(iOS Ru) Дейтинг, Swift и Формула-1: от первых шагов в IT до победы в хакатоне•
(iOS Ru) iOS разработка с нуля•
(iOS En) Disintegration Effect (Thanos Snap Effect) | SwiftUI•
(iOS En) Recreating Mail App’s Tab bar | SwiftUI•
(iOS En) Fix iOS 18 Gesture Problems With ScrollViews | SwiftUI•
(iOS En) How to save data to local storage - iOS File System and Sandboxing•
(iOS En) Apple's Official Method to Learn Swift and iOS•
(iOS En) SwiftUI Tutorial: Build a Real App! Payment Calculator•
(Andr Ru) Code Review: вы не поверите, насколько распространены эти ошибки в коде Android-проектов•
(And En) Graphics layers | Jetpack Compose Tips•
(And En) Open Health Stack•
(And En) How to Deserialize Inconsistent JSON Data With a Custom Kotlinx Serializer•
(And En) Anonymous Functions Aren't Lambdas•
(And En) Animating Your World with Doris Liu – Dive into Jetpack Compose Animations•
(Crs En) The Compose Multiplatform Crash Course for 2025 - Build a Clean Code Book App•
(Crs En) Platform Integrations With Russel Wolf•
(Crs En) From Sprite Sheets to Stunning Animations in Jetpack Compose! KMP Library•
(Crs En) Building a Clean, Multi-Module Application with Compose Multiplatform•
(Dev Ru) iOS vs Android: большая битва платформ — что лучше для разработчика, бизнеса и простого пользователя•
(Dev Ru) Всё о лицензиях библиотек, что необходимо знать разработчику#ios #android #mobile #video