AppFiles - Mobile Development @applib Channel on Telegram

AppFiles - Mobile Development

@applib


Библиотеки, обучающие статьи, курсы и видео для разработчиков. Если есть вопросы - пишите @lbogolubov.

AppFiles - Mobile Development (Russian)

Если вы разработчик мобильных приложений или только начинаете свой путь в этой области, то канал AppFiles - Mobile Development (@applib) станет вашим незаменимым помощником. Здесь вы найдете библиотеки, обучающие статьи, курсы и видео, которые помогут вам улучшить навыки и расширить знания в сфере мобильной разработки. Независимо от того, на каком уровне вы находитесь, здесь найдется что-то полезное для вас. Обучающие материалы подготовлены опытными специалистами, которые делятся своими знаниями и опытом с аудиторией. Если у вас возникнут вопросы или вам потребуется помощь, всегда можно обратиться к администратору канала @lbogolubov. Присоединяйтесь к каналу AppFiles - Mobile Development и станьте профессионалом в мобильной разработке!

AppFiles - Mobile Development

27 Jan, 08:51


Как Android управляет маленькой памятью: Kswapd и LMK

Будучи мобильной операционной системой, Android приходится иметь дело с ограниченными ресурсами памяти. ОС тщательно следит за использованием памяти и принимает меры по ее освобождению, когда ее становится мало.

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

Платформа Android работает на основе принципа, что свободная память - это зря потраченная память. Учитывая это правило, ОС Android всегда старается выделить всю доступную память.

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

В любом случае, память нужна системе, и Android OS использует ее эффективно. Но что делать, если вся память занята? Как открыть больше приложений?

Статья: https://apptractor.ru/info/articles/kak-android-upravlyaet-malenkoy-pamyatyu-kswapd-i-lmk.html
Платформа: Android

AppFiles - Mobile Development

27 Jan, 07:58


Погружение в мир Lint'a в Android-проекте (часть 2)

Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим.

Статья: https://habr.com/ru/companies/domclick/articles/870650/ (первая часть)
Платформа: Android

AppFiles - Mobile Development

27 Jan, 07:55


Смешивание цветов в SwiftUI

В последней версии SwiftUI компания Apple представила новую функцию - смешивание цветов. Это функция, которая позволяет выполнять различные творческие задачи. В этой статье мы рассмотрим смешивание цветов в SwiftUI и изучим возможности его применения.

Статья: https://apptractor.ru/info/articles/smeshivanie-tsvetov-v-swiftui.html
Платформа: iOS

AppFiles - Mobile Development

27 Jan, 06:38


qBitControl - удаленный клиент для qBittorrent. С его помощью вы можете добавлять торренты через .torrent-файлы или magnet-ссылки, следить за ходом загрузки, управлять торрентами - делать паузу/возобновление, просматривать и управлять торрент-файлами, получать статистику в реальном времени.

qBitControl на GitHub: https://github.com/Michael-128/qBitControl
Платформа: iOS
⭐️: 226

AppFiles - Mobile Development

24 Jan, 08:36


Видео и подкасты за неделю на @AppFiles

(iOS Ru) Фото-пикер 2.0: как сделать фичу на 150%
(iOS En) Guiding the Golden Age: Rebuilding Indoor Navigation for Rijksmuseum
(iOS En) Mastering Color Views in SwiftUI
(iOS En) Notification Deep Linking | Open Specific View From Push Notifications
(iOS En) Scalable Continuous Integration for iOS
(And Ru) Как сделать библиотеку, чтобы ей пользовались
(And En) InputStreams & OutputStreams In Kotlin
(And En) Working With Files In Kotlin
(And En) Compose Performance for Us Humans
(KMP En) Becoming a KMP Expert
(KMP En) Multi-language Support in Kotlin/Compose Multiplatform
(Flt En) Flutter Animations Made Easy
(Dev Ru) Управление ресурсами в DevOps: от облачных решений до «железных» серверов
(Dev Ru) Универсальное решение для мобильного автотестирования
(Dev Ru) Смена профессии в IT — Карьера, Профессиональный рост
(Dev En) Neetcode 150 Course - All Coding Interview Questions Solved

AppFiles - Mobile Development

24 Jan, 08:31


Интеграция Docker в Android разработку

Если говорить о Docker в контексте Android-разработки, то чаще всего кейсы его использования встречаются в тестировании и развертывании приложений.

Docker позволяет создать изолированную среду, в которой можно запустить приложение вместе со всеми его зависимостями, что очень ценится в тестировании. Ключевым фактором является то, что внесенные изменения, никак не влияют на другие контейнеры или систему. Конвейеризация же только ускоряет эти и другие процессы.

Звучит непросто? Но на самом же деле, в этом нет ничего сложного. Чтобы в этом убедиться, напишем небольшой Pipeline для Android проекта.

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

AppFiles - Mobile Development

24 Jan, 08:30


Вызов защищенного API из iOS-приложения на Swift

Пошаговое руководство по использованию OAuth 2.0 при доступе к защищенным API из iOS‑приложения на Swift с Auth0.

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

AppFiles - Mobile Development

24 Jan, 06:28


CuteMusic - это простой, легкий и открытый музыкальный плеер для Android, написанный на Jetpack Compose & Media3. Фичи: воспроизводите любую песню из любого места, просто поделившись аудиофайлом с приложением, не скачивая его, удобный поиск по всей вашей музыке/альбомам/артистам, очень быстрый, никаких лишних разрешений, поддержка Material 3/You & Monet,
красивый ландшафтный UI, редактор тегов.

CuteMusic на GitHub: https://github.com/sosauce/CuteMusic
Платформа: Android
⭐️: 295

AppFiles - Mobile Development

23 Jan, 09:25


Отлаживаем неотлаживаемое

В статье Брайс Боствик делится своим опытом обхода различных защитных механизмов в iOS-приложении. Это приложение блокировало подключение отладчика, завершало работу при попытке инъекции кода и даже приводило к перезагрузке устройства при запуске на взломанном (jailbroken) iPhone.

Брайс подробно описывает, как приложение использует функцию ptrace с параметром PT_DENY_ATTACH для предотвращения присоединения отладчика. Он предлагает несколько методов обхода этой защиты, включая установку точки останова перед вызовом ptrace и использование команды thread return в lldb для пропуска выполнения этой функции.

Кроме того, автор обнаружил, что приложение содержит функцию, которая вызывает бесконечный цикл создания снимков экрана с помощью метода snapshotViewAfterScreenUpdates, что приводит к перезагрузке устройства. Это служит дополнительной мерой защиты от отладки и модификации приложения.

Брайс также рассматривает проблему инъекции кода, когда приложение завершается при попытке добавить новый код. Он объясняет, что это может быть связано с отсутствием корректной группы приложений (App Group) после повторной подписи приложения. В качестве решения он предлагает использовать метод swizzling для замены вызова containerURLForSecurityApplicationGroupIdentifier на возвращение временного каталога, что позволяет обойти эту защиту.

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

Статья: https://bryce.co/undebuggable/
Платформа: iOS

AppFiles - Mobile Development

23 Jan, 09:17


Темы в современных iOS-приложениях с UITraitCollection

Совсем недавно (с iOS 17) Apple представила довольно удобный способ обработки смены тем в приложениях для iOS. Раньше это было довольно мучительно. Но с появлением UITraitAppearance все стало проще.

Эта статья представляет собой законченное описание того, как добавить тематическое оформление в реальное приложение.

Статья: https://apptractor.ru/info/articles/temy-v-sovremennyh-ios-prilozheniyah-s-uitraitcollection.html
Платформа: iOS

AppFiles - Mobile Development

23 Jan, 08:50


😖Ваши тесты на Flutter — это боль? UI ломается, ошибки появляются в последний момент, а автоматизация тестирования — пустые мечты?

🚀Представьте, что каждая строчка кода протестирована. Вы ловите баги ещё до релиза, а CI/CD работает, как часы. Ваши приложения — надёжные, быстрые, готовые к любым нагрузкам.

➡️Приходите на открытый урок «Хитрости тестирования приложений на Flutter» 27 января в 20:00 мск. Узнайте всё про тестирование, CI и лучшие инструменты. Всем участникам — скидка на большое обучение!

🔴Регистрация открыта: https://otus.pw/8X6a/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

AppFiles - Mobile Development

23 Jan, 08:49


Как синтаксический сахар Kotlin может сломать вам логику работы приложения

Kotlin предоставил много возможностей и позволил убрать написание однотипного кода, но это стало тем что разработчики стали забывать, что не весь синтаксический сахар позволит реализовать задуманное. В Java же сложность написания чего-то заставляла нас делать выбор осознанным. Не используйте бездумно всё, что вам предлагает язык программирования и IDE, реализуйте логику работы объектов вашей программы соотвественно их поведению!

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

AppFiles - Mobile Development

23 Jan, 07:14


Recall - это приложение-календарь, предназначенное для записи ежедневных событий, чтобы иметь возможность просматривать тенденции в продуктивности, достижении целей и управлении временем. Оно построено на базе Swift и SwiftUI, а на бэкенде использует MongoDB и Realm DeviceSync.

Recall на GitHub: https://github.com/Brian-Masse/Recall
Платформа: iOS
⭐️: 7

AppFiles - Mobile Development

22 Jan, 08:45


Jetpack Compose и Edge-to-Edge на Android 15

В Android 15 (API 35) Google продолжает продвигать иммерсивные пользовательские интерфейсы от края до края (edge-to-edge). Несмотря на то, что это улучшает дизайн современных приложений, это вносит тонкие изменения, которые могут нарушить существующие макеты - особенно если ваше приложение полагается на точную работу с системными панелями. В этой статье мы рассмотрим, как перенести приложение Jetpack Compose на API 35, и обсудим лучшие методы управления переходом к edge-to-edge UI.

Статья: https://apptractor.ru/info/articles/jetpack-compose-i-edge-to-edge-na-android-15.html
Платформа: Android

AppFiles - Mobile Development

22 Jan, 07:51


⁉️ Знаешь, куда движется мир бэкенда?

В 2024-м экосистема Kotlin взлетела на новый уровень. Что дальше? Какие тренды взорвут 2025? Какие технологии войдут в топ, а какие окажутся в аутсайдерах?

⚡️ Узнай всё на открытом вебинаре «Тенденции бэкенд-разработки в экосистеме Kotlin». Мы подведем итоги прошлого года, разберем ключевые тренды и поможем тебе подготовиться к новым вызовам.

🎙 Спикер Сергей Окатов — кандидат физико-математических наук и архитектор в Solar Security.

🗓 Регистрируйся на вебинар 30 января в 19:00 мск.
Участники получат скидку на большое обучение «Kotlin Backend Developer. Professional».

➡️Регистрация открыта: https://otus.pw/y6doi/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

AppFiles - Mobile Development

22 Jan, 06:33


Для других языков тоже вполне подходит

AppFiles - Mobile Development

22 Jan, 06:30


Технический гайд по сторис или как мы повысили конверсию в мобильном приложении в 9 раз

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

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

AppFiles - Mobile Development

22 Jan, 05:21


Lumo-UI - плагин Gradle для генерации компонентов пользовательского интерфейса Compose через командную строку. Он предоставляет настраиваемые и готовые к использованию компоненты, которые вы можете скопировать и вставить в свои проекты. Он генерирует компоненты пользовательского интерфейса непосредственно в вашей кодовой базе, предоставляя вам полное право собственности и гибкость в настройке их в соответствии с вашими конкретными потребностями дизайна, без внешних зависимостей.

Lumo-UI на GitHub: https://github.com/nomanr/lumo-ui
Платформа: Android
⭐️: 159

AppFiles - Mobile Development

21 Jan, 07:13


Как мы сделали on-device-распознавание номеров телефонов для ИТ-Пикника

В статье рассказываем, как в суперсжатые сроки реализовали распознавание номеров телефонов on-device на iOS. Результаты работы мы представили 40 тысячам гостей на стенде Т-Банка нашего продукта на ИТ-Пикнике 2024 — ежегодном фестивале для айтишников.

Мы расскажем о технических достижениях и вызовах, с которыми столкнулись, поделимся решениями, которые разработали специально для мероприятия, а еще теми, что уже встроены в наши приложения и успешно используются

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

AppFiles - Mobile Development

21 Jan, 06:04


Абсолютно потрясающее, но определенно не всеобъемлющее руководство по тестированию пуш-уведомлений

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

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

Статья: https://habr.com/ru/articles/811297/
Платформа: Android/тестирование

AppFiles - Mobile Development

21 Jan, 06:02


Архитектура для SwiftUI — VSURF

Кому-то может показаться, что мы изобретаем велосипед. Кто-то упрекнет нас в том, что мы специально накосячили с одной из классических архитектур, чтобы выставить её в плохом свете. Другой скажет, что архитектура вообще не нужна.

Но мы уверены в своих силах. Ведь у нас уже была SurfMVP, а теперь пришел час VSURF. Технологии не стоят на месте, а задачи остаются прежними. Заказчику нужна «картинка». Разработчики собирают «картинку» как пазл. А архитектор продумывает детали этого пазла.

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

AppFiles - Mobile Development

21 Jan, 05:46


Sharing - мгновенный обмен состоянием между функциями вашего приложения и внешними слоями, включая user defaults, файловую систему и многое другое. Инструмент работает в различных контекстах, таких как представления SwiftUI, модели @Observable и контроллеры представлений UIKit, и полностью поддается модульному тестированию.

