AppFiles - Mobile Development
2.11K subscribers
2.71K photos
38 videos
10 files
3.64K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Как делать простые анимированные онбординги в Lottie без After Effects

Меня зовут Михаил Мурзак, я продуктовый дизайнер в Ozon Seller (сайт и приложение продавца).

Время от времени мы делаем анимированные онбординги крупных фич в мобильном приложении и долгое время использовали для этих целей Adobe After Effects с плагином Bodymovin (для экспорта в Lottie), но каждый раз для меня это было мучением, поэтому я решил пересесть на официальный клиент Lottie и написал этот гайд для коллег.

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

Статья: https://habr.com/ru/companies/ozontech/articles/845696/
Платформа: разработка
LiveKit - это проект с открытым исходным кодом, обеспечивающий масштабируемую многопользовательскую конференц-связь на основе WebRTC. Он предназначен для предоставления всего необходимого для создания в приложениях возможностей передачи видео-аудио данных в режиме реального времени.

Фичи:

• масштабируемый, распределенный WebRTC SFU (Selective Forwarding Unit)
• созданы для прода, поддерживают JWT аутентификацию
• надежные сетевые и коммуникационные возможности, UDP/TCP/TURN
• простота развертывания: один бинарник, Docker или Kubernetes
• обнаружение дикторов
• одновременное вещание
• сквозная оптимизация
• API для модерации
• сквозное шифрование
• SVC кодеки (VP9, AV1)
• веб-хуки

Есть полнофункциональные SDK для всех платформ, включая Jetpack Compose и SwiftUI, Flutter и React Native.

LiveKit на GitHub: https://github.com/orgs/livekit/repositories
Платформа: разработка
Видео и подкасты за неделю @AppFiles

(iOS Ru) Ускоряем SwiftUI с Observable
(iOS Ru) Как укротить виджеты в супераппе?
(iOS Ru) UICollectionViewLayout с самого начала
(iOS Ru) UITableView с различными типами ячеек
(iOS En) Let's Integrate SwiftData CRUD into the Notes App
(iOS En) SwiftUI - Rotating Characters Loader Tutorial
(iOS En) Deep Dive into TabView Changes in iOS18
(iOS En) Let's Make Notes App With Complex Transitions | SwiftData | SwiftUI
(iOS En) Testing 101: What Are Integration Tests & How to Write Them in Swift
(iOS En) SwiftUI - Image Presentation Animation Tutorial
(iOS En) WWDC22: The SwiftUI cookbook for navigation
(And Ru) Размер имеет значение: как измерить и уменьшить вес Android-приложения
(And Ru) Установка Android-приложений от доисторических времен до наших дней
(And En) Room Renovations - Android Conference Talks
(And En) How to Implement a Custom Swipe to Reveal in Jetpack Compose
(And En) Keyboard & Focus Management In Jetpack Compose
(And En) How easy is it to draw on GoogleMaps using Compose?
(Crs Ru) React Native перевернул игру
(Crs Ru) Темная сторона изолятов в Dart
(Dev Ru) Интероп – неизбежность в больших системах: C и C++, JNI, WinAPI
(Dev Ru) Что делать, если разработчики бесят
(Dev Ru) Процесс CI/CD в Авито: от комита до релиза
(Dev Ru) Clean Architecture (чистая архитектура, все для проекта любого размера, принципы, мышление)
(Dev En) End-to-End Machine Learning Project – AI, MLOps

#ios #android #mobile #video
SwiftUI Flow Layout - HFlow и VFlow, аналогичные HStack и VStack. Упорядочивает представления по строкам и соответствующим образом нарезает новые строки, если элементы не помещаются в ограничивающее пространство.

SwiftUI Flow Layout на GitHub: https://github.com/tevelee/SwiftUI-Flow
Платформа: iOS
⭐️: 343
🔥2
Hotwire Native

Hotwire Native - это веб-фреймворк для создания нативных мобильных приложений. Он позволяет разработчикам создавать экраны на HTML и CSS и повторно использовать их на любой платформе. Hotwire Native предоставляет разработчикам полный доступ к базовым SDK и API для iOS и Android сразу после их выхода. Это позволяет небольшим командам создавать высокофункциональные, красивые и устойчивые мобильные приложения без головной боли и сложностей, связанных с традиционной нативной разработкой.

Сайт: https://native.hotwired.dev/
Платформа: кроссплатформа
🤡5
1726400252028198.webm
1.6 MB
Рисуя звезды: рисование с помощью Compose и Canvas

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

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

Статья: https://apptractor.ru/info/articles/risuya-zvezdy-risovanie-s-pomoschyu-compose-i-canvas.html
Платформа: Android
🏆1
YourSpace - приложение для Android с открытым исходным кодом, предназначенное для повышения безопасности семьи благодаря функциям обмена местоположением и общения в режиме реального времени. YourSpace призвано обеспечить душевное спокойствие, гарантируя безопасность ваших близких и способствуя беспрепятственному общению независимо от их местоположения.

YourSpace использует архитектурный паттерн MVVM и Jetpack Compose для декларативного построения современных пользовательских интерфейсов. Кроме того - корутины и Flow, Jetpack Navigation, Retrofit, Google Maps SDK, Fusion Location Provider, DataStore, Room, Firebase, Hilt.

YourSpace на GitHub: https://github.com/canopas/your-space-android
Платформа: Android
⭐️: 39
Предотвращение порчи кодовой базы в iOS-проектах с помощью прекоммит хуков

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

В этой статье я расскажу о том, как pre-commit Git hook может предотвратить подобные проблемы, автоматизируя проверку кода перед каждым коммитом.

Статья: https://apptractor.ru/info/articles/predotvraschenie-porchi-kodovoy-bazy-v-ios-proektah-s-pomoschyu-prekommit-hukov.html
Платформа: iOS
Koin: как сделать свой DI за 10 минут

Привет, меня зовут Иван Курак, я Android-разработчик приложения Ozon Job. В этой статье мы реализуем свой механизм, на котором построен Koin. Тем самым мы пройдём путь, который проходили его авторы при решении проблемы построения собственного DI.

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

Статья: https://habr.com/ru/companies/ozontech/articles/846482/
Платформа: Android
SymSpellSwift - Swift-реализация SymSpell, коррекции орфографии и нечеткого поиска.

Алгоритм исправления орфографии Symmetric Delete снижает сложность генерации кандидатов на редактирование и поиска по словарю для заданного расстояния Дамерау-Левенштейна. Он на шесть порядков быстрее (чем стандартный подход с удалениями + переносами + заменами + вставками) и не зависит от языка.

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

SymSpellSwift на GitHub: https://github.com/gdetari/SymSpellSwift
Платформа: iOS
⭐️: 4
Как ускорить запуск iOS-приложения в 2 раза с помощью Network Instrument

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

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

При анализе через Network Instrument мы нашли десяток разных проблем в наших приложениях. Уверен, одна из них есть и в вашем приложении.

Статья: https://habr.com/ru/companies/dododev/articles/846662/
Платформа: iOS
Как в Duolingo удалили 10,000 строк кода с помощью Reaper

Недавно мы изучили количество строк кода в каждом выпуске приложения, начиная с Duolingo 4.0 в 2014 году. Наша кодовая база сейчас почти в 20 раз больше, чем десять лет назад! Хотя большая кодовая база не является чем-то плохим по своей сути, есть определенные преимущества в ее сокращении.

Статья: https://apptractor.ru/info/articles/kak-v-duolingo-udalili-10-000-strok-koda-s-pomoschyu-reaper.html
Платформа: iOS
Стартовые профили: быстрое решение для болезненно медленных стартов приложений

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

Статья: https://proandroiddev.com/startup-profiles-the-quick-fix-for-painfully-slow-app-startups-2f1c9c0a8fd9
Платформа: Android

Поставьте 👍, если хотите эту статью на русском.
👍4
Библиотека Texty создана на основе базового текста Jetpack Compose. Это высококонфигурируемая библиотека Compose Multiplatform, которая позволяет отображать текст в различных стилях и обладает разными полезными функциями, вроде скроллинга или постепенного раскрытия. Независимо от того, создаете ли вы Android, iOS, настольное или веб-приложение, она предоставляет единый API для создания динамичных и визуально привлекательных текстовых меток.

Texty на GitHub: https://github.com/ArjunJadeja/Texty
Платформа: Android/кроссплатформа
⭐️: 38
Приглашаем на Mobile PeerLab #2 — камерную встречу для мобильных разработчиков

10 октября в Москве во второй раз пройдет PeerLab от экспертов Райдтеха Яндекс Go. Специалисты разберут кейсы, которые предложат участники: поговорят о DI-архитектуре, легаси и скорости сборки, сравнят KMP и Flutter, объяснят, чем отличаются техлиды от фичалидов, и поделятся советами о тестировании фичей.

После разбора кейсов гостей ждет afterparty, feature dev консультация и активности в реальной качалке — будем тренировать прогерские мышцы!

Реальные кейсы и ответы экспертов Яндекса на ваши вопросы о мобильной разработке — регистрируйтесь и зовите коллег!

Количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки
Быстрый доступ к VPN в iOS с помощью App Intents

Меня зовут Антон Долганов, я iOS-разработчик в компании Контур. Я работаю над инфраструктурными модулями и параллельно поддерживаю наше приложение Контур.Коннект, которое используется для подключения к внутреннему VPN и даёт доступ к корпоративным сервисам.

Недавно мы выпустили обновление Коннекта, добавив поддержку Быстрых команд (Shortcuts). Теперь можно включать и отключать VPN, даже не заходя в приложение. В этой статье я расскажу, как я это реализовал и почему это полезно.

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