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

Apple Intelligence, Apple Vision Pro, Swift 6, Xcode 16 и все, что было между ними, - это был захватывающий год. Вдохновитесь самыми популярными видео с WWDC 2024.

Плейлист: https://www.youtube.com/playlist?list=PLjODKV8YBFHYDZEQ7xPQk2RYT4Y1pgNIB
Платформа: iOS
3
Xcbeautify - украшатель xcodebuild, более быстрая альтернатива xcpretty, написанная на Swift.

Фичи: читаемый и подсвеченный вывод, поддержка вывода новой системы сборки, поддержка параллельного вывода тестирования в Xcode, поддержка форматирования вывода менеджера пакетов Swift, поддержка генерации отчетов JUnit, поддержка macOS и Linux, xcbeautify компилируется в статичный бинарник, который можно взять с собой куда угодно (это также означает меньшую зависимость от Ruby в вашей среде разработки и CI).

Xcbeautify на GitHub: https://github.com/cpisciotta/xcbeautify
Платформа: iOS
⭐️: 1K
1
Passage - это библиотека Kotlin Multiplatform, предназначенная для упрощения процессов аутентификации на платформах Android и iOS. Построенная на базе Firebase Authentication, Passage абстрагирует общие операции и предоставляет composable API для управления аутентификацией с помощью популярных провайдеров, таких как Google, Apple и Email/Password.

Passage на GitHub: https://github.com/Tweener/passage
Платформа: Android/кроссплатформа
⭐️: 29
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Переход между общими элементами в Jetpack Compose

На мероприятии I/O 2024 компания Google представила функцию Shared Element Transitions для Jetpack Compose!

API Shared Element Transition предоставляет возможность создавать плавные и визуально привлекательные переходы между композитами, которые используют один и тот же элемент пользовательского интерфейса. Это помогает поддерживать визуальную непрерывность и улучшает пользовательский опыт, особенно при навигации по разным экранам.

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

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

Статья: https://medium.com/simform-engineering/shared-element-transition-in-jetpack-compose-ad77ba202e49
Платформа: Android
1
Улучшаем предварительные просмотры Xcode с помощью покрытия модульными тестами

Предварительный просмотр может быть подвержен неожиданным сбоям. Например, кто-то из вашей команды добавляет свойство в представление, использующее @EnvironmentObject. Если он забудет обновить каждый вызов, чтобы установить окружение, приложение упадет. Любой предварительный просмотр, использующий представление без environment, также будет аварийно завершен, когда Xcode попытается отобразить предварительный просмотр. Эта проблема еще более сложная, потому что в Xcode нет встроенного способа проверить, что превью не упадут, без ручного тестирования каждого из них — а это заняло бы невероятно много времени.

Статья: https://apptractor.ru/info/articles/uluchshaem-predvaritelnye-prosmotry-xcode-s-pomoschyu-pokrytiya-modulnymi-testami.html
Платформа: iOS
👍1
FlipNumberView имитирует аналоговый перекидной дисплей (например, такой, как в аэропорту или на вокзале). Он хорошо абстрагирован и прост в использовании. Еще есть FlipImageView, который позволяет запускать аналогичную анимацию на любом представлении, например, на изображениях. Рабочие примеры смотрите в примере проекта (чтобы быстро открыть пример проекта, можно запустить pod try JDFlipNumberView).

FlipNumberView на GitHub: https://github.com/calimarkus/JDFlipNumberView
Платформа: iOS
⭐️: 787
Распознавание текста в реальном времени с Jetpack Compose

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

Статья: https://apptractor.ru/info/articles/raspoznavanie-teksta-v-realnom-vremeni-s-jetpack-compose.html
Платформа: Android
1🥰1
Visual Code Space - это современный редактор кода, разработанный для устройств на Android. С его помощью вы сможете создавать код на ходу, используя удобную и эффективную среду. Забудьте о громоздких настройках, погрузитесь в кодинг с интуитивно понятным интерфейсом и мощными функциями.

Visual Code Space на GitHub: https://github.com/Visual-Code-Space/Visual-Code-Space
Платформа: Android
⭐️: 265
😱1
Reddit улучшил скорость запуска приложений более чем на 50% с помощью базовых профилей и R8

Reddit - один из крупнейших в мире интернет-форумов, объединяющий бесчисленные сообщества, ищущие развлечения, ответы на повседневные вопросы и многое другое. Недавно команда оптимизировала свое приложение для Android, чтобы улучшить скорость запуска и повысить производительность рендеринга с помощью Baseline Profiles. Но на этом команда не остановилась. Разработчики приложения Reddit также включили компилятор R8 на полный режим, чтобы максимально оптимизировать байткод, и использовали Jetpack Compose для переписывания устаревшего пользовательского интерфейса, улучшая работу пользователей и разработчиков.

Статья: https://android-developers.googleblog.com/2024/12/reddit-improved-app-startup-speed-using-baseline-profiles-r8.html
Платформа: Android
👍3
CoordinatorX - навигационный фреймворк SwiftUI для iOS, macOS, tvOS, watchOS и visionOS, основанный на паттерне Координатор.

CoordinatorX на GitHub: https://github.com/edon2005/CoordinatorX
Платформа: iOS
⭐️: 5

Еще: видео "Паттерн Координатор для навигация в iOS-приложении"
Как собрать и внедрить высоконагруженный модуль. Опыт Звука

На связи Ринат Кутуев, iOS-разработчик в платформенной команде HiFi-стриминга Звук. В iOS-разработке уже 5 лет. Успел заложить архитектуру для 3 высоконагруженных приложений, которые стабильно расширяют свой функционал. Сегодня я поделюсь своим опытом построения сложного модуля на примере сетевого слоя и расскажу, какими инструментами и подходами мы пользовались в процессе работы.

Статья: https://habr.com/ru/companies/zvuk/articles/864166/
Платформа: iOS
1😁1
Добавляем Image Playground в приложение

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

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

Статья: https://apptractor.ru/info/articles/dobavlyaem-image-playground-v-prilozhenie.html
Платформа: iOS
1👍1
Интегрируем Rust в Android-приложение

Rust — это язык системного программирования общего назначения, который существует уже довольно давно. Его можно использовать для выполнения задач, которые реализуются сейчас на C и C++, но с гораздо большей безопасностью памяти. Это позволяет использовать Rust для написания программ или скриптов для многих операционных систем, включая Android. Вы можете задаться вопросом, как это возможно и есть ли простой способ сделать это. Вот об этом эта статья!

Статья: https://apptractor.ru/info/articles/integriruem-rust-v-android-prilozhenie.html
Платформа: Android
👍2
ADBR-Server - современная реализация сервера Android Debug Bridge (ADB), написанная на Rust, с упором на сопровождаемость кода, стабильность и лучшую обработку ошибок. В настоящее время поддерживает только Linux-системы и USB-устройства (пока что).

Этот сервер работает в тандеме с ADBR Client, чтобы обеспечить полную замену ADB. Вместе они обеспечивают повышенную стабильность, лучшую обработку ошибок и уникальные возможности при использовании в паре. В будущих выпусках будут представлены эксклюзивные функции, использующие совместную работу клиента и сервера.

Проект ADBR направлен на улучшение возможностей отладки Android-приложений.

ADBR-Server на GitHub: https://github.com/xDvir/ADBRServer
Платформа: Android
⭐️: 21
👍2
Ищем неиспользуемый код с Periphery

Недавно мне рассказали о Periphery, инструменте командной строки для поиска неиспользуемого кода в проектах на Swift. Для чего нужен свободный от работы день, как не для того, чтобы весело поиграть с новым инструментом?

Статья: https://apptractor.ru/info/articles/ischem-neispolzuemyy-kod-s-periphery.html
Платформа: iOS
👍2
Почему никогда не следует использовать !! в Kotlin

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

Статья: https://apptractor.ru/info/articles/pochemu-nikogda-ne-sleduet-ispolzovat-v-kotlin.html
Платформа: Android
2
Понимаем целостность ViewModel при изменении конфигурации в Android

Одна из самых распространенных проблем, с которой сталкиваются Android-разработчики - управление данными при изменении конфигурации, например при повороте экрана. Традиционно для сохранения и восстановления данных требовалась обработка onSaveInstanceState() или использование сохраненных фрагментов. Архитектурный компонент ViewModel упрощает этот процесс, выживая при изменении конфигурации и сохраняя данные, связанные с пользовательским интерфейсом. Но как ViewModel достигает этого сохранения внутри себя? Давайте погрузимся в механику и внутреннюю реализацию системы ViewModel.

Статья: https://proandroiddev.com/understanding-viewmodel-persistence-across-configuration-changes-in-android-4dc26fa8ae59
Платформа: Android
1
Фоновая загрузка на сервер в iOS 🚀

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

Статья: https://medium.com/@diananareiko8/background-upload-in-ios-f885ed439bd3
Платформа: iOS
👍2🔥1
SRNetworkManager - это мощный и гибкий сетевой уровень для приложений Swift. Он обеспечивает общий, ориентированный на протоколы подход к обработке API-запросов, поддерживая как Combine, так и парадигму async/await. Этот пакет разработан как простой в использовании, хорошо настраиваемый и полностью совместимый со Swift 6 и протоколом Sendable.

SRNetworkManager на GitHub: https://github.com/siamakrostami/SRNetworkManager
Платформа: iOS
⭐️: 16