Forwarded from Swift Tips
SwiftUI: наконец-то пора? Опыт разработки на SwiftUI в контексте UIKit приложения
В статье автор делится опытом внедрения большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.
👉 Выбор в пользу SwiftUI: первые шаги и ожидания от перехода
👉 Заметки новичка: первые трудности работы с SwiftUI
👉 Открытие новых горизонтов: погружение в мир SwiftUI. Поможет ли нам ChatGPT?
👉 Пара слов про архитектуру
👉 Комбинирование SwiftUI и UIKit: преодоление технических преград
👉 Сюрпризы на пути: неожиданные ошибки и способы их решения
👉 Уроки и открытия: полезные находки и применение лучших практик
👉 Интеграция SwiftUI и UIKit: результаты
Читать (Ru)
В статье автор делится опытом внедрения большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.
👉 Выбор в пользу SwiftUI: первые шаги и ожидания от перехода
👉 Заметки новичка: первые трудности работы с SwiftUI
👉 Открытие новых горизонтов: погружение в мир SwiftUI. Поможет ли нам ChatGPT?
👉 Пара слов про архитектуру
👉 Комбинирование SwiftUI и UIKit: преодоление технических преград
👉 Сюрпризы на пути: неожиданные ошибки и способы их решения
👉 Уроки и открытия: полезные находки и применение лучших практик
👉 Интеграция SwiftUI и UIKit: результаты
Читать (Ru)
👍7🔥3🤔2
Погружение в мир Lint'a в Android-проекте
Статья с разбором того, как устроен Lint, из каких «сущностей» состоит + принцип работы почти любого детектора.
Рассматривается подключение Lint'a в проект и не очень сложные примеры с разбором неочевидных моментов, о которых обычно не пишут в статьях про знакомство с Lint'ом.
👉 Как устроен Lint
👉 Из каких «сущностей» состоит
👉 Подключение в проект
👉 Issue
👉 Detector
👉 AST и PSI
👉 Примеры
Читать (Ru)
Статья с разбором того, как устроен Lint, из каких «сущностей» состоит + принцип работы почти любого детектора.
Рассматривается подключение Lint'a в проект и не очень сложные примеры с разбором неочевидных моментов, о которых обычно не пишут в статьях про знакомство с Lint'ом.
👉 Как устроен Lint
👉 Из каких «сущностей» состоит
👉 Подключение в проект
👉 Issue
👉 Detector
👉 AST и PSI
👉 Примеры
Читать (Ru)
👍11🔥4👨💻1
Kotlin Roundup: KotlinConf 2024 Keynote Highlights
👉 Kotlin language features in 2.0 and beyond
👉 Android support for Kotlin Multiplatform
👉 Compose Multiplatform for iOS goes Beta
👉 Amper Update – Standalone build tool, new IDE features, and more
👉 Uber joins the Kotlin Foundation
👉 The Kotlin Foundation Grants Program continues in 2024
👉 Kotlin adoption in global companies
Читать (En)
👉 Kotlin language features in 2.0 and beyond
👉 Android support for Kotlin Multiplatform
👉 Compose Multiplatform for iOS goes Beta
👉 Amper Update – Standalone build tool, new IDE features, and more
👉 Uber joins the Kotlin Foundation
👉 The Kotlin Foundation Grants Program continues in 2024
👉 Kotlin adoption in global companies
Читать (En)
❤4👍3🔥1
Jetpack Compose: System UI Compatibility and Immersive Status Bar
Неплохая статья, в которой разбирается что вам нужно сделать и как, чтоб ваш красивый UI приложения был совместим с системным UI.
👉 EdgeToEdge
👉 WindowInsets
👉 Page Padding
👉 Adaptive Padding in Composables
👉 TopAppBar / NavigationBar
👉 StatusBar and NavigationBar Background Colors
Перевод от AppTractor → Jetpack Compose: совместимость с System UI и иммерсивная строка состояния
Читать (En)
Неплохая статья, в которой разбирается что вам нужно сделать и как, чтоб ваш красивый UI приложения был совместим с системным UI.
👉 EdgeToEdge
👉 WindowInsets
👉 Page Padding
👉 Adaptive Padding in Composables
👉 TopAppBar / NavigationBar
👉 StatusBar and NavigationBar Background Colors
Перевод от AppTractor → Jetpack Compose: совместимость с System UI и иммерсивная строка состояния
Читать (En)
👍11🔥3❤2👎1
Exploring the Compose Preview Screenshot Testing tool
Обзор анонсированного на Google I/O 2024 Compose Preview Screenshot Testing с простым примером.
👉 Setting up Screenshot Testing
👉 Creating a screenshot test
👉 Generating Screenshots
👉 Validating Screenshots
Читать (En)
Обзор анонсированного на Google I/O 2024 Compose Preview Screenshot Testing с простым примером.
👉 Setting up Screenshot Testing
👉 Creating a screenshot test
👉 Generating Screenshots
👉 Validating Screenshots
Читать (En)
🔥11❤2👍2
Forwarded from Swift Tips
WWDC 2024. Прогнозируем, что ждет разработчиков
Список новинок от Анны Жарковой, которые могут быть представлены на предстоящей WWDC и что хотелось бы увидеть больше всего.
🟢 Развитие новинок прошлого года
🟢 AI
🟢 Виджеты, лончеры, live-activity
🟢 Новинки Swift
🟢 SwiftUI
🟢 Безопасность, сеть
🟢 API AppStore
🟢 Обновления для устройств
Читать (Ru)
Список новинок от Анны Жарковой, которые могут быть представлены на предстоящей WWDC и что хотелось бы увидеть больше всего.
Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍2👌1
Как мы строили BDUI: опыт Яндекс Маркета
Ребята из Яндекс Маркета рассказывают как внедряли BDUI (Backend Driven UI) подход, с какими трудностями столкнулась, как работали над улучшениями и какой в итоге получили результат.
Читать (Ru)
Ребята из Яндекс Маркета рассказывают как внедряли BDUI (Backend Driven UI) подход, с какими трудностями столкнулась, как работали над улучшениями и какой в итоге получили результат.
Читать (Ru)
👍9🔥5❤4👎4🤔1
Как мы разобрали монолитное приложение для бизнеса на модули
В статье ребята из ПСБ делятся опытом миграции крупного монолитного приложения на модули.
Рассказывают все ключевые моменты, какие цели преследовали, с какими сложностями столкнулись и как их решали.
Читать (Ru)
В статье ребята из ПСБ делятся опытом миграции крупного монолитного приложения на модули.
Рассказывают все ключевые моменты, какие цели преследовали, с какими сложностями столкнулись и как их решали.
Читать (Ru)
👍6🔥6🤔2
Как и зачем мы затащили GeckoView в Почту
Ребята из VK рассказывают про самые неочевидные проблемы, с которыми столкнулись при работе с GeckoView и интеграцией его через Dynamic Feature Delivery в Почту.
Если вы как и я, не сталкивались с GeckoView, то это «обёртка» над Gecko, оформленная в виде отдельной библиотеки, а Gecko – это браузерный движок, разработанный в Mozilla.
Читать (Ru)
Ребята из VK рассказывают про самые неочевидные проблемы, с которыми столкнулись при работе с GeckoView и интеграцией его через Dynamic Feature Delivery в Почту.
Если вы как и я, не сталкивались с GeckoView, то это «обёртка» над Gecko, оформленная в виде отдельной библиотеки, а Gecko – это браузерный движок, разработанный в Mozilla.
Читать (Ru)
🤔7👍6🔥5👎1
Forwarded from Swift Tips
Keynote WWDC 2024
Подборка из нескольких статей с Keynote WWDC 2024. Если не смотрели и не собираетесь смотреть, можно почитать 😉
👉 WWDC 2024. Чем удивляют разработчиков
👉 WWDC 2024. Обсуждаем, что по факту
👉 Искусственному интеллекту – быть! Какие обновления представила Apple на WWDC 2024
Что внутри
🟢 Apple Intelligence
🟢 ML on Device
🟢 Vision framework
🟢 Code completion in Xcode
🟢 Predictive code completion
🟢 Swift Assist
🟢 Xcode 16
🟢 Swift 6
🟢 Swift Testing
🟢 SwiftUI
🟢 SwiftData
🟢 iOS и iPadOS
🟢 watchOS 11
Подборка из нескольких статей с Keynote WWDC 2024. Если не смотрели и не собираетесь смотреть, можно почитать 😉
👉 WWDC 2024. Чем удивляют разработчиков
👉 WWDC 2024. Обсуждаем, что по факту
👉 Искусственному интеллекту – быть! Какие обновления представила Apple на WWDC 2024
Что внутри
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥4
Как сломать скомпилированный код, не нарушая бинарную совместимость
Довольно полезная статья про виды совместимости библиотек, проблемы обратной совместимости, как всё это готовить в Kotlin/Android и не выстрелить себе в ногу.
👉 Любое приложение имеет зависимости
👉 Виды совместимости
👉 Тестирование в многомодульных проектах
Читать (Ru)
Довольно полезная статья про виды совместимости библиотек, проблемы обратной совместимости, как всё это готовить в Kotlin/Android и не выстрелить себе в ногу.
👉 Любое приложение имеет зависимости
👉 Виды совместимости
👉 Тестирование в многомодульных проектах
Читать (Ru)
👍5🔥3❤1
Как создать аудиоплеер
Подробный гайд из трёх частей, в котором рассказывается, как создать аудиоплеер в приложении, рассматриваются доступные инструменты и дополнительные настройки приложения с аудиоплеером и аудио эффектах, которые можно применять к звуку.
👉 Часть 1. Что под капотом
👉 Часть 2. Использование ExoPlayer
👉 Часть 3. Настройка приложения с аудиоплеером и обработка звука
Подробный гайд из трёх частей, в котором рассказывается, как создать аудиоплеер в приложении, рассматриваются доступные инструменты и дополнительные настройки приложения с аудиоплеером и аудио эффектах, которые можно применять к звуку.
👉 Часть 1. Что под капотом
👉 Часть 2. Использование ExoPlayer
👉 Часть 3. Настройка приложения с аудиоплеером и обработка звука
👍17🔥9❤3
Мастер карт или как объединить Google и Яндекс карты в Android
Статья с примером создания обертки для самых популярных провайдеров карт(Яндекс, Google) и о проблемах, с которыми можно столкнуться.
Так же, в статье разбираются отличия интеграции и создание интерфейса для работы с разными провайдерами.
Читать (Ru)
Статья с примером создания обертки для самых популярных провайдеров карт(Яндекс, Google) и о проблемах, с которыми можно столкнуться.
Так же, в статье разбираются отличия интеграции и создание интерфейса для работы с разными провайдерами.
Читать (Ru)
🔥10👍3👎3❤2👨💻1
Android: Проблема отрисовки в Jetpack Compose
Автор столкнулся с проблемой потери части данных при отрисовке в Jetpack Compose и в статье рассказывает как решал проблему.
Решение довольно топорное и не самое лучше, поэтому рекомендую так же почитать комменты, там ребята дают дельные советы с более оптимальными решениями.
Читать (Ru)
Автор столкнулся с проблемой потери части данных при отрисовке в Jetpack Compose и в статье рассказывает как решал проблему.
Решение довольно топорное и не самое лучше, поэтому рекомендую так же почитать комменты, там ребята дают дельные советы с более оптимальными решениями.
Читать (Ru)
👍12🤔7👎5🔥4
Forwarded from Swift Tips
CI/CD заказывали? Или простое, но подробное руководство по настройке CI/CD под несколько iOS проектов
Ещё один пошаговый гайд про то, как настроить CI/CD для вашего iOS приложения.
В статье рассматривается настройка CI/CD для iOS проекта с репозиторием на GitLab с использованием Fastlane. Сборки отправляются в TestFlight и в Firebase, если он у вас настроен. Полный код решения находится здесь.
Читать (Ru)
Ещё один пошаговый гайд про то, как настроить CI/CD для вашего iOS приложения.
В статье рассматривается настройка CI/CD для iOS проекта с репозиторием на GitLab с использованием Fastlane. Сборки отправляются в TestFlight и в Firebase, если он у вас настроен. Полный код решения находится здесь.
Читать (Ru)
👍4🔥4❤2
Mastering Android ViewModels: Essential Dos and Don’ts Part 4
Четвертая часть из цикла Mastering Android ViewModels, по лучшим практикам работы с ViewModel.
В этой части рассматривается
👉 Использование более реактивное и менее императивное программирования
👉 Избегание инициализации ViewModel из внешнего мира
👉 Избегание передачи параметров из внешнего мира
Читать (En)
Четвертая часть из цикла Mastering Android ViewModels, по лучшим практикам работы с ViewModel.
В этой части рассматривается
👉 Использование более реактивное и менее императивное программирования
👉 Избегание инициализации ViewModel из внешнего мира
👉 Избегание передачи параметров из внешнего мира
Читать (En)
🔥5👍3❤2
Как в 2024 выложить приложение в Apple Store и Google Play
Статья-инструкция по тому, как в 2024 году зарегистрировать/оплатить аккаунт разработчика и выложить приложение в App Store и Google Play с учётом санкций.
👉 Подтверждение личности и регион размещения
👉 Оплата аккаунта
👉 Поломка кнопки Enroll me now в App Store
👉 Публикация от компании
👉 Тестирование приложения
👉 Связь с подсанкционными компаниями
👉 Частые ошибки
Читать (Ru)
Статья-инструкция по тому, как в 2024 году зарегистрировать/оплатить аккаунт разработчика и выложить приложение в App Store и Google Play с учётом санкций.
👉 Подтверждение личности и регион размещения
👉 Оплата аккаунта
👉 Поломка кнопки Enroll me now в App Store
👉 Публикация от компании
👉 Тестирование приложения
👉 Связь с подсанкционными компаниями
👉 Частые ошибки
Читать (Ru)
🔥10👍5❤3😁2👎1
Что нового в безопасности пользователей на Android: доклад с Google I/O 2024
В статье разбираются обновления для обеспечения безопасности пользователей, которые были представлены в докладе Safeguarding user security на Google I/O, и как они отразятся на разработке.
👉 Новая защита пользователей
👉 Play Intergrity API
👉 Изменения в Android 15
👉 Заключение
Читать (Ru)
В статье разбираются обновления для обеспечения безопасности пользователей, которые были представлены в докладе Safeguarding user security на Google I/O, и как они отразятся на разработке.
👉 Новая защита пользователей
👉 Play Intergrity API
👉 Изменения в Android 15
👉 Заключение
Читать (Ru)
🔥6👍4❤3
Как устроены аннотации в Kotlin
Перевод первой части из этого цикла.
Как устроены аннотации в Kotlin и основные механизмы их обработки: процессинг, рефлексия и lint.
Читать (Ru)
Перевод первой части из этого цикла.
Как устроены аннотации в Kotlin и основные механизмы их обработки: процессинг, рефлексия и lint.
Читать (Ru)
🔥13❤3👍2
Инструменты Android-разработчика
Подборка полезных инструментов, которые помогают повышать продуктивность, улучшать качество кода и ускорять процесс разработки.
В статье рассматриваются как широко известные, так и менее популярные, но не менее ценные утилиты, которые помогут вам стать более эффективным Android‑разработчиком.
👉 Библиотеки для отладки
👉 Фермы устройств
👉 Моковые API-серверы
👉 Необычные инструменты Android Studio
👉 Плагины в Android Studio
👉 AI-помощники
👉 Музыка
Читать (Ru)
Подборка полезных инструментов, которые помогают повышать продуктивность, улучшать качество кода и ускорять процесс разработки.
В статье рассматриваются как широко известные, так и менее популярные, но не менее ценные утилиты, которые помогут вам стать более эффективным Android‑разработчиком.
👉 Библиотеки для отладки
👉 Фермы устройств
👉 Моковые API-серверы
👉 Необычные инструменты Android Studio
👉 Плагины в Android Studio
👉 AI-помощники
👉 Музыка
Читать (Ru)
👍10❤3🔥3
Архитектура кроссплатформенного многомодульного приложения
Большая статья, в которой автор делится своим опытом создания кроссплатформенного приложения на базе kotlin-multiplatform (KMP), организацией его архитектуры и настройкой для работы с различными библиотеками.
Статья подойдет больше разработчикам, которые уже имеют опыт с многомодульными проектами в android и начинают изучать KMP.
Исходный код на GitHub → SimpleMviExample
Читать (Ru)
Большая статья, в которой автор делится своим опытом создания кроссплатформенного приложения на базе kotlin-multiplatform (KMP), организацией его архитектуры и настройкой для работы с различными библиотеками.
Статья подойдет больше разработчикам, которые уже имеют опыт с многомодульными проектами в android и начинают изучать KMP.
Исходный код на GitHub → SimpleMviExample
Читать (Ru)
🔥12👍4❤2👎1