Telegram Web
Подборка Telegram каналов для программистов

https://www.tgoop.com/bash_srv Bash Советы
https://www.tgoop.com/win_sysadmin Системный Администратор Windows
https://www.tgoop.com/lifeproger Жизнь программиста. Авторский канал.
https://www.tgoop.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tgoop.com/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин

https://www.tgoop.com/linux_odmin Linux: Системный администратор
https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux

1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tgoop.com/DevLab1C 1С:Предприятие 8

Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия. Учи Python быстро и легко🐍
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python Rus

Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр

Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
https://www.tgoop.com/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/coddy_academy Полезные советы по программированию
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров

Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack

https://www.tgoop.com/tikon_1 Новости высоких технологий, науки и техники💡
https://www.tgoop.com/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
Grit — простой список дел и трекер привычек

https://github.com/shub39/Grit

#Android

👉 @developer_mobila
👍5
Какая навигация в Compose лучшая? Может ли AI писать UI за вас? Как проходит переезд на Compose в большой компании?

С 24 по 28 марта на Podlodka Android Crew разберем всё, что накопилось за 3 года продакшн-использования Compose!

🔥 Дебаты по навигации в Compose — два эксперта - Аркадий Иванов (X (ex-Twitter) и Игорь Кареньков (HH.ru), два подхода, одна истина. Кто окажется убедительнее, решат зрители!

🤖 Как AI пишет UI за вас — Павел Королев и Алексей Утепов (QazCode) на практике покажут генерацию верстки реального макета в Jetpack Compose.

🏗 Опыт Avito: переезд на Compose — изменения затрагивают дизайн-систему, архитектуру, перфоманс, процессы. Ребята из Авито делятся опытом и советами.

🔍 Публичное собеседование по Compose — реальный кандидат, реальный код, разбор ошибок и живой фидбек.

Главное — всё, что обсудим, можно сразу применять на практике! Билеты тут 👉 https://podlodka.io/droidcrew
👍1
Горячие клавиши Xcode


Ctrl + A – в начало строки

Ctrl + E – в конец строки

Ctrl + T – поменять местами символы, прилегающие к курсору

Ctrl + K – удалить строку

Ctrl + L – курсор в центр строки

Esc – спрятать (показать) меню предложений

Tab – применить предложение

Cmd + Y – активировать (деактивировать) точки остановки

Cmd + Control + Y – продолжить компиляцию (в дебаггере)

F6 – степ-овер

Cmd + Opt + ↑ - переключение между заголовочным файлом и файлом исходного текста

Cmd + двойной щелчок - переключение к определению идентификатора

Opt + двойной щелчок - найти документацию для идентификатора

Tab + → или Ctrl + / - выбрать следующий аргумент в автозаполнении

Shift + Tab + → или Shift + Ctrl + / - выбрать предыдущий аргумент в автозаполнении

Ctrl + Shift + . - в обратном направлении между вариантами автозаполнения

Opt + Cmd + двойной щелчок на идентификаторе - найти в документации

Cmd + двойной щелчок на объекте в Document Window - переключиться к классу в XCode из IB

Ctrl + Shift + щелчок на объекте - выбрать наложенные друг на друга элементы в Interface Builder

Cmd + ] или Cmd + [ - табулировать блок кода вправо или влево

Cmd + / - закомментировать блок кода

Cmd + Shift + E - скрыть список файлов над редактором кода

Cmd + Opt + Shift + E - скрыть список файлов над редактором кода и «Groups and Files»

Alt + Shift + Cmd + K - очистить папки билда (build)

Cmd + стрелки влево/вправо - поворот симулятора

Cmd + R - запустить программу на выполнение

Cmd + . - остановить проект

Cmd + B - собрать проект, без запуска

Cmd + Shift + B - сборка проекта со сбросом кэша IDE

Cmd + L - переход к строке с номером

Cmd + N - создать файл

Cmd + Shift + F - поиск по всему проекту

Cmd + Ctrl + F - развернуть среду во весь экран

Cmd + Shift + O - перемещение по файлам, методам, классам

Cmd + T - создать новую вкладку

Cmd + Opt + T - показать или скрыть Toolbar

Cmd + Shift + N - создать новый проект

Cmd + Opt + → свернуть или развернуть код

Cmd + S - сохранить проект

Cmd + Shift + L - показать библиотеку компонентов

Cmd + Shift + Return - запустить Playground(выполнить код)

Cmd + 0 - показать или скрыть область навигатора(левое окно)

Cmd + Opt + 0 - показать или скрыть область инспектора (правое окно)

Cmd + Shift + Y - показать или скрыть область отладки (нижнее окно)

#ios

👉 @developer_mobila
👍5
Изучаем основы Android XR

Кодлаб от Google по разработке для Android XR. В этом лабораторной работе вы улучшите базовое одноэкранное приложение, чтобы обеспечить захватывающий пользовательский опыт на Android XR.

Что вы узнаете:

Уникальные пользовательские возможности, которые дает форм-фактор XR.
Основы адаптации приложений к работе на гарнитуре Android XR с помощью композабл элементов, предоставляемых библиотекой Jetpack Compose XR.
Как использовать элементы пользовательского интерфейса, предоставляемые библиотекой Compose XR.
Где можно узнать больше о создании приложений для Android XR.

https://developer.android.com/codelabs/xr-fundamentals-part-1#0

#Android

👉 @developer_mobila
👍2
📱Хотите создавать стильные и современные Android-приложения?

На открытом вебинаре «Material Design 3.0 — что нужно знать разработчику» 📅 24 марта в 20:00 мск вы разберете документацию, изучите инструменты и узнаете ключевые требования дизайна.

💼Научитесь создавать интерфейсы, которые будут радовать пользователей и впечатлять работодателей.

👉Открытый урок перед стартом курса «Android Developer. Professional», получите скидку на обучение: https://vk.cc/cJUW23

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍1
#вакансия #удалённо #parttime #преподаватель #iOS

OTUS ищет преподавателей на онлайн-курс iOS Developer. Professional

Мы расширяем команду экспертов (уже более 650 человек) и ищем опытных практикующих специалистов, которым интересно делиться знаниями. Преподавательский опыт не обязателен — наши методисты помогут вам освоить практики преподавания.

Требуется практический опыт разработки под iOS от 3- х лет. Приветствуется знание технологий: Swift, SwiftUI, Combine, CoreML, ARKit, а также архитектурные паттерны (MVVM, VIPER и др.).

Обязанности:
- подготовиться к занятиям (есть материалы для опоры);
- проводить онлайн-занятия, уделяя большое внимание практике. Здесь вы сможете развивать навыки публичных выступлений, работы с аудиторией и подачи обратной связи;
- за доплату возможна проверка домашних заданий.

Условия:
гибкий график, легко совмещать с основной работой, занятия в вечернее время с 20:00 до 21:30, дни на выбор;
темы занятий на выбор;
оплата от 4000 до 6000 руб. за вебинар (полтора часа) и 300-400 рублей за проверку 1 домашнего задания;
бонусы: доступ к нашим курсам, нетворкинг, развитие личного бренда, участие в воркшопах и конференциях.

Обсудить подробнее: @HR_Nikita
Статья посвящена модели кооперативной отмены задач в Swift

В ней рассматривается, как разработчики могут определить момент отмены задачи и корректно обработать это событие. Swift не прерывает выполнение задачи автоматически при ее отмене; вместо этого предоставляется информация о статусе отмены, и разработчик самостоятельно решает, как на это реагировать.

В статье представлены примеры использования API Task для проверки статуса отмены с помощью методов Task.isCancelled и Task.checkCancellation(), а также даны рекомендации по эффективной обработке отмененных задач в асинхронном коде.

https://swiftwithmajid.com/2025/02/11/task-cancellation-in-swift-concurrency/

#ios

👉 @developer_mobila
👍2
Подборка Telegram каналов для программистов

https://www.tgoop.com/bash_srv Bash Советы
https://www.tgoop.com/win_sysadmin Системный Администратор Windows
https://www.tgoop.com/lifeproger Жизнь программиста. Авторский канал.
https://www.tgoop.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tgoop.com/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин

https://www.tgoop.com/linux_odmin Linux: Системный администратор
https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux

1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tgoop.com/DevLab1C 1С:Предприятие 8

Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия. Учи Python быстро и легко🐍
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python Rus

Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр

Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
https://www.tgoop.com/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/coddy_academy Полезные советы по программированию
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров

Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack

https://www.tgoop.com/tikon_1 Новости высоких технологий, науки и техники💡
https://www.tgoop.com/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
This media is not supported in your browser
VIEW IN TELEGRAM
Mantis — кроп для изображений в стиле Фото

Mantis — это библиотека для обрезки (кропа) изображений для iOS, написанная на Swift и обеспечивающая богатые возможности обрезки для вашего приложения для iOS/Mac. Поддерживает разные формы (в том числе кастомные), кнопку отмены.

https://github.com/guoyingtao/Mantis

#ios

👉 @developer_mobila
👍1
Обновляем дорожную карту Android-разработчика в 2025 году

Прошло уже более трех лет с момента выпуска дорожной карты Android-разработчика, и технологии Android продолжают стремительно развиваться в различных областях. В то время Jetpack Compose только достиг стабильного релиза 1.0, и разработчики с нетерпением ждали его зрелости и развития экосистемы.

Со временем появилось множество решений и инструментов для решения проблем разработки, которые значительно улучшили проекты. В частности, значительно повысилась производительность Android Studio, а интеграции с искусственным интеллектом в IDE теперь помогают разработчикам писать код более эффективно. Однако основные принципы создания Android-приложений остались относительно стабильными.

В этой заметке мы рассмотрим серию статей, представивший всесторонний взгляд на разработку приложений для платформы Android, сообщество и рост разработчиков, а также оценим, остаются ли эти идеи актуальными сегодня.

https://proandroiddev.com/recap-the-android-developer-roadmap-in-2025-84bf11429302


#Android

👉 @developer_mobila
👍3
Media is too big
VIEW IN TELEGRAM
Переход с UIKit на SwiftUI — разработка трекера тренировок с нуля

00:00 - Intro
01:36 - Настройка проекта
02:57 - Создание модели User
04:06 - Отличие UIKit от SwiftUI
05:25 - Создание UserInfoView
06:48 - Создание ZStack
07:50 - Создание HStack
10:19 - Использование padding для Image
11:15 - Использование offset для Image
12:30 - Использование padding для Rectangle
14:09 - Использование alignmentGuide
16:35 - Размещение Text
20:36 - Создание ViewMetrics
25:18 - Лайк и Подписка

источник

#ios

👉 @developer_mobila
👍2
Все знают, какие приложения установлены у вас в телефоне

Ещё несколько лет назад любое приложение, установленное на устройство с Android, могло без разрешений видеть все остальные приложения.

В 2022 году, с выпуском Android 11, Google удалила этот доступ для разработчиков приложений. Согласно новой политике видимости пакетов, приложения должны видеть другие приложения только в том случае, если те необходимы для их базовой функциональности. Кроме того, разработчики должны явным образом объявлять эти приложения в обязательном для всех приложений Android файле конфигурации AndroidManifest.xml.

В крайних случаях, например, для диспетчеров файлов, браузеров и антивирусов Google предоставляет исключение в виде разрешения QUERY_ALL_PACKAGES, которое позволяет видеть все установленные приложения.

На своём основном телефоне я не пользуюсь Android, но у меня есть запасной, и мне стало очень любопытно, какие приложения индийских компаний содержат проверки других установленных мной приложений.

Я скачал несколько десятков пришедших мне в голову приложений и начал изучать их файлы манифестов. Они ведь наверняка будут уважать мою конфиденциальность и запрашивать только те приложения, которые необходимы для их базовой функциональности?

https://habr.com/ru/articles/895774/

original https://peabee.substack.com/p/everyone-knows-what-apps-you-use

#Android

👉 @developer_mobila
👍1🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
Bonsai 🌳 — небольшая библиотека для управления состоянием во ViewModel

Bonsai — это крошечная библиотека управления состоянием без зависимостей, созданная специально для использования во ViewModel. Она облегчает реализацию однонаправленного потока данных (unidirectional data flow) и отделяет логику управления состоянием от UI и бизнес-логики.

Особенности
- Однонаправленный поток данных
- Без внешних зависимостей
- Простота в использовании
- Небольшой размер
- Объединяется с Kotlin Coroutines и Jetpack Compose

Пример использования


class CounterViewModel : BonsaiViewModel<CounterState>(CounterState()) {
fun increment() = reduce { state -> state.copy(count = state.count + 1) }
fun decrement() = reduce { state -> state.count.takeIf { it > 0 }?.let { state.copy(count = it - 1) } ?: state }
}

data class CounterState(val count: Int = 0)


И затем, в Compose:


val state by viewModel.state.collectAsState()
Text("Count: ${state.count}")


https://github.com/adrielcafe/bonsai

#Android

👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Осваиваем скроллинг в SwiftUI: реализация кастомной прокрутки

SwiftUI предоставляет несколько способов реализации прокрутки. Среди них TabView с PageTabViewStyle — самый простой способ добиться пагинации. Однако, если нам нужно больше контроля над логикой прокрутки и внешним видом интерфейса, мы можем использовать ScrollView и реализовать собственную пагинацию.

В этой статье мы рассмотрим, как с помощью ScrollViewReader, GeometryReader и PreferenceKey реализовать настраиваемую разбивку на страницы в SwiftUI. Мы также рассмотрим ключевые аспекты взаимодействия с прокруткой, включая определение текущей страницы, анимацию прокрутки и плавную синхронизацию с пользовательским интерфейсом.

Основы пользовательской пагинации

Чтобы создать пользовательскую пагинацию, нужно:

1. Отслеживать положение прокрутки.
2. Определять текущую страницу.
3. Позволять пользователю переходить между страницами.
4. Синхронизировать состояние прокрутки с внешними элементами управления.

Используемые инструменты

- ScrollView — для создания прокручиваемого содержимого.
- GeometryReader — для отслеживания положения каждого элемента.
- PreferenceKey — для передачи геометрической информации.
- ScrollViewReader — для управления прокруткой программно.

Шаг за шагом

1. Определение структуры данных: мы создаём массив элементов, которые будут отображаться на страницах.

2. Создание кастомного ключа предпочтений: используем PreferenceKey, чтобы передавать информацию о положении представлений родителю.

3. Измерение положения: с помощью GeometryReader внутри каждого элемента мы определяем его смещение относительно корневого окна.

4. Отслеживание текущей страницы: в родительском представлении собираем значения всех элементов и вычисляем, какая страница сейчас видна.

5. Прокрутка к странице: используем ScrollViewReader для анимации переходов между страницами при изменении состояния.

6. Синхронизация с пользовательским интерфейсом: добавляем внешний индикатор текущей страницы и управление перелистыванием.

Пример кода

В статье представлен полный пример реализации горизонтального скролла с настраиваемой пагинацией. Также рассматривается подход к реализации вертикальной прокрутки с теми же принципами.

Заключение

Хотя стандартный TabView с пагинацией прост в использовании, он ограничен в настройках. Реализация собственной пагинации через ScrollView и сопутствующие инструменты SwiftUI даёт нам полный контроль над поведением интерфейса и взаимодействием с пользователем.

https://fatbobman.com/en/posts/mastering-swiftui-scrolling-implementing-custom-paging/

#ios

👉 @developer_mobila
👍4
Media is too big
VIEW IN TELEGRAM
Мок собеседование Android разработчика в Контур: архитектура и кодинг приложения

Собеседование на позицию Middle Android Developer в формате разработчик приложения: архитектуру, написания кода и ответы на теоретические вопросы

0:00 Вступление
0:35 Знакомство с экспертом
1:34 Про формат собеседования
3:18 Знакомство с кандидатом
6:15 Обсуждение технического задания
22:28 Выбор стека и архитектура
49:23 Обратная связь по архитектуре
50:25 Проектирование БД
1:02:16 Общее описание решения
1:05:22 Лайвкодинг + вопросы
1:54:50 Блиц по Android
2:00:49 Обсуждение собеседований
2:03:05 Финал собеседования
2:04:39 Обратная связь
2:06:18 Ответы на вопросы

источник

#Android

👉 @developer_mobila
👍1
💻Хотите научиться писать эффективные сетевые клиенты для iOS и разобраться в том, какие технологии лучше выбрать для SwiftUI?

📖На открытом вебинаре 22 апреля в 20:00 мск мы подробно разберем архитектуру приложений на SwiftUI и выбор сетевого клиента: что лучше — Alamofire, Moya или нативное решение? Мы также покажем, как интегрировать эти технологии с Combine и async-await.

📊Умение работать с сетевыми клиентами под SwiftUI — ключевой навык для iOS-разработчика.

👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «iOS Developer. Professional» по промокоду IOSPRO4: https://vk.cc/cKVghj

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🧑‍🎨 В статье подробно описывается процесс создания эффекта шлифованного металла в Jetpack Compose с использованием градиентов и слоев.

Кратко о содержании:
Кольца: Создание концентрических кругов с помощью радиального градиента и случайного распределения прозрачных и темных полос для имитации металлической текстуры.
Блики: Добавление бликов с использованием sweep-градиента, который можно вращать для создания эффекта движения света.
Анимация: Реализация вращения бликов с учетом ориентации устройства или пользовательских событий.
Обрезка: Использование clipPath для обрезки градиентов по заданной форме, предотвращая визуальные артефакты при вращении.
Дополнительные детали: Добавление фаски с помощью градиентной рамки для усиления реалистичности металлического эффекта.

https://www.sinasamaki.com/brushed-metal-ui-in-jetpack-compose/

#Android

👉 @developer_mobila
👍2
Взаимодействие с Table View в SwiftUI

Когда нужно показать список данных, особенно длинный список, использование Table в SwiftUI — отличный выбор. Однако иногда вы можете заметить, что при использовании Table базовое взаимодействие с ним не совсем такое, какое хотелось бы. Например, строка таблицы может не казаться кликабельной или не обрабатывать события выбора так, как вы ожидали.

В этом посте мы рассмотрим, как сделать строки Table в SwiftUI интерактивными и реагирующими на пользовательские действия.

Проблема

Когда вы используете Table в SwiftUI, вы можете ожидать, что строки будут интерактивными и позволят пользователю выбирать их. Однако по умолчанию, особенно на macOS, строки могут выглядеть пассивно: клики по ним не обрабатываются так, как хотелось бы, и события выбора не происходят.

Вот простой пример использования Table:


struct Person: Identifiable {
var id = UUID()
var name: String
var age: Int
}

struct ContentView: View {
var people = [
Person(name: "Alice", age: 30),
Person(name: "Bob", age: 25)
]

var body: some View {
Table(people) {
TableColumn("Name", value: \.name)
TableColumn("Age", value: \.age)
}
}
}


В этом примере строки будут отображаться, но никакого выбора пользователя не будет.

Решение

Чтобы добавить возможность выбора строк, вы должны предоставить selection биндинг для Table. Таким образом Table будет знать, какие строки выбраны.

Вот обновленная версия примера:


struct ContentView: View {
@State private var selectedPerson: Person.ID?

var people = [
Person(name: "Alice", age: 30),
Person(name: "Bob", age: 25)
]

var body: some View {
Table(people, selection: $selectedPerson) {
TableColumn("Name", value: \.name)
TableColumn("Age", value: \.age)
}
}
}


Теперь пользователь сможет кликать по строкам и выбирать их. Переменная selectedPerson будет содержать идентификатор выбранного элемента.

Если вы хотите разрешить множественный выбор, вместо одного ID вы можете использовать Set<ID>:


@State private var selectedPeople = Set<Person.ID>()


И затем передавать биндинг selection: $selectedPeople.

Реакция на выбор

Чтобы реагировать на выбор пользователя, вы можете использовать onChange модификатор:


.onChange(of: selectedPerson) { newSelection in
if let selected = newSelection {
print("Выбран человек с ID: \(selected)")
}
}


Вывод

Хотя Table в SwiftUI изначально может не выглядеть полностью интерактивным, добавление биндинга для selection позволяет легко улучшить взаимодействие пользователя. Это делает строки таблицы кликабельными и позволяет обрабатывать выбор данных.

https://www.createwithswift.com/enabling-interaction-with-table-view-in-swiftui/

#ios

👉 @developer_mobila
👍3
2025/10/23 07:03:03
Back to Top
HTML Embed Code: