AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.14K subscribers
2.83K photos
38 videos
11 files
3.76K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Copy-on-write позволит вам узнать ВСЕ о внутреннем устройстве Swift

Статья подробно разбирает механизм Copy-on-Write (CoW) в Swift, который является ключевой оптимизацией для работы с типами значений, такими как массивы и словари. Автор объясняет, что CoW позволяет избежать ресурсозатратного копирования данных при каждой передаче переменной или константы. Вместо создания немедленного дубликата в памяти, несколько переменных используют одну и ту же область данных в «куче» до тех пор, пока одна из них не попытается внести изменения. Только в момент модификации происходит реальное копирование, что позволяет Swift сочетать безопасность значимых типов с производительностью ссылочных.

Помимо теоретических основ, в материале рассматриваются внутренние аспекты реализации этого механизма и работа с памятью (стек против кучи). Автор демонстрирует, как разработчики могут самостоятельно внедрить CoW для собственных структур данных, используя приватный класс-обертку и системную функцию isKnownUniquelyReferenced. Этот подход позволяет вручную контролировать количество ссылок на объект и выполнять копирование только тогда, когда на данные ссылается более одного владельца. Таким образом, изучение CoW дает глубокое понимание того, как Swift оптимизирует управление памятью «под капотом».

Статья: https://levelup.gitconnected.com/copy-on-write-teaches-you-everything-about-swift-internals-f8807b58bfd6
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Yet Another Rapid Compose - интеллектуальный генератор сокращений

Yet Another Rapid Compose — это интеллектуальный генератор сокращения, плагин для Android Studio, который мгновенно преобразует лаконичные аббревиации в полноценные деревья компонентов Jetpack Compose. Перестаньте писать шаблонный код — сосредоточьтесь на структуре пользовательского интерфейса.

Фичи:

• Мгновенное развертывание: вводите короткие коды, такие как col или row, и развертывайте их в допустимые блоки Compose
• Вложенные макеты: используйте / для определения иерархии в одной строке (например, box/txt).

Yet Another Rapid Compose на GitHubhttps://github.com/andrew-malitchuk/yet-another-rapid-compose
Платформа: Android
⭐️: 6

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Погружение в UX-долг

В этом еженедельном дайджесте разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и плагины для Android Studio, миграция на Android Gradle Plugin 9.0, сокращение потребления памяти, бесплатный Skip, FunctionGemma от Google и многое другое. Заходите!
Deeplink-и во Flutter: динамические ссылки и app_links

Мобильные приложения, в том числе на Flutter, позволяют настраивать обработку различных ссылок. В этой статье я разберу, как во Flutter реализовать поддержку deeplink-ов и универсальных ссылок и как управлять ими на уровне платформы.

Статья: https://habr.com/ru/companies/friflex/articles/988262/
Платформа: кроссплатформа
Typhoon — легковесная библиотека для повторных попыток выполнения задач

Typhoon — это современный, легковесный фреймворк на Swift, предоставляющий элегантные и надежные политики повторных попыток для асинхронных операций. Созданный на основе модели параллельного выполнения async/await от Swift, он помогает корректно обрабатывать временные сбои с помощью настраиваемых стратегий повторных попыток.

Фичи:

• Несколько стратегий повторных попыток — постоянная, экспоненциальная и экспоненциальная со сдвигом
• Async/Await-совместимый — создан для современной параллельной работы в Swift
• Типобезопасность — использует систему типов Swift для обеспечения безопасности на этапе компиляции
• Настраиваемость — гибкие параметры повторных попыток для любого варианта использования
• Кроссплатформенность — работает на iOS, macOS, tvOS, watchOS и visionOS
• Легковесность — минимальный размер без зависимостей
• Тщательно протестировано — всестороннее тестовое покрытие

Typhoon на GitHub: https://github.com/space-code/typhoon
Платформа: iOS
⭐️: 45

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Навыки, которые вы теряете, пока ИИ берет на себя рутинные задачи

Концертный пианист не забывает, как играть. Он забывает, как играть хорошо. И он не замечает этого, пока это не становится важным.

Вы не потеряете работу из-за ИИ.

Но вы можете потерять то, что делало вас мастером своего дела — причем так постепенно, что и не заметите. Пока не поймаете себя на том, что в недоумении смотрите на баг, который раньше щелкали как орешки, на архитектуру, которую не можете объяснить, или на систему, которую больше не понимаете.

Вопрос не в том, использовать ли ИИ. Вы будете его использовать.

Вопрос в том, останетесь ли вы через пять лет инженером, способным работать без него, или же тем, кто не будет знать, с чего начать.

Статья: https://apptractor.ru/info/articles/navyki-kotorye-vy-teryaete-poka-ii-beret-na-sebya-rutinnye-zadachi.html
Платформа: разработка

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда данных от Apple недостаточно: собираем метрики производительности UI

Оптимизировать работу UI важно - это напрямую влияет на пользовательский опыт и удержание. Собственные метрики позволяют получить больше информации - метрики позволяют не только находить проблемы, но и подтверждать улучшения после оптимизаций. В этой статье Виталий Барабанов из HH пишет про их решение для сбора метрик производительности UI.

Статья: https://habr.com/ru/companies/hh/articles/988322/
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как сделать эффект люминесцентной лампы в Jetpack Compose

Туториал о том, как реализовать эффект светящейся трубки на Android с помощью Jetpack Compose — без сторонних библиотек, только Canvas и анимации Kotlin.

Статья: https://proandroiddev.com/how-to-create-a-tubelight-effect-in-android-compose-2383befc47b1
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Swipe-to-Dismiss в Compose Material 3

Компонент «Закрытие с помощью свайпа» позволяет пользователям закрывать или обновлять элемент, проводя пальцем влево или вправо. Compose Material 3 предлагает простой в использовании компонент, который делает все за нас.

Статья: https://apptractor.ru/info/articles/swipe-to-dismiss-v-compose-material-3.html
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
VICE - KMP MVI фреймворк

VICE это MVI (Model-View-Intent) фреймворк, который использует UDF (Unidirectional Data Flow) для работы UI.

Преимущества VICE:

1. Он соответствует принципам единой ответственности и однонаправленного потока данных, оставаясь при этом простым.
2. Он предоставляет естественный, императивный способ работы с асинхронными данными.
3. Он предоставляет неизменяемый способ описания состояния пользовательского интерфейса, исключающий возможность изменения через бэкдор.
4. Он избавляет от необходимости гадать, как структурировать код пользовательского интерфейса.

VICE на GitHub: https://github.com/eygraber/vice
Платформа: Android
⭐️: 140

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1🤨1
Встроенный Photo Picker: более удобный способ конфиденциального запроса фотографий и видео в вашем приложении

Embedded Photo Picker — новый компонент Android, который позволяет встраивать выбор фото и видео прямо в интерфейс приложения, не открывая отдельный системный экран. Пользователь видит медиатеку (включая облачные фото, например из Google Photos) внутри приложения, а само приложение получает доступ только к тем файлам, которые были явно выбраны, без запроса широких разрешений. Это заметно улучшает UX и повышает уровень приватности.

Компонент уже используется, например, в Google Messages, и доступен через Jetpack Photo Picker — как для Jetpack Compose, так и для классических View. Embedded Photo Picker работает на Android 14+ (SDK Extensions 15+), рендерится системой в изолированной области и безопасен от перехвата. В итоге разработчики получают более нативный, бесшовный и безопасный способ работы с пользовательскими фото и видео.

Статья: https://apptractor.ru/Embedded-Photo-Picker
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Отлаживайте Swift как Senior

В этой статье мы обсудим методы отладки, которые используют Senior iOS-разработчики.

1. Выявление логических ошибок на этапе разработки
2. Обогащение отладочных логов контекстной информацией
3. Настройка вывода с помощью CustomDebugStringConvertible
4. Анализ свойств и значений экземпляров во время выполнения
5. Функция dump() для углубленной отладки

Статья: https://apptractor.ru/info/articles/otlazhivayte-swift-kak-senior.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Бессерверный ИИ для Android-приложений с Firebase AI Logic

Цель этой статьи — показать, почему бессерверный ИИ на Android наконец-то стал практичным, и как Firebase AI Logic делает его удивительно простым.

Статья: https://apptractor.ru/info/articles/firebase-ai-logic.html
Платформа: Android/ИИ

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Cash Sense - Android-приложение для управления финансами

Cash Sense - мобильное приложение, разработанное для того, чтобы помочь пользователям эффективно управлять своими финансами. Независимо от того, хотите ли вы создавать кошельки в разных валютах, устанавливать категории для транзакций или отслеживать даты оплаты подписок, Cash Sense вам поможет.

Cash Sense на GitHub: https://github.com/nikbulavin/cashsense
Платформа: Android
⭐️: 175

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
1
App Store Toolkit - инструменты локализации iOS-приложений

App Store Toolkit - набор из нескольких инструментов для локализации iOS-приложений. Есть локализация .xcstrings, настройка стоимости подписки для разных стран, перевод мета-данных и генератор скриншотов для App Store Connect. Все это с помощью ИИ и локальных сервисов.

App Store Toolkit на GitHub: https://github.com/fayharinn/iOS-App-Distribution-Localizer
Платформа: iOS/Web
⭐️: 24

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences

Системы злоумышленников постоянно эволюционируют, появляются новые атаки и новые защиты. То, что работало в Android 8, может быть небезопасно в Android 14. Поэтому безопасность в Android - это не разовая настройка, а процесс.

Мой главный совет: читайте Android Security Bulletins, следите за CVE, связанными с вашими зависимостями, и регулярно проводите аудит своего кода.

И последнее: если сомневаетесь, стоит ли передавать какие-то данные между приложениями - не передавайте. Лучше лишний раз сходить на сервер, чем потом разгребать последствия утечки данных. Серьёзно, оно того не стоит.

Статья: https://habr.com/ru/articles/989740/
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
React Native. Часть 1: архитектура, производительность и варианты использования

React Native прошел путь от решения с фундаментальными архитектурными ограничениями до платформы с современным, производительным ядром. В этой статье мы разберем, как работала старая архитектура на основе Bridge, как ее заменили JSI, Fabric и Hermes, и в каких случаях React Native - оптимальный выбор для проекта.

Статья: https://habr.com/ru/articles/989776/
Платформа: кроссплатформа

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Простые синтаксические приёмы в Swift

В этой статье - несколько практических приёмов и особенностей Swift, которые помогают писать код проще, короче и понятнее. Здесь не будет абстрактной теории — только реальные примеры, которые можно сразу применять в проектах: от сопоставления с шаблоном и работы с optional до безопасной обработки строк и чисел. Если вы хотите, чтобы ваш Swift-код выглядел аккуратно и «по-свифтовски», эти советы точно пригодятся.

Статья: https://apptractor.ru/info/articles/prostye-sintaksicheskie-priyomy-v-swift.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
1
WiFi Mirror - шаринг экрана через Wi-Fi

WiFi Mirror - кроссплатформенные приложения для шаринга экрана в локальных сетях.

WiFi Mirror обеспечивает шаринг экрана в режиме реального времени между устройствами, подключенными к одной локальной сети. Разработанное на Flutter, оно поддерживает платформы Android, iOS, macOS, Windows, Linux и Web с непрерывным peer-to-peer подключением.

WiFi Mirror на GitHub: https://github.com/navneetprajapati26/wifi-mirror
Платформа: кроссплатформа
⭐️: 19
👍1
📺 Видео и подкасты за неделю

(iOS En) SwiftUI Sortable Grid View
(iOS En) Managing Undo/Redo State in SwiftUI
(iOS En) I Built a macOS Trannoscription App with Codex 5.2 + Xcode (Real Workflow)
(iOS En) SwiftUI Pickers Deep Dive
(And Ru) Пишу свой телеграм клиент на Android по TDD
(And En) Why you should delete your base classes on Android (BaseActivity, BaseViewModel, etc.)
(And En) Making Apps Accessible with Kotlin and Compose
(And En) Refactor Kotlin code from OO to functional - step by step, safely, and pragmatically
(And En) Unused Return Value Checker in Kotlin 2.3
(And En) Explicit Backing Fields in Kotlin 2.3 - What You Need to Know
(And En) Stop using LaunchedEffect for passing an Argument to a ViewModel
(Crs Ru) Опасный Flutter… Или нет?
(Crs Ru) Курс Dart и Flutter вместе
(Crs En) How to Switch the App Language In KMP (Android & iOS)
(Dev Ru) AntiSOLID
(Dev Ru) Железо для ИИ — AI, Hardware, GPU, Cerebras
(Dev En) Relational Database Design – Full Course

Прошлогодние видео
:

(iOS Ru) Как мы адаптировали проект к Strict Concurrency Checking — Swift 6
(iOS Ru) Как избежать утечек памяти при использовании Task, Combine, CurrentValueSubject и AsyncStream
(And Ru) Построение multi-app архитектуры
(And Ru) Старт карьеры в Android-разработке до 18 лет
(And Ru) Compose Navigation Codelab: проходим кодлаб от Google
(Dev Ru) Проектирование и запуск разработки
Please open Telegram to view this post
VIEW IN TELEGRAM
Как я ускорил холодный старт Android-приложения в 10 раз

Разбор реального кейса оптимизации Android-приложения: как сократить время холодного старта с 17 до 1.7 секунд, улучшив retention с 82% до 98.5%. Конкретные решения: миграция на Splash Screen API, система фоновых задач, реактивная загрузка данных и оптимизация бэкенда.

Статья: https://nek12.dev/blog/ru/how-to-speed-up-android-app-launch-baseline-profiles-startup-optimization-splash-screen
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
2