Sharing на GitHub: https://github.com/pointfreeco/swift-sharing
Платформа: iOS
⭐️: 459

AppFiles - Mobile Development

20 Jan, 08:52


😨 5 лет React Native в Shopify

Shopify поделился своим опытом использования React Native в компании. Основные тезисы:

• Приложения на React Native работают быстро
• Горячая перезагрузка — это потрясающе
• Typescript открывает возможности движения талантов
• Нативные разработчики имеют решающее значение
• Нативный код имеет решающее значение
• Отладка хуже
• Обновления React Native не являются бесшовными
• Большая зависимость от библиотек сторонних разработчиков
• Общие основы открывают массу преимуществ

Главный вывод - за последние 5 лет React Native прошел долгий путь развития, и многие ограничения, из-за которых люди не принимали его, просто больше не существуют. Если вы давно не пробовали использовать RN, сейчас самое время вернуться к нему.

AppFiles - Mobile Development

20 Jan, 07:41


Как Класс производительности помог Google Maps предоствить первоклассный опыт

Экосистема Android включает в себя широкий спектр устройств, и бывает сложно создать опыт, который бы использовал преимущества новых или премиальных аппаратных функций и при этом хорошо работал для пользователей на всех устройствах. В Android 12 Google ввел стандарт Media Performance Class (MPC), чтобы помочь разработчикам лучше понять возможности устройства и определить высокопроизводительные устройства.

Статья: https://apptractor.ru/info/articles/kak-klass-proizvoditelnosti-pomog-google-maps-predostvit-pervoklassnyy-opyt.html
Платформа: Android

AppFiles - Mobile Development

20 Jan, 06:03


Костыли, костыли и ещё раз костыли. Или поддержка iOS 15 на SwiftUI

Итак, есть задача: переделать экран авторизации на новый дизайн, добавить новые способы авторизации. И заодно опять же перейти на SwiftUI. Кстати, у нас довольно объёмный проект, и я думала мы будем очень долго переходить с UIKit, но прошло пол года, а уже треть почти переделана, без особых напрягов.

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

AppFiles - Mobile Development

20 Jan, 06:01


Go в GUI, я создал

Идея сделать игру под Android на Go была неоднозначной, но интересной. Я легко мог представить Go не только в привычной для него сервисной нише, но и в прикладной — его кросс-платформенность и близость к системному уровню в сочетании с простотой пришлись бы там очень кстати. И вот мы здесь — игру мечты я пока не создал, но пару игр попроще сделать удалось.

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

AppFiles - Mobile Development

20 Jan, 05:35


Android Interview Questions and Answers - репозиторий с вопросами для Android-собеседований. Материал систематизирован, охватывает большинство тем, которые чаще всего встречаются на собеседованиях. Подойдет как новичкам, так и опытным разработчикам для закрепления знаний. Внутри:

• Основы Android: Activity, Fragment, жизненные циклы.
• Архитектура приложений: MVVM, MVP, Clean Architecture.
• Работа с данными: Room, SQLite, SharedPreferences.
• Асинхронность: Coroutines, RxJava, WorkManager.
• Лучшие практики: Советы по кодингу, оптимизации производительности и безопасности.

Android Interview Questions на GitHub: https://github.com/amitshekhariitbhu/android-interview-questions
Платформа: Android
⭐️: 11.6K

AppFiles - Mobile Development

17 Jan, 12:57


5 лет React Native в Shopify

Shopify поделились своим 5-летним опытом работы с React Native. В статье подробно рассказывается:

Почему компания выбрала RN для своих приложений.
Какие вызовы пришлось преодолеть.
Как они оптимизировали производительность и работали над улучшением UX.
Какие инструменты и подходы разработали для масштабирования проектов.

💡 Это отличный кейс для всех, кто использует или планирует использовать React Native. Особенно полезно для тех, кто строит большие продукты и ищет способы сохранить баланс между кросс-платформенностью и качеством приложений.

Статья: https://shopify.engineering/five-years-of-react-native-at-shopify
Платформа: кроссплатформа

AppFiles - Mobile Development

17 Jan, 08:38


Экспорт и импорт File Templates в IDE от Intellij

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

В заключительной части разберем, как можно экспортировать и импортировать File Templates в Intellij-IDE, а также подведем общие итоги по циклу статей.

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

AppFiles - Mobile Development

17 Jan, 08:29


Видео и подкасты за неделю на @AppFiles

(iOS Ru) SwiftUI: алхимия приложений — превращаем идеив реальность
(iOS Ru) Тактики ускорения билда: матиз, кобальт, камри 3.5
(iOS Ru) SwiftUI: Custom TabBar + animation
(iOS En) Apple Engineer Shows How To Build a SwiftUI Step Counter
(iOS En) Complete Document Scanner App
(iOS En) Working with C and C++ in Apple environment
(And Ru) Переезжаем с фрагментов на (De)compose
(And Ru) Как устроена разработка в Яндекс.Клавиатуре
(And Ru) Android + AI. Решаем задачи с умом
(And En) 5 Things You MUST Do Before Deploying Your App to Google Play (or you'll regret it)
(And En) The Beginner to Industry-Ready Roadmap For Android & KMP Development In 2025
(And En) We fixed an inconsistency in Kotlin (non-local break & continue)
(And En) What are all of those Kotlin function types for?
(Dev Ru) Основы DevEx: ищем, куда исчезает время программистов
(Dev Ru) Заменяем облака домашним сервером — Selfhosting, homelab

AppFiles - Mobile Development

17 Jan, 07:05


sRouting - легкий и гибкий навигационный фреймворк для SwiftUI. Фреймворк предоставляет собственный механизм навигации, который упрощает перемещение между экранами.

sRouting на GitHub: https://github.com/ThangKM/sRouting
Платформа: iOS
⭐️: 11

AppFiles - Mobile Development

16 Jan, 13:23


Стековая и кучная память в Kotlin

Задумывались ли вы когда-нибудь над тем, как работает распределение памяти в Kotlin? Предлагаю погрузиться в волшебный мир стековой и кучной памяти, используя забавные аналогии из повседневной жизни. Приготовьтесь к увлекательному путешествию!

Статья: https://nuancesprog.ru/p/22872/
Платформа: Android

AppFiles - Mobile Development

16 Jan, 08:54


Малоизвестные представления SwiftUI

Здесь я пытаюсь показать некоторые представления, которые в целом редко используются (если вы глубоко погружены в SwiftUI, то, возможно, уже знаете их):

• AnyLayout
• ViewThatFits
• ContentUnavailableView

Статья: https://apptractor.ru/info/articles/maloizvestnye-predstavleniya-swiftui.html
Платформа: iOS

AppFiles - Mobile Development

28 Dec, 06:43


Giffy - клиентское приложение для Giphy, созданное с использованием таких интересных технологий для iOS, как TCA (The Composable Architecture by Point-Free), Swinject, SwiftUI, Чистая архитектура с подходом Generic Protocol, модуляризация SPM и XcodeGen.

Giffy на GitHub: https://github.com/uwaisalqadri/Giffy
Платформа: iOS
⭐️: 25

AppFiles - Mobile Development

27 Dec, 09:01


Видео и подкасты за неделю на @AppFiles

(iOS Ru) Мок-интервью по мобильному системному дизайну (все собеседования)
(iOS Ru) Задачи с собеседования: LRU Cache — leetcode
(iOS En) Interactive Tab Bar - SwiftUI
(iOS En) iPhone Apps 101 - Project Based SwiftUI App Development
(iOS En) Multiple Image Viewer - AsyncImage - SwiftUI
(And Ru) Куда идёт мобильная разработка: подводим итоги 2024 года
(And En) How to Create a FAB Explode Transition Animation in Jetpack Compose
(And En) I've Used Jetpack Compose For 4 Years - Here's the Good and the Bad
(Crs Ru) PWA vs Native App. Как и зачем в Альфа-Бизнесе создавали свой MobileWeb
(Dev Ru) Проектирование и запуск разработки
(Dev Ru) Что не так с мобильными сервисами в Android и iOS
(Dev Ru) Mobile App Performance: метрики производительности
(Dev Ru) Релизный процесс приложений Ozon
(Dev Ru) Effect oriented programming — Системы эффектов в языках программирования
(Dev En) How Notion Builds Their iOS and Android Apps
(Mrk En) I Spent $400 on Ads: How Many App Installs Did I Get?

#ios #android #mobile #video

AppFiles - Mobile Development

27 Dec, 07:47


Оптимизация под контролем: инструменты и метрики для Аndroid-приложений

Для пользователей важно, чтобы приложение открывалось быстро и работало отзывчиво. Чем быстрее оно загружается, плавнее работает, тем больше вероятность, что человек вернётся и продолжит им пользоваться. С другой стороны, постоянное добавление новой функциональности может негативно повлиять на скорость старта и отзывчивость приложения, что, вероятно, сподвигнет пользователя поискать более быстрый аналог.

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

AppFiles - Mobile Development

27 Dec, 07:22


Sequence Showcase - создание последовательностей с подсветкой разных элементов на экране в определенном порядке. Полезно для онбординга или релиза новых фич.

Sequence Showcase на GitHub: https://github.com/jocoand/compose-showcase
Платформа: Android
⭐️: 13

AppFiles - Mobile Development

26 Dec, 08:17


Простая оптимизация LazyColumn в одну строчку кода

Если вы работаете со списками в Jetpack Compose, вы наверняка использовали LazyColumn. Это фантастический инструмент для эффективного отображения больших списков данных с минимальными затратами производительности. Но знаете ли вы, что существует простой трюк, который может значительно повысить производительность вашего LazyColumn?

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

Статья: https://apptractor.ru/info/articles/prostaya-optimizatsiya-lazycolumn-v-odnu-strochku-koda.html
Платформа: Android

AppFiles - Mobile Development

26 Dec, 08:01


Почему нулевой технический долг - это миф (и, возможно, красный флаг)

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

Статья: https://apptractor.ru/info/articles/pochemu-nulevoy-tehnicheskiy-dolg-eto-mif-i-vozmozhno-krasnyy-flag.html
Платформа: разработка

AppFiles - Mobile Development

26 Dec, 06:58


Core - простая и легкая однонаправленная архитектура на Swift, которая не зависит от других фреймворков, это фреймворк для создания реактивных приложений, вдохновленный ReactorKit, Redux. Core является независимым, что означает, что вы можете импортировать все, что захотите, например Combine, RxSwift. Это очень легкая, простая и безумно быстрая архитектура по сравнению с аналогичными решениями.

Хотя CoreEngine предоставляет традиционные реактивные подходы и паттерны управления состояниями, автор настоятельно рекомендует использовать AsyncCore для современной, асинхронной и более эффективной работы с состояниями. AsyncCore использует структурированный параллелизм Swift с помощью async/await, обеспечивая чистый и интуитивно понятный способ управления обновлениями состояния, обработки побочных эффектов и обеспечения безопасности потоков с помощью модели Actor в Swift.

Core на GitHub: https://github.com/sobabear/CoreEngine
Платформа: iOS
⭐️: 50

AppFiles - Mobile Development

26 Dec, 06:36


AnimeTV - это приложение для Android TV для просмотра любимых аниме-сериалов и фильмов на вашем телевизоре. Приложение также работает на Android устройствах без телевизора (телефоны и планшеты) с некоторыми ограничениями пользовательского интерфейса. В качестве источников используются сторонние сайты, так что все может прекратить работать в один прекрасный момент.

AnimeTV на GitHub: https://github.com/amarullz/AnimeTV
Платформа: Android
⭐️: 767

AppFiles - Mobile Development

25 Dec, 10:29


Как мы работаем с производительностью Threads для iOS

Когда в 2023 году **** запустила Threads, оно стало самым быстрорастущим приложением в истории, набрав 100 миллионов пользователей всего за пять дней. Сейчас число ежемесячных международных пользователей приложения превысило 300 миллионов, а команда разработчиков расширилась от небольшой группы инженеров-отщепенцев до организации с более чем сотней соавторов.

Если оглянуться на то, каким было приложение Threads для iOS год назад, то многое изменилось: мы вышли в Европу, интегрировались с Fediverse, запустили публичный API, разработали множество новых способов для людей поделиться тем, что происходит в их мире, и внедрили новые методы для поиска и чтения лучшего контента. Мы даже отпраздновали наш первый день рождения с праздничными шляпами и иконками приложения!

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

Статья: https://apptractor.ru/info/articles/kak-my-rabotaem-s-proizvoditelnostyu-threads-dlya-ios.html
Платформа: iOS

AppFiles - Mobile Development

25 Dec, 07:29


SwiftUI: всё, что вам нужно знать о модификаторе containerRelativeFrame (и немного больше)

На WWDC 2023 компания Apple представила модификатор представления containerRelativeFrame для SwiftUI. Этот модификатор упрощает некоторые операции размещения элементов на экране, которые ранее было сложно выполнить обычными методами. В этой статье мы подробно рассмотрим модификатор containerRelativeFrame, его определение, правила компоновки, примеры использования и важные соображения. Чтобы еще больше расширить наше понимание его функциональных возможностей, в конце статьи мы также создадим обратно совместимую реплику для старых версий SwiftUI.

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

AppFiles - Mobile Development

25 Dec, 06:58


Orbit MVI с сахаром: вкусный фреймворк для однородной архитектуры

Пойдем, расскажу тебе про фреймворк OrbitMVI. Узнала я о нем от своего лида: он делегировал мне задачу заменить наш самодельный Redux на Orbit, чтобы в нашем приложении архитектура стала удобнее и однороднее.

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

AppFiles - Mobile Development

25 Dec, 06:57


📱 Открытый урок: Навигация на SwiftUI без UIKit

Хотите создавать приложения с нативной навигацией и современными подходами? Узнайте, как это сделать на бесплатном вебинаре! 🚀

Что вас ждёт на уроке:

- Разберём навигацию в проектах на SwiftUI.
- Научимся писать приложение с нативной навигацией на SwiftUI с поддержкой iOS 14, используя OpenSource-решения и авторские разработки.
- Изучим интеграцию диплинков в проект в декларативном стиле.

👨‍💻 Кому будет полезно:
Разработчикам с базовым или продвинутым опытом работы со SwiftUI.
Тем, кто хочет создавать нативные приложения с современными подходами.
Тем, кто работает с iOS 14+ и ищет универсальные решения для проектов.

⭐️ Спикер: Сергей Балалаев — опытный разработчик iOS-приложений и эксперт по SwiftUI.

Когда: 26 декабря в 20:00 (мск).

🎓 После вебинара вы сможете:
- Реализовывать навигацию на чистом SwiftUI.
- Интегрировать поддержку для iOS ниже 16 с помощью современных решений.
- Создавать профессиональные приложения с нативной навигацией, соответствующей современным стандартам.

👉 Участвуйте бесплатно, зарегистрируйтесь по ссылке: https://otus.pw/6nBn/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

AppFiles - Mobile Development

25 Dec, 05:58


App Sizer - это инструмент от Grab, предназначенный для анализа загружаемого размера приложения для Android. Предоставляя подробную информацию о составе бинарного файла приложения, App Sizer помогает разработчикам выявить области для уменьшения размера, что в конечном итоге повышает показатели привлечения и удержания пользователей.

App Sizer предлагает всесторонний анализ, включая:

• Общий размер загрузки приложений
• Детальная информация по размеру
• Размер по командам
• Размер по модулям
• Размер библиотек
• Список больших файлов

Есть плагин для Gradle и CLI утилита. Подробнее в статье.

App Sizer на GitHub: https://github.com/grab/App-Sizer
Платформа: Android
⭐️: 145

AppFiles - Mobile Development

24 Dec, 15:32


ИИ зрение на Android: CameraX ImageAnalysis + MediaPipe + Compose

На прошлой неделе мы рассмотрели основы библиотеки CameraX. Это заложило основу для чего-то действительно интересного... ИИ-зрения! Теперь мы можем использовать ваше Android-устройство для интерпретации и понимания окружающего нас физического мира.

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

Статья: https://proandroiddev.com/ai-vision-on-android-camerax-imageanalysis-mediapipe-compose-db6afb738248
Платформа: Android

AppFiles - Mobile Development

24 Dec, 06:49


Рефлексия замедляет работу вашего кода?

Когда я был начинающим программистом, мне всегда говорили, что отражение (рефлексия, reflection) - это медленно и его следует избегать, но я не мог наблюдать эту медлительность в реальных измерениях. Поэтому я решил сделать несколько бенчмарков, чтобы посмотреть, как отражение работает на самом деле, и, как оказалось, оно медленное, только если сравнивать его с обычными вызовами, которые чрезвычайно быстры. Если же сравнивать его с другими популярными операциями, такими как логирование или синхронизация, то оно не такое уж и медленнное.

Статья: https://kt.academy/article/benchmark-reflection
Платформа
: Kotlin/Android

AppFiles - Mobile Development

24 Dec, 06:44


Секретная акция, или Как выйти за пределы UICollectionView

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

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

AppFiles - Mobile Development

24 Dec, 06:43


Управление Xcode симулятором из симулятора

А зачем нам это вообще может понадобиться, управлять симулятором из симулятора ? Я придумал теоретический список, где нам это может пригодиться:

1. Управление симулятором во время тестов
2. Симулировать app линк во время UI теста
3. Послать пуш во время UI теста
4. Интеграция с другими приложениями

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

AppFiles - Mobile Development

24 Dec, 05:22


The SwiftUI Christmas Tree - новогодняя елка с анимацией на чистом SwiftUI. 31 декабря обещают добавить фейерверков.

The SwiftUI Christmas Tree на GitHub: https://github.com/GetStream/SwiftUIChristmasTree
Платформа: iOS
⭐️: 50

AppFiles - Mobile Development

23 Dec, 08:47


Назад в будущее: превью Compose для представлений на основе XML

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

Так что если некоторые части вашего приложения все еще полагаются на представления на основе XML, вы можете упустить всю мощь предварительных просмотров Compose... или нет?

Ведь Compose Preview действительно можно использовать с XML-представлениями!

Статья: https://apptractor.ru/info/articles/nazad-v-buduschee-prevyu-compose-dlya-predstavleniy-na-osnove-xml.html
Платформа: Android

AppFiles - Mobile Development

23 Dec, 07:41


Пишите код быстрее и оставляйте больше времени на творчество вместе с AI-ассистентом разработчика

Устали от рутины? Отдайте ее AI!

Заходите на платформу GitVerse и пишите код вместе с AI-ассистентом GigaCode. Он поддерживает более 35 языков, умеет анализировать контекст, дописывать строки и функции в автоматическом и ручном режимах, а еще — писать код по комментариям и делать рефакторинг с помощью коротких команд. Всего за пару минут AI-помощник может оценить проект и трудозатраты на его создание.

Внутри AI есть функция CodeChat — с ней можно оптимизировать или отрефакторить имеющийся код, сгенерировать тесты и документацию, а также объяснить фрагмент кода. Задавать вопросы можно и по всему открытому файлу, и по конкретному фрагменту — просто выделите его в редакторе и сформулируйте запрос к CodeChat.

Хорошие новости — недавно GigaCode обновился и стал еще лучше справляться с задачами разработки: теперь наиболее вероятные продолжения кода будут генерироваться с учётом контекста всего проекта. Не забудьте обновить плагин GigaCode :)

