👾 AI-агенты — настоящее, о котором все говорят!
Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов».
Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи.
На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.
🎓 В рамках курса вы научитесь:
1️⃣ адаптировать LLM под разные предметные области и данные
2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.
🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов».
Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи.
На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.
🎓 В рамках курса вы научитесь:
1️⃣ адаптировать LLM под разные предметные области и данные
2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.
🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
Мобильное приложение кажется достаточно безопасным: оно исполняется и хранит данные независимо от других приложений. Бизнес-логика реализована на сервере, а перед публикацией на маркетплейсе приложений его тестируют.
Но эти меры не защитят от злоумышленника, который изучит логику работы приложения и использует полученные данные для атаки. Различные модификации Android, такие как root-права и кастомная прошивка, позволяют злоумышленнику быстрее и детальнее исследовать приложение.
Таисия рассказала об опыте решения проблемы по обнаружению эмуляторов, устройств с root-правами или кастомными прошивками. А еще познакомила нас с набором инструментов Frida, позволяющих внедрять код в другие приложения буквально на лету. Рассмотрела возможности и принцип работы этого тулкита и описала метод по его обнаружению, который можно использовать в проекте.
Доклад будет полезен тем, кто хочет максимально защитить свое мобильное приложение от различных угроз.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1😁1
Заметили, что ваше приложение долго запускается? Этот промпт поможет найти и устранить узкие места в процессе старта.
Analyze and optimize mobile app startup time that includes:
— Measure cold/warm/hot start durations
— Identify main thread blockers during launch
— Optimize application class initialization
— Reduce dynamic feature module loading time
— Implement lazy loading for heavy components
— Optimize dependency injection setup
— Improve splash screen and initial UI rendering
— Добавьте
Implement asynchronous resource loading для параллельной загрузки ресурсов— Добавьте
Add startup tracing and performance monitoring для постоянного отслеживания— Добавьте
Optimize pre-dexing and multidex configuration для больших приложений#буст #MiddlePath
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📅 Когда: 17 октября 2025
📍 Где: Москва
🌐 Официальный сайт: crossconf.ru
CrossConf — крупнейшая конференция в России и СНГ, посвящённая кроссплатформенным технологиям.
В фокусе:
#МитапПоинт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8
Создание таблицы с различными типами ячеек достаточно стандартная задача. Конечно, можно использовать различное ветвление при помощи if, else или switch, но лучше и практичнее использовать Дженерики.
#свежак #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
❤2🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал
Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах.
Но всё самое интересное только начинается!
🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов.
💸 Сейчас действует специальная цена → 69.000 ₽ вместо79.000 ₽.
⏳ Осталось всего 4 места.
Не упустите шанс прокачаться в том, что будет определять будущее индустрии.
👉 Забронировать место на курсе
Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах.
Но всё самое интересное только начинается!
🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов.
💸 Сейчас действует специальная цена → 69.000 ₽ вместо
⏳ Осталось всего 4 места.
Не упустите шанс прокачаться в том, что будет определять будущее индустрии.
👉 Забронировать место на курсе
В карточках разобрали, как именно меняется обучение будущих айтишников и к чему это может привести.
#MadeInProglib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Оператор
guard используется для передачи управления программой за пределы области видимости. Оператор guard похож на оператор if, но он запускается только тогда, когда некоторые условия не выполняются.Например, оператор
guard используется для выхода из функции:func myFun() {
guard false else {
print("This block is run")
return
}
print("This is never run")
}
myFun()Вывод:
This block is run
#буст #JuniorKit #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
Разобрали, как устроены массивы в Swift под капотом: от базовых операций добавления и удаления до тонкостей работы с value/reference типами. Посмотрели на Copy-on-Write и устройство буфера. Также узнали, почему массивы - это всего лишь обёртки над хранилищем в куче, и чем ArraySlice отличается от обычного массива.
Поговорим ещё об одном встроенном типе Swift - Codable. Думаю, все, кто писал клиент-серверные приложения, сталкивались с этим протоколом: он позволяет преобразовывать наши структуры в бинарные данные и обратно. Однако, полагаю, немногие задумывались, как этот привычный механизм работает под капотом.
Это нарушение основополагающих принципов свободы слова и мысли, которые лежат в основе функционирования демократических обществ по всему миру.
Room не медленный. Медленным его делает неправильное использование.
В этой статье автор поделиться опытом работы с пуш-уведомлениями. Расскажет, с чего начинал, какие проблемы встретил и к чему пришел на текущий момент.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
reified — это ключевое слово, которое может быть использовано только в inline-функциях.
reified позволяет получить информацию о типе generic-параметра во время выполнения программы. В обычном случае, информация о типах стирается и недоступна во время выполнения, но с помощью reified можно сохранять эту информацию и использовать в других частях приложения.Несколько простых примеров применения:
1. Получить доступ к типу параметра во время выполнения
fun main() {
printType<String>() // String
printType<Int>() // Int
}
private inline fun <reified T> printType() {
println(T::class.simpleName)
}В этом примере мы определяем функцию
printType() с типовым параметром T, который мы указываем с помощью reified. Внутри функции мы можем получить тип T во время выполнения, используя T::class. Затем выводим название типа на экран с помощью simpleName. Когда мы вызываем функцию printType() с типом String или Int, она выводит соответствующий тип на экран.2.
reified вместе с is для проверки типа аргумента во время выполненияfun main() {
println(isOfType<Int>(1)) // true
println(isOfType<Int>("Hello")) // false
}
private inline fun <reified T> isOfType(value: Any): Boolean {
return value is T
}Здесь мы определяем функцию
isOfType(), которая принимает значение типа Any и возвращает true, если оно является типом T. Мы используем reified, чтобы получить доступ к типу T во время выполнения. Затем мы используем оператор is для проверки типа значения и возвращаем соответствующее boolean значение.3. Получить список элементов перечисления
enum class Color { RED, GREEN, BLUE }
fun main() {
printEnumValues<Color>() // RED, GREEN, BLUE
}
private inline fun <reified T : Enum<T>> printEnumValues() {
enumValues<T>().forEach { value ->
println(value)
}
}Определяем функцию
printEnumValues(), которая выводит список элементов перечисления типа T. Мы применяем reified, чтобы получить доступ к типу T во время выполнения. Затем используем enumValues<T>(), чтобы получить список всех значений перечисления типа T. Внутри цикла выводим каждое значение на экран. Когда мы вызываем функцию printEnumValues() с типом Color, она выводит "RED", "GREEN" и "BLUE" в консоль.#буст #JuniorKit #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
В SwiftUI alert — это способ показать критически важную информацию или запросить решение у пользователя.
Используй их только для действительно важных случаев: ошибок, подтверждений (особенно разрушительных действий), запросов разрешений.
Самый простой способ — через
isPresented (булево значение):@State var isPresented = false
VStack {
// UI
}
.alert("Alert Title", isPresented: $isPresented) {
Button("OK") { /* action */ }
Button("Cancel") { }
}
Алёрт появляется, когда
isPresented = true, и автоматически закрывается после действия пользователя.Можно добавить поясняющий текст:
.alert("Alert Title", isPresented: $isPresented) {
Button("OK") { }
} message: {
Text("Подробнее о проблеме")
}Это помогает пользователю понять контекст и принять осознанное решение.
📦 Работа с данными
Для подтверждения действий над конкретными объектами есть параметр
presenting:.alert("Delete Document", isPresented: $isPresented, presenting: document) { document in
Button("Delete", role: .destructive) { delete(document) }
Button("Cancel", role: .cancel) { }
} message: { document in
Text("Удалить '\(document.name)'? Это действие нельзя отменить.")
}Так SwiftUI сохраняет корректные данные на время отображения диалога.
Если твои ошибки реализуют
LocalizedError, SwiftUI умеет красиво показывать их в алёртах:.alert(isPresented: $isPresented, error: error) {
Button("Retry") { }
Button("Cancel") { }
} message: { error in
Text(error.recoverySuggestion ?? "Попробуй позже.")
}Используй краткие заголовки и ясные действия.
Помечай кнопки ролями:
.cancel, .destructive.Не перегружай интерфейс — если это не критично, лучше показать баннер или inline-сообщение.
alert, banner или sheet?#АрхитектурныйКод #MiddlePath #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Утро. Дебаг. Дедлайн. Рука тянется к заветной кружке... Но что в ней должно быть — бодрящий кофе или успокаивающий чай?
Что предпочитаете вы? Голосуйте и пишите своё мнение в комментариях
❤️ — чай
👍 — кофе
🤝 — вода
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤19🤝10
IOS - Разработчик — от 220 000 до 330 000 ₽, офис (Москва)
Android Team Lead — удалёнка
Senior iOS Developer — от 450 000 ₽, удалёнка
Руководитель группы разработки Android (ПВЗ) — от 600 000 ₽, удалёнка
Flutter Developer — от 4 000 до 4 800 €, удалёнка
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2