Асинхронные скрипты на Swift Да, на Swift можно писать скрипты и, используя некоторые хитрости, делать это достаточно эффективно. А с добавлением executableTarget в SPM задача стала еще проще. Проблема возникает тогда, когда вы пытаетесь сделать скрипт асинхронным (например, получить или обновить какие-то данные в сети). В таком случае нужно заставить скрипт ждать выполнения асинхронной задачи и только после этого…

Channel
SWIFTER | Блог про Swift
@BlogSwift
On this record: Growth · Engagement · Posts · Cite this entry
255subscribers
+1 since we began measuring on 7 August 2026
Risers and fallers across the register · movement among entries of Under 1,000.
Register entry
| Telegram ID | -1001307756059 |
|---|---|
| Type | Channel |
| Username | @BlogSwift |
| Created | Between 1 March 2018 and 18 July 2021— estimated from Telegram’s id allocation, not measured. How this range is calculated. |
| First recorded | 7 August 2026 |
| Last confirmed live | 21 August 2026 |
| Measurements held | 4 |
| Confirmed unchanged | 1 time, most recently 21 August 2026 |
| On Telegram | t.me/BlogSwift |
Growth
| Measured (UTC) | Subscribers | Change |
|---|---|---|
| 21 Aug 2026, 17:18 | 255 | +2 |
| 14 Aug 2026, 15:55 | 253 | -1 |
| 7 Aug 2026, 02:03 | 254 | no change |
| 7 Aug 2026, 01:02 | 254 | first reading |
Engagement
20 posts held, back to 18 July 2021 — the reader has not yet reached the start of this channel’s public history, so older posts may sit further back, unread. Read across 1 pageof Telegram’s post history, 20 posts per page.
Nothing published in the last 30 days. ERR and ER are rolling 30-day measures, so there is nothing to compute — we hold 20 posts for this entry, the most recent from 6 October 2021. An engagement rate over an empty window would be a number about nothing.
Recent posts
Как использовать tableHeaderView вместе с auto-layout? Казалось бы, задача тривиальная, но на деле все немного сложнее. Для ее решения нам понадобится создать два метода: setTableHeaderView (1), updateTableHeaderViewIfNeeded (2). Логика следующая: 1. Мы создаем width constraint, где ширина tableHeaderView равна ширине самой tableView. Это позволит таблице получить нужный размер, когда мы будем вызывать layoutIfNee…
Опциональное декодирование элементов массива с помощью Decodable Сегодня мы разберем случай, когда нужно отобразить массив данных с сервера, даже если некоторые элементы этого массива декодировать не удается. Предположим, в приложении есть секция (жанр музыки). В этой секции есть много разных элементов (песен). Если случится так, что какая-то песня придет с сервера с ошибкой (или с ней что-то будет не так), мы все …
#MockInterview Вопрос: Как можно увеличить зону нажатия в UIButton, чтобы соответствовать HIG? 💬 Ответ: Есть два способа решения этой задачи. Первый – это использование contentEdgeInsets. Больше размер = больше зона нажатия. В этом подходе важно учитывать, что мы просто увеличиваем размер кнопки. Если у нас есть заданный frame или же установленные constraint, то UIButton будет просто сжимать текст / изображение, …
Как сделать аббревиатуру для числа? Когда нужно отобразить огромное число в пользовательском интерфейсе (скажем, количество лайков или подписчиков), зачастую показывать число полностью не имеет смысла. Гораздо удобнее использовать агрегированное представление в виде "12M" или "1.5K". Данное расширение позволяет получить в виде аббревиатуры числа вплоть до квадриллиона. Если кратко, то логика такая: 1. Есть список…
Улучшаем состояние AppDelegate с помощью сервисов По мере того, как растет приложение, растет и логика в AppDelegate. Инициализация SDK, обработка диплинков, пуш-уведомления и многое другое. Читаемость этого файла сильно падает, он превращается в огромную кучу кода, который сложно поддерживать. Разработчики по-разному избегают этой ситуации: с помощью команд, компоновщика, медиатора. Сегодня я поделюсь с вами библ…
Как создать UIImage со сплошной заливкой и заданным размером? В сегодняшнем посте из серии #handyExtensions я покажу, как, используя UIGraphicsRendererContext, можно создать изображения со сплошной заливкой определенного размера. Логика очень простая: 1. Создаем контекст с помощью UIGraphicsBeginImageContextWithOptions. Это своего рода полотно, где мы можем рисовать. 2. Устанавливаем цвет для заливки. 3. Делаем …
Друзья, новость для вас❗️ Swifter расширяет свои границы, и теперь у нас есть аккаунт на Medium. Если среди вас есть активные пользователи данной платформы, будем рады взаимодействовать с вами и там🤗 Ссылка на SWIFTER | Блог про Swift в Medium: https://medium.com/@BlogSwift А с подписчиками нашего канала, которые верны Telegram, пообщаемся совсем скоро в новом обучающем посте. Ждите)
Различия между let и var Когда в Swift нужно связать имя (например, "username" или "balance") со значением определенного типа (например, строка "Den" или число 96.23), используются константы и переменные. Чтобы объявить константу, используем ключевое слово let, для переменной – var. Изменить значение константы после того, как мы ее объявили, нельзя, переменную же мы можем менять сколько угодно раз. На скриншоте в…
Используем App Group для доступа к Realm из других приложений или расширений App Group позволяет нескольким приложениям от одного разработчика получить доступ к общему контейнеру, в котором можно хранить и использовать какие-то данные. Поскольку Realm держит базу в файле, мы можем поместить этот файл в общий контейнер и получить доступ к нему из других наших приложений или расширений. Для этого нужно в конфигураци…
Typealiases с дженериками Мало кто использует эту особенность Swift в своих проектах. Однако она может здорово улучшить некоторые участки кода и убрать ненужный шаблонный (boilerplate) код. Typealiases могут использоваться в комбинации с generic типами. Что самое интересное, мы можем явно указать конкретные типы для некоторых (или всех) generic параметров существующего типа. В обратную сторону, кстати, это не раб…
Как определить, включен ли у пользователя режим энергосбережения? Когда пользователь включает режим энергосбережения, ваш код должен избегать слишком энергозатратных действий. Например, вы хотите выполнить какую-то миграцию или синхронизацию с облаком, но откладываете её на определенное время, чтобы не нагружать батарею. Существует два подхода к проверке подключения режима энергосбережения: получить информацию из …
Showing the 12 most recent of 20 posts we hold for @BlogSwift. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.
Cite this entry
A live page changes as we take new readings, so a citation should name the measurement it is based on, not just the URL. The line below cites the subscriber count as measured 21 August 2026 — this entry's latest reading, not the date you are reading this.
“SWIFTER | Блог про Swift” (@BlogSwift), 255 subscribers as measured 21 August 2026. Telegram Register, tgregister.com/channel/BlogSwift.
Full measurement history, CC BY 4.0. Every reading this register holds for this entry, not just the latest one, as a dated, downloadable record: CSV · JSON. Free to use with attribution to tgregister.com. Each file carries its own generation timestamp, which is the figure to cite for exactly when the data was retrieved.