Pull to refresh
5
21.3
Send message

Навигация на SwiftUI: чего не хватает и как исправить

Level of difficultyMedium
Reading time14 min
Reach and readers6K

В статье iOS-разработчик студии комплексной разработки цифровых продуктов и мобильных приложений CleverPumpkin разбирает ограничения SwiftUI при построении сложной навигации, с которыми команда столкнулась на одном из своих проектов. Он рассказывает, в каких сценариях приходилось подключать UIKit, чтобы сохранять стабильность, показывает варианты подходов и делится выводами, какие инструменты выбирать для контролируемой навигации.

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

Читать далее

Не просто «пилил фичи»: как рассказать о проекте, чтобы получить +1 к грейду

Level of difficultyEasy
Reading time7 min
Reach and readers6.1K

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

Эта статья — про то, как перестать саботировать самого себя и научиться рассказывать о своей работе так, чтобы ее оценили по достоинству.

Читать далее

Proxyman + HAR = mock-данные для iOS-тестов

Level of difficultyMedium
Reading time15 min
Reach and readers5.6K

Привет! Меня зовут Ринат, я iOS-разработчик в Naumen. В компании я занимаюсь разработкой нескольких iOS-продуктов: клиента для SMP-сервера (Service Management Platform) и SDK чата.

В этой статье расскажу, как мы используем связку Proxyman + HAR, чтобы готовить mock-данные сетевых запросов для интеграционных UI-тестов одного из iOS-приложений. Такой подход выручает, когда для тестов нет возможности поднять сервер с нужным наполнением или сервер не предоставляет дополнительных методов API для имитации определенного сценария — например, переписка в чате с собеседником, обновление статуса заказа.

Читать далее

SwiftUI-Adapter: поддерживаем новые модификаторы SwiftUI на старых версиях iOS

Level of difficultyEasy
Reading time1 min
Reach and readers6.5K

Друзья, привет! Сегодня хочу представить вам свою библиотеку - SwiftUI-Adapter, которая избавит вас от головной боли при работе с новыми модификаторами SwiftUI.


Недавно я наткнулся на удобную Android-библиотеку, которая упрощает работу с разными версиями API и подумал: «Почему бы не сделать что-то подобное для SwiftUI?». После этого родилась идея разработать инструмент, который избавит вас от бесконечных проверок available и сделает код чище.

Ссылка на библиотеку в GitHub

Установка библиотеки выполняется через Swift Package Manager.

Читать далее

Миграция на SPM: что мы выиграли и что потеряли

Reading time9 min
Reach and readers4.4K

Спойлер: сократили размер приложений на 44% и ускорили их запуск в среднем на 51%.

Привет, Хабр! Меня зовут Владислав Сединкин, я занимаюсь iOS 10 лет и последние 2 года работаю в мобильной Core-команде Туту. В этом году мы решили сменить менеджер зависимостей и мигрировать с CocoaPods на SPM. Результаты оправдали ожидания, хотя и сложности на этом пути, конечно, были. В статье расскажу про проблемы, с которыми мы столкнулись в процессе, и предупрежу, на что стоит обратить внимание, чтобы не повторить наши ошибки.

Читать далее

Combine – швейцарский нож iOS-разработчика. Или нет?

Reading time11 min
Reach and readers6.4K

Привет! Меня зовут Антон, я iOS-разработчик в Банки.ру. Когда я только начинал изучать Combine, он казался для меня магией. Пара команд – и вот у тебя уже есть какие-то данные. Чтобы Combine перестал оставаться черным ящиком давайте заглянем внутрь. Эта статья – мое виденье этого фреймворка.

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

Давайте рассмотрим Combine изнутри!

Читать далее

Swift становится ближе. Разработка в контейнере c IDE для VSCode

Level of difficultyEasy
Reading time13 min
Reach and readers9.1K

Привет, Хабр!

Вы устали иметь дело со сломанными Swift проектами через несколько месяцев после их создания? Каждый раз мучаетесь с настройкой Swift окружения, нюансами под каждую платформу и страдаете от засорения системы кучей устанавливаемых компонентов? Или просто интересуетесь тем как попробовать Swift для разработки за пределами экосистемы Apple? Тогда добро пожаловать под кат, будет интересно!

