TGViewer
Channel Public Channel
AppFiles - Mobile Development

AppFiles - Mobile Development

@applib

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Subscribers
2.18K
Photos
3.3K
Videos
48
Links
4.3K

Showing posts older than #4082 · Back to latest

Older Posts 20 shown
Post #4081 374
Tracey - "черный ящик" для Compose-приложения

Tracey - Kotlin Multiplatform SDK для Android и iOS для записи жестов, просмотров экранов, навигационных цепочек и сбоев — с последующим воспроизведением их в виде таймлайна.

Фичи:

• Запись жестов. Фиксирует тапы, скроллы, свайпы, долгие нажатия и щипки без какой-либо дополнительной инструментализации.
• Экраны и переходы. Автоматически отслеживает все навигационные события через tracey-navigation или позволяет логировать их вручную.
• События. Логируйте произвольные события из любого места приложения — обновления корзины, API-ошибки, feature flags и не только.
• Повтор сбоя. При падении сохраняет снепшот буфера событий и воспроизводит его при следующем запуске.
• Маскирование приватных данных. Помечайте чувствительные composable-элементы — они отображаются как обычно, но в захватах автоматически скрываются.
• Кастомные репортеры. Отправляйте записанные сессии в Logcat, Crashlytics, Sentry, Slack или в собственный бэкенд.

Tracey на GitHub: https://github.com/hi-manshu/tracey/
Платформа: Android/кроссплатформа
⭐️: 35

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4080 399
Почему многие неверно реализуют MVVM или способы создания абстракций

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

Статья: https://habr.com/ru/companies/psb/articles/1010690/
Платформа: архитектура

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4079 376
Как безопасно хранить и открывать пользовательские файлы локально в Android

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

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4078 401
Как спроектировать сетевой слой в iOS (гайд для собеседования)

Разработка сетевого слоя — одна из самых распространенных тем в проектировании систем (system design) на собеседованиях для опытных iOS-разработчиков. На первый взгляд, задача кажется простой. Каждый iOS-разработчик писал сетевые запросы с использованием URLSession, анализировал JSON-ответы и отображал данные в пользовательском интерфейсе.

Но собеседования проверяют не умение вызывать API, а понимание того, как построить многоразовую, тестируемую, поддерживаемую и масштабируемую сетевую систему.

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

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

Статья: https://apptractor.ru/info/articles/networking-layer.html
Платформа: iOS/собеседования

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4077 341
PoolChat - mesh чаты со сквозным шифрованием для iOS

PoolChat — это пакет Swift, обеспечивающий полностью зашифрованный, бессерверный обмен групповыми и личными сообщениями по локальной mesh сети. Он работает поверх ConnectionPool и добавляет согласование ключей Curve25519, шифрование сообщений AES-256-GCM, проверку подлинности по принципу Trust-On-First-Use, расширенные типы сообщений (голосовые, опросы, реакции), зашифрованное сохранение истории и готовые представления SwiftUI. Не требуется подключение к интернету, серверов или учетных записей — только устройства, напрямую взаимодействующие друг с другом с использованием сквозного шифрования.

PoolChat на GitHub: https://github.com/Olib-AI/PoolChat
Платформа: iOS
⭐️: 11

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4076 2.5K
📺 Видео и подкасты за неделю

• (iOS En) Threads App Swipe Up To Dismiss Interaction Using SwiftUI
• (iOS En) Backporting iOS 26 Concentric Rectangle for Older iOS Versions
• (iOS En) Build a Searchable, Sortable SwiftUI List with an Index Scrubber
• (iOS En) AppleTV App Animated Carousel Using SwiftUI
• (And Ru) Почему камера в Telegram Android снимает плохо
• (And En) 6 Ways to Make Your Gradle Builds Super Fast
• (Dev Ru) Зачем и как вам контрибьютить в open source
• (Dev Ru) Внутренняя кухня SRE и информационной безопасности
• (Dev Ru) Senior Android за 12 тысяч, рабство в IT и угрозы — Е*аное IT #1
• (Dev Ru) Маленькие языковые модели — Open source, локальный ИИ, SLM
• (Dev Ru) Рынок труда для джунов в 2026 году
• (Dev En) We Don't Need Designers Anymore
• (Dev En) Software Testing Course – Playwright, E2E, and AI Agents

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

• (iOS Ru) Дивный мир Swift Concurrency
• (iOS Ru) Задачи с собеседований: Leetcode — Недостающее число
• (iOS Ru) Как встроить в TextField индикатор загрузки и кастомную View
• (And Ru) Кастомные лейауты в Jetpack Compose
• (And Ru) Мапим данные из domain в ui модуль в многомодульном проекте
• (Crs Ru) Рецепт приготовления кроссплатформенного мобильного видеоредактора
• (Dev Ru) Собеседование по System Design: проектируем клон Авито

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4075 459
Monkeyrun - хаос-тестирование Android и iOS приложений

Monkeyrun - готовый к использованию кроссплатформенный CLI для мобильного хаотического (обезьяньего) тестирования Android и iOS приложений. Легковесный, удобный для CI/CD, единый исполняемый файл — без Appium, без сложной настройки.

Запускайте хаотические тесты на основе жестов на уже работающих эмуляторах и симуляторах. Обнаруживайте сбои, регистрируйте каждое событие и генерируйте чистый HTML-отчет.

Фичи:

• CLI-first подход — devices, run, report, replay команды
• Нулевая настройка — работает с существующими устройствами ADB и загруженными симуляторами iOS
• 12 действий — касание, двойное касание, длительное нажатие, свайп, прокрутка, ввод текста, назад, масштабирование, «Домой», очистка текста, поворот
• Умные скриншоты — гибридный захват (интервал, обнаружение изменений пользовательского интерфейса, сбой) с асинхронным пулом рабочих процессов
• Обнаружение сбоев — Android (logcat) и iOS (поток логов simctl) с уровнями серьезности
• HTML-отчет — темная тема в стиле Playwright с временной шкалой, фильтрами, скриншотами, логами
• Воспроизведение — воспроизведение тестового запуска из записанных событий
• Единый исполняемый файл — нет зависимостей от среды выполнения, кросс-компиляция для macOS/Linux/Windows

Monkeyrun на GitHub: https://github.com/ABNclearroute/monkeyrun
Платформа: тестирование
⭐️: 6

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
  • 👍 1
Post #4074 373
Отладка iOS-приложений на практике: 3 реальных бага

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

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

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4073 418
Rebound - мониторинг рекомпозиций

Rebound — это плагин компилятора Kotlin, который инструментирует каждую функцию с аннотацией @Composable легковесными вызовами отслеживания. Во время выполнения он отслеживает частоту рекомпозиции в соответствии с бюджетами для каждого composable-объекта, обнаруживает нарушения и сообщает о них через окно инструментов Android Studio, CLI или logcat. Работает на Android и iOS (Compose Multiplatform). Настройка не требуется — просто примените плагин Gradle. Плагин IDE предоставляет панель мониторинга производительности с 5 вкладками, включающую мониторинг в реальном времени, ранжирование проблемных мест, тепловую карту временной шкалы, анализ стабильности и историю сессий с корреляцией с системами контроля версий.

Rebound на GitHub: https://github.com/aldefy/compose-rebound
Платформа: Android
⭐️: 41

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
  • 👍 1
  • 😁 1
Post #4072 432
Собеседование на должность iOS-разработчика в Experian: когда все пошло не по плану

Иногда собеседования проверяют ваши знания. Иногда они проверяют ваше терпение. Собеседование в Experian? Оно проверяло мою психику.

Если вам когда-нибудь доведется столкнуться с таким интервьюером, вот мой совет:

• Сохраняйте спокойствие. Сумасшедшие интервьюеры проверяют вашу реакцию под давлением.
• Думайте вслух. Даже если вопрос не имеет смысла, покажите свою логику.
• Помните, дело не в вас. Иногда дело просто в интервьюере.

И, по крайней мере, вы уйдете с собеседования с историей, которая рассмешит ваших друзей.

Статья: https://apptractor.ru/info/articles/sobesedovanie-na-dolzhnost-ios-razrabotchika-v-experian-kogda-vse-poshlo-ne-po-planu.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
  • 👎 1
Post #4071 378
Remote Compose: назад в будущее

«Дороги? Куда мы едем, дороги не нужны».

И, судя по всему, там, куда мы идем, нам не нужны обновления приложений для изменения пользовательского интерфейса. Давайте вернемся в будущее и посмотрим, что может предложить Remote Compose.

Статья: https://apptractor.ru/info/articles/remote-compose-nazad-v-buduschee.html
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4070 380
Как заставить Android Studio ругаться на код по вашим правилам: создаем пользовательские Lint и Detekt

Сегодня поговорим о том, как заставить Android Studio самостоятельно следить за порядком в коде – без ручных проверок и без вечных напоминаний в командном чате.

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4069 379
Ой, всё упало: 4+ способа достать креш-отчет с iOS-приложения

Если привести аналогии, то логи — это жалобная книга, а креш‑отчет — это заключение судмедэксперта. В нём написано точное время смерти, причина и состояние памяти устройства в последний момент жизни приложения.

Для тестировщиков поймать креш и не допустить его до прода — это как для сапёра обезвредить мину раньше, чем на неё наступят. Работу можно сделать и после взрыва, но цена вопроса уже совсем другая. Сегодня я расскажу о 4+ проверенных способах собрать информацию о креше: от уже знакомых нам способов из предыдущей статьи до продвинутых систем мониторинга.

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4068 316
NVActivityIndicatorView - индиакторы загрузки

NVActivityIndicatorView - коллекция потрясающих анимаций загрузки. Больше 30 вариантов показать, что ваш контент загружается. 

NVActivityIndicatorView на GitHub: https://github.com/ninjaprox/NVActivityIndicatorView
Платформа: iOS
⭐️: 10.7K

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4067 379
Copy-On-Write в Swift: семантика, заблуждения и кастомная реализация

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

В этой статье рассматривается проектирование хранилища с механизмом копирования при записи в Swift, модели мышления, которые разработчики часто используют при рассуждениях об этом, и практическая реализация пользовательского контейнера COW.

Статья: https://apptractor.ru/info/articles/copy-on-write-v-swift-semantika-zabluzhdeniya-i-kastomnaya-realizatsiya.html
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4066 363
Внедряем Yandex MapKit SDK в SwiftUI приложение. Пишем Demo проект

Сегодня я поделюсь с вами пошаговым планом создания демо приложения на SwiftUI с использованием Yandex MapKit SDK.

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
  • 👎 1
Post #4065 385
Встроенный фото-пикер в Jetpack Compose

Встроенный фото-пикер — это не «кастомный интерфейс галереи». Это системный инструмент выбора фотографий, отображаемый внутри вашей иерархии UI, обладающий теми же свойствами безопасности и конфиденциальности, что и классический инструмент выбора, поскольку система отрисовывает его в выделенном SurfaceView (внутренне подключаемом через SurfaceView.setChildSurfacePackage). Именно это архитектурное решение открывает ключевой сдвиг в продукте: пользователь остается на вашем экране во время просмотра и выбора, а ваше приложение может реагировать на обновления выбора в реальном времени, поскольку ваша активити остается рабочей.

Статья: https://apptractor.ru/info/articles/vstroennyy-foto-piker.html
Платформа: Android

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4064 359
Несколько мобильных приложений в одном Appium‑проекте: как это можно организовать

В статье покажу:

• как запускать тесты для нескольких мобильных приложений в одном Appium-проекте
• как выбирать приложение через аннотацию
• как сделать потокобезопасный фреймворк
• как избежать дублирования кода

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4063 376
Пишем декларативный Package.swift: DSL для модульной архитектуры iOS проекта

В этой статье вместо того чтобы рассматривать Package.swift как простой конфигурационный файл, превратим его в типобезопасный DSL для модульной архитектуры.

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

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
Post #4062 388
Snappy Swipe - упругий swipe to delete

Snappy Swipe - "упругий" способ удаления компонента из списка с помощью свайпа, вдохновленный выразительными уведомлениями Material 3.

Snappy Swipe на GitHub: https://github.com/KlassenKonstantin/SnappySwipe
Платформа: Android
⭐️: 31

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
  • 🔥 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →