iOS Dev – Telegram
iOS Dev
7.88K subscribers
1.09K photos
121 videos
1 file
1.31K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru

🍏Канал об iOS-разработке, алгоритмах и архитектурах

⭐️ Подготовка к собесам

⭐️ Код. Много кода.

#ios #mobile #swift
Download Telegram
Xcode Behaviors - полезный трюк

Как показывает практика, то, что кажется очевидным, не всегда таковым является. Например, когда-то в канале я делился простым способом как перемещаться по терминалу к нужному символу.

Зная свои инструменты, можно повысить продуктивность если не в разы, то на несколько процентов точно.

Например, в Xcode есть полезная штука Xcode Behaviors (в ней можно настраивать кастомные действия для открытия вкладок, триггеров на старт/финиш билда, на ошибки, да почти на что угодно).

Вот как можно открывать директорию проекта по хоткею, например:

1. Создаём скрипт, например openProject.sh
2. В него добавляем следующее:
#!/bin/bash
open "`pwd`"

3. Накидываем на скрипт права на исполнение через терминал (или свойства) chmod +x openProject.sh
4. Переходим Xcode behaviors -> Edit behaviors -> Custom Behavior
5. Задаём название - например Open Project Behavior, добавляем хоткей, например cmd+option+9 (или любой другой, если будет конфликт, Xcode ругнётся).
6. Выбираем наш скрипт.

И теперь каждый раз, когда вы будете нажимать cmd+option+9, будет открываться директория текущего проекта.

Кстати, в Boosty (все ещё доступном по хорошим условиям) лежит и необычный пример MVP для логирования сборок билдов и интеграции c Xcode.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
82110💯63🔥2👍1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание таббара с анимацией в стиле телеграма в iOS 26

Приятные анимации как в телеге можно сделать разными способами (и по сложности реализации, и по затраченному времени в том числе).

📺 В этом видео автор поделился способом, как сделать так, чтобы существующий дефолтный таббар содержал анимированные эффекты SF-символов с помощью SwiftUI.

📖 А в этом посте можно посмотреть на большое справочное руководство по использованию SF-символов в целом.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1026👍11🔥8👏33❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🏆 iOS Контест от телеги с призовым фондом в $ 50 000

Дедлайн: 23:59 по времени Дубая 26 декабря 2025 года
Кто может участвовать: все желающие

📱 Только вчера показывал один из вариантов реализации анимации в таббаре, а уже сегодня Telegram стартанул конкурс, цель которого — внедрить эффекты Liquid Glass в старые версии iOS.

К сути: нужно точно воспроизвести анимацию и внешний вид (подсветка при нажатии, увеличение, баунс и растяжение) стеклянных элементов (для таббара, кнопок, свитчей и слайдеров). В слайдере блюр должен быть только у ползунка.

Требования:
– Минимальный таргет iOS 18.
– Никаких сторонних либ.
– Решение должно быть интегрировано в кодовую базу телеги (их наработки можно и нужно использовать).
– Изменения не должны аффектить стабильность и быстродействие (обещают замерять батарейку).

✈️ Детали конкурса - в официальном посте.

Всем участникам удачи!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
17❤‍🔥5🤩5👍3🔥2🫡2🆒2🏆1🤗1
Улучшение проверки регистрации в SwiftUI с использованием Key Paths

📖 В этой статье рассматривается, как с помощью key path можно значительно сократить объем кода, который необходимо написать, и, как прямой результат, сделать его гораздо более читабельным.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤‍🔥109👍4💯33🔥1
Одно приложение SwiftUI, шесть архитектур

Питер Якуб решил написать таск-менеджер целых 6 раз, чтобы попытаться выбрать лучшую архитектуру.

Интересно, что он затрагивает и разницу между архитектурой и дизайн-паттернами, в которой многие путаются до сих пор.

В его примерах можно посмотреть на использование MVC, MVVM, VIPER, TCA и посмотреть на любопытный поинт, что чистая архитектура не что иное, как философия (без отсылок к Роберту Мартину не обошлось).

📖 А какие выводы он сделал - почитайте сами.

P.S. Он не скрывает, что использовал ИИ для помощи (хотя и без подсказок это считывалось), но в любом случае ещё один взгляд на обсуждаемую в программировании тему не будет лишним.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
816🔥11👍9👏421💯1🏆1
Какие скиллы важнее в рабочих процессах?
Anonymous Poll
59%
Софты
41%
Харды
97😎64❤‍🔥2👍2🔥1💯1🏆1
Какие настройки компилятора важны для Swift Concurrency?

📖 В своей статье Мэтт Массикотт проходится по существующим опциям и описывает рекомендуемые настройки для проектов, использующих Swift 6.

А ещё он пытается ответить на вопросы о том, какие режимы можно просто включить, а о которых можно даже не думать.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8126👍5❤‍🔥3🔥2👏2💯1
This media is not supported in your browser
VIEW IN TELEGRAM
❄️ Снежинки на вашем рабочем столе c помощью Metal

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

Классно, что есть обработка эффекта таяния снега на границах окон и возможность настройки.

⬇️ Приложение доступно в App Store.

🛠 А так как оно ещё и в опенсорсе, то можно чекнуть исходный код в этом репозитории.

А тут можно посмотреть на эффект гирлянды.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
618🎅1110🔥41❤‍🔥11👍1💯1🏆1😎1
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI Animation Playground - интерактивное приложение для изучения анимаций

Нашёл ещё один любопытный опенсорс-проект для того, чтобы снизить путаницу при работе с различными типами анимаций.

Можно посмотреть сразу 9 типов анимаций: .spring, .smooth, .snappy, .bouncy, .easeIn, .easeOut, .easeInOut, .linear и .interpolatingSpring.

Есть и опции по настройке: duration, bounce, stiffness, damping и другие.


Затестить можно на разных типах фигур (или добавить свои, все же это опенсорс).

🛠 А здесь ссылка на github-репозиторий.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥41107👍42💯2
Актуальный вопрос к читателям

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

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

Но вот какая проблема у меня, моих коллег на протяжении последних года-двух это точно:

Если попадаются идеальные тестовые с четкой архитектурой, покрытием большого количества корнер-кейсов и практически идентичными комментариями - есть большая вероятность, что на любой вопрос по коду я ответа не получу.

При этом я не против использования ИИ для написания кода кандидатами - но я прошу понимать написанное.

Какие вы дадите советы, стоит ли с этим бороться вообще? Если стоит, то как именно?

Например, лично я добавляю небольшую 20/30-минутную часть по изменению кода в процессе собеса.

А что ещё посоветуете?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7118🔥6🍓5❤‍🔥2🎅2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Парадоксальный способ ускорить SwiftUI Preview

Хранимые свойства - неоптимальный вариант, так как Xcode перекомпилирует файл каждый раз, когда меняется значение.

А вот если менять значения в вычисляемых свойствах, то обновление будет мгновенным.

Аксель Ле Пеннек даже отправил запрос на этот счет в радар, и получил официальное подтверждение Apple на счет предположения.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥4212❤‍🔥44🤯2👍1👏1💯1😎1
Краткость - сестра таланта

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

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

Например, есть примеры роликов, в которых объясняется суть за час. А те, кто использует чаты для поиска ответов - сталкиваются с этим каждый день (а как иначе сжечь ваши токены).

Главная мысль - она как свая, фундамент, на чём должен держаться дальнейший процесс рассуждений.

Если её нет - то и дом рассыпется.

Поэтому когда я вижу статьи на час про то, как работает библиотека (относится и к поинтфри, и к мастодонтам нашей отрасли), хочется напомнить и про оригинал цитаты Чехова:

«Мой совет: в пьесе старайся быть оригинальным и по возможности умным, но не бойся показаться глупым... Не зализывай, не шлифуй, а будь неуклюж и дерзок. Краткость — сестра таланта»


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥18💯1072🔥2🫡2👍1🏆1🍓1
iOS Dev
Какие скиллы важнее в рабочих процессах?
Софты важнее

Признаюсь, ждал как минимум двухкратного перевеса в опросе, но в итоге они оказались приоритетнее не с таким уж и крупным отрывом.

Довольно очевидно, что такие навыки важны не только в работе, но и в жизни в целом.

Хотя некоторые подразумевают под этим только умение говорить (или уровень красноречия), на самом деле эта ветвь куда обширнее: к софтам можно отнести и адаптивность к изменениям, и работу в команде, умение управлять своим времененем и, что уж там, даже устойчивость к стрессу.

Но, конечно, их нельзя измерить тестами. А ещё тяжелее прокачать.

При этом я считаю, что при общении продвинутые софты это не только «всем улыбаться и принимать за истину точку зрения собеседника», но ещё и способность аргументированно обосновывать, почему то или иное решение откровенно плохое. Что, кстати, логично вытекает из развитых хардов: вряд ли без опыта получится детально по кирпичикам рассказать, что задачу делать не одну минуту.

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

Развитые софты в команде - это путь не только к здравой атмосфере в коллективе, но и топливо без примесей для четкого графика релиза фич, отсутствию недопонимания и расставлению точек над i на дистанции.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2817🔥94👍2🎅21❤‍🔥1👏1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Как Apple «исправили» проблему с сотовой связью в 2010 году

С выходом iPhone 4 многие пользователи обратили внимание на следующее: если взять телефон определённым образом, то сигнал сети ухудшался (визуально с 5 полосок до 2).

Спустя насколько недель компания опубликовала письмо, в котором свалила вину за это на неправильную формулу.

Но на самом деле все было куда интереснее, они изменили отрисовку полосок, сделав переход более плавным, а само решение уместилось в 20 байт.

А ещё они изменили высоту этих столбцов в самом интерфейсе (казалось бы, такая мелочь, но как меняется восприятие).

Я люблю такие истории, и некоторые из них периодически появляются и в нашем канале:

📖 Почему размер иконок в первых айфонах стал именно таким | 📖 Как создавалась клавиатура в iPhone

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1224🔥10❤‍🔥7👏3👍1💯1🍓1
Сатирический взгляд на жизнь разработчика в бигтехе

📖 Этот пост в шутливом стиле рассказывает о том, как проходит день за днём у разработчика фреймворка в крупной технологической компании.

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

Хотя как известно в любой шутке есть доля правды.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
81411😎8🔥2🏆21👍1🎅1
11🤯227❤‍🔥3🏆3🔥2🎉2👍1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Приложение iOS IQ - теперь с поддержкой Foundation Models

В прошлом месяце я написал небольшую демку, а сегодня наконец раскатил релиз для всех.

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

На старте добавил возможность выбирать несколько десятков тем (от GCD до управления памятью) и задавать уровень сложности.

Как обычно, есть несколько но: я полностью отдал контроль над вопросами творению эпла, а значит - никакой дополнительной проверки, связанной их качеством или валидностью в целом, нет. А ещё для нового режима необходимо iOS 26 и устройство с поддержкой Apple Intelligence (список поддерживаемых устройств - здесь, по факту это линейка 16, 17 айфонов и некоторые другие девайсы).

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

📖 Приложение доступно в AppStore (бесплатно, для всех).

Также я полностью перевёл все вопросы, созданные вручную, на английский язык (часть отзывов в сторе была связана и с таким запросом 😳).

А в базе уже есть статья непосредственно о разработке:

💰 На бусти и ⭐️ в телеграме.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
30🔥239❤‍🔥5🎉4👍2🤯1💯1
Лучшие посты для iOSDev за 2025 год

Постарался собрать самое интересное, актуальное и важное в канале - не принимая в расчёт только метрику репостов.

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

👀 Технические посты

Глоссарий по Swift Concurrency | Global actor на реальных примерах | Развернутый Roadmap
Книги для iOS-разработчика
The System Design Primer — огромная коллекция ресурсов для создания сложных систем
Grand Central Dispatch: большой разбор
Архитектура SwiftData: паттерны и практики
Как на самом деле работает Swift Concurrency
Гонки данных в iOS
Регулярные выражения в Swift - фундаментальный разбор
Делегирование в Swift: вопросы, проблемы с памятью и частые ошибки
Тянем заголовок в SwiftUI не в 1000 строк кода
Секретный способ для скругления и тени одновременно в UIKit
Контроль и оптимизация процесса декодирования изображений в iOS
Как мигрировать UIKit-интерфейс на scene-based
Основы работы с памятью в Swift: size, stride, alignment
Утечки памяти в Swift: что с ними делать, как предотвратить?
Как улучшить производительность SwiftUI-приложений

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

Быть инженером
Понимание и повторение
Правильно поставленный вопрос
Умение доносить свои мысли
Цена ошибки
Главный софтскилл
Переключение контекста
Классическая история и самая сложная задача
Зарплаты: хабр раз, хабр два, сравнение с общемировыми, секретная статья
Жёсткие рамки или при чём тут бесконечный скролл
Подготовка к собеседованиям
Промпт-инженеры и их зарплаты
Кровь, пот и пиксели
Разделение или работа в команде
Основная функция приложения
Советы начинающему iOS-разработчику
Катализатор роста iOS-разработчика
Кто такой senior-разработчик
Насколько часто вам повышают зарплату?
Усложнение разработки
Кажется, пора внести ясность
Теорема о бесконечных обезьянах
Какими рабочими инструментами я пользуюсь ежедневно и сколько это всё стоит
Стоимость разработки
Многозадачность и управление приоритетами
Софты важнее?

🤩 Шейдеры: портал, эффект с презентации Apple, Spectrum ring, просто космос | путешествие сквозь, эффект люминофора, Сфера Фибоначчи

😟 Опросы: Размер команды | График работы | Сколько в день пишем код (и сколько пишет ИИ) | Насколько часто вам повышают зарплату? | Будут ли зарплаты снижаться | Необходимость высшего образования Лучший Git-клиент | Пу-пу-пу?

Ну и вечное: UIKit или SwiftUI? Софты или харды?

Дополнительный лайк тем, кто поддерживает на бусти и в телеграме.

А ещё теперь у нас есть буквально сет: приложение, сайт и бот.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
49🎅167❤‍🔥6🔥3👍2🍓1
Прошедшее и непрошедшее время

В японском языке есть всего два времени: прошедшее и непрошедшее.

Так и хочется провести параллель, а может и сравнить эту концепцию с красной нитью, которая так или иначе окружает нас в последние годы (из-за всего, что происходит вокруг, от ИИ до более важных, глобальных историй).

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

Но важно то, как лично вы справляетесь с этим.

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

Но и это пройдёт.

🎄 С наступающим Новым годом.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
50❤‍🔥16👏9🎄74👍2🎅21🔥1🏆1