Встречаем yx_scope: DI-фреймворк для работы со скоупами в открытом доступе
Для больших проектов не всегда хватает одного модуля: иногда надо пошарить какие‑нибудь классы или UI‑элементы. Так со временем проект дробится на много мелких модулей, которые так или иначе связаны разного рода зависимостями. И если за этим не следить, то рано или поздно структура проекта может стать запутанной.
Сложности подтолкнули Яндекс к поиску собственного решения, которое удовлетворяло бы всем требованиям. И теперь они готовы поделиться им с комьюнити: решение — это группа библиотек yx_scope.
📖 Читать статью
😺 Ссылка на GitHub
Для больших проектов не всегда хватает одного модуля: иногда надо пошарить какие‑нибудь классы или UI‑элементы. Так со временем проект дробится на много мелких модулей, которые так или иначе связаны разного рода зависимостями. И если за этим не следить, то рано или поздно структура проекта может стать запутанной.
Сложности подтолкнули Яндекс к поиску собственного решения, которое удовлетворяло бы всем требованиям. И теперь они готовы поделиться им с комьюнити: решение — это группа библиотек yx_scope.
📖 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
iOS 18 для разработчиков: Ключевые изменения в UIKit
Подробное изучение всех нововведений новой версии iOS, чтобы понять, какие новые возможности она предлагает разработчикам.
В этой статье автор делится и показывает самые интересные обновления в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое.
Подробное изучение всех нововведений новой версии iOS, чтобы понять, какие новые возможности она предлагает разработчикам.
В этой статье автор делится и показывает самые интересные обновления в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое.
👍3❤1
🔒 Пример взлома покупок в Android-приложении и защита от этого
Встроенные покупки являются основой современных приложений, позволяя пользователям разблокировать премиум-функции или подключать подписку. Однако, когда разработчики не обеспечивают должной безопасности процесса выставления счетов, могут возникнуть уязвимости, позволяющие обойти проверку платежей.
📖 В этой статье автор рассказывает о том, как Frida, может обойти механизмы биллинга в приложениях для Android. Также показывает, как можно взломать небезопасные процессы покупок и что могут сделать разработчики.
Встроенные покупки являются основой современных приложений, позволяя пользователям разблокировать премиум-функции или подключать подписку. Однако, когда разработчики не обеспечивают должной безопасности процесса выставления счетов, могут возникнуть уязвимости, позволяющие обойти проверку платежей.
📖 В этой статье автор рассказывает о том, как Frida, может обойти механизмы биллинга в приложениях для Android. Также показывает, как можно взломать небезопасные процессы покупок и что могут сделать разработчики.
👍2🔥1
#вопросы_с_собеседований
Kotlin
Вопрос: Как создать «статический» метод для перечисления в Kotiln?
В классе enum можно определить объект класса:
enum class CircleType {
FIRST,
SECOND,
THIRD;
companion object {
fun random(): CircleType = FIRST
}
}
Потом вы сможете вызывать эту функцию как CircleType.random().
Kotlin
Вопрос: Как создать «статический» метод для перечисления в Kotiln?
enum class CircleType {
FIRST,
SECOND,
THIRD;
companion object {
fun random(): CircleType = FIRST
}
}
Потом вы сможете вызывать эту функцию как CircleType.random().
🥱9👍3❤2🌚1
Решение проблемы race condition в Kotlin корутинах
Синхронизация корутин в Android имеет огромное значение для обеспечения безопасности и эффективности многопоточности. Коррутины упрощают управление асинхронными задачами, но без должной синхронизации могут возникнуть проблемы, такие как race condition, что приведет к неправильному поведению приложения.
📖 Существует 6 способов решения проблемы состояния гонки.
Синхронизация корутин в Android имеет огромное значение для обеспечения безопасности и эффективности многопоточности. Коррутины упрощают управление асинхронными задачами, но без должной синхронизации могут возникнуть проблемы, такие как race condition, что приведет к неправильному поведению приложения.
📖 Существует 6 способов решения проблемы состояния гонки.
😁2
This media is not supported in your browser
VIEW IN TELEGRAM
Создание анимаций между view в SwiftUI
Переходы между экранами улучшают пользовательский опыт, делая взаимодействие более плавным и приятным. При смене интерфейса визуально подчеркивается связь между различными элементами пользовательского интерфейса.
Где используются такие анимации:
– Навигация между экранами.
– Добавление (или удаление) элементов из списка.
– Показ модальных вьюх.
📖 Как создаются такие эффекты (и их комбинация) — узнать можно в этой статье.
Переходы между экранами улучшают пользовательский опыт, делая взаимодействие более плавным и приятным. При смене интерфейса визуально подчеркивается связь между различными элементами пользовательского интерфейса.
Где используются такие анимации:
– Навигация между экранами.
– Добавление (или удаление) элементов из списка.
– Показ модальных вьюх.
📖 Как создаются такие эффекты (и их комбинация) — узнать можно в этой статье.
🔥3👏2
Вдохновившись колесиками для выбора времени и даты напоминаний Telegram, автор решил сделать на одном из своих пет‑проектов что‑то подобное. Первой мыслью было — найти этот код в исходниках Telegram, но т.к. скорее всего, у них это написано на Java, решил не тратить время на раскопки в Java‑коде, и сделал это на Jetpack Compose.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5
#дайджест для Android-разработчиков 👋
🔹 ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага.
🔹 Разработка дизайна на SDUI с Jetpack Compose and Firebase.
🔹 Официальный релиз Koin 4.0.
🔹 Использование Kotlin 2.0 для разработки.
🔹 Размер имеет значение: как измерить и уменьшить вес Android-приложения
🔹 Стань лучше с помощью Compiler Explorer.
🔹 Декларативный подход в организации gradle зависимостей в Android-проектах.
🔹 Как легко рисовать на GoogleMaps с помощью Compose?
🔹 ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага.
🔹 Разработка дизайна на SDUI с Jetpack Compose and Firebase.
🔹 Официальный релиз Koin 4.0.
🔹 Использование Kotlin 2.0 для разработки.
🔹 Размер имеет значение: как измерить и уменьшить вес Android-приложения
🔹 Стань лучше с помощью Compiler Explorer.
🔹 Декларативный подход в организации gradle зависимостей в Android-проектах.
🔹 Как легко рисовать на GoogleMaps с помощью Compose?
👍1
weak vs strong ссылки в Swift. 🚀
При работе с объектами важно правильно управлять памятью, и вот здесь на помощь приходят — weak и strong ссылки!
🔹 Strong ссылки — это те, что «держат» объект в памяти. Если на объект есть хотя бы одна strong ссылка, он останется в памяти. Это удобно, но есть риск создания циклических ссылок, что может привести к утечкам памяти!
🔹 Weak ссылки, напротив, не удерживают объект в памяти. Если на объект остаются только weak ссылки, он будет удалён из памяти. Это полезно для избежания циклов, например, когда объекты ссылаются друг на друга.
💡Используйте strong ссылки, когда нужно гарантировать, что объект будет жить, и weak ссылки, чтобы избежать утечек памяти!
#Swift #iOS
При работе с объектами важно правильно управлять памятью, и вот здесь на помощь приходят — weak и strong ссылки!
🔹 Strong ссылки — это те, что «держат» объект в памяти. Если на объект есть хотя бы одна strong ссылка, он останется в памяти. Это удобно, но есть риск создания циклических ссылок, что может привести к утечкам памяти!
🔹 Weak ссылки, напротив, не удерживают объект в памяти. Если на объект остаются только weak ссылки, он будет удалён из памяти. Это полезно для избежания циклов, например, когда объекты ссылаются друг на друга.
💡Используйте strong ссылки, когда нужно гарантировать, что объект будет жить, и weak ссылки, чтобы избежать утечек памяти!
#Swift #iOS
🥱5🔥3❤2👏1
🚀 GitHub Copilot в Xcode!
Нейросетевой помощник GitHub Copilot расширяет свои возможности, теперь он доступен для Xcode (Public Preview)!
Что может Copilot в Xcode?
• Предлагать варианты завершения кода в режиме реального времени
• Поддерживать языки Swift и Objective-C
• Автоматически подбирать целые блоки кода, а не только отдельные строки
• Помогать избежать уязвимостей и некачественного кода
Чтобы подключить Copilot в Xcode, нужно установить расширение из официальной инструкции.
👉 GitHub Docs
Нейросетевой помощник GitHub Copilot расширяет свои возможности, теперь он доступен для Xcode (Public Preview)!
Что может Copilot в Xcode?
• Предлагать варианты завершения кода в режиме реального времени
• Поддерживать языки Swift и Objective-C
• Автоматически подбирать целые блоки кода, а не только отдельные строки
• Помогать избежать уязвимостей и некачественного кода
Чтобы подключить Copilot в Xcode, нужно установить расширение из официальной инструкции.
👉 GitHub Docs
🤩5
📌 Flutter в Telegram Mini Apps!
Telegram Mini Apps — это одно из самых популярных и быстроразвивающихся направлений в Telegram. Благодаря мини-приложениям, Telegram стал не только мессенджером, но и мощной платформой для различных сервисов, доступных прямо внутри чатов.
А Flutter, в свою очередь, стремительно завоёвывает сердца разработчиков благодаря кросс-платформенности и гибкости.
Но насколько сложно совместить эти две технологии? 🤔
Ответ вы найдёте в статье, где автор рассказывает про практическое применение Flutter при разработке Telegram Mini App и делится результатом!
📖 Читать статью
#Flutter
Telegram Mini Apps — это одно из самых популярных и быстроразвивающихся направлений в Telegram. Благодаря мини-приложениям, Telegram стал не только мессенджером, но и мощной платформой для различных сервисов, доступных прямо внутри чатов.
А Flutter, в свою очередь, стремительно завоёвывает сердца разработчиков благодаря кросс-платформенности и гибкости.
Но насколько сложно совместить эти две технологии? 🤔
Ответ вы найдёте в статье, где автор рассказывает про практическое применение Flutter при разработке Telegram Mini App и делится результатом!
📖 Читать статью
#Flutter
🔥4🌚1
Бу!
Сегодня мы в костюме шестидневной рабочей недели! 😅
А вы как справляетесь с нагрузкой?
Делитесь своими лайфхаками и мемами — поддержим друг друга! 🧑💻
#интерактив
Сегодня мы в костюме шестидневной рабочей недели! 😅
А вы как справляетесь с нагрузкой?
Делитесь своими лайфхаками и мемами — поддержим друг друга! 🧑💻
#интерактив
❤🔥5
Forwarded from Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
💻🤔 Код сожаления: 10 ошибок, о которых жалеют даже опытные программисты
В программировании полно разных путей и нет единственно правильного способа достичь вершины мастерства. Но есть общие ловушки.
✔️Читать статью
В программировании полно разных путей и нет единственно правильного способа достичь вершины мастерства. Но есть общие ловушки.
✔️Читать статью
🤩1🥱1
Пятничный #дайджест для мобильщиков
🍏 iOS 18 для разработчиков
Статья-обзор ключевых изменений в UIKit
🤖 Гайд для новичков в Android разработке
Статья про написание Android-приложения, которое не будет стыдно положить в портфолио.
⚙️ Flutter-приложения на Авроре
Статья про создание Flutter-приложения на Авроре
🍏 Objective-C не кусается
Статья про то, как перестать бояться Legacy и стать настоящим iOS-ниндзя
🤖 Опыт использования Dynamic Feature Delivery
Статья про динамические модули в приложениях на Android
🍏 iOS 18 для разработчиков
Статья-обзор ключевых изменений в UIKit
🤖 Гайд для новичков в Android разработке
Статья про написание Android-приложения, которое не будет стыдно положить в портфолио.
⚙️ Flutter-приложения на Авроре
Статья про создание Flutter-приложения на Авроре
🍏 Objective-C не кусается
Статья про то, как перестать бояться Legacy и стать настоящим iOS-ниндзя
🤖 Опыт использования Dynamic Feature Delivery
Статья про динамические модули в приложениях на Android
1🔥3❤🔥1😍1
Forwarded from Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Создавай ИИ-приложения как профи: 17 опенсорсных инструментов
Полный набор инструментов для создания ИИ-приложений: генеративные модели, фреймворки для работы с ИИ-агентами и многое другое.
Читать статью
Полный набор инструментов для создания ИИ-приложений: генеративные модели, фреймворки для работы с ИИ-агентами и многое другое.
Читать статью
1❤2🥰2👏1🤩1
🔑 Шифруем файлы в Android
Мобильные приложения уже давно перестали быть тонкими клиентами, и вопрос защиты локальных данных становится всё актуальнее.
Однако мир криптографии не такой страшный, как кажется на первый взгляд.
А поможет вам в ней разобраться крутейший доклад.
Автор расскажет про опыт внедрения шифрования локальных файлов в приложении VK Teams, в том числе про подводные камни и неочевидные моменты, с которыми пришлось столкнуться.
👀 Смотреть доклад
#mobius #android
Мобильные приложения уже давно перестали быть тонкими клиентами, и вопрос защиты локальных данных становится всё актуальнее.
Однако мир криптографии не такой страшный, как кажется на первый взгляд.
А поможет вам в ней разобраться крутейший доклад.
Автор расскажет про опыт внедрения шифрования локальных файлов в приложении VK Teams, в том числе про подводные камни и неочевидные моменты, с которыми пришлось столкнуться.
👀 Смотреть доклад
#mobius #android
😁4🥰2
📌 Async, await и deferred в Kotlin
В Kotlin три ключевых инструмента для асинхронной работы: async, await и Deferred.
🔹 async запускает задачу в фоновом потоке и возвращает Deferred, объект с результатом. Полезно, когда нужно выполнить несколько операций одновременно.
🔹 await возвращает результат из Deferred, приостанавливая выполнение, пока задача не завершится. Если использовать await сразу после async, задача выполнится синхронно, поэтому лучше запускать задачи параллельно и вызывать await после всех.
🔹 Deferred — это «обещание» результата, который будет позже. Через него можно узнать статус, отменить задачу или дождаться её завершения.
Итак, async запускает, await возвращает результат, а Deferred — сам результат, доступный позже.
#Kotlin
В Kotlin три ключевых инструмента для асинхронной работы: async, await и Deferred.
🔹 async запускает задачу в фоновом потоке и возвращает Deferred, объект с результатом. Полезно, когда нужно выполнить несколько операций одновременно.
🔹 await возвращает результат из Deferred, приостанавливая выполнение, пока задача не завершится. Если использовать await сразу после async, задача выполнится синхронно, поэтому лучше запускать задачи параллельно и вызывать await после всех.
🔹 Deferred — это «обещание» результата, который будет позже. Через него можно узнать статус, отменить задачу или дождаться её завершения.
Итак, async запускает, await возвращает результат, а Deferred — сам результат, доступный позже.
#Kotlin
🎉5❤🔥2❤2👍1🥰1
📱Инклюзивный дизайн мобильных приложений
Задумывались ли вы, почему перила у лестницы находятся по правую руку, цифры в лифте идут снизу вверх по возрастанию, а бутылку с газировкой делают такой формы, чтобы рука могла комфортно обхватить её?
Такие детали очень важны для определённых категорий людей. К примеру, в статье описаны реальные истории о пользе инклюзивного дизайна.
А если хотите сами создавать инклюзивный и доступный дизайн рекомендуем статью.
Задумывались ли вы, почему перила у лестницы находятся по правую руку, цифры в лифте идут снизу вверх по возрастанию, а бутылку с газировкой делают такой формы, чтобы рука могла комфортно обхватить её?
Такие детали очень важны для определённых категорий людей. К примеру, в статье описаны реальные истории о пользе инклюзивного дизайна.
А если хотите сами создавать инклюзивный и доступный дизайн рекомендуем статью.
🔥2👏1
🍏 Малоизвестные фичи SwiftUI
SwiftUI предоставляет массу полезных инструментов, однако некоторые возможности остаются в тени.
Специально для вас нашли статью с неочевидными, но интересными фичами, которые упростят разработку и добавят гибкости интерфейсу.
👉 Читать статью
#iOS #Swift
SwiftUI предоставляет массу полезных инструментов, однако некоторые возможности остаются в тени.
Специально для вас нашли статью с неочевидными, но интересными фичами, которые упростят разработку и добавят гибкости интерфейсу.
👉 Читать статью
#iOS #Swift
👍3🥰2😁1