Что такое Kotlin Symbol Processing (KSP)
В Dagger появилась поддержка KSP и самое время разобраться, что же это такое. Kotlin Symbol Processing (KSP) — это упрощенный API для создания плагинов к компиляторам, который позволяет использовать возможности Kotlin, сохраняя при этом минимальную кривую обучения. По сравнению с KAPT процессоры аннотаций, использующие KSP, могут работать в 2 раза быстрее.
Статья: https://apptractor.ru/info/articles/ksp.html
Платформа: Android
В Dagger появилась поддержка KSP и самое время разобраться, что же это такое. Kotlin Symbol Processing (KSP) — это упрощенный API для создания плагинов к компиляторам, который позволяет использовать возможности Kotlin, сохраняя при этом минимальную кривую обучения. По сравнению с KAPT процессоры аннотаций, использующие KSP, могут работать в 2 раза быстрее.
Статья: https://apptractor.ru/info/articles/ksp.html
Платформа: Android
❤2
Forwarded from Mobile Development by AppTractor
Инженеры AvitoTech разработали инструмент для ускорения автотестов мобильных приложений. Знакомьтесь, Emcee.
Тест-раннер раскидывает тесты на несколько воркеров, параллелит их и формирует единый файл с результатами. Время полного тестирования сокращается в разы, а разработчики освобождаются от рутины.
Можно попробовать бесплатно или сразу разогнать тестирование на полную мощность. Больше подробностей — в официальном канале Emcee.
Подписывайтесь!
Реклама ООО "Авито Тех", ИНН 9710089440
erid: LdtCK4J7b
Тест-раннер раскидывает тесты на несколько воркеров, параллелит их и формирует единый файл с результатами. Время полного тестирования сокращается в разы, а разработчики освобождаются от рутины.
Можно попробовать бесплатно или сразу разогнать тестирование на полную мощность. Больше подробностей — в официальном канале Emcee.
Подписывайтесь!
Реклама ООО "Авито Тех", ИНН 9710089440
erid: LdtCK4J7b
Продолжаем осваивать StoreKit 2
• Осваиваем StoreKit 2
• ProductView и StoreView в SwiftUI
• SubscriptionStoreView в SwiftUI
Платформа: iOS
• Осваиваем StoreKit 2
• ProductView и StoreView в SwiftUI
• SubscriptionStoreView в SwiftUI
Платформа: iOS
👍1
Crush - библиотека, расширяющая возможности CoreData за счет обеспечения большей безопасности типов и интуитивно понятной функциональности.
Crush на GitHub: https://github.com/ezoushen/Crush
Платформа: iOS
⭐️: 24
Crush на GitHub: https://github.com/ezoushen/Crush
Платформа: iOS
⭐️: 24
GitHub
GitHub - ezoushen/Crush: Code with Core Data in a Swifty way
Code with Core Data in a Swifty way. Contribute to ezoushen/Crush development by creating an account on GitHub.
Пятничная задача: что такое выведение типа?
Anonymous Quiz
15%
Печать переменной с ее типом
76%
Определение типа переменной по значению
6%
Объединение переменных нескольких типов
3%
Указание компилятору не выводить ошибку для данной переменной
👍1
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрели/выпустили какое-то другое интересное видео? Отправьте боту🧑🏻💻
•
(iOS Ru)
Простая анимация для всплывающего окна•
(iOS Ru)
Как мы делали новую iOS-камеру ВКонтакте и VK Клипов•
(iOS Ru)
Показываем красивое с помощью видеоредактора в VK Клипах на iOS•
(iOS En)
SwiftUI Animated Tab Icons - Animated SF Symbols•
(iOS En)
Build Switcher: Local Build Caching for Xcode•
(iOS En)
How to Save and Manage Data with Core Data in Swift•
(iOS En)
Using @_exported attribute for Simplified Module Imports•
(iOS En)
Enhancements to ScrollView in iOS 17•
(And Ru)
Кодогенерация. KAPT. KSP. Manual DI•
(And Ru)
Android-разработчик: Middle за 1 год в Казахстане•
(And En)
Full Guide to Manual Dependency Injection + Removing Dagger•
(And En)
How to create an advanced text validation with Combine•
(And En)
Using the Gradle Version Catalog in Android projects•
(Dev Ru)
VR: как это работает•
(Dev Ru)
Podlodka #334: стартап-акселераторы•
(Dev Ru)
Мобильные виджеты•
(Dev Ru)
5 проектов выходного дня, которые значительно повысят ваши навыки кодинга•
(Dev Ru)
Почему стоит вкладываться в опенсорс•
(Mrk Ru)
Как правильно выстроить монетизацию в первую сессию пользователяПосмотрели/выпустили какое-то другое интересное видео? Отправьте боту🧑🏻💻
AppTractor
Простая анимация для всплывающего окна
Простая, но эффектная анимация для UIView.
MPV - готовый видео-плеер для Android, основанный на libmpv. В основных фичах - аппаратное и программное декодирование видео, поиск, управление громкостью на основе жестов, продвинутая обработка видео (интерполяция, масштабирование), проигрывание сетевых стримов, картинка в картинке, фоновое воспроизведение. MPV не является библиотекой, которую вы можете встроить в свое приложение, но примером для вдохновения и решения нужных задач.
MPV for Android на GitHub: https://github.com/mpv-android/mpv-android
Платформа: Android
⭐️: 1.5K
MPV for Android на GitHub: https://github.com/mpv-android/mpv-android
Платформа: Android
⭐️: 1.5K
Использование Compose для ТВ-версии приложения Иви
Недавно мы успешно выпустили версию для Android TV, используя инновационный инструмент — Jetpack Compose. Так как библиотека Compose для ТВ еще находится в альфа-версии, мы хотим поделиться своим опытом, рассказать о трудностях, с которыми столкнулись, и обратиться к вопросу: стоит ли использовать Jetpack Compose, особенно для ТВ-приложений?
Статья: https://habr.com/ru/companies/ivi/articles/757550/
Платформа: Android
Недавно мы успешно выпустили версию для Android TV, используя инновационный инструмент — Jetpack Compose. Так как библиотека Compose для ТВ еще находится в альфа-версии, мы хотим поделиться своим опытом, рассказать о трудностях, с которыми столкнулись, и обратиться к вопросу: стоит ли использовать Jetpack Compose, особенно для ТВ-приложений?
Статья: https://habr.com/ru/companies/ivi/articles/757550/
Платформа: Android
👍1
AppFlowy - открытая альтернатива Notion, системы управления проектами. Написана система на Flutter и Rust, а значит работает под любой платформой и вполне поддается кастомизации. Кроме того, хранит все данные на ваших собственных серверах, а значит вся информация находится полностью под вашим контролем.
AppFlowy на GitHub: https://github.com/AppFlowy-IO/appflowy
Сайт: https://appflowy.io/
Платформа: кроссплатформа
⭐️: 37.9K
AppFlowy на GitHub: https://github.com/AppFlowy-IO/appflowy
Сайт: https://appflowy.io/
Платформа: кроссплатформа
⭐️: 37.9K
Лучшие практики обработки ошибок в Kotlin
Одним из наиболее значимых преимуществ обработки ошибок в Kotlin является возможность лаконичной и понятной обработки исключений. Эта возможность помогает разработчикам быстро находить и устранять ошибки, сокращая время на отладку кода.
Kotlin обладает основными возможностями обработки ошибок, такими как Null Safety, let, оператор Элвис (?:), поздняя инициализация, безопасное приведение с помощью оператора 'as?'. Другие продвинутые техники обработки ошибок в Kotlin мы рассмотрим ниже.
Статья: https://apptractor.ru/info/articles/luchshie-praktiki-obrabotki-oshibok-v-kotlin.html
Платформа: Android
Одним из наиболее значимых преимуществ обработки ошибок в Kotlin является возможность лаконичной и понятной обработки исключений. Эта возможность помогает разработчикам быстро находить и устранять ошибки, сокращая время на отладку кода.
Kotlin обладает основными возможностями обработки ошибок, такими как Null Safety, let, оператор Элвис (?:), поздняя инициализация, безопасное приведение с помощью оператора 'as?'. Другие продвинутые техники обработки ошибок в Kotlin мы рассмотрим ниже.
Статья: https://apptractor.ru/info/articles/luchshie-praktiki-obrabotki-oshibok-v-kotlin.html
Платформа: Android
Продолжаем осваивать StoreKit 2
• Осваиваем StoreKit 2
• ProductView и StoreView в SwiftUI
• SubscriptionStoreView в SwiftUI
• Модификаторы представлений в SwiftUI
Платформа: iOS
• Осваиваем StoreKit 2
• ProductView и StoreView в SwiftUI
• SubscriptionStoreView в SwiftUI
• Модификаторы представлений в SwiftUI
Платформа: iOS
👍1
OpenAPI - это открытая спецификация для документирования HTTP API. Swift OpenAPI Generator - это плагин от Apple, который позволяет сразу генерировать “церемониальный” код, необходимый для выполнения вызовов API или реализации API сервера.
Swift OpenAPI Generator на GitHub: https://github.com/apple/swift-openapi-generator
Платформа: iOS
⭐️: 602
Swift OpenAPI Generator на GitHub: https://github.com/apple/swift-openapi-generator
Платформа: iOS
⭐️: 602
GitHub
GitHub - apple/swift-openapi-generator: Generate Swift client and server code from an OpenAPI document.
Generate Swift client and server code from an OpenAPI document. - apple/swift-openapi-generator
Две стратегии скриншот-тестирования в мобильных проектах
Инвестирование в скриншот-тесты (в первую очередь через дизайн-систему) позволяет проекту ловить больше визуальных регрессий в наборе тестов при одновременном сокращении количества интеграционных тестов в долгосрочной перспективе.
Статья: https://apptractor.ru/info/articles/dve-strategii-skrinshot-testirovaniya-v-mobilnyh-proektah.html
Платформа: тестирование
Инвестирование в скриншот-тесты (в первую очередь через дизайн-систему) позволяет проекту ловить больше визуальных регрессий в наборе тестов при одновременном сокращении количества интеграционных тестов в долгосрочной перспективе.
Статья: https://apptractor.ru/info/articles/dve-strategii-skrinshot-testirovaniya-v-mobilnyh-proektah.html
Платформа: тестирование
🔥1
Поваренная книга SwiftUI: cоздание и предварительный просмотр представления SwiftUI
Добро пожаловать в раздел «Начало работы с SwiftUI»! Здесь начинается ваш путь к тому, чтобы стать мастером SwiftUI.
Мы начнем с основ, изучим, как создать и просмотреть представление SwiftUI. Затем мы погрузимся в основополагающую концепцию SwiftUI — представления (View) и и их иерархия, где вы поймете структуру SwiftUI-приложений и то, как представления располагаются слоями.
Статья: https://apptractor.ru/info/articles/povarennaya-kniga-swiftui-cozdanie-i-predvaritelnyy-prosmotr-predstavleniya-swiftui.html
Платформа: iOS
Добро пожаловать в раздел «Начало работы с SwiftUI»! Здесь начинается ваш путь к тому, чтобы стать мастером SwiftUI.
Мы начнем с основ, изучим, как создать и просмотреть представление SwiftUI. Затем мы погрузимся в основополагающую концепцию SwiftUI — представления (View) и и их иерархия, где вы поймете структуру SwiftUI-приложений и то, как представления располагаются слоями.
Статья: https://apptractor.ru/info/articles/povarennaya-kniga-swiftui-cozdanie-i-predvaritelnyy-prosmotr-predstavleniya-swiftui.html
Платформа: iOS
Meeting Room Compose - приложение для организации видеоконференций (переговорных комнат) в режиме реального времени, созданное с помощью Jetpack Compose и Stream Video SDK for Compose и напоминающее по дизайну Google Meet.
Основная задача этого репозитория - продемонстрировать следующее:
• Полная реализация компонентов пользовательского интерфейса с использованием Jetpack Compose.
• Разработка приложения для митингов в реальном времени с бесшовным пользовательским интерфейсом, выполненным в стиле Google Meet путем настройки CallContent и ParticipantVideo.
• Создание экрана лобби, обеспечивающего управление физическими устройствами перед входом в переговорную комнату, включая переключение камеры/микрофона и переключение вида камеры.
• Иллюстрация подключения нескольких участников с различных платформ, таких как Web и Android.
Meeting Room Compose на GitHub: https://github.com/GetStream/meeting-room-compose
Платформа: Android
⭐️: 91
Основная задача этого репозитория - продемонстрировать следующее:
• Полная реализация компонентов пользовательского интерфейса с использованием Jetpack Compose.
• Разработка приложения для митингов в реальном времени с бесшовным пользовательским интерфейсом, выполненным в стиле Google Meet путем настройки CallContent и ParticipantVideo.
• Создание экрана лобби, обеспечивающего управление физическими устройствами перед входом в переговорную комнату, включая переключение камеры/микрофона и переключение вида камеры.
• Иллюстрация подключения нескольких участников с различных платформ, таких как Web и Android.
Meeting Room Compose на GitHub: https://github.com/GetStream/meeting-room-compose
Платформа: Android
⭐️: 91
Как публиковать и воспроизводить видео на Android с помощью опенсорс-библиотеки и стриминговой платформы EdgeЦентр
Сделать собственный сервис, где пользователи могли бы смотреть готовые видео на смартфонах в хорошем качестве, с адаптивным битрейтом кажется довольно сложной и дорогой задачей. Но на самом деле реализовать публикацию и проигрывание VOD (Video on Demand, видео по запросу) — не так уж и сложно, а в качестве составных частей можно использовать опенсорс.
Меня зовут Денис Филиппов, я руководитель отдела разработки стриминговой платформы EdgeЦентр. Сегодня расскажу вам, как с помощью нашей платформы и опенсорс-библиотеки tus-android-client сделать приложение, где пользователи смогут смотреть видео на Android.
Статья: https://habr.com/ru/companies/edgecenter/articles/759180/
Платформа: Android
Сделать собственный сервис, где пользователи могли бы смотреть готовые видео на смартфонах в хорошем качестве, с адаптивным битрейтом кажется довольно сложной и дорогой задачей. Но на самом деле реализовать публикацию и проигрывание VOD (Video on Demand, видео по запросу) — не так уж и сложно, а в качестве составных частей можно использовать опенсорс.
Меня зовут Денис Филиппов, я руководитель отдела разработки стриминговой платформы EdgeЦентр. Сегодня расскажу вам, как с помощью нашей платформы и опенсорс-библиотеки tus-android-client сделать приложение, где пользователи смогут смотреть видео на Android.
Статья: https://habr.com/ru/companies/edgecenter/articles/759180/
Платформа: Android
Что такое nullable тип:
Anonymous Quiz
1%
переменная типа обязательно обнуляется после инициализации
3%
переменная типа не может быть null (или nil)
5%
переменная по умолчанию null
91%
переменная может быть null
💩2👍1
Flow Engine — движок iOS-навигации в Revolut
Вы когда-нибудь слышали о шаблоне Координатор? Отлично, потому что статья не о нем. Я здесь, чтобы рассказать вам про кастомный движок навигации, наш Revolut Flow Engine.
Статья: https://apptractor.ru/info/articles/flow-engine-dvizhok-ios-navigatsii-v-revolut.html
Платформа: iOS
Вы когда-нибудь слышали о шаблоне Координатор? Отлично, потому что статья не о нем. Я здесь, чтобы рассказать вам про кастомный движок навигации, наш Revolut Flow Engine.
Статья: https://apptractor.ru/info/articles/flow-engine-dvizhok-ios-navigatsii-v-revolut.html
Платформа: iOS
Как создать корпоративное LLM-приложение: Уроки GitHub Copilot
На разработку GitHub Copilot у нас ушло три года, прежде чем мы официально представили его широкой публике. Чтобы перейти от идеи к производству, мы следовали трем этапам - найти, применить, расширить - в общих чертах основываясь на концепции разработки предпринимательских продуктов "Nail It, Then Scale It".
Статья: https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/
На разработку GitHub Copilot у нас ушло три года, прежде чем мы официально представили его широкой публике. Чтобы перейти от идеи к производству, мы следовали трем этапам - найти, применить, расширить - в общих чертах основываясь на концепции разработки предпринимательских продуктов "Nail It, Then Scale It".
Статья: https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/
Dynamic Island SwiftUI Demo like Telegram - пример пользовательской анимации, когда аватар пользователя плавно перетекает и растворяется в Динамическом острове, по примеру того, как это сделано в Telegram. Разработано полностью нативно с использованием Swift и SwiftUI.
Dynamic Island SwiftUI Demo like Telegram на GitHub: https://github.com/stolyarenkoks/Dynamic-Island-SwiftUI-Demo
Платформа: iOS
⭐️: 3
Dynamic Island SwiftUI Demo like Telegram на GitHub: https://github.com/stolyarenkoks/Dynamic-Island-SwiftUI-Demo
Платформа: iOS
⭐️: 3
🔥1