AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.13K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Все, что вы хотели знать о флагах в эмодзи (но не знали, что вам это нужно)

Допустим, вы создаете аналитическое приложение и вам нужен простой способ обозначить местоположение аналитического события. Если вы, как и я, подумали: «Да, флажки эмодзи — забавный способ показать страны», то наверняка сразу же начали создавать такой словарь

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
Foqos - блокировка приложений с помощью NFC-метки или QR-кода

Foqos поможет вам одним касанием отключить самые отвлекающие приложения — с помощью NFC-меток или QR-кодов — чтобы вы могли сосредоточиться и выработать полезные цифровые привычки. Это бесплатное приложение с открытым исходным кодом, которое является альтернативой Brick, Bloom, Unpluq, Blok и другим.

Foqos на GitHub: https://github.com/awaseem/foqos
Платформа: iOS
⭐️: 172
Строки в Swift

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

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

Статья: https://habr.com/ru/articles/948870/
Платформа: iOS
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов

В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это будет полезно тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проек

Статья: https://habr.com/ru/companies/cian/articles/920328/
Платформа: Android
Горизонтальный селектор/слайдер/линейка на SwiftUI

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

В интернете есть несколько решений. Однако ни одно из них не делало того, чего я хочу, и не было реализовано так, как мне нравится. И, как вы, возможно, уже знаете меня, если мне не понравится то, что есть, я просто ДЕЛАЮ ЭТО САМ.

Идея довольно проста, но есть много мелочей, на которые нужно обратить внимание, чтобы всё работало гладко, так как нам (или, по крайней мере, мне) нравится.

Давайте посмотрим.

Статья: https://apptractor.ru/info/articles/gorizontalnyy-selektor-slayder-lineyka-na-swiftui.html
Платформа: iOS
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
Как Shopify перевела свои крупнейшие приложения на новую архитектуру React Native

Команда JavaScript for Devs подготовила перевод кейса Shopify о миграции их крупнейших приложений на новую архитектуру React Native. Результат впечатляет: еженедельные релизы не остановились, стабильность сохранилась, а производительность выросла.

Статья: https://habr.com/ru/articles/949002/
Платформа: кроссплатформа
👍1
Новые подходы в Swift для тестирования: разбор технологии Swift Testing

Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию. Кирилл Гусев из ОК рассказывает о том, какие возможности предоставляет Swift Testing и как они в компании планируют применять их.

Статья: https://habr.com/ru/companies/vk/articles/949260/
Платформа: iOS
👍1
Проблема при выделении текста в TextView на Android 15+

При использовании TextView с выравниванием текста по ширине (justificationMode = JUSTIFICATION_MODE_INTER_WORD) возникает следующая проблема: во время выделения текста маркеры и подсветка часто смещаются. В результате выделяется не то слово, которое должно быть, маркеры не совпадают с символами.

Статья: https://android-tools.ru/coding/problema-pri-vydelenii-teksta-v-textview-na-android-15/
Платформа: Android
😱1
Я заставил мое приложение работать в офлайне - архитектурный сдвиг

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

А когда я отключил ниточки, марионетка рухнула.

И я принял решение. Я переделаю своё приложение так, чтобы оно работало только в offline режиме.

Никаких оправданий. Никаких сообщений «попробуйте ещё раз позже». Только локальная архитектура.

И этот выбор изменил всё в моём подходе к разработке приложений.

Статья: https://apptractor.ru/info/articles/ya-zastavil-moe-prilozhenie-rabotat-v-oflayne-arhitekturnyy-sdvig.html
Платформа: разработка
1
Memo Notes - приложение для ведения заметок

Memo Notes — это лёгкое и интуитивно понятное приложение для создания заметок, разработанное для устройств iOS, призванное помочь пользователям записывать и организовывать свои мысли, задачи и идеи. Благодаря понятному и удобному интерфейсу Memo Notes позволяет быстро создавать, редактировать и эффективно управлять заметками. Работайте продуктивно благодаря таким функциям, как удобное редактирование, свайп для быстрого обновления и удобное использование на всех ваших устройствах.

Memo Notes на GitHub: https://github.com/KhubaibKhan4/MemoNotes
Платформа: iOS
⭐️: 16
👍1
Разбираемся с existential container в Swift

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

Статья: https://habr.com/ru/articles/949268/
Платформа: iOS
👍1
Погружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом

Меня зовут Геннадий Денисов, я руковожу одной из команд разработки мобильного Яндекс Браузера для Android. Недавно в рамках одного проекта мы интегрировали С++‑код в мобильное приложение Браузера. В этой статье я поделюсь основными нюансами работы с Java Native Interface (JNI), инструментами для упрощения разработки и подробностями нашего подхода.

Статья: https://habr.com/ru/companies/yandex/articles/948570/
Платформа: Android
👍1
Гайд по File Templates: как шарить шаблоны с однотипным кодом

Расскажу, как можно шарить File Templates для своей команды, чтобы облегчить жизнь другим и сэкономить немного времени. Причем коллегам ничего самостоятельно не придется настраивать: подтянутый из git-а репозиторий с кодом все сделает сам. Эта статья — бонус к трем предыдущим, в которых я рассказывал, как уменьшить написание boilerplate-кода.

Статья: https://habr.com/ru/companies/tbank/articles/949658/
Платформа: Android
👍1
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
🤯5👍2🔥1
Valiutchik - курсы обмена валют в Беларуси

Valiutchik - это приложение для Android, помогающее найти лучшие курсы обмена валют в Беларуси. Приложение позволяет быстро загрузить лучшие курсы обмена валют в некоторых городах Беларуси. Нажав на элемент списка, можно найти ближайшие отделения банков с лучшими курсами на карте. Длительное нажатие на карту с валютой позволяет скопировать курс обмена в буфер обмена, например, для вставки в калькулятор. Информация о курсах обмена предоставляется ​​MyFin.

Это небольшой проект, призванный стать полигоном для самых новых и ярких разработок, полностью написан на Kotlin, использует Koin, корутины, чистую архитектуру, Room, AndroidX Benchmark и модульные тесты. Любой вклад приветствуется.

Valiutchik на GitHub: https://github.com/fobo66/valiutchik-android
Платформа: Android
⭐️: 11
👍1👎1
Почему большие проекты 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
👍2🤔1
Swift Explorer - глубокий анализ кода Swift

Swift Explorer - инструмент для быстрого исследования и анализа Swift Intermediate Representation (IR), созданного компилятором LLVM, и сгенерированного ассемблерного кода.

Что дает:

• Глубокое понимание кода: Разработчики могут видеть, как код Swift преобразуется в LLVM IR и код ассемблера, что помогает им лучше понимать оптимизацию и низкоуровневое поведение.
• Расширенная отладка: Просмотр LLVM IR и ассемблерного кода может помочь выявить проблемы производительности или трудноотслеживаемые ошибки в исходном коде.
• Образование и обучение: Ценный образовательный инструмент для изучения компиляторов и того, как различные языковые конструкции преобразуются в промежуточное представление и код ассемблера.
• Оптимизация: Помогает выявить и оптимизировать фрагменты кода, которые неэффективно компилируются, предоставляя информацию из LLVM IR и кода ассемблера.
• Сравнительный анализ: Позволяет сравнить, как разные подходы или версии кода генерируют различный IR и ассемблерный код, облегчая выбор оптимальных практик программирования.

Swift Explorer на GitHub: https://github.com/heroesofcode/swift-explorer
Платформа: iOS
⭐️: 9
2👍1
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Code along with the Foundation Models framework
(iOS En) SwiftUI Pro Components Collection - Build Amazing iOS Apps Faster!
(iOS En) SwiftUI WebView reloaded: adding a "View Original" feature
(iOS En) Convert SwiftUI Views into Multi-Page PDF File
(iOS En) Is MVVM a bad architecture for SwiftUI?
(iOS En) iOS 26 Custom Menu Using SwiftUI
(And Ru) Роболектрик-скриншот-тесты на платформе Android
(And Ru) Поймай меня, если сможешь: как обнаружить Root и Frida
(And En) Optimize your app battery drain using Android Vitals wake lock metric
(And En) Threads vs. Kotlin Coroutines vs. Dispatchers
(And En) Everything About Context Parameters In Kotlin (Super Cool New Feature!)
(Crs En) Make your UI Beautiful and Adaptive on each platform (Compose Multiplatform
(Dev Ru) Кто такой сеньор глазами тимлида
(Dev Ru) Как нейросети обещали ускорить тестирование, а сделали только хуже
(Dev Ru) Строим продукт на основе AI
(Dev En) REST API Design for Mobile Apps: A Complete Guide
(Dev En) Your First AI Agent in Kotlin
(Dev En) How to Build Advanced AI Agents – Course for Beginners (LiveKit, Exa, LangChain)

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

(iOS Ru) Ускоряем SwiftUI с Observable
(iOS Ru) Как укротить виджеты в супераппе?
(iOS Ru) UICollectionViewLayout с самого начала
(iOS Ru) UITableView с различными типами ячеек
(And Ru) Размер имеет значение: как измерить и уменьшить вес Android-приложения
(And Ru) Установка Android-приложений от доисторических времен до наших дней
(Crs Ru) React Native перевернул игру
(Crs Ru) Темная сторона изолятов в Dart
(Dev Ru) Интероп – неизбежность в больших системах: C и C++, JNI, WinAPI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Миграция на SPM: что мы выиграли и что потеряли

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

Статья: https://habr.com/ru/companies/tuturu/articles/948276/
Платформа: iOS
👍1
Загрузка данных во ViewModel: рекомендации и Flow-based архитектура

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

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

Рассматривайте статью как снапшот моих навыков и знаний в 2025 году.

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