Зарегистрироваться на GitVerse.

AppFiles - Mobile Development

23 Dec, 07:41


Как в Duolingo ускорили сборки для Android и iOS на 50%

Представьте себе, что вы ждете каждой проверки кода до и после слияния более 50 минут. Звучит мучительно, верно? А теперь представьте, что вы проходите через эту каторгу 200 с лишним раз в неделю. Такова была наша реальность, пока мы, команда Test and Release Infrastructure (TRI), не решили, что хватит.

Переходим к сегодняшнему дню. Эти 50-минутные ожидания исчезли. Время сборки Android и iOS теперь составляет менее 20 минут. Вот подробная информация о том, как мы добились этого волшебства — да, это потребовало веселых экспериментов и немного пота (но, к счастью, без слез).

Статья: https://apptractor.ru/info/articles/kak-my-uskorili-sborki-dlya-android-i-ios-na-50.html
Платформа: разработка

AppFiles - Mobile Development

23 Dec, 06:52


Создание Custom Layout в Jetpack Compose

Сегодня я расскажу о том, как создавать Custom Layout в Jetpack Compose, а также мы решим одну связанную с данной темой практическую задачку. Создание Custom Layout может показаться чем-то сложным на первый взгляд, но я постараюсь все объяснить максимально понятно и подробно. Итак, приступим!

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

AppFiles - Mobile Development

23 Dec, 06:42


AniVu - универсальное приложение для подкастов на Android, позволяющее просматривать RSS и воспроизводить медиафайлы. Внутри MVI, Jetpack Compose, корутины и Flow, Material You, ViewModel, Room, Paging 3, Hilt и пр.

AniVu на GitHub: https://github.com/SkyD666/AniVu
Платформа: Android
⭐️: 855

AppFiles - Mobile Development

20 Dec, 12:49


Apple Watch на Android

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

Единственная проблема заключается в том, что я решил больше не давать денег Apple несколько лет назад, после того как мне надоели их огороженный сад, злоупотребление монополией, вопиющий маркетинг в стиле aspiration porn, препятствование ремонту и т.д.

Статья: https://abishekmuthian.com/apple-watch-with-android/
Платформа: Android

AppFiles - Mobile Development

20 Dec, 09:25


Видео и подкасты за неделю на @AppFiles

(iOS En) Avoid Crashes in Swift: How Overflow Operators Work
(iOS En) Stacked Cards - Looping Cards - SwiftUI
(iOS En) First Look at Xcode 16.2: New Swift Testing Feature
(iOS En) SwiftUI Searchable Modifier: Build a Search Feature in 15 Minutes
(And Ru) Публикация Android и KMP библиотеки в Maven Central
(And Ru) Запускаем мобильные UI-тесты эффективно
(And En) Now in Android: 112 - Android 16 Developer Preview 1, Passkeys Spotlight Week, and more
(And En) Designing apps for Android XR
(And En) Adapting Android apps for XR
(And En) Build immersive apps & experiences with OpenXR & Unity
(And En) How to Draw On a Canvas In Jetpack Compose
(And En) Multi-dollar String Interpolation in Kotlin
(Crs Ru) Flutter Dev Podcast #49: многомодульность на Flutter
(Crs En) Remind users to Rate your App - Compose Multiplatform
(Dev Ru) Compose и SwiftUI: найди 10 отличий
(Dev Ru) Как мы писали проигрыватель с нуля под каждую платформу
(Dev Ru) Как ВКонтакте измеряет перфоманс приложений
(Dev Ru) Очевидные и неочевидные дыры безопасности в мобильной разработке
(Dev Ru) Страх и ненависть в мобильных автотестах. Строим своё облачное решение
(Dev Ru) Лучший UI фреймворк для разработки на Java — JavaFx, Swing, UI разработка

#ios #android #mobile #video

AppFiles - Mobile Development

20 Dec, 07:56


Как заставить крутиться таймер – инструкция для iOS-разработчиков

Кажется, что таймер – простая для реализации вещь. Но если добавить сюда сжатые сроки, код (рефакторинг которого часто откладывается по разным причинам), пласты бизнес-логики и UI-элементы – получим нетривиальную задачу.

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

AppFiles - Mobile Development

20 Dec, 06:44


Ifrit - это библиотека нечеткого (fuzzy) поиска, написанная на чистом Swift

Алгоритм нечеткого поиска предназначен для поиска приблизительных совпадений по заданному поисковому запросу. Допустим, у вас есть список товаров, и пользователь ищет «Czy Swetr». Точное совпадение ничего не даст, но нечеткий поиск найдет «Cozy Sweater». Если вам нужно точное совпадение - используйте стандартную функцию .filter { } вместо этой библиотеки.

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

• Суперлегкий
• Никаких зависимостей
• Поддерживает MacOS, iOS, visionOS, watchOS, twOS, Linux
• Асинхронный поиск (async/await + callbacks)
• Поддерживает выделения текста (AttributedString)
• Покрыт тестами

Ifrit на GitHub: https://github.com/ukushu/Ifrit
Платформа: iOS
⭐️: 33

AppFiles - Mobile Development

19 Dec, 08:42


Ловушки и меры борьбы с аномальными вызовами onAppear в SwiftUI

onAppear - чрезвычайно важный метод жизненного цикла в SwiftUI, используемый для внедрения ключевой логики при отображении представления. Поскольку экземпляры представлений могут создаваться и перестраиваться часто, разработчики часто предпочитают подготавливать данные и выполнять операции инициализации в этом методе. Теоретически, вызов этих методов жизненного цикла должен быть предсказуемым и последовательным. Однако в некоторых конкретных сценариях onAppear может вызываться неожиданно и без необходимости. Это может не только привести к снижению производительности, но и вызвать неконтролируемые изменения в состоянии приложения. В этой статье мы раскроем эту легко упускаемую из виду ловушку поведения SwiftUI и предложим временные меры борьбы с ней.

Статья: https://fatbobman.com/en/posts/traps-and-countermeasures-for-abnormal-onappear-calls-in-swiftui/
Платформа: iOS

AppFiles - Mobile Development

19 Dec, 08:37


Понимаем аннотации Hilt за 5 минут

Hilt - это библиотека инъекции зависимостей для Android, которая позволяет сократить количество ручных инъекций зависимостей в вашем проекте. Она построена на основе хорошо зарекомендовавшей себя библиотеки Dagger2.

Аннотации Hilt - это специальные слова или фразы, которые используются для того, чтобы помочь библиотеке Hilt правильно работать в Android-проекте. В этом руководстве мы расскажем о некоторых основных аннотациях, с которыми вы столкнетесь в любом проекте с инъекцией Hilt, а также приведем примеры кода.

Статья: https://proandroiddev.com/5-minute-guide-on-understanding-hilt-annotations-50fe33b1919b
Платформа: Android

AppFiles - Mobile Development

05 Dec, 08:36


Выделение текста в Compose

Недавно я наткнулся на несколько ИИ-приложений, переводящих текст в речь, и заметил, что у них есть одна общая особенность в пользовательском интерфейсе - выделение в тексте проговариваемого слова. Мне стало любопытно, как это можно сделать в композите Text, так что давайте разбираться!

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

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

AppFiles - Mobile Development

05 Dec, 07:50


Как я уменьшил размер банковского приложения для iOS на 50%

TPBank - это мое вьетнамское банковское приложение, которым я пользуюсь каждый день уже 6 лет. Недавно я впервые посмотрел на размер приложения и был шокирован.

650 МБ. В 2 раза больше, чем средний размер банковского приложения в стране.

Мне стало любопытно, и я решил разобраться в этом.

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

Статья: https://apptractor.ru/info/articles/kak-ya-umenshil-razmer-bankovskogo-prilozheniya-dlya-ios-na-50.html
Платформа: iOS

AppFiles - Mobile Development

05 Dec, 07:03


Вопперы и табы: как мы сделали меню для Burger King

В прошлом году у нашей Android-команды на проекте Burger King был мощный вызов: сделать редизайн главного меню. Задача была непростая по двум причинам.
Первая — легаси код. Вторая — А/В тестирование.

И результат — старое меню и его логику нужно сохранить. Мы решили написать меню с нуля. Так было бы проще организовать А/В тест и потом избавиться от старого меню (не волнуйтесь, при создании нового меню ни один воппер не пострадал).

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

AppFiles - Mobile Development

05 Dec, 07:01


Cursor AI в iOS-разработке. Приложение «Фото с Flickr.com»

Мне хотелось посмотреть, как работает ИИ Редактор кода Cursor AI на примере создания iOS приложения с выборкой данных с ресурса, который не требует API key и платной подписки. И этим ресурсом оказались публичные фотографии с Flickr.com.

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

AppFiles - Mobile Development

05 Dec, 06:29


Aerial Views - скринсейвер для устройств Android TV, включая Nvidia Shield, Fire TV и Chromecast с Google TV. Вдохновлен скринсейвером Apple TV. Поддерживает 4K Dolby Vision (HDR) видео, содержит более 150 видео от Apple, Jetson Creative и пр., проигрывает видео из разных локальных источников, есть защита от выгорания QD/OLED и пр.

Aerial Views на GitHub: https://github.com/theothernt/AerialViews
Платформа: Android
⭐️: 524

AppFiles - Mobile Development

04 Dec, 08:52


От Kotlin до машинного кода

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

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

AppFiles - Mobile Development

04 Dec, 08:51


Удобная навигация в SwiftUI для iOS 16 и выше

Со временем я перепробовал множество методов навигации, но этот оказался самым удачным и приятным для меня в реализации. Этот пример хорошо масштабируется как по горизонтали, так и по вертикали и отлично подходит для покрытия UI и Unit-тестами.

Статья: https://apptractor.ru/info/articles/udobnaya-navigatsiya-v-swiftui-dlya-ios-16-i-vyshe.html
Платформа: iOS

AppFiles - Mobile Development

04 Dec, 08:08


Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 2

В первой части статьи я рассказал о двух мини-играх, которые мы с командой разработали для Apple Vision Pro для хакатона Ludum Dare, и особенностях работы с дополненной реальностью. В этой – поделюсь опытом индивидуальной разработки для гарнитуры, общими впечатлениями о работе с ней и несколькими идеями разработки под неё.

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

AppFiles - Mobile Development

04 Dec, 08:05


Настройка Sora Editor

В статье хочу показать как настроить SoraEditor от Resomoe. А конкретно то цветовую схему, язык и простые сниппеты. Так как я не нашел статей по этой теме, а также оффициальная документация в некоторых местах противоречива и не доделана, я решил написать данную статью. Весь код в статье будет на Java.

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

AppFiles - Mobile Development

04 Dec, 05:24


MotionMachine предоставляет модульную, мощную и универсальную платформу для манипулирования значениями, будь то анимация UI элементов или интерполяция значений свойств в ваших собственных классах. Она предлагает разумную функциональность по умолчанию, которая абстрагирует большую часть сложной работы, позволяя вам сосредоточиться на работе. Несмотря на то, что MotionMachine не зависит от типов, он поддерживает большинство основных типов UIKit и предоставляет “синтаксический сахар” для удобной работы с ними. Но его также легко модифицировать под свои нужды, будь то пользовательские классы движений, поддержка пользовательских типов значений или новые уравнения плавности.

• Анимационный движок, созданный с нуля (не привязан к Core Animation).
• Анимируйте системные свойства, UIView или любые общие классы, используя множество уравнений плавности.
• Предоставляет статические и основанные на физике классы движения для изменения нескольких значений свойств, и оба поддерживают аддитивную анимацию.
• Предоставляет статические и основанные на физике классы движения, которые могут анимировать CGPoint вдоль CGPath, даже часть пути.
• Все классы движений могут быть сгруппированы, последовательны и вложены друг в друга в любом порядке, а реверсивные и повторяющиеся действия могут применяться на любом уровне.
• Мощная модульность - большинство аспектов могут быть настроены или полностью заменены в соответствии с вашими конкретными потребностями.
• Полностью протестирован
• Полностью документирован

MotionMachine на GitHub: https://github.com/poetmountain/MotionMachine
Платформа: iOS
⭐️: 380

AppFiles - Mobile Development

03 Dec, 08:00


Изогнутое нижнее меню в Jetpack Compose

Сегодня я покажу вам, как создать изогнутое нижнее меню в Jetpack Compose.

Статья: https://apptractor.ru/info/articles/izognutoe-nizhnee-menyu-v-jetpack-compose.html
Платформа: Android

AppFiles - Mobile Development

03 Dec, 05:30


С появлением Jetpack Compose разработчики Android могут использовать всю мощь Kotlin для создания компонентов пользовательского интерфейса, отказавшись от традиционных XML-макетов. Однако интеграция векторных активов, таких как иконки, часто все еще зависит от использования ресурсов Android Vector Drawables (AVD/XML).

SVG to Compose - набор инструментов для преобразования файлов SVG или Android Vector Drawable (AVD/XML) в иконки Jetpack Compose. Этот проект предоставляет утилиту командной строки для ручного преобразования и плагин Gradle для автоматизации преобразования в процессе сборки.

Этот проект призван упростить интеграцию векторных ресурсов в приложения Compose, предоставляя инструменты, которые конвертируют файлы SVG или AVD непосредственно в объекты Compose ImageVector, следуя тому же подходу, который используется для Material Icons от Google.

SVG to Compose на GitHub: https://github.com/rafaeltonholo/svg-to-compose
Платформа: Android
⭐️: 103

AppFiles - Mobile Development

02 Dec, 06:48


Анимируем представления UIKit с помощью анимации SwiftUI

В iOS 18 появилась новая мощная функция: возможность анимировать представления UIKit с помощью типов анимации SwiftUI. Это еще больше сокращает разрыв между двумя фреймворками, позволяя нам привнести гибкость и выразительность системы анимации SwiftUI в проекты на базе UIKit.

Статья: https://apptractor.ru/info/articles/animiruem-predstavleniya-uikit-s-pomoschyu-animatsii-swiftui.html
Платформа: iOS

AppFiles - Mobile Development

02 Dec, 05:49


Всё о новых штрафах за утечки данных. Сколько светит и как защитить своё приложение

В 2023 году Роскомнадзор выявил 168 утечек персональных данных, затронувших 300 млн записей о клиентах Сбера, Спортмастера, Здравсити, МТС Банка и других крупных компаний. Суды рассмотрели 87 дел и назначили штрафы на общую сумму почти в 5 млн рублей. Таких «щадящих» наказаний за нарушения в работе с данными больше не будет, ведь на этой неделе Госдума ужесточила ответственность за подобные инциденты. Суть изменений в том, что для компаний штрафы вырастут до 3% от выручки или до 500 миллионов рублей.

По оценке нововведения затронут каждую третью компанию в стране. Поэтому сегодня совместно с лидом Android-разработки Surf Алексеем Рябковым попробуем рассказать, что владельцам приложений стоит сделать и проверить, чтобы обезопасить себя и свой продукт от возможных утечек.

Статья: https://habr.com/ru/companies/surfstudio/articles/862048/
Платформа: разработка

AppFiles - Mobile Development

02 Dec, 05:30


ATProtoKit - это простая в понимании API-библиотека, которая использует протокол AT с безопасностью типов и простотой использования, которые вы привыкли ожидать от языка программирования Swift. Независимо от того, создаете ли вы бота, серверное приложение или просто еще один пользовательский клиент Bluesky, этот проект, надеюсь, поможет вам ускорить разработку.

AT протокол — это открытый децентрализованный протокол, созданный для социальных сетей. Его цель — предоставить пользователям больше контроля над их данными, улучшить совместимость между платформами и обеспечить независимость от централизованных сервисов. Bluesky разрабатывается с акцентом на открытость и прозрачность, а AT Protocol (ранее известный как ADX) лежит в его основе.

ATProtoKit на GitHub: https://github.com/MasterJ93/ATProtoKit
Платформа: iOS
⭐️: 84

AppFiles - Mobile Development

29 Nov, 08:40


Видео и подкасты за неделю на @AppFiles

(iOS Ru) Как оптимизировали Яндекс Go для отображения 50+ заказов
(iOS Ru) Кодогенерация в iOS-разработке
(iOS En) Interactive Navigation Gesture | SwiftUI
(iOS En) Swift Testing with Test Plans and Floating Point Equality
(iOS En) Building a Reading List App
(iOS En) Create an Animated Mesh Gradient in SwiftUI
(And Ru) Плагины — это просто
(And Ru) Как Jetpack ViewModel переживает поворот экрана
(And En) Clipping and masking | Jetpack Compose Tips
(And En) Rules about performance tools - Android Developers Backstage
(And En) How to Observe the REAL Internet Connectivity - Android Studio Kotlin Tutorial
(And En) The Ultimate Gradle Kotlin Beginner's Crash Course For 2025
(Crs Ru) Профилирование Flutter-приложений
(Crs Ru) Понимание PWA: выбираем между Flutter и Web, и что ожидают заказчики
(Crs En) Let's Build a Game with Jetpack Compose! (Kotlin Multiplatform)
(Dev Ru) Ускорение разработки продуктов с помощью горизонтальных решений
(Dev Ru) Перестаньте использовать Copilot. Вред ИИ для разработчиков
(Dev Ru) Топ-5 страхов и проблем ИТ-индустрии — монополизация, ИИ, сокращения, выгорания
(Dev En) Event-Driven Architecture Course – NextJS, Clerk, Webhooks

#ios #android #mobile #video

AppFiles - Mobile Development

29 Nov, 06:45


Material Photo Widget настолько прост, насколько это возможно: виджет на главный экран для отображения фото или коллекции фото. Это бесплатная, без рекламы и с открытым исходным кодом альтернатива для тех, кто хочет настроить главный экран с помощью любимых фотографий.

Помимо своего функционала, Material Photo Widget - это “игровая площадка” для изучения и освоения современной Android-разработки. В нем чистый и красивый пользовательский интерфейс, созданный с помощью Jetpack Compose и рекомендаций Google по материальному дизайну, поддержка тематического оформления Material You, Android Jetpack, включая Jetpack Compose, виджеты главного экрана.

Material Photo Widget на GitHub: https://github.com/fibelatti/photo-widget
Платформа: Android
⭐️: 127

AppFiles - Mobile Development

28 Nov, 08:05


Сравнение Koin и Dagger Hilt в современной Android-разработке

При выборе фреймворка для инъекции зависимостей для разработки на Kotlin для Android производительность часто является ключевым фактором. В этой статье рассматривается производительность Koin в его последней версии (4.0.1-Beta1) и проводится сравнение с Dagger Hilt (2.52). Вместо того чтобы полагаться на упрощенные бенчмарки или ограниченные сценарии выполнения кода, мы ориентируемся на разработчиков: понимание производительности в реальном мире, при повседневном использовании. Кроме того, эта статья призвана успокоить тех, кто, возможно, колеблется в выборе Koin из-за проблем с производительностью.

Статья: https://apptractor.ru/info/articles/sravnenie-koin-i-dagger-hilt-v-sovremennoy-android-razrabotke.html
Платформа: Android

AppFiles - Mobile Development

28 Nov, 07:21


BDUI — это спасение от релизов: «Какие ваши доказательства?»

Если вы видели no-code-проекты, где можно просто блоками перетаскивать интерфейс, то отчасти вы уже знакомы с BDUI-подходом, ведь они по сути и построены на BDUI. Суть в том, что мы делегируем наполнение интерфейса серверу. Фронтенд не отвечает за то, что будет нарисовано, а только определяет список допустимых компонент, которые сервер может показать пользователю. Но в вебе BDUI не очень популярен.

А зря. Ведь в первую очередь он нужен как спасение от релизов.

Но, если быть точнее, он нужен как средство для снижения количества релизов, затрат на разработку и выкатку фичей. Давайте это и обсудим, а также как работает BDUI, разберём примеры, реализованную фичу, которую мы недавно релизили, посмотрим на другие варианты реализации и подведём итоги.

Статья: https://habr.com/ru/companies/alfa/articles/861384/
Платформа: разработка

AppFiles - Mobile Development

28 Nov, 06:01


SwiftfulFirestore - удобные функции для использования Firebase Firestore с Swift Concurrency.

SwiftfulFirestore на GitHub: https://github.com/SwiftfulThinking/SwiftfulFirestore
Платформа: iOS
⭐️: 20

AppFiles - Mobile Development

26 Nov, 05:39


LazyPager for SwiftUI - плавный, с ленивой загрузкой, панорамированием, масштабированием и возможностью отказа от жестов просмотрщик для SwiftUI.

Цель этой библиотеки - предоставить простой интерфейс SwiftUI для плавного и бесшовного просмотра контента. В отличие от других пейджеров для SwiftUI - этот построен поверх UIKit API, раскрывая возможности, которые еще не доступны в SwiftUI.

Фичи: ленивая загрузка, показ любого контента, не только изображений, горизонтальная и вертикальная прокрутка, увеличение и уменьшение, двойной тап для зума, работа с .ignoresSafeArea() для действительно полноэкранного просмотра, собятия нажатий обрабатываются внутри, настройки.

LazyPager for SwiftUI на GitHub: https://github.com/gh123man/SwiftUI-LazyPager
Платформа: iOS
⭐️: 169

AppFiles - Mobile Development

25 Nov, 08:44


Используйте транзакции вместо сохранения в SwiftData и Core Data

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

Статья: https://apptractor.ru/info/articles/ispolzuyte-tranzaktsiy-vmesto-sohraneniya-v-swiftdata-i-core-data.html
Платформа: iOS

AppFiles - Mobile Development

25 Nov, 06:53


Работа с CoordinatorLayout: шапочный разбор

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

Реализации фичей очень похожи, поэтому в своем рассказе я остановлюсь на второй версии. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой. Да, тема не нова, но, тем не менее, она не теряет своей актуальности! Итак, обо всем по порядку.

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

AppFiles - Mobile Development

25 Nov, 06:52


Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик

Я поделюсь, как пофиксить отрисовку. Вам понадобятся знания основ Swift, CPU, GPU (про них поговорим) и немного юмора. Пройдёмся по примерам багов отображения на iPhone 16 Pro.

Примеры будем смотреть на картинках с красным мотоциклом. Красный байк был мечтой айосеров-старожилов в Альфе и даже стал локальным мемом. На собеседованиях мы часто спрашиваем, есть ли у кандидата красный мотоцикл (если да — это идеальный мэтч).

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

AppFiles - Mobile Development

25 Nov, 05:52


Akkurate - библиотека валидации, использующая выразительные возможности Kotlin. Не нужно 30+ аннотаций или сложных ограничений, пишите код проверки на Kotlin с помощью красивого декларативного API.
Разработанный с нуля для обработки сложной бизнес-логики, Akkurate призван помочь вам писать качественный и поддерживаемый код валидации.

Akkurate на GitHub: https://github.com/nesk/akkurate
Платформа: Android
⭐️: 319

AppFiles - Mobile Development

23 Nov, 13:01


❗️Уникальная возможность для мобильных разработчиков — освойте макросы и автоматизацию в коде!

Сэкономьте время и силы, делая генерацию кода за секунды. На открытом вебинаре разберём всё, что нужно знать о макросах и генерации кода через Mason Bricks.

Бесплатный вебинар состоится 26 ноября в 20:00 мск. Не упустите шанс увидеть, как опытные эксперты используют эти инструменты для создания сложных приложений.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/D684/

🟢 Все участники открытого урока получат скидку 15% на курс "Flutter Mobile Developer"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

AppFiles - Mobile Development

22 Nov, 08:22


Видео и подкасты за неделю на @AppFiles

(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

AppFiles - Mobile Development

22 Nov, 07:45


Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1

В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени. Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.

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

AppFiles - Mobile Development

22 Nov, 06:48


RichEditorSwiftUI - библиотека на основе Swift, позволяющая легко сделать редактор текста в SwiftUI. Поддерживает жирный, наклонный, подчеркнутый шрифт и разные заголовки.

RichEditorSwiftUI на GitHub: https://github.com/canopas/rich-editor-swiftui
Платформа: iOS
⭐️: 81

AppFiles - Mobile Development

21 Nov, 07:58


Избавляемся от Android в api-модулях

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами».

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

AppFiles - Mobile Development

21 Nov, 07:57


На извечный вопрос о «лучшей мобильной платформе» постарались ответить ребята в новом выпуске Sravni Podcast.

Обсудили, как iOS и Android различаются в плане технологий и пользовательского опыта, под что проще разрабатывать и может ли «многообразие Android» успешно конкурировать с «магией Apple».

Также в выпуске:

- Состояние мобильной разработки — есть ли кризис?
- Развитие разработчиков для iOS и Android: полезные материалы и практики
- Превосходство Android Studio над XСode?
- Когда наступит кроссплатформенное будущее?

Посмотреть или послушать подкаст можно здесь:

YouTube
RUTUBE
Яндекс Музыка

Реклама. Рекламодатель: ООО «Сравни.ру» ИНН 7710718303, erid: LjN8KEQZt

AppFiles - Mobile Development

21 Nov, 07:08


Реверс-инжиниринг новой функции iOS Inactivity Reboot

В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.

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

AppFiles - Mobile Development

21 Nov, 06:38


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

AppFiles - Mobile Development

20 Nov, 08:53


Поиск нашего Золотого пути к устойчивой Android-разработке

Следуя «Золотому пути», мы не просто пишем код — мы создаем устойчивую и адаптируемую культуру разработки, которая выдержит испытание временем.

Статья: https://apptractor.ru/info/articles/poisk-nashego-zolotogo-puti-k-ustoychivoy-android-razrabotke.html
Платформа: Android

AppFiles - Mobile Development

20 Nov, 06:50


Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая

Главное, на что я хотел бы обратить ваше внимание — это то, насколько логика становится целостной, если проектировать ее с точки зрения приложения, а не пользовательского интерфейса. А ещё насколько она гибкая, тестируемая и масштабируемая, если каждая функция отделена от своих зависимостей на уровне действий (функций), а не объектов.

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

AppFiles - Mobile Development

20 Nov, 06:47


Об анатомии крэшей на iOS «по-взрослому»

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

В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.

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

AppFiles - Mobile Development

20 Nov, 06:46


Вышла 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 года, и с этого момента у вас будет несколько месяцев до официального релиза (он будет во втором, а не в третьем квартале), чтобы провести финальное тестирование.

AppFiles - Mobile Development

20 Nov, 06:26


Менеджер UndoManager в Foundation громоздок в использовании, в нем много шаблонного кода для добавления действий отмены и повтора. Поскольку он основан на замыкании, можно легко допустить ошибку. Revertible - этот фреймворк добавляет простой способ отслеживать изменений состояния и обеспечивает простой обход истории состояния с помощью функций undo() и redo().

Revertible на GitHub: https://github.com/AndyHeardApps/Revertible
Платформа: iOS
⭐️: 3

AppFiles - Mobile Development

19 Nov, 05:52


Composable Screens - подборка экранов, воплощенных Android-разработчиками с помощью инструментария Compose. Пока там, судя по всему, всего два приложения, но автор определенно предполагает расширять свою подборку.

Composable Screens на GitHub: https://github.com/erfansn/ComposableScreens
Платформа: Android
⭐️: 138

AppFiles - Mobile Development

18 Nov, 08:05


Apple убивает Swift

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

Довольно далеко.

Сегодня мы узнаем, как управляются современные языки программирования. Я объясню, чем уникально плоха диктаторская структура Swift, и продемонстрирую вам, насколько плохой стала ситуация.

Статья: https://apptractor.ru/info/articles/apple-ubivaet-swift.html
Платформа: iOS/Swift

AppFiles - Mobile Development

18 Nov, 07:18


О зацикливании рекомпозиции в Jetpack Compose

Jetpack Compose — это мощный инструмент, который упрощает создание UI в Android, но его освоение может быть не таким уж простым. Многие разработчики сталкиваются с неожиданными результатами и ошибками, которые на первый взгляд кажутся неочевидными. Сегодня разберем один из таких примеров и посмотрим, как зациклить рекомпозицию в Compose — и самое главное, как этого избежать.

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

AppFiles - Mobile Development

18 Nov, 05:46


Swift PNG - это кроссплатформенный фреймворк, не требующий Foundation, для декодирования, проверки, редактирования и кодирования PNG-изображений. Фреймворк написан на чистом Swift, компилируется и обеспечивает согласованное поведение на всех Swift-платформах. Библиотека также поставляется со встроенной поддержкой файловой системы в linux, macOS и Windows. В библиотеку так же встроена нативная реализация Swift DEFLATE, которую можно использовать как отдельный модуль.

Swift PNG на GitHub: https://github.com/tayloraswift/swift-png
Платформа: iOS
⭐️: 356

AppFiles - Mobile Development

17 Nov, 12:15


📕Информация для мобильных разработчиков📕

Ответьте на 20 вопросов и проверьте, какие навыки, необходимые для мобильной разработки.

После теста вы получите:
- Записи лучших открытых уроков по Dart/Flutter
- Cкидку 15% на курс «Flutter Mobile Developer» от OTUS до 28.11

На курсе вы:
- Доскональное изучение программирование на Dart, применение platform-specific code и создание анимация с помощью Skia
- Разовьёте и научитесь применять фреймвоки для работы с состоянием приложения: Bloc, Redux, MobX
- Создадите свои аналоги Telegram, CoinMarketCap, Todoist

👉 ПРОЙТИ ТЕСТ — https://otus.pw/JV6m/

💣 Пройдите тест до 28.11 и получите скидку 15% на курс, и записи лучших открытых уроков в подарок.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

AppFiles - Mobile Development

15 Nov, 13:43


Как поднять инфраструктуру для запуска автотестов Android в облаках

Меня зовут Денис Веренцов, я Android-инженер из команды Emcee. Это технопродукт Авито, универсальное решение для запуска iOS и Android-тестов, с его помощью можно быстрее выкатывать новые фичи пользователям и клиентам. В этой статье я расскажу, как можно развернуть облачную инфраструктуру для запуска нативных автотестов Android-приложений на основе разработанного нами решения.

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

AppFiles - Mobile Development

15 Nov, 13:41


Разбираем iOS-приложение: код, сборка, статические и динамические библиотеки, компиляция, запуск

Больше всего мне нравится изучать процессы мобильной разработки, включая самые низкоуровневые вещи. Из чего состоит iOS-приложение? Какие этапы оно проходит перед тем, как оказаться на устройстве пользователя? Что такое Executable binary? Что происходит внутри препроцессора?

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

AppFiles - Mobile Development

15 Nov, 08:12


Видео и подкасты за неделю на @AppFiles

(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

AppFiles - Mobile Development

15 Nov, 06:21


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

SwiftUIFormValidator на GitHub: https://github.com/Open-Bytes/SwiftUIFormValidator
Платформа: iOS
⭐️: 8105

AppFiles - Mobile Development

14 Nov, 08:34


Как я уменьшил размер моего приложения на 73%

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

Статья: https://apptractor.ru/info/articles/kak-ya-umenshil-razmer-moego-prilozheniya-na-73.html
Платформа: iOS

AppFiles - Mobile Development

14 Nov, 08:32


Моделирование состояния ViewModel в Android: чистый, масштабируемый паттерн

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

Статья: https://apptractor.ru/info/articles/modelirovanie-sostoyaniya-viewmodel-v-android-chistyy-masshtabiruemyy-pattern.html
Платформа: Android

AppFiles - Mobile Development

14 Nov, 06:17


Wave Progress Compose - волновой прогресс-бар, написанный на Jetpack Compose. Компонент можно обернуть в любой Jetpack View (здесь он обернут в круглую карточку). Вы можете легко настроить различные свойства прогресс-бара, включая частоту, амплитуду, направление и скорость, в соответствии с вашими потребностями.

Wave Progress Compose на GitHub: https://github.com/amit-bhandari/Wave-Progress-Compose
Статья о разработка: https://amit-bhandari.github.io/posts/wave-progress-bar-compose/
Платформа: Android
⭐️: 13

AppFiles - Mobile Development

13 Nov, 14:08


Элегантная обработка событий в Kotlin — рефакторинг в 7 шагов

В мире разработки программного обеспечения рефакторинг кода — это герой, который спасает нас от запутанного и неэффективного кода. В этой статье мы отправимся в новое приключение, чтобы переделать Kotlin-код, обрабатывающий различные события. Наша миссия? Повысить производительность и улучшить стиль, сделав код более гладким, удобным и приятным для работы.

Статья: https://apptractor.ru/info/articles/elegantnaya-obrabotka-sobytiy-v-kotlin-refaktoring-v-7-shagov.html
Платформа: Android

AppFiles - Mobile Development

13 Nov, 08:21


Почему xcodebuild работает медленнее, чем Xcode?

Если вы, как и я, заметили, что xcodebuild работает медленно, не волнуйтесь. Вы не один такой. В настоящее время в xcodebuild есть ошибка

Статья: https://apptractor.ru/info/articles/pochemu-xcodebuild-rabotaet-medlennee-chem-xcode.html
Платформа: iOS

AppFiles - Mobile Development

13 Nov, 06:42


Все, что вам нужно знать об Android на Raspberry Pi

В этой статье мы расскажем:

• 4 причины, по которым вам стоит использовать Android на Raspberry Pi
• Где взять Android для Raspberry Pi?
• Какой выбрать?
• Перспективы на будущее

Статья: https://medium.com/paradox-cat-tech-hub/android-on-raspberry-pi-aa4b8eea72c6
Платформа: Android

AppFiles - Mobile Development

13 Nov, 05:48


LibreSudoku - приложение для игры в судоку с открытым исходным кодом, разработанное для максимально удобного использования и кастомизации. Создано с помощью Jetpack Compose и Material3.

LibreSudoku на GitHub: https://github.com/kaajjo/LibreSudoku
Платформа: Android
⭐️: 385

AppFiles - Mobile Development

12 Nov, 12:16


Начинаем работу с LiteRT (Tensorflow Lite)

Недавно Google переименовал TensorflowLite в LiteRT. И да, это был действительно гениальный ход. Потому что теперь впервые в жизни я действительно хочу попробовать TFLite... да, я имею в виду LiteRT.

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

Но в этом эксперименте мы не будем усложнять ситуацию и построим «Hello World» во вселенной машинного обучения с упражнением «Собаки против кошек».

Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-litert-tensorflow-lite.html
Платформа: iOS

AppFiles - Mobile Development

12 Nov, 08:05


Как силами мобильных разработчиков автоматизировать процесс разработки

Меня зовут Женя Мельцайкин, я старший инженер-программист в компании Контур. Большую часть времени в Контуре я работал и работаю Android-разработчиком, но статья будет не про Android и даже не про мобильную разработку. А про команду Мобильной разработки в Контуре и про наши процессы разработки! Давайте же начнем разбираться, причем тут мобильные разработчики, автоматизация и бэкенд.

Статья: https://habr.com/ru/companies/skbkontur/articles/856374/
Платформа: разработка

AppFiles - Mobile Development

12 Nov, 05:31


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

Mockolo на GitHub: https://github.com/uber/mockolo
Платформа: iOS
⭐️: 823

AppFiles - Mobile Development

11 Nov, 07:24


Обзор решений описания и обновления state экрана в Сompose

В этой статье я предлагаю рассмотреть, как в Compose можно описать, обновить и масштабировать состояние экрана с помощью паттерна MVI.

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

AppFiles - Mobile Development

11 Nov, 07:23


App Intents: новые возможности для разработчиков в iOS 18

Эта статья поможет узнать, что такое App Intents и как их использовать для создания сложных сценариев, которые расширят возможности вашего приложения. А еще я расскажу об обновлениях фреймворка App Intents, представленных на WWDC24.

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

AppFiles - Mobile Development

11 Nov, 05:56


Lumolight - это приложение-фонарик с открытым исходным кодом, которое может работать как экраном, так и с задней вспышкой. Приложение разработано на основе системы дизайна Material You, поддерживает как светлые, так и темные темы, а также поддерживает динамическое тематическое оформление и разные настройки для свечения.

Lumolight на GitHub: https://github.com/BitMavrick/Lumolight
Платформа: Android
⭐️: 9

AppFiles - Mobile Development

08 Nov, 08:10


Видео и подкасты за неделю на @AppFiles

(iOS Ru) SDK и BDUI в Яндекс Пэй и Яндекс Банке
(iOS En) Master Xcode 16: Essential Navigation Shortcuts for Faster Coding
(iOS En) Custom TextField Menu Actions
(iOS En) Optional View Modifiers
(And Ru) 5 СЕКРЕТНЫХ преимуществ Android эмулятора которые вы не знали!
(And En) Now in Android: 111 - Android API level and schedule updates, Gemini in Android Studio, Google Play
(And En) Subtyping Composables
(And En) How Compose Compiler Plugin Works
(Crs En) Unpacking Compose Multiplatform Accessibility
(Dev Ru) Surf QA Meetup: доклады о моках в автотестах, человеческом факторе QA и работе Device Holder
(Dev Ru) ОС Аврора 5 глазами мобильного разработчика. Разработка и функциональность
(Dev Ru) Мобильная ферма: тесты мобильных приложений без телефона и эмулятора
(Dev Ru) AIOps — grafana, observability, aiops, ai
(Dev En) Build and Deploy a RAG Chatbot
(Dev En) AI Foundations Course – Python, Machine Learning, Deep Learning, Data Science

#ios #android #mobile #video

AppFiles - Mobile Development

08 Nov, 07:30


Обзор решений описания и обновления state экрана в Сompose

В этой статье я предлагаю рассмотреть, как в Compose можно описать, обновить и масштабировать состояние экрана с помощью паттерна MVI.

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

AppFiles - Mobile Development

08 Nov, 07:28


Управление памятью в ассемблере для Apple Silicon

В статье мы познакомимся с языком ассемблера для Apple Silicon (ARM64). Рассмотрим основные регистры, запись данных из регистров в память и обратно. Затронем также и базовые навыки работы с LLDB.

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

AppFiles - Mobile Development

05 Nov, 14:24


Как я писал суперкастомизированное Android-приложение в 2024 году

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

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

AppFiles - Mobile Development

05 Nov, 14:21


Внедрение электронной цифровой подписи в мобильное приложение на Android

Сегодня мы хотим поделиться решением интересной и новой для нас задачи: нужно встроить поддержу ЭЦП в мобильное приложение заказчика.

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

AppFiles - Mobile Development

05 Nov, 14:20


Малоизвестные фичи SwiftUI

Я уже 2 месяца прохожу обучение в онлайн‑школе и у нас на этой неделе был открытый урок, нужно было подготовить доклад на тему «Малоизвестные фичи или особенности языка Swift»

Так вот — я решила погуглить этот вопрос, подготовилась, написала код. Но когда дело дошло до самого выступления, оказалось, что говорить ртом — это не так‑то и просто. Да и в целом выступать, даже в Zoom.

Тем не менее, поделюсь с вами маленькими фишечками, которые я нашла. Уровень легкий, в отличие от меня там ребята подготовили нормальные доклады про SPM и пр. Я же решила начать с простых вещей, которые, тем не менее, мне были неизвестны. Надеюсь кому‑то тоже окажется полезным.

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

AppFiles - Mobile Development

05 Nov, 10:53


Открытый урок для разработчиков на Android, iOS, React Native, Ionic или Xamarin

📒Тема:
Используем GPU для создания настоящего 3D-движка в Flutter

📕Рассмотрим:
- Основы 3D-графики (вершинные и фрагментные шейдеры), определение шейдеров в impeller
- Создание собственных шейдеров для отображения 3D-объектов в Flutter-приложении
- Добавление света и теней, отображение 3D-изображения на экране
- Интеграция 3D в игровой движок Flame, создание несложной игры

📗Результат:
Создадим простой 3D-движок и разработаем простую игру в виртуальном 3D-мире.

📘Спикер:
Дмитрий Золотов — опытный Flutter+Kotlin Developer в Yandex, FullStack разработчик (Flutter/Python/Kotlin/GoLang/C++), преподаватель

Встречаемся 6 ноября в 20:00 мск. Всем участникам дадим скидку на основной курс.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/4X68/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

AppFiles - Mobile Development

05 Nov, 08:24


Красота системы типов Kotlin

С Any в качестве верхнего типа, Nothing в качестве нижнего типа и Optional в стороне, я надеюсь, что вы так же найдете систему типов Kotlin приятной и красивой.

Статья: https://apptractor.ru/info/articles/krasota-sistemy-tipov-kotlin.html
Платформа: Android

AppFiles - Mobile Development

05 Nov, 06:15


FilmSimulator - это кроссплатформенное мобильное приложение, разработанное с использованием Kotlin Multiplatform и Compose UI Multiplatform. Оно работает на Android и iOS и позволяет пользователям применять различные LUT (Look-Up Tables) к своим изображениям, создавая уникальную эстетику, напоминающую классические стили кино. Технологический стек: MVVM, Compose UI, Material3, Compose Resources, FFMPEG-Kit, SQLDelight, Ktor, Voyager Navigation, Koin DI, Peekaboo Image Picker, Okio и т.д.

FilmSimulator на GitHub: https://github.com/YahiaAngelo/Film-Simulator
Платформа: Android/кроссплатформа
⭐️: 28

AppFiles - Mobile Development

01 Nov, 11:51


Задачи с собеседований: Leetcode — Наибольший общий префикс

Напишите функцию для поиска самой длинной строки с общим префиксом среди массива строк.

Если общего префикса нет, верните пустую строку.

Пример:

Ввод: strs = [«flower»,»flow»,»flight»]
Вывод: «fl»

Пример:

Вход: strs = [«dog»,»racecar»,»car»]
Выходные данные: «»
Пояснения: среди входных строк нет общего префикса.

Статья: https://apptractor.ru/develop/coding/zadachi-s-sobesedovaniy-leetcode-naibolshiy-obschiy-prefiks.html
Платформа: программирование

AppFiles - Mobile Development

01 Nov, 10:58


Видео и подкасты за неделю на @AppFiles

(iOS Ru) Как устроена библиотека AppMetrica
(iOS Ru) Здесь куют Metal
(iOS Ru) Как iOS-разработчику выжить на проекте с KMP?
(iOS En) Convert a SwiftUI view to an image
(iOS En) Translation API
(iOS En) Accessibility - The clock is ticking
(iOS En) SwiftUI Bottom Sheet like Apple Music App
(And Ru) Android cookbook: готовим WebView правильно
(And Ru) Kotlin Coroutines. Устройство и возможности использования
(And Ru) Фреш на полке, фреш в стеке
(And En) More frequent Android SDK releases, and a look into updates on Android
(And En) Navigation In Multi-Module Android Apps
(And En) The Ultimate Beginner's Roadmap to Android App Architecture
(And En) Dangerous Minds: How we're getting developer education wrong
(Dev Ru) От натива до SDUI через гибрид
(Dev Ru) Карьера мобильного разработчика 2024
(Dev Ru) Разработка в робототехнике — Автоматизация, Автопилоты
(Dev En) Google Cloud Digital Leader Certification Course 2024

#ios #android #mobile #video

AppFiles - Mobile Development

01 Nov, 08:26


Лучшие клавиатуры 2024

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

Статья: https://devnotebooks.ru/best-keyboard-2024/
Платформа: устройства

AppFiles - Mobile Development

01 Nov, 06:28


Geometrize - библиотека Swift для воссоздания изображений в виде геометрических примитивов.

Geometrize на GitHub: https://github.com/valeriyvan/swift-geometrize
Платформа: iOS
⭐️: 17

AppFiles - Mobile Development

31 Oct, 09:00


⚡️Как создавать собственные DSL и применять их при разработке приложений?

Узнайте на открытом уроке «Возможности Kotlin для создания DSL на примере JsonBuilder»!

📅Дата и время: 31 октября, 19:00 МСК
🔗Записаться на событие: https://clck.ru/3EKA4s

🔍Что вас ждет:
- Погружение в назначение, особенности и практическое применение DSL.
- Практика создания DSL на примере JsonBuilder.
- Обзор возможностей Kotlin, полезных для создания DSL.

👨‍🏫Урок проведёт Евгений Непомнящий, преподаватель OTUS и опытный старший разработчик с многолетним стажем.

📚Это занятие будет полезно всем, кто использует Kotlin или хочет изучать этот язык.

🎓Урок приурочен к старту курса «Kotlin Backend Developer. Professional». После занятия вы сможете продолжить обучение по специальной цене и даже в рассрочку!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить это интересное мероприятие: https://clck.ru/3EKA4s

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

AppFiles - Mobile Development

31 Oct, 08:44


Главный метод Android-приложения

Я Саша, старший Android-разработчик в Авито, ранее работал в Яндексе и Kaspersky. Пишу о разработке и всём, что с ней связано, в своем телеграм-канале. Сейчас поговорим немного про главный метод и про процесс Android-приложения.

Если вы когда-нибудь писали «Hello World» на Java (или любом другом C-подобном языке), то наверняка делали это в статическом методе main. Этот метод вызывается в JVM и является точкой входа любой Java программы.
public static void main(String[] args)

Но при разработке приложений для Android вы возможно, как и я до недавнего времени, ни разу метод main не встречали. Создается ощущение, что его вообще не существует, а при нажатии на иконку в лаунчере наши Application и Activity создаются какими-то волшебными гномами, спрятанными в устройстве.

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

AppFiles - Mobile Development

31 Oct, 07:26


Делаем в SwiftUI размытие экрана при переключении задачи

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

Статья: https://apptractor.ru/info/articles/delaem-v-swiftui-razmytie-ekrana-pri-pereklyuchenii-zadachi.html
Платформа: iOS

AppFiles - Mobile Development

31 Oct, 05:52


Compose Unstyled - нестандартные компоненты для Jetpack Compose и Compose Multiplatform, которые вы можете настроить по своему усмотрению. Есть Bottom Sheet, диалоги, выпадающие меню, иконки, облапсть со скроллингом, меню с кнопками. Реализована полная доступность, работают на декстопах, Web (Js/WASM), Android, iOS и любой другой платформы, на которой может работать Compose.

Compose Unstyled на GitHub: https://github.com/composablehorizons/compose-unstyled
Платформа: Android/кроссплатформа
⭐️: 362

AppFiles - Mobile Development

30 Oct, 08:05


Поиск регрессий в Compose

В этой статье мы создадим приложение, добавим регрессии и сравним версию до и после с помощью Perfetto и Diffetto.

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

AppFiles - Mobile Development

30 Oct, 07:07


Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке

В этом гайде мы напишем с вами Android-приложение с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVVM с элементами MVI, они обеспечат поддерживаемость, тестируемость и масштабируемость приложений, что особенно важно для сложных и долгосрочных проектов..

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

AppFiles - Mobile Development

30 Oct, 07:05


React Native полностью переделан

После 6 лет разработки команда React Native представила полностью переписанную архитектуру фреймворка (0.76) – самое значительное обновление с момента создания React Native. Это результат масштабной работы над улучшением производительности, стабильности и возможностей платформы.

Статья: https://habr.com/ru/articles/854348/
Платформа: кроссплатформенная разработка

AppFiles - Mobile Development

30 Oct, 05:34


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

Paralayout на GitHub: https://github.com/square/Paralayout
Платформа: iOS
⭐️: 786

AppFiles - Mobile Development

29 Oct, 08:28


Реализуем Face ID аутентификацию в iOS-приложении

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

Статья: https://apptractor.ru/info/articles/realizuem-face-id-autentifikatsiyu-v-ios-prilozhenii.html
Платформа: iOS

AppFiles - Mobile Development

29 Oct, 07:55


Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 5 (4, 3 ,2, 1)

В этой статье мы рассмотрим:

8. Избегайте жесткого прописывания диспетчеров корутинов
9. Проводите модульное тестирование своих ViewModel
10. Избегайте раскрытия suspended функций

Статья: https://apptractor.ru/info/articles/osvaivaem-viewmodel-v-android-mozhno-i-nelzya-chast-5.html
Платформа: Android

AppFiles - Mobile Development

29 Oct, 06:24


Lawnchair - это бесплатный открытый лаунчер для Android. Взяв за отправную точку Launcher3 - домашнее приложение Android по умолчанию, он переносит функции Pixel Launcher и предоставляет богатые возможности для настройки.

Главные фичи:
• Pixel Launcher-подобный пользовательский интерфейс с дизайном Material You
• Виджет At a Glance с поддержкой Smartspacer
• Поддержка QuickSwitch
• Поддержка глобального поиска
• Настройка иконок, шрифтов и цветов

Lawnchair на GitHub: https://github.com/LawnchairLauncher/lawnchair
Платформа: Android
⭐️: 9.4K

AppFiles - Mobile Development

28 Oct, 08:59


Правда ли, что приложения для Android намного меньше, чем для iOS?

На первый взгляд это правда! Размер, который мы видим в магазине приложений для iOS, почти всегда в разы больше размера Android-аналога в Google Play Store.

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

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

Статья: https://apptractor.ru/develop/pravda-li-chto-prilozheniya-dlya-android-namnogo-menshe-chem-dlya-ios.html
Платформа: iOS/Android

AppFiles - Mobile Development

28 Oct, 06:44


Восстанавливаем удалённые сообщения в Telegram

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

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

AppFiles - Mobile Development

28 Oct, 06:42


iOS 18 для разработчиков: Ключевые изменения в UIKit

Меня зовут Лена, я работаю iOS-разработчиком в KTS. Недавно вышла новая версия iOS 18, и я решила подробно изучить все нововведения, чтобы понять, какие новые возможности она предлагает разработчикам. В этой статье расскажу и покажу самые интересные обновления в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое.

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

AppFiles - Mobile Development

28 Oct, 06:30


CoreDataEvolution - эта библиотека призвана упростить и улучшить работу Core Data с многопоточностью, черпая вдохновение из функции @ModelActor в SwiftData, обеспечивая эффективные, безопасные и масштабируемые операции.

В SwiftData появились современные функции параллелизма, такие как @ModelActor, что упростило обработку параллельного доступа к данным с гарантированной компилятором безопасностью. Однако требования SwiftData к платформе и ограниченная зрелость в некоторых областях удерживали многих разработчиков от его внедрения. CoreDataEvolution устраняет этот пробел, перенося передовой дизайн SwiftData в мир Core Data для разработчиков, которые все еще полагаются на Core Data.

CoreDataEvolution на GitHub: https://github.com/fatbobman/CoreDataEvolution
Платформа: iOS
⭐️: 26

AppFiles - Mobile Development

25 Oct, 08:20


Видео и подкасты за неделю на @AppFiles

(iOS En) CocoaHeadsNL Meetup
(iOS En) Google Engineer Teaches Us How to Set Up Firebase in Your iOS Project
(iOS En) App-Wide Overlays | SwiftUI
(iOS En) MockData, PreviewModifiers and PreviewTraits in SwiftUI
(And Ru) Избавляемся от Context в бизнес логике — как ответить на собеседовании
(And En) Studio Jewelry - Android Developers Backstage
(And En) How to Migrate Your App to Support the NEW Predictive Back Gestures On Android
(And En) How to Implement Image Compression On Android
(And En) Practical Tips and Tricks to Improve Your Compose Previews
(Dev Ru) Backend vs Frontend: сравниваем опыт разработчиков — что сложнее, перспективнее и кому больше платят
(Dev Ru) Grafana: инструкция по применению
(Dev Ru) Тесты с душком
(Dev Ru) Как писать библиотеки: проектирование API, обратная совместимость
(Dev En) Learn Claude AI – Build Text Summarizers, Image Describers, and More with the Anthropic API
(Dev En) Gemma Developer Day Tokyo

#ios #android #mobile #video

AppFiles - Mobile Development

25 Oct, 08:16


Самые весёлые TODO из Android-фреймворка

Иногда на проекте (особенно если он большой) некоторые TODO обречены на то, чтобы остаться в нем навеки и Android Open Source Project не исключение. Сегодня я расскажу про самые забавные тудухи из AOSP (Android Open Source Project) на которые мне приходилось натыкаться во время изучения исходников.

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

AppFiles - Mobile Development

25 Oct, 08:15


Области тьмы: разбираем неочевидные моменты при использовании памяти в Swift

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

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

AppFiles - Mobile Development

25 Oct, 06:28


Android Compose Accessibility Techniques - демонстрация различных передовых методов обеспечения доступности для пользовательских интерфейсов на базе Android Jetpack Compose, а также проблем, которые они могут решить. Исходный код проекта приложения поможет вам научиться применять эти методы в рабочем коде.

Android Compose Accessibility Techniques на GitHub: https://github.com/cvs-health/android-compose-accessibility-techniques
Платформа: Android
⭐️: 56

AppFiles - Mobile Development

24 Oct, 17:55


Задачи с собеседований: Leetcode — Сложите два числа

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

Статья: https://apptractor.ru/develop/coding/add-two-numbers.html
Платформа: программирование

AppFiles - Mobile Development

24 Oct, 08:51


Советы Junior-разработчикам

В этой статье упоминаются и даются ссылки на множество ценных концепций, которые вы можете исследовать дальше по своему усмотрению.
Общие советы для Junior-разработчиков
1. Код не главное
2. Дизайн программного обеспечения имеет значение
3. Используйте ЛУЧШИЕ практики
Технические советы для Junior-разработчиков
4. Пишите тесты
5. Не используйте наследование для повторного использования кода
6. Пишите объектно-ориентированный код
7. Пишите функциональный код
8. Используйте информированное дублирование
9. Типы, имена и комментарии
Рекомендуемое чтение для Junior-разработчиков
Книги
Блоги
Бонусные ссылки

Статья: https://apptractor.ru/info/articles/sovety-junior-razrabotchikam.html
Платформа: разработка

AppFiles - Mobile Development

24 Oct, 08:27


Взлом покупок в Android-приложении и защита от этого

Встроенные покупки (In-app purchases, IAP) являются основой современных приложений, позволяя пользователям разблокировать премиум-функции или подписываться на услуги. Однако, когда разработчики не обеспечивают должной безопасности процесса выставления счетов, могут возникнуть уязвимости, позволяющие обойти проверку платежей. В этой статье мы расскажем о том, как Frida, динамический инструментарий, может обойти механизмы биллинга в приложениях для Android. Мы покажем, как можно взломать небезопасные процессы покупок и что могут сделать разработчики.

Статья: https://apptractor.ru/info/articles/primer-vzlom-pokupok-v-android-prilozhenii-i-zaschita-ot-etogo.html
Платформа: Android

AppFiles - Mobile Development

24 Oct, 06:30


KeyboardKit - это SwiftUI SDK, позволяющий создавать полностью настраиваемые расширения клавиатуры с помощью нескольких строк кода.

KeyboardKit Pro расширяет KeyboardKit такими функциями, как автодополнение и автокоррекция, поддержка искусственного интеллекта, мощная клавиатура эмодзи, диктовка, темы, шаблоны приложений и многое другое.

Расширения клавиатуры можно использовать во всех других приложениях на iOS, где поддерживается ввод текста. Это единственный способ для вашего продукта или бренда напрямую взаимодействовать с другими приложениями на iOS.

KeyboardKit Pro на GitHub: https://github.com/KeyboardKit/KeyboardKitPro
Платформа: iOS
⭐️: 112

AppFiles - Mobile Development

23 Oct, 07:53


Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя

Хочу поговорить о теме, которая волнует многих разработчиков: использование старых технологий в iOS-разработке, таких как Objective-C. Тут возникает очень насущный вопрос, являются ли он легаси?

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

AppFiles - Mobile Development

23 Oct, 07:51


Как в eXpress достигали мгновенного рендера отправки сообщения: оптимизация локальной базы данных

Меня зовут Воронская Дарья, я работаю в Android Core команде eXpress и занимаюсь оптимизацией работы приложения. Я расскажу про подходы, которые мы использовали, чтобы довести скорость отправки и рендера сообщения до того самого идеального результата.

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

Наш стек: Kotlin, Room, Coroutines, WebSocket, OkHttp.

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

AppFiles - Mobile Development

23 Oct, 06:29


GroupTrack - приложение для Android с открытым исходным кодом от Canopas, предназначенное для повышения безопасности семьи благодаря функциям обмена местоположением и общения в режиме реального времени. GroupTrack призван обеспечить душевное спокойствие, гарантируя безопасность ваших близких и облегчая бесперебойную связь с ними независимо от их местоположения. Технический стек: MVVM, Jetpack Compose, Koltin, Coroutines + Flow, Jetpack Navigation, Retrofit, DataStore и Room, Firebase, Google Maps SDK,
Hilt.

GroupTrack на GitHub: https://github.com/canopas/group-track-android
Платформа: Android
⭐️: 53

AppFiles - Mobile Development

22 Oct, 08:02


Анализ сведений о запуске и завершении приложений в Android 15

В Android 11 появилась ApplicationExitInfo, из которой можно узнать исторические причины, по которым приложение было выключено/завершено.

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

С помощью этих данных можно проследить, как пользователи используют приложение. С помощью данных о выходе можно было проверить, не осталось ли в приложении проблем с выходом, а теперь и то, нет ли проблем с входом.

Статья: https://apptractor.ru/info/articles/analiz-svedeniy-o-zapuske-i-zavershenii-prilozheniy-v-android-15.html
Платформа: Android

AppFiles - Mobile Development

22 Oct, 07:23


Модульная навигация в SwiftUI: Исчерпывающее руководство

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

С этой целью я решил применить в проекте Модульную и Чистую архитектуры.

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

Статья: https://ericsspace.com/articles/modular-navigation-in-swiftui-a-comprehensive-guide/
Платформа: iOS

Поставьте 10 лайков, если хотите эту статью на русском

AppFiles - Mobile Development

22 Oct, 06:47


Забудьте про терминал! Как я избавлялся от рутинных ADB команды с помощью Shortcuts

До этого года я спокойно пользовался терминалом для установки приложений на тестовые устройства android: каждый раз вручную копировал название файла, выбирал нужную команду из истории терминала, стирал старое название и вставлял новое. Это меня очень раздражало, но я не искал решений. А ведь кроме установки, есть множество других команд ADB, которые приходится использовать время от времени. Например, выгрузка последних логов из logcat на компьютер, для чего тоже нужно было прописывать путь для сохранения файла — очень неудобно и отнимает драгоценное время.

Так продолжалось, пока коллега не принесла автоматизированный сценарий в Automator на Mac. Классная вещь, которая позволяет создавать автоматизированные процессы без глубоких знаний программирования. Однако, с пачкой минусов, из-за которых, я в итоге оставил только идею и переписал всё на Shortcuts.

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

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

AppFiles - Mobile Development

22 Oct, 06:45


Макросы в Swift: Практическое руководство по использованию

Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.

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

AppFiles - Mobile Development

22 Oct, 06:16


PIPKit - библиотека для реализации картинки-в-картинке на iOS (iPhone, iPad).

PIPKit на GitHub: https://github.com/Kofktu/PIPKit
Платформа: iOS
⭐️: 281

AppFiles - Mobile Development

21 Oct, 07:25


Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery

Для внедрения одной из SDK, основанной на Flutter, мы прибегли к механизму Dynamic Feature Delivery (DFD). Но оказалось, что в русскоязычном сегменте информации о DFD крайне мало, поэтому я решил поделиться нашим опытом работы с этим механизмом на Android с Google Play Feature Delivery Library. Также мы нашли способ интегрировать динамические фичи на устройства без Google Play, но это тема для отдельной статьи, поэтому в рамках данного материала я на этом останавливаться не буду.

Сегодня мы подробно разберём, как интегрировать механизм DFD в современную архитектуру Android‑приложения с использованием корутин, а также протестируем загрузку и установку динамического модуля, использующего Flutter.

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

AppFiles - Mobile Development

21 Oct, 07:21


Корзина в Додо Пицце на iOS 14: баг длиной в полгода

Меня зовут Лёша Берёзка. Я iOS техлид в Додо Пицце. Сегодня я расскажу вам историю о том, как внимательность и упорство творят чудеса, и помогают решать задачи, на которые другие бы просто забили.

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

AppFiles - Mobile Development

21 Oct, 05:41


Lets-Plot - это мультиплатформенная библиотека JetBrains для черчения, построенная на принципах Грамматики Графики. «Грамматика графики» - работа Леланда Уилкинсона, описывающая глубинные особенности, которые лежат в основе всей статистической графики: “Эта грамматика [...] состоит из набора независимых компонентов, которые могут быть составлены множеством различных способов. Это делает [ее] очень мощной, потому что вы не ограничены набором заранее заданных графиков, а можете создавать новые графики, точно подходящие для решения вашей задачи”. Lets-Plot работает с Python, Kotlin и Compose Multiplatform.

Lets-Plot на GitHub: https://github.com/JetBrains/lets-plot
Платформа: Android
⭐️: 1.6K

AppFiles - Mobile Development

18 Oct, 08:59


Видео и подкасты за неделю @AppFiles

(iOS En) WWDC22: Visualize and optimize Swift concurrency
(iOS En) Principal Engineer shares tips to Master System Design and Architecture
(iOS En) SwiftUI Toasts
(iOS En) How to get started with Swift Testing
(iOS En) Create a Bold SwiftUI Flight Boarding Widget
(iOS En) Add Micro Interactions to your Tab Bar | SwiftUI
(iOS En) iOS/SwiftUI Chat App With Cursor
(And Ru) Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
(And Ru) 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
(And Ru) Замена иконок — что может быть проще?
(And En) Custom Adaptive layouts in Compose
(And En) Region specific resources and broken localization
(And En) Applying the Builder Pattern in Kotlin
(Crs En) Mobile App Development Course with React Native, Supabase, Next.js
(Anl Ru) Собеседование продуктового аналитика в Авито: кейс-интервью
(Dev Ru) Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты
(Tch Ru) AI в медицине

#ios #android #mobile #video

AppFiles - Mobile Development

18 Oct, 07:38


iOS Swift for VS Code - разрабатывайте, собирайте, отлаживайте и тестируйте свои проекты в VS Code с помощью ваших любимых расширений. Поддерживает iOS/MacOS/WatchOS/VisionOS/TvOS, есть автодополнение Swift/Objective-C/C++ кода, совместимость с CodeLLDB, поддержка проектов/воркспейсов, парсинг логов и отображение ошибок.

iOS Swift for VS Code на GitHub: https://github.com/fireplusteam/ios-swift-for-vs-code
Платформа: iOS
⭐️: 21

AppFiles - Mobile Development

17 Oct, 09:18


Ускоряем работу приложения с помощью сжатия с общим словарем

Несмотря на то, что с каждым релизом iPhone становятся все быстрее и быстрее, сетевые задержки остаются постоянным препятствием на пути пользователя. Скорость доставки информации к месту назначения ограничена скоростью света, и во многих случаях на этом пути возникают дополнительные замедления (3G-соединения, туннели метро, спутниковый интернет и т.д.). Сокращение размера передаваемых данных по-прежнему приносит пользу пользователям, и поэтому мы рассмотрим относительно новую технику — «сжатие с общим словарем» (shared dictionary compression). Хотя эта техника уже давно используется в таких компаниях, как Google и Amazon, в последнее время она получила широкое распространение в сообществе разработчиков. В основном это касается браузеров, но в этой статье я покажу, как можно легко использовать сжатие с общим словарем в приложениях для iOS.

Статья: https://apptractor.ru/info/articles/uskoryaem-rabotu-prilozheniya-s-pomoschyu-szhatiya-s-obschim-slovarem.html
Платформа: автор говорит, что iOS, но вообще ничего специфичного там нет, поэтому разработка

AppFiles - Mobile Development

17 Oct, 08:27


Как мы улучшили производительность навигации на Android на 30%

В 2019 году команда Yelp Core Android начала работу по повышению производительности навигации в приложении Yelp для потребителей. Мы перешли от создания экранов с несколькими отдельными Активити к использованию фрагментов внутри одной Активити. В этой статье мы расскажем о нашем решении, о нашем подходе к миграции, и поделимся выводами, сделанными на этом пути, а также достигнутыми успехами.

Статья: https://apptractor.ru/info/articles/kak-my-uluchshili-proizvoditelnost-navigatsii-na-android-na-30.html
Платформа: Android

AppFiles - Mobile Development

17 Oct, 07:30


Компьютерное зрение на C++: пишем приложение для поиска объектов под Android

Расскажу, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4. Шаблон моего приложения пригодится тем, кто хочет проверить прототип функциональности для компьютерного зрения на С++, использующий OpenCV на Android, но не хочет глубоко погружаться в программирование под Android.

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

AppFiles - Mobile Development

17 Oct, 07:29


Tuist: добавляем генерацию проекта в текущее приложение

Знаете, что объединяет всех iOS-разработчиков, работающих над крупными проектами? Все мы когда-то сталкивались с этим старым знакомым — файлом .xcodeproj, который хранит в себе десятки, а то и сотни конфликтов после каждого merge. Мы тоже жили с этой проблемой много лет, пока не нашли решение.

Знакомьтесь, Tuist — инструмент, который кардинально изменил наш подход к управлению проектами. Он не только помогает избежать конфликтов, но и автоматизирует генерацию ключевых компонентов, значительно облегчая команде жизнь.

Если у вас всё еще сохранился этот «реликт прошлого», то, возможно, наш опыт поможет вам наконец-то избавиться от него. Давайте разберемся, как это сделать.

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

AppFiles - Mobile Development

17 Oct, 06:27


Loaders - два индикатора прогресса/лоадера для Jetpack Compose. Есть шестеренки и паззл, который открывает картинку.

Loaders на GitHub: https://github.com/EranBoudjnah/Loaders
Платформа: Android
⭐️: 59

AppFiles - Mobile Development

16 Oct, 08:35


Вычисление семантического расстояния между словами с помощью Natural Language Framework

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

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

Статья: https://apptractor.ru/info/articles/vychislenie-semanticheskogo-rasstoyaniya-mezhdu-slovami-s-pomoschyu-natural-language-framework.html
Платформа: iOS

AppFiles - Mobile Development

16 Oct, 08:13


Антипаттерны Code Review

Code Review кажется отличной идеей, верно? Два разработчика, просматривающие один и тот же код, имеют в два раза больше шансов обнаружить проблемы. Это распространяет понимание того, как развивается проект. Рецензент может узнать полезные приемы, подробно читая код автора, или найти возможность научить автора полезному приему, который он еще не знал.

Что может пойти не так?

Статья: https://apptractor.ru/info/articles/antipatterny-code-review.html
Платформа: разработка

AppFiles - Mobile Development

16 Oct, 07:22


Тесты для функций Compose в Android

Представьте себе мир, где каждый раз, когда вы вносите изменения в код вашего приложения, вы уверены, что ничего не сломалось. Где ошибки обнаруживаются еще до того, как пользователи успеют их заметить. Где ваш код не только работает, но и документируется автоматически, улучшая архитектуру проекта с каждым тестом. Звучит как мечта? На самом деле это реальность, если вы правильно используете тесты. В этой статье мы погрузимся в мир тестирования Android-приложений с использованием Jetpack Compose, рассмотрим различные виды тестов и научимся настраивать и писать инструментальные тесты для ваших Compose функций.

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

AppFiles - Mobile Development

16 Oct, 06:12


iOS Performance Optimization - этот проект предлагает базовые знания и рекомендуемые ресурсы по оптимизации производительности iOS-приложений. Основные темы: уменьшение размера приложения, сокращение времени сборки, сокращение времени запуска приложения, оптимизация рантайма, зависания приложения, использование памяти, CI.

iOS Performance Optimization на GitHub: https://github.com/hoangatuan/iOS-Performance-Optimization
Платформа: iOS
⭐️: 40

AppFiles - Mobile Development

15 Oct, 05:58


Kotlin Multiplatform Developer Roadmap предлагает путь обучения для понимания мультиплатформенной разработки на Kotlin, включая соответствующие библиотеки и технологические стеки по различным темам. Каждый узел представляет ключевые аспекты Kotlin Multiplatform, включая концепции платформы, SDK, часто используемые библиотеки и практические решения.

Kotlin Multiplatform Developer Roadmap на GitHub: https://github.com/skydoves/kmp-developer-roadmap
Платформа: Android/кроссплатформа
⭐️: 289

AppFiles - Mobile Development

14 Oct, 08:14


Создаем анимацию печати текста на печатной машинке в SwiftUI

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

Статья: https://apptractor.ru/info/articles/sozdaem-animatsiyu-pechati-teksta-na-pechatnoy-mashinke-v-swiftui.html
Платформа: iOS

AppFiles - Mobile Development

14 Oct, 08:07


Принятие SwiftUI (да и вообще любой новой технологии)

AppFiles - Mobile Development

14 Oct, 07:34


День, когда мы (почти) потеряли тысячу клиентов

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

Пользователи Android 6 и 7 не могли войти в систему или совершить перевод из-за обновления корневого сертификата SSL, выданного Let's Encrypt. Нам нужно было разблокировать этих пользователей.

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

Статья: https://apptractor.ru/info/articles/den-kogda-my-pochti-poteryali-tysyachu-klientov.html
Платформа: Android

AppFiles - Mobile Development

14 Oct, 06:50


Авто-трекинг производительности Room Database

Room (абстракция над SQLite) — одна из основных технологий, используемая почти во всех Android-приложениях для кэширования данных, оффлайновости, как cross-process хранилище данных и тому подобное.

При этом скорость работы приложения обычно напрямую зависит от скорости работы с БД, особенно если речь идет о холодном старте, когда все данные хранятся в кэше (в БД).

Встает вопрос: “А не является ли сама работа с БД узким местом скорости старта приложения?”

В Wildberries это особенно актуально, так как приложение построено на парадигме offline-first, когда почти вся информация кэшируется в БД, чтобы приложение работало даже с медленным интернетом или без него.

Для ответа на этот вопрос в статье разберем рантайм реализацию автоматического трекинга скорости выполнения запросов и транзакций в Room Database на основе Java Dynamic Proxy.

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

AppFiles - Mobile Development

14 Oct, 06:48


История одного модального окна или переходим с UIKit на SwiftUI. Часть 1

Сегодня хочу рассказать, как я делала модальное окно на SwiftUI (в приложении, которое полностью пока написано на UIKit, за исключением новых фич) и какие возникли сложности, а так же как с ними справилась.

Вот дизайн, ничего необычного, по нажатию на TableViewCell мы видим модальное окно, в котором отображены имеющиеся сохраненные статьи, так же есть вариант получить с сервера новые статьи, отобразить progress view и затем опять вывести модальное окно с новой статьёй.

Казалось бы, что может пойти не так?

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

AppFiles - Mobile Development

14 Oct, 06:15


TinyStorage - простая и легкая замена UserDefaults (не обертка, а именно замена, лишенная некоторых недостатков нативного фреймворка) с более надежным доступом и встроенной поддержкой типов Codable.

Как писал автор в этой статье, в последнее время у UserDefaults все чаще возникают проблемы с возвратом нулевых данных, когда устройство заблокировано и iOS предварительно «разогревает» ваше приложение. В сочетании с API, который не очень хорошо раскрывает эту информацию, вы можете легко оказаться в ситуации с трудноотслеживаемыми ошибками и потерей данных. Эта библиотека стремится решить эту проблему, не шифруя файл и обеспечивая более надежный доступ к сохраненным данным (хотя и менее безопасный, так что не храните конфиденциальные данные), и добавляя к этому некоторые приятные мелочи.

Как и UserDefaults, TinyStorage предназначен для использования с относительно небольшими значениями. Не храните в TinyStorage массивные базы данных, так как он не оптимизирован для этого, но он достаточно быстр для извлечения сохраненных типов Codable. В качестве ориентира, размер хранилища не должен превышать 1 МБ.

TinyStorage на GitHub: https://github.com/christianselig/TinyStorage
Платформа: iOS
⭐️: 182

AppFiles - Mobile Development

11 Oct, 09:48


Видео и подкасты за неделю @AppFiles

(iOS Ru) Собеседование iOS-разработчика: проектирование и лайфкодинг (+ все собеседования)
(iOS En) Improve Scroll Transitions | SwiftUI
(iOS En) Grid Multi-Selection using Pan Gesture | SwiftUI
(iOS En) How to Fix UIKit and SwiftUI Menu Buttons (make them easier to tap)
(iOS En) TDD Basics with SwiftUI
(iOS En) Adopt iPhone 16 Camera Control into your SwiftUI App
(iOS En) WWDC22: Design protocol interfaces in Swift
(And En) Now in Android: 110 - Android 15, Credential Manager, Android Studio Koala, Compose for TV
(And En) FULL Guide to Kotlin's Inline Keyword (inline, crossinline & noinline)
(And En) Micro Open Source: From Passion to Pet Project Publication
(Crs Ru) Flutter Web глазами мобильного разработчика
(Crs En) Build a Book Library App for Android & iOS using ROOM KMP (MVVM)
(Dev Ru) Мобильная разработка в Алисе и YaOS: как это работает
(Dev Ru) Путь тестировщика: ошибки, опыт, деньги
(Dev Ru) Перформанс мобильных приложений
(Dev Ru) Дизайн-система 2.0: менеджеры нужны
(Dev Ru) Двое за ноутом, не считая copilot’а, или Как внедрить парное программирование
(Dev Ru) Так много тимлидов хороших и разных. А я какой?
(Dev Ru) Стартап мечты превратился в кошмар
(Dev En) Databases In-Depth – Complete Course
(Dev En) Electron Course - Code Desktop Applications (inc. React and Typescript)
(Dev En) AWS Certified AI Practitioner (AIF-C01) – Full Course to PASS the Certification Exam

#ios #android #mobile #video

AppFiles - Mobile Development

11 Oct, 07:47


MusicSearch - приложение для Android, позволяющее просматривать песни, исполнителей и все, что с ними связано, используя MusicBrainz API.

Мультиплатформенные дистрибутивы находятся в разработке. Только приложение для Android считается стабильным.

MusicSearch на GitHub: https://github.com/lydavid/MusicSearch
Платформа: Android
⭐️: 40