uz
Feedback
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck

Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck

Kanalga Telegram’da o‘tish

Все самое полезное для мобильного разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: clc.to/QSTQcA Для обратной связи: @proglibrary_feeedback_bot РКН: https://gos

Ko'proq ko'rsatish
9 203
Obunachilar
-424 soatlar
-17 kunlar
-3230 kunlar
Postlar arxiv
📍 Курс — это не только темы и домашние задания Во многом его ценность определяет опыт тех, кто его разрабатывает и ведёт. Об этом как раз новый пост Proglib Academy 🔥

🥴 Рынок труда в IT не рухнул из-за AI — он мутировал в нечто странное Забудь про апокалиптичные прогнозы «AI отберет работу»
🥴 Рынок труда в IT не рухнул из-за AI — он мутировал в нечто странное Забудь про апокалиптичные прогнозы «AI отберет работу». Реальность интереснее и коварнее: появились новые правила игры, новые способы обмана заказчиков и новая ценность для тех, кто умеет думать головой. Разбираю пять таких сдвигов. 👉 Читать статью 📌 Лучшие вакансии для мобильных разработчиков 🐸 Библиотека мобильного разработчика #MadeInProglib

🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто по
🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто попросить написать код. Модель может сгенерировать рабочее решение, но именно на этапе проверки часто всплывают пропущенные edge case’ы, ошибки обработки или проблемы с тестами. 2️⃣ способ — дать агенту цикл Think → Act → Observe. Он не останавливается после первой попытки: планирует действия, проверяет результат и, если находит ошибку, исправляет её и пробует снова. Самое интересное, что разница здесь не столько в модели ❕ Claude, GPT или другая LLM могут быть одинаковыми. Разницу создаёт инженерная система вокруг них. 📅 Именно это разберём 23 июля в 19:00 (МСК) на бесплатном вебинаре с Алексеем Жиряковым (Executive Director в Сбере, GenAI Data Platform, ex-CTO Stream и KION). На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней 🔥 🔗 Регистрация 🏃‍♀️ Proglib Academy

🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшо
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу. 💼 Главная фишка: финальный проект в портфолио:
В финальном проекте вы сможете выбрать один из двух вариантов: реализовать свою идею или решить задачу от партнера курса — крупной российской финтех-компании. Вы будете работать с датасетом, построенным по реальным сценариям, получите бизнес-контекст и продовые ограничения. В результате соберете AI-агента, который станет сильным проектом для портфолио.
🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽! Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом 🔗 Занять место и забрать 3 курса

🔝 Топ вакансий для мобильных разработчиков за неделю Senior Flutter Developer — удалёнка Middle iOS Developer — офис (Ташкент) Android-разработчик / Kotlin Multiplatform — удалёнка/гибрид (Москва) IOS-разработчик — до 250 000 ₽, удалёнка ➡️ Еще больше топовых вакансий —‍ в нашем канале Mobile jobs 🐸 Библиотека мобильного разработчика #свежак

🦢 Что такое View в SwiftUI Что на самом деле происходит в SwiftUI при изменении состояния? Перерисовывает ли SwiftUI весь эк
🦢 Что такое View в SwiftUI Что на самом деле происходит в SwiftUI при изменении состояния? Перерисовывает ли SwiftUI весь экран? Создаёт ли заново все элементы интерфейса? Или под капотом происходит что-то более тонкое? В этой статье автор шаг за шагом разберет эти вопросы и объяснит, что на самом деле представляет собой SwiftUI.View, как работает some View, почему важен ViewBuilder и каким образом SwiftUI обновляет интерфейс при изменении состояния. 👉 Читать статью 📌 Лучшие вакансии для мобильных разработчиков 🐸 Библиотека мобильного разработчика #свежак #Swift

🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт По этому поводу мы решили выложить закрытую запись одно
🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт По этому поводу мы решили выложить закрытую запись одного из уроков из программы. Найти её в поиске YouTube нельзя — она доступна только по ссылке и всем, кто будет на курсе. Внутри глубокий разбор LLM от Алексея Яндутова (Senior ML-инженер, развивал ответы «Алисы» и «Нейро» в Яндексе). Учимся получать точный результат без галлюцинаций. Что внутри урока:
- Устройство LLM. - Рабочие шаблоны промптов (Persona, Chain-of-Thought и др.). - Разбор реального кейса Яндекса. Как автоматизировать разметку, обойти качество людей на 5% и срезать косты на 60%.
После просмотра вы поймете, когда хватает промпт-инжиниринга, а когда нужен RAG или fine-tuning. 👉Смотреть закрытый урок на YouTube Понравился урок? Переходите на новый уровень! Оставляйте заявку на курс, чтобы научиться проектировать надежные автономные системы. Обучение началось, но вы еще успеваете присоединиться. 🔗 Занять место на курсе

⚙️ LoopScroll — бесконечно прокручиваемая постраничная навигация LoopScroll — контрол для бесконечной прокрутки в iOS, постро
⚙️ LoopScroll — бесконечно прокручиваемая постраничная навигация LoopScroll — контрол для бесконечной прокрутки в iOS, построенный на основе UICollectionView. Поддерживает горизонтальную и вертикальную прокрутку, автоматическую прокрутку и привычный API делегата/источника данных. Особенности: 🔵 Бесконечная прокрутка — плавная перемотка элементов в обоих направлениях 🔵 Горизонтальная и вертикальная — переключение направления прокрутки с помощью одного свойства 🔵 Автоматическая прокрутка — настраиваемая автоматическая прокрутка на основе таймера 🔵 Привязка к странице — настраиваемая компоновка обеспечивает точную привязку к странице с учетом скорости нажатия 🔵 Источник данных и делегат — привычные протоколы в стиле UICollectionView 🔵 Совместимость с Objective-C — все публичные API доступны через @objc 🔵 Легковесный — нет внешних зависимостей, ~500 строк кода на Swift 💻 LoopScroll на GitHub 📌 Лучшие вакансии для мобильных разработчиков 🐸 Библиотека мобильного разработчика #буст #iOS

🚀 Уже завтра стартует новый поток курса «ИИ-агенты»! Мы собрали мощнейший состав преподавателей. Учить вас проектировать арх
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»! Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний. Старт уже завтра! Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока! Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой. 🔗 Пройти демо-урок и занять место на курсе

Чем Any в Kotlin отличается от Object в Java Any не является полным аналогом java.lang.Object. В Object 11 методов в классе, в Any только 3 методаequals()hashCode() и toString(). При импорте типов Java в Kotlin все ссылки типа java.lang.Object преобразуются в Any. Поскольку Any не зависит от платформы, он объявляет только toString()hashCode() и equals() в качестве своих членов, поэтому, чтобы сделать другие члены java.lang.Object доступными, Kotlin использует функции расширения. Несмотря на то, что классы Object и Any имеют сходства (корневые классы иерархии классов), они также имеют и отличия, связанные с языковыми особенностями Kotlin и Java: 1️⃣ Класс Any в Kotlin является не только базовым классом для пользовательских классов, но также и супертипом для всех не-nullable типов данных, включая примитивные. В то время как в Java, класс Object является базовым классом только для пользовательских классов. 2️⃣ Класс Any в Kotlin также имеет nullable версию Any?, которая является супертипом для всех nullable типов данных в Kotlin. В то время как в Java, класс Object не имеет nullable версии. 📌 Лучшие вакансии для мобильных разработчиков 🐸 Библиотека мобильного разработчика #буст #Kotlin

Какой паттерн проектирования активно используется в SwiftUI?
Anonymous voting

🔥 Не называйте любого продвинутого чат-бота «ИИ-агентом»! Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях. Что внутри видео: - Почему ассистент и агент принципиально разные сущности; - Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему; - Как понимать архитектуру глубже, чтобы проектировать сильные решения. Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска. 🔗 Забрать бесплатный демо-урок

🤨 Как заставить AI-агента не ломать архитектуру, а нормально писать код? Мы привыкли общаться с ИИ промптами, но для автоном
🤨 Как заставить AI-агента не ломать архитектуру, а нормально писать код? Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD). Вот как этот подход меняет работу агента на практике: 🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти. 🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией. 🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ. Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы — оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂

🎮 Image Playground Sheet в SwiftUI: как заменить ImageCreator Когда Image Playground только появился, у разработчиков было два пути: показывать системный интерфейс или генерировать изображения программно через ImageCreator. Второй путь закрывается — Apple объявила ImageCreator deprecated. В iOS 27+ он перестанет работать. Рекомендуемая альтернатива — системный модификатор imagePlaygroundSheet для SwiftUI. 🔹 Что делает imagePlaygroundSheet Это модификатор, который показывает системный интерфейс Image Playground из вашего приложения. Вы даёте начальную идею (текст, структурированные концепты, опционально исходное изображение), а пользователь внутри шеста создаёт, редактирует и выбирает готовую картинку. Важно: ваше приложение не отправляет промт и не получает готовое изображение без участия пользователя. Вы запускаете поток, пользователь работает внутри шеста, приложение получает результат. Это соответствует стратегии Apple: генерация изображений — управляемый пользователем процесс. 🔹 Базовое использование
import SwiftUI
import ImagePlayground

struct ContentView: View {
    @State private var isPresented = false
    @State private var generatedImageURL: URL?

    var body: some View {
        VStack(spacing: 16) {
            if let generatedImageURL {
                AsyncImage(url: generatedImageURL) { image in
                    image.resizable().scaledToFit()
                } placeholder: {
                    ProgressView()
                }
            }

            Button("Create image") {
                isPresented = true
            }
        }
        .imagePlaygroundSheet(
            isPresented: $isPresented,
            concept: "A small robot reading a Swift book",
            sourceImage: nil,
            onCompletion: { url in
                generatedImageURL = url
            },
            onCancellation: {
                print("Cancelled")
            }
        )
    }
}
Модификатор ведёт себя как стандартные API презентации SwiftUI: вы управляете через биндинг, SwiftUI показывает шест, когда он true. 🔹 URL временный, нужно сохранять URL, возвращаемый в onCompletion, указывает на временный файл. Для быстрого превью это ок, но если изображение становится частью данных приложения (аватар, иллюстрация, стикер, обложка) — его нужно сохранить.
private func persistGeneratedImage(from temporaryURL: URL) throws -> URL {
    let fileName = "\(UUID().uuidString).png"
    let destinationURL = URL.documentsDirectory.appending(path: fileName)

    try FileManager.default.copyItem(at: temporaryURL, to: destinationURL)
    return destinationURL
}

.imagePlaygroundSheet(
    isPresented: $isPresented,
    concept: "A small robot reading a Swift book",
    sourceImage: nil,
    onCompletion: { temporaryURL in
        do {
            generatedImageURL = try persistGeneratedImage(from: temporaryURL)
        } catch {
            print("Failed to save:", error)
        }
    },
    onCancellation: {
        print("Cancelled")
    }
)
Лучше выносить логику сохранения за пределы вью — отдельный объект, решающий, где сохранять, как называть и как встраивать в модель данных. 🔹 Проверка доступности Image Playground доступен не везде. Зависит от версии ОС, устройства, Apple Intelligence и настроек пользователя. SwiftUI предоставляет окружение:
@Environment(\.supportsImagePlayground) private var supportsImagePlayground

var body: some View {
    if supportsImagePlayground {
        Button("Create image") { isPresented = true }
    } else {
        Text("Image Playground is not available")
    }
}
🔹 Передача исходного изображения Исходное изображение меняет сценарий: от «создай из текста» к «создай на основе этого».
.imagePlaygroundSheet(
    isPresented: $isPresented,
    concept: "Turn this into a soft illustrated avatar",
    sourceImage: selectedImage,
    onCompletion: { url in
        generatedImageURL = url
    }
)
Но помните: Image Playground — это интерактивный системный интерфейс. Исходное изображение даёт пользователю стартовую точку, а не строгий пайплайн трансформации. 🔹 Несколько концептов для большего контекста Простая строка подходит для простых случаев, но Image Playground поддерживает структурированные концепты:
let concepts: [ImagePlaygroundConcept] = [
    .text("Birthday postcard"),
    .text("Warm evening light"),
    .extracted(from: messageText, title: "Message")
]

.imagePlaygroundSheet(
    isPresented: $isPresented,
    concepts: concepts,
    sourceImage: nil,
    onCompletion: { url in
        generatedImageURL = url
    },
    onCancellation: {
        print("Cancelled")
    }
)
Это полезно, когда идея для изображения собирается из нескольких частей приложения. 🔹 Итог imagePlaygroundSheet — это не просто удобный модификатор. После deprecation ImageCreator он становится основным Apple-рекомендованным путём для приложений, которые хотят использовать Image Playground внутри своего интерфейса. Вы даёте контекст — система показывает интерфейс создания — пользователь выбирает финальное изображение. Если ваше приложение использовало ImageCreator, сейчас время пересмотреть эту фичу. Некоторые продукты могут перейти на imagePlaygroundSheet с небольшими изменениями UI. Другим, возможно, понадобится альтернативный сервис генерации изображений. 📌 Лучшие вакансии для мобильных разработчиков 🐸 Библиотека мобильного разработчика #PixelPerfect #Swift

🔥 ИИ-выходные: Собери своего AI-агента за 2 дня Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 ав
🔥 ИИ-выходные: Собери своего AI-агента за 2 дня Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков. Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами. 🛠️ Как всё пройдет:
День 1 (Суббота): разбираем анатомию агента, подключаем инструменты (shell, GitHub, Postgres) и дебажим трейсы. День 2 (Воскресенье): собираем собственного агента под вашу задачу, настраиваем Eval + Guardrails (чтобы бот не галлюцинировал) и проводим демо.
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!) Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде. 👨‍💻 Спикер: Алексей Жиряков (Сбер, GenAI). Места ограничены! 👉 Изучить программу и занять место

⚙️ LeanType — конфиденциальная клавиатура для Android LeanType — это форк HeliBoard, клавиатура с открытым исходным кодом, ор
⚙️ LeanType — конфиденциальная клавиатура для Android LeanType — это форк HeliBoard, клавиатура с открытым исходным кодом, ориентированная на конфиденциальность и возможность индивидуальной настройки, основанная на AOSP/OpenBoard. Клавиатура предлагает гибридный подход: приватное, безопасное автономное ядро ​​для повседневной работы с текстом, а также мощные возможности искусственного интеллекта, доступные по вашему желанию. 💻 LeanType на GitHub 📌 Лучшие вакансии для мобильных разработчиков 🐸 Библиотека мобильного разработчика #буст #Android

🔝 Топ вакансий для мобильных разработчиков за неделю Android Developer (Middle, Kotlin) — от 260 000 до 380 000 ₽, гибрид (Москва) IOS-разработчик — до 300 000 ₽, удалёнка Android-разработчик — офис (Москва) Flutter-разработчик — гибрид/офис (Москва) Android Developer (Middle, Kotlin) — от 260 000 до 380 000 ₽, офис (Москва) ➡️ Еще больше топовых вакансий —‍ в нашем канале Mobile jobs 🐸 Библиотека мобильного разработчика #свежак