AppFiles - Mobile Development
Ir al canal en Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Mostrar más2 166
Suscriptores
+124 horas
+17 días
+930 días
Archivo de publicaciones
Почему большие проекты Swift утыкаются в стену (и как пробиться сквозь нее)
С большими кодовыми базами Swift трудно работать - медленная сборка, нестабильное тестирование, сложные графы. Мы подробно разберёмся, почему инструментарий Apple испытывает трудности при масштабировании и как команды могут преодолеть эти трудности без React Native или Bazel.
Статья: https://apptractor.ru/info/articles/pochemu-bolshie-proekty-swift-utykayutsya-v-stenu-i-kak-probitsya-skvoz-nee.html
Платформа: iOS
Valiutchik - курсы обмена валют в Беларуси
Valiutchik - это приложение для Android, помогающее найти лучшие курсы обмена валют в Беларуси. Приложение позволяет быстро загрузить лучшие курсы обмена валют в некоторых городах Беларуси. Нажав на элемент списка, можно найти ближайшие отделения банков с лучшими курсами на карте. Длительное нажатие на карту с валютой позволяет скопировать курс обмена в буфер обмена, например, для вставки в калькулятор. Информация о курсах обмена предоставляется MyFin.
Это небольшой проект, призванный стать полигоном для самых новых и ярких разработок, полностью написан на Kotlin, использует Koin, корутины, чистую архитектуру, Room, AndroidX Benchmark и модульные тесты. Любой вклад приветствуется.
Valiutchik на GitHub: https://github.com/fobo66/valiutchik-android
Платформа: Android
⭐️: 11
Apple тихо переписывает iOS, и это не Swift или Objective-C
Apple переписывает ключевые части iOS на Rust для обеспечения безопасности и производительности. Это не убивает Swift, но означает, что фундамент Swift меняется. Меньше сбоев, лучшая безопасность и, возможно, начало будущего, основанного на Rust, для разработчиков iOS.
Статья: https://apptractor.ru/info/articles/apple-tiho-perepisyvaet-ios-i-eto-ne-swift-ili-objective-c.html
Платформа: iOS
Гайд по File Templates: как шарить шаблоны с однотипным кодом
Расскажу, как можно шарить
File Templates для своей команды, чтобы облегчить жизнь другим и сэкономить немного времени. Причем коллегам ничего самостоятельно не придется настраивать: подтянутый из git-а репозиторий с кодом все сделает сам. Эта статья — бонус к трем предыдущим, в которых я рассказывал, как уменьшить написание boilerplate-кода.
Статья: https://habr.com/ru/companies/tbank/articles/949658/
Платформа: AndroidПогружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом
Меня зовут Геннадий Денисов, я руковожу одной из команд разработки мобильного Яндекс Браузера для Android. Недавно в рамках одного проекта мы интегрировали С++‑код в мобильное приложение Браузера. В этой статье я поделюсь основными нюансами работы с Java Native Interface (JNI), инструментами для упрощения разработки и подробностями нашего подхода.
Статья: https://habr.com/ru/companies/yandex/articles/948570/
Платформа: Android
Разбираемся с existential container в Swift
Existential container - это структура данных в рантайме, которая хранит значение типа, скрытого за протоколом. Он появляется там, где мы используем название протокола в качестве типа переменной или аргумента функции. С помощью existential container реализован динамический вызов методов протокола, а также управление жизненным циклом внутреннего значения типа.
Статья: https://habr.com/ru/articles/949268/
Платформа: iOS
Memo Notes - приложение для ведения заметок
Memo Notes — это лёгкое и интуитивно понятное приложение для создания заметок, разработанное для устройств iOS, призванное помочь пользователям записывать и организовывать свои мысли, задачи и идеи. Благодаря понятному и удобному интерфейсу Memo Notes позволяет быстро создавать, редактировать и эффективно управлять заметками. Работайте продуктивно благодаря таким функциям, как удобное редактирование, свайп для быстрого обновления и удобное использование на всех ваших устройствах.
Memo Notes на GitHub: https://github.com/KhubaibKhan4/MemoNotes
Платформа: iOS
⭐️: 16
Я заставил мое приложение работать в офлайне - архитектурный сдвиг
Моё приложение на самом деле не было приложением. Оно было просто марионеткой, которой управлял интернет, дергая за все ниточки.
А когда я отключил ниточки, марионетка рухнула.
И я принял решение. Я переделаю своё приложение так, чтобы оно работало только в offline режиме.
Никаких оправданий. Никаких сообщений «попробуйте ещё раз позже». Только локальная архитектура.
И этот выбор изменил всё в моём подходе к разработке приложений.
Статья: https://apptractor.ru/info/articles/ya-zastavil-moe-prilozhenie-rabotat-v-oflayne-arhitekturnyy-sdvig.html
Платформа: разработка
Проблема при выделении текста в TextView на Android 15+
При использовании TextView с выравниванием текста по ширине (justificationMode = JUSTIFICATION_MODE_INTER_WORD) возникает следующая проблема: во время выделения текста маркеры и подсветка часто смещаются. В результате выделяется не то слово, которое должно быть, маркеры не совпадают с символами.
Статья: https://android-tools.ru/coding/problema-pri-vydelenii-teksta-v-textview-na-android-15/
Платформа: Android
Новые подходы в Swift для тестирования: разбор технологии Swift Testing
Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию. Кирилл Гусев из ОК рассказывает о том, какие возможности предоставляет Swift Testing и как они в компании планируют применять их.
Статья: https://habr.com/ru/companies/vk/articles/949260/
Платформа: iOS
Как Shopify перевела свои крупнейшие приложения на новую архитектуру React Native
Команда JavaScript for Devs подготовила перевод кейса Shopify о миграции их крупнейших приложений на новую архитектуру React Native. Результат впечатляет: еженедельные релизы не остановились, стабильность сохранилась, а производительность выросла.
Статья: https://habr.com/ru/articles/949002/
Платформа: кроссплатформа
ADB Keep Screen On - включенный экран при работе с ADB
ADB Keep Screen On - это простая утилита для командной строки, написанная на Go, которая предотвращает переход устройства Android в спящий режим при подключении через ADB по USB.
Она идеально подходит для разработчиков, тестировщиков и докладчиков, которым необходимо, чтобы экран оставался активным во время отладки, автоматизации или демонстраций в режиме реального времени без необходимости следить за состоянием зарядки или вручную настраивать параметры устройства.
ADB Keep Screen On на GitHub: https://github.com/nisrulz/adb-keep-screen-on
Платформа: Android
⭐️: 11
Горизонтальный селектор/слайдер/линейка на SwiftUI
Вот что у нас получится - горизонтальный селектор/слайдер/линейка, или как вы его там называете. Сегментированные деления с анимацией, тактильными эффектами и опциональным отображением меток.
В интернете есть несколько решений. Однако ни одно из них не делало того, чего я хочу, и не было реализовано так, как мне нравится. И, как вы, возможно, уже знаете меня, если мне не понравится то, что есть, я просто ДЕЛАЮ ЭТО САМ.
Идея довольно проста, но есть много мелочей, на которые нужно обратить внимание, чтобы всё работало гладко, так как нам (или, по крайней мере, мне) нравится.
Давайте посмотрим.
Статья: https://apptractor.ru/info/articles/gorizontalnyy-selektor-slayder-lineyka-na-swiftui.html
Платформа: iOS
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов
В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это будет полезно тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проек
Статья: https://habr.com/ru/companies/cian/articles/920328/
Платформа: Android
Строки в Swift
Сегодня поговорим о теме, которая вроде бы знакома каждому разработчику, но при этом часто остаётся в тени. Речь пойдёт о строках в Swift.
Каждый, кто писал или пишет приложения на этом языке, так или иначе работает со строками. Но задумывались ли вы когда-нибудь, как они устроены внутри? В этой статье я постараюсь приоткрыть завесу и рассказать, какие тайны скрывают строки в Swift.
Статья: https://habr.com/ru/articles/948870/
Платформа: iOS
Foqos - блокировка приложений с помощью NFC-метки или QR-кода
Foqos поможет вам одним касанием отключить самые отвлекающие приложения — с помощью NFC-меток или QR-кодов — чтобы вы могли сосредоточиться и выработать полезные цифровые привычки. Это бесплатное приложение с открытым исходным кодом, которое является альтернативой Brick, Bloom, Unpluq, Blok и другим.
Foqos на GitHub: https://github.com/awaseem/foqos
Платформа: iOS
⭐️: 172
Все, что вы хотели знать о флагах в эмодзи (но не знали, что вам это нужно)
Допустим, вы создаете аналитическое приложение и вам нужен простой способ обозначить местоположение аналитического события. Если вы, как и я, подумали: «Да, флажки эмодзи — забавный способ показать страны», то наверняка сразу же начали создавать такой словарь
let emojiFlags = [ "AU": "🇦🇺", "BE": "🇧🇪", "BR": "🇧🇷", "BS": "🇧🇸", ... ]Но подождите. Оказывается, есть гораздо более простой способ сделать это (ну как «простой»… с программной точки зрения). Статья: https://apptractor.ru/info/articles/vse-chto-vy-hoteli-znat-o-flagah-v-emodzi-no-ne-znali-chto-vam-eto-nuzhno.html Платформа: iOS
SwiftUI: Горизонтальный пикер/слайдер/линейка
Если стандартные слайдеры уже надоели, посмотрите, как создать кастомный горизонтальный Dial Picker — компонент, похожий на линейку или шкалу настройки.
В статье автор подробно разбирает создание такого элемента с нуля.
Статья: https://levelup.gitconnected.com/swiftui-horizontal-dial-picker-slider-ruler-8b3681fc9a00
Платформа: iOS
Поставь 👍, если хотите перевод на русский.
📺 Видео и подкасты за неделю @AppFiles
•
(iOS Ru) Пишем видеоплеер под iOS с нуля
• (iOS En) The curious case of RETROACTIVE attribute in Swift
• (iOS En) iOS 26 Custom Animated ToolBar Using SwiftUI
• (iOS En) Mastering iOS 26 Toolbars & Modal Sheets in SwiftUI
• (And Ru) Разбор кода: пиксельная погода на Kotlin
• (And En) Shadows In Compose | Jetpack Compose Tips
• (And En) Firebender - TypeAlias Show
• (Crs En) Multi-Module Architecture in KMP for Beginners (Kotlin Multiplatform)
• (Crs En) Building a macOS Screen Saver with Kotlin
• (Dev Ru) Давайте потестируем Webview
• (Dev Ru) Сколько кнопок нажимает ваш автотест?
• (Dev Ru) Язык программирования Gleam — Gleam, Erlang VM, BEAM, Elixir vs Gleam
• (Dev En) Charts, Code, and Sails: Winning a Regatta with Kotlin Notebook
Прошлогодние видео:
• (And Ru) Бессмертное приложение
• (And Ru) Укрощаем UDF state-based архитектуры. Реальные кейсы в больших приложениях
• (Dev Ru) Заработок на Open Source. Decompose. Будущее KMP. Аркадий Иванов
• (Dev Ru) Грейд в IT
• (Dev Ru) Как устроен Yandex Mobile Ads SDK
• (Dev Ru) Паттерны SDUITo Do - ведение дел на Jetpack Compose
To Do - простое приложение для ведения дел на Jetpack Compose с настраиваемыми темами Material Design 3.
To Do на GitHub: https://github.com/Super12138/ToDo
Платформа: Android
⭐️: 41
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