Читать интересное

Один пост, чтобы обрести силу… или разбираемся в промптах, чтобы научиться их писать раз и навсегда

Level of difficultyEasy
Reading time3 min
Reach and readers8.8K

В последнее время расплодилось каналов с псевдоэкспертами по промпт-инжинирингу. Но цель у них одна — зарабатывать на вашем внимании, втюхивая вам сгенерированные в тех же LLM промпты как нечто волшебное и уникальное. Здесь мы такое не одобряем!

Давайте-ка один раз хорошенько разберём, как работают промпты и как их писать. Я намеренно не буду грузить вас заумными терминами, так как именно их используют как завесу из магической пыли вокрут этой темы. Моя же цель — рассказать все максимально просто.

Читать далее

Трудовая дисциплина

Level of difficultyEasy
Reading time12 min
Reach and readers10K

Что делать с нехорошими людьми на работе, если они к вам каким‑то образом пробрались. Специально для нынешних и будущих тимлидов — когда команду разработки вам уже доверяют, но собственная «тактическая борода» еще пока не выросла.

Читать далее

Умный поиск по заметкам: как оживить «второй мозг» с помощью RAG

Level of difficultyMedium
Reading time16 min
Reach and readers4.1K

Ваша база знаний превратилась в кладбище идей? Я построил RAG-систему, чтобы мой "второй мозг" ожил и стал собеседником. Узнайте, как перейти от хаотичного поиска к осмысленному диалогу с вашими заметками и получить измеримую выгоду для бизнеса.

Читать далее

«Хочу, но боюсь и не делаю»: что делать со страхом того, что не получится?

Reading time16 min
Reach and readers2.6K

Несколько лет подряд я занималась различными проектами в айти: запускала и продавала стартап, работала трекером, делала продуктовые исследования — все это была проектная работа. А потом проекты внезапно закончились. Заказчики перестали звать, клиентов быстрыми способами (написать в несколько дружественных чатиков о том, что ищу проекты) найти не удалось, и я оказалась перед выбором: устраиваться все-таки на постоянное место работы или продолжать жить проектами и искать клиентов уже более сложными для меня способами. Например, аутрич в Линкедин и много других идей. 

Но я никак не могла выбрать, в какую сторону двигаться? Прилагать усилия по поиску проектов или то же самое по поиску работы? В голове роилось много мыслей, тревога и страх просто сжирали, а при любых делах меня хватал паралич. И пока я не поставила сама себе диагноз, ситуация не сдвинулась с места.

Меня зовут Аня Миро, я продакт, бизнес-психолог и исследователь предпринимательского поведения. Я расскажу об одном страхе, который есть не только у меня. 

Дисклеймер. Эта статья, скорее всего, будет интересна тем, кто сейчас переживает или в прошлом переживал какие-то изменения, и это было совсем непросто. Вероятно, неинтересно будет тем, кто не испытывал психологических проблем в жизни: выгорание, депрессию, никогда не переживал мощный страх или тревогу. В общем, статья написана для простых людей со своими проблемами, которых хотелось бы испытывать поменьше.

Что за страх?

Кто получит нейро-Оскар: 10 нейросетей для создания видеоконтента

Reading time10 min
Reach and readers2.6K

В 2025 году создание видео с помощью искусственного интеллекта стало новым популярным хобби. Рекламный ролик, вирусные новости, ИИ-интервью, коты в стиле Тарковского — нейросети открыли доступ к генерации видео практически без ограничений. А главное, любые видео теперь можно создавать без съемочной группы и навыков монтажа. Нужно всего лишь придумать сценарий ролика и набросать текстовый запрос. Остальное нейросеть сделает самостоятельно.

Редакция блока «М.Клик» собрала наиболее интересные нейросети для создания видео. В приведенной подборке — и любимчики креаторов, и самые свежие новинки.

Читать далее

Делай это 4 минуты в день и спина болеть не будет! Простой план компенсации сидячего образа жизни

Level of difficultyEasy
Reading time4 min
Reach and readers5K

В предыдущих материалах мы искали ответ на вопрос: «Достаточно ли двух тренировок в неделю для компенсации сидячего образа жизни?». Сошлись на том, что достаточно. Составляли двухдневный тренировочный план для сбалансированной проработки всех мышц, которого будет достаточно для того, чтобы мышцы росли.

Что делать, если и двух раз тренироваться не получается? Если доступен только один свободный день — есть ли смысл и польза в такой тренировке?

Конечно, есть! Чтобы доказать вам это, обратимся к исследованиям по теме минимального тренировочного объема, которая в последние годы активно изучается.

У нас есть не просто отдельные исследования, а один подробный метаанализ, один нарративный обзор и один обзор исследований:

Читать далее

ПОТРАЧЕНО–3. Как тестировать локализацию переводов, чтобы потом не было стыдно

Level of difficultyMedium
Reading time9 min
Reach and readers450

Привет!

Итак, две части про локализацию и её тестирование позади (раз, два), пришло время для третьей.

Читать далее

Стресс и нейропластичность. Как страхи и сомнения убивают память

Level of difficultyEasy
Reading time5 min
Reach and readers1.8K

Человек думает о стрессе и тревоге как о неприятном, но естественном элементе своего быта. Вот только популярные элементы образа жизни и «привычные» инструменты подавления стресса еще больше расшатывают работу мозга и убивают наши возможности. Как это происходит и можно ли этому препятствовать? Разберем в материале.

Читать далее

Rafinad: сахар для UI-тестирования iOS-приложений

Level of difficultyMedium
Reading time14 min
Reach and readers1.7K

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

Кто-то скажет, что старые решения прошли проверку временем и что «работает — не трогай»... Возможно, и так. Но сейчас мы внедряем новую дизайн-систему, а новые компоненты требуют адаптации всех тестов — не лучшее ли время для перемен?

Поэтому мы пересмотрели наши подходы к UI-тестированию и теперь готовы поделиться наработками с сообществом в виде open-source проекта — Rafinad. В этой статье расскажем, что он умеет и как им пользоваться.

Читать далее

Почему мы застреваем в TikTok и Instagram и что с этим делать

Level of difficultyEasy
Reading time5 min
Reach and readers951

Ситуация наверное знакома каждому из нас: мы берем телефон, чтобы «просто проверить» Instagram или TikTok, и внезапно обнаруживаем, что пролетел час, а то и два. Вроде бы ничего особенного не произошло, но мы чувствуем себя странно опустошенными и уставшими. Почему так происходит?

Объяснение этому феномену выходит далеко за рамки очевидных ответов вроде «потому что это зависимость» или «потому что приложения спроектированы быть затягивающими». Дело в том, как работает наш мозг на самом базовом уровне. Даже непродолжительное пользование социальными сетями может влиять на наше субъективное благополучие и уровень стресса в организме.

Читать далее

Убить героя: почему героизм — это выбор легкого пути, который вредит не только вам, но и окружающим

Level of difficultyEasy
Reading time4 min
Reach and readers5.5K

Книжки, фильмы, а иногда и непосредственное окружение вдалбливают, что героем быть круто. Вот только в реальности героизм — это путь наименьшего сопротивления. У каждого из нас есть героическая часть — и если дать ей волю, она всем создаст проблемы. Почему так выходит и какие психологические плюшки мы получаем от героизма?

Читать далее

Изоляция с помощью глобальных акторов в Swift Concurrency: варианты на примере @MainActor

Reading time7 min
Reach and readers613

Привет, Хабр! Меня зовут Алексей Григорьев, я техлид iOS-разработки продукта Membrana в МТС. Это тариф с приложением для управления приватностью в сети и окружением.

Swift Concurrency принесла множество инструментов для управления многопоточностью. Среди них глобальные акторы, которые помогают обеспечивать безопасность данных и контролировать потоки выполнения.

Один из самых распространенных и полезных глобальных акторов — это @MainActor, который гарантирует выполнение операций в главном потоке приложения. В этом посте я на его примере покажу все варианты, как можно реализовать изоляцию и что в итоге выведет код: на каком потоке будут выполнены update, internal update и set в property.

Читать далее
1
23 ...

Information

Rating
385-th
Registered
Activity