Ежегодная конференция WWDC от Apple в 2026 году пройдёт с 8 по 12 июня. Мероприятие откроет традиционная презентация новинок, а следом пользователей ждёт серия более детальных докладов о новинках.
Apple уже начала рассылать приглашения журналистам, а слоганом WWDC стала фраза Coming bright up («На подходе что-то яркое»). Ожидается, что компания в первую очередь представит обновления набора своих ОС: iOS 27, iPadOS 27, watchOS 27, macOS 27, tvOS 27 и visionOS 27. Кроме того, в пресс-релизе Apple упоминает новые инструменты на базе нейросетей.
Кроме основной программы в офисе Apple пройдут очные встречи для разработчиков, дизайнеров, студентов и финалистов конкурсов, включая Swift Student Challenge и Apple Design Awards.
Трансляция WWDC будет доступна на сайте компании, на портале Apple Developer, в фирменном приложении и на YouTube-канале для разработчиков.
#свежак #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Хотите наглядно показывать статистику и аналитику в вашем приложении? Этот промпт поможет внедрить красивые и интерактивные графики.
Implement charts and data visualization for a mobile app that includes:
— Set up charting library (MPAndroidChart, Charts for iOS)
— Implement line charts for trends over time
— Add bar charts for comparisons
— Create pie/donut charts for distribution
— Implement real-time data updates with animations
— Add zoom and pan interactions
— Handle large datasets with performance optimization
— Добавьте
Implement combined charts (line + bar) для сложной аналитики— Добавьте
Add gesture-driven tooltips and data point selection для интерактива— Добавьте
Implement candlestick charts for financial apps для трейдинга#буст #JuniorKit
Please open Telegram to view this post
VIEW IN TELEGRAM
Критический успех 🎲
4 июня Альфа-Банк собирает мобильных разработчиков на Alfa Mobile D&D party — в атмосфере любимых фэнтези и настольных ролевых игр. Впереди приключение для истинных авантюристов: объединяйтесь в отряды и открывайте секреты башни.
Друиды поделятся мудростью:
Завершим игру вечеринкой. Советуем подумать над образом своего персонажа: за 3 лучших подарим подарки!
🏰 Где: в секретном баре в Москве. Локацию пришлём с соколом в письме.
Регистрируйтесь на приключение!
Реклама. АО «Альфа-Банк», ИНН 7728168971. Erid 2VtzqxAs15z
4 июня Альфа-Банк собирает мобильных разработчиков на Alfa Mobile D&D party — в атмосфере любимых фэнтези и настольных ролевых игр. Впереди приключение для истинных авантюристов: объединяйтесь в отряды и открывайте секреты башни.
Друиды поделятся мудростью:
⚡️ С техническим лидером Android-разработки Виталием Перятиным обсудим, что на самом деле под капотом у MCP. Спойлер: всё просто⚔️ С ведущим iOS-разработчиком Петросом Тепояном погрузимся в мир ИИ-разработки и приключений, или Туда и обратно
Завершим игру вечеринкой. Советуем подумать над образом своего персонажа: за 3 лучших подарим подарки!
Регистрируйтесь на приключение!
Реклама. АО «Альфа-Банк», ИНН 7728168971. Erid 2VtzqxAs15z
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
Основная компетенция специалиста по Data Science – способность анализировать и интерпретировать данные, а математика является фундаментом для начала работы.
В карточках мы разбираем основные разделы математики, с которых стоит начать изучение специалисту по анализу данных.
Хотите подготовиться к офферу или подтянуть знания? Оставляйте заявку на наш курс по математике для Data Science 💙
P.S. Только до 31 мая на курс (и вообще на все программы Академии) действует
А как у вас дела с высшей математикой?
❤️ — Помню всё
🔥 — Знаю основы
🌚 — Ничего не знаю
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👾4
Команда Flutter представила версию 3.44, которая включает ряд значительных обновлений. Среди ключевых изменений — Hybrid Composition++ для Android, переход на Swift Package Manager в качестве стандартного менеджера пакетов для iOS/macOS и улучшенная поддержка Vulkan для Impeller.
Также представлена предварительная версия поддержки многооконного режима для настольных платформ. Canonical становится ведущим разработчиком проекта.
В рамках масштабной архитектурной эволюции Material и Cupertino отделяются от основного фреймворка. Внедряются новые подходы к UX для агентного взаимодействия с пользователями (GenUI) и инструменты для разработчиков: Agentic Hot Reload, Dart & Flutter Agent Skills.
Flutter 3.44 уже используется в мультимедийной системе Toyota RAV4 2026, а также готовится SDK для webOS от LG.
#свежак #Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
Разработка — это не только код, но и постоянный приток новых идей и экспертного мнения. Давайте узнаем, кто из коллег по цеху составляет ваш личный информационный рацион.
Скидывайте в комменты авторов с YouTube, Теlegram, Хабр
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
Автор подробно разбирает, что такое Swift Plugins и какие они бывают.
Google добавил новые навыки и открыла AI-агентам доступ к мощным возможностям Android Studio, чтобы агенты могли эффективнее помогать в разработке приложений.
В этом году на конференции Google I/O 2026 команды Flutter и Dart отмечают важную тему: «Везде, каждый день, создано всеми, для всех».
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Конструкция switch/case похожа на конструкцию
if/else, так как позволяет обработать сразу несколько условий:var num: Int = 22
switch num {
case 0:
print("Переменная равна 0")
case 10:
print("Переменная равна 10")
case 22:
print("Переменная равна 22")
default:
print("не удалось распознать число")
}
После ключевого слова switch идет сравниваемое выражение. Это может быть переменная или константа. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.
Если совпадение не будет найдено, то выполняется оператор default.
В данном случае так как переменная
num равна 22, будет выполняться следующий блок case:case 22:
print("Переменная равна 22")
В других языках программирования, в которых также есть конструкция
switch/case, обычно в конце блока case ставится оператор break для прерывания выполнения и выхода из блока switch/case. В Swift использовать оператор break в подобных случаях необязательно.Однако бывают случаи, когда мы не хотим обрабатывать какие-то определенные значения и просто хотим выйти из конструкции switch. В этом случае после оператора case или default можно указать оператор break:
var num: Int = 0
switch num {
case 0:
print("Переменная равна 0")
case 10:
break
case 22:
print("Переменная равна 22")
default:
break
}
В данном случае если num равно 10 или другому числу, отличному от 0 или 22, просто произойдет выход из switch.
С помощью знака подчеркивания _ можно задать соответствие всем остальным значениям:
let number = 5
switch number {
case 1:
print("Number = 1")
case 2:
print("Number = 2")
case _:
print("Number не равно ни 1, ни 2, но это не точно")
}
Также мы можем сравнивать выражение не с одним значением, а с группой значений:
var num: Int = 20
switch num {
case 0, 10: // если num равно 0 или 10
print("Переменная равна 0 или 10")
case 11..<20: // если num в диапазоне от 11 до 20, не включая 20
print("Переменная находится в диапазоне от 11 до 20")
case 20...30: // если num в диапазоне от 20 до 30
print("Переменная находится в диапазоне от 20 до 30")
default:
print("не удалось распознать число")
}
Оператор
case 0, 10 задает два сравниваемых значения 0 и 10 и срабатывает, если выражение равно одному из этих значений.Оператор
case 11..<20 определяет целый диапазон значений от 11 до 20 (не включая 20) и срабатывает, если выражение равно значению из этого диапазона.Оператор
case 20...30 определяет целый диапазон значений от 20 до 30 (включая оба числа) и срабатывает, если выражение равно значению из этого диапазона.В версии Swift 4 мы можем опускать одну границу диапазона:
let i = 8
switch i {
case ...<0:
print("i - отрицательное число")
case 1...:
print("i - положительное число")
case 0:
print("i равно 0")
default:break
}
#буст #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
До 31 мая можно забрать любой курс Proglib Academy со скидкой 40%
Если давно хотели прокачаться в Python, ML, алгоритмах или AI-агентах, сейчас самое время выбрать программу и начать обучение по сниженной цене.
🎁 Разработка AI-агентов — от 49.000 ₽ (вместо 69.000 ₽)
Практический курс по разработке AI-агентов для автоматизации задач, работы и собственных проектов
🎁 Курс AgentOps — 129.000 ₽ (вместо 149.000 ₽)
Для разработчиков и LLM-инженеров, которые хотят внедрять AI-логику в бэкенд и сохранять стабильность сервиса.
🎁 Математика для разработки AI-моделей — 23.990 ₽ (вместо 31.990 ₽)
Практическая база по математике для анализа данных, ML и дальнейшего развития в AI.
🎁 Математика для Data Science — от 29.990 ₽ (вместо 39.990 ₽)
Курс для тех, кто хочет решать задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе.
🎁 ML для старта в Data Science — 28.990 ₽ (вместо 38.990 ₽)
Разберётесь в машинном обучении: от базовых понятий и линейных моделей до ансамблей, бустинга и рекомендательных систем.
🎁 Основы IT для непрограммистов — 16.990 ₽ (вместо 28.990 ₽)
Курс для IT-рекрутеров, маркетологов, проджектов, продактов и всех, кто работает с IT, но не пишет код.
🎁 Архитектуры и шаблоны проектирования — 27.990 ₽ (вместо 37.900 ₽)
Освоите основные паттерны проектирования и прокачаете навыки архитектора программного обеспечения.
🎁 Специалист по ИИ — 89.000 ₽ (вместо 113.900 ₽)
Курс для тех, кто хочет получить профессию в сфере ИИ, собрать портфолио из 5 проектов и научиться разрабатывать сложных AI-агентов.
🎁 Алгоритмы и структуры данных — 33.990 ₽ (вместо 57.990 ₽)
Подготовитесь к алгоритмическим собеседованиям, разберёте структуры данных и научитесь писать более эффективный код.
🎁 Программирование на языке Python — 27.990 ₽ (вместо 47.390 ₽)
Освоите Python на практике: без сухой теории, с пошаговой прокачкой навыков и итоговым проектом в портфолио.
🙌 Выбирайте курс по ссылке, оставляйте заявку, и менеджер поможет подобрать программу под ваши цели — https://clc.to/OdsnEQ
Если давно хотели прокачаться в Python, ML, алгоритмах или AI-агентах, сейчас самое время выбрать программу и начать обучение по сниженной цене.
🎁 Разработка AI-агентов — от 49.000 ₽ (вместо 69.000 ₽)
Практический курс по разработке AI-агентов для автоматизации задач, работы и собственных проектов
🎁 Курс AgentOps — 129.000 ₽ (вместо 149.000 ₽)
Для разработчиков и LLM-инженеров, которые хотят внедрять AI-логику в бэкенд и сохранять стабильность сервиса.
🎁 Математика для разработки AI-моделей — 23.990 ₽ (вместо 31.990 ₽)
Практическая база по математике для анализа данных, ML и дальнейшего развития в AI.
🎁 Математика для Data Science — от 29.990 ₽ (вместо 39.990 ₽)
Курс для тех, кто хочет решать задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе.
🎁 ML для старта в Data Science — 28.990 ₽ (вместо 38.990 ₽)
Разберётесь в машинном обучении: от базовых понятий и линейных моделей до ансамблей, бустинга и рекомендательных систем.
🎁 Основы IT для непрограммистов — 16.990 ₽ (вместо 28.990 ₽)
Курс для IT-рекрутеров, маркетологов, проджектов, продактов и всех, кто работает с IT, но не пишет код.
🎁 Архитектуры и шаблоны проектирования — 27.990 ₽ (вместо 37.900 ₽)
Освоите основные паттерны проектирования и прокачаете навыки архитектора программного обеспечения.
🎁 Специалист по ИИ — 89.000 ₽ (вместо 113.900 ₽)
Курс для тех, кто хочет получить профессию в сфере ИИ, собрать портфолио из 5 проектов и научиться разрабатывать сложных AI-агентов.
🎁 Алгоритмы и структуры данных — 33.990 ₽ (вместо 57.990 ₽)
Подготовитесь к алгоритмическим собеседованиям, разберёте структуры данных и научитесь писать более эффективный код.
🎁 Программирование на языке Python — 27.990 ₽ (вместо 47.390 ₽)
Освоите Python на практике: без сухой теории, с пошаговой прокачкой навыков и итоговым проектом в портфолио.
🙌 Выбирайте курс по ссылке, оставляйте заявку, и менеджер поможет подобрать программу под ваши цели — https://clc.to/OdsnEQ
При разработке приложений для iOS нам часто приходится сохранять конфиденциальные пользовательские данные, такие как пароли, токены аутентификации или криптографические ключи.
Для такого типа данных хранение значений в обычных файлах или UserDefaults обычно не подходит. Вместо этого в iOS предусмотрен API Keychain Services, который хранит конфиденциальные данные в зашифрованной базе данных, управляемой системой.
В этом посте мы рассмотрим, как работает API Keychain и как сохранять элементы связки ключей в Swift.
🔹 Примечание о структуре API
API Keychain Services — это API на основе языка C, из-за чего он кажется менее современным по сравнению со многими API на Swift.
На практике многие приложения оборачивают API в небольшую абстракцию на Swift или используют стороннюю библиотеку для упрощения стандартных операций.
Тем не менее понимание базовой структуры запросов по-прежнему важно, поскольку большинство абстракций в конечном счёте строятся на основе одного и того же API.
🔹 Понимание запросов к связке ключей
API сервисов связки ключей основано на запросах.
Запрос к связке ключей представляет собой словарь пар «ключ-значение», который описывает:
Для сохранения, чтения, обновления и удаления элементов используется одна и та же структура запроса.
🔹 Сохранение элементов связки ключей
Например, чтобы сохранить пароль в связке ключей, мы сначала создаем запрос, описывающий элемент, который хотим сохранить:
let query: [CFString: Any] = [
kSecClass: kSecClassGenericPassword,
kSecAttrService: "com.app.service",
kSecAttrAccount: username,
kSecValueData: passwordData]
Давайте разберем это по частям.
kSecClass:
kSecClassGenericPasswordkSecClass определяет тип элемента связки ключей, который мы хотим сохранить. В этом случае для хранения пароля мы используем kSecClassGenericPassword. Среди других доступных типов:kSecClassInternetPassword для хранения интернет-паролей.kSecClassCertificate для хранения сертификатов.kSecClassKey для хранения криптографических ключей.kSecClassIdentity для хранения идентификационных данных.Тип элемента определяет, какие атрибуты доступны для запроса.
kSecAttrService: "com.app.service"Строка, определяющая пространство имен для элементов связки ключей, обычно это идентификатор пакета приложения или конкретное имя сервиса. Это важно для предотвращения конфликтов, когда у нескольких элементов одно и то же имя учетной записи.
kSecAttrAccount: usernameАтрибуты используются для идентификации элемента и предоставления дополнительных метаданных.
В этом примере
kSecAttrAccount хранит имя пользователя, связанное с паролем.Мы можем дополнительно указать дополнительные аргументы запроса, чтобы настроить поведение элемента связки ключей. Например,
kSecAttrAccessible: kSecAttrAccessibleWhenUnlocked, который определяет, когда можно получить доступ к элементу. kSecAttrAccessibleWhenUnlocked гарантирует, что элемент будет доступен только при разблокированном устройстве.kSecValueData: passwordDataСамо конфиденциальное значение сохраняется с помощью
kSecValueData. Значение должно быть указано как
Data.#АрхитектурныйКод #MiddlePath #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM