iOS Dev
7.81K subscribers
1.03K photos
94 videos
1 file
1.21K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

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

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

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

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

#ios #mobile #swift
Download Telegram
Four Corners: первая игра, целиком написанная на Swift для Playdate

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

Например, из последней поездки притащил Game Boy Micro Anniversary Edition, пусть и немного потрёпанную временем).

Одна из приставок в коллекции - Playdate (и она как раз на фотке к этому посту).

И для неё с недавних пор можно писать на Swift!

Нашёл интересное интервью со Стивеном Чипманом, который рассказал о плюсах о всей боли, которая сопутствовало процессу переписывания приложения с Lua.

Например, недоступен Foundation, а ещё нет Codable, что превратило работу с JSON в нетривиальный таск.

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

📖 В общем, рекомендую почитать, особенно если вам интересен и embedded swift, в частности.

📺 А тут можно посмотреть и доклад на тему.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
15❤‍🔥15👍128🔥43🍓2
This media is not supported in your browser
VIEW IN TELEGRAM
А вы знали, что системный UIDatePicker (даже в напоминаниях и часах) - на самом деле не бесконечная лента?

Иногда в работе всем приходится решать баги, прилетающие от отдела QA, которые встречаются у пары пользователей или при определённой фазе Луны.

Что делает в таком случае Apple?

Ответ - решают проблемы остальных 99.99% пользователей.

Да и вообще это что, в первый раз?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥37🤯1810👍6🆒331🎉1💯1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
5😁46🤣23🔥6🫡42👍1🤩1🤝11
Что там по Swift Concurrency да и вообще по целям?

Или как говорится, у меня была какая-то практика, и я её придерживался.

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

Кстати, совсем скоро выйдет и новая версия приложения, которое в бете уже месяц.

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

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

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

Подпишитесь 💰 на бусти и ⭐️ прямо здесь и получите доступ к эсклюзивному и качественному контенту.

С вас подписка по специальному офферу - с меня все нижеперечисленное (и даже больше).

Что можно получить сегодня?
➡️Несколько десятков пройденных алгоритмических задач с боевых конкурсов.
➡️Вопросы на чтение кода
➡️Многопоточность
➡️DispatchQueue: практические вопросы (две части)
➡️Swift Concurrency
➡️Память: ARC, side table, флаги, утечки
➡️UIKit (теория + практика, две части)
➡️Компилятор Swift
➡️Основы: URLSession, UICollectionView и многое другое.

А также:
➡️Множество необычных подходов к анимации (включая шейдеры).
➡️Разбор популярных архитектур (и их недостатков).
➡️Несколько кайфовых и интересных фактов об истории прототипирования в Apple.
➡️Как на самом деле работает Code Signing.
➡️Несколько трюков и фишек при работе c Xcode.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1116🔥12👏6👍3🍓21
SwiftUI WebView: настройка, навигация, кастомные схемы

На WWDC 2025 был анонсирован WebView для SwiftUI, но код из видео не работал, более того, он даже не компилился.

📖 В этой статье можно посмотреть на основные аспекты работы, пример навигации и работу с JavaScript-функциями.

🛠 Код проекта доступен и на GitHub.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥1814👍84👏2💯1🏆1🤝1
Что нового в Swift 6.2 (помимо обновлений, связанных с параллелизмом)

📺 Неплохой разбор нововведений, которые появятся в iOS 26 и Xcode 26.

И хотя основное внимание все уделяют concurrency, есть и много других фич, о которых можно узнать.

Среди разобранных пропозалов:

➡️ Default Value in String Interpolations
➡️ Raw identifiers
➡️ Collection conformances for enumerated()
➡️ InlineArray, a fixed-size array
➡️ InlineArray Type Sugar
➡️ Integer Generic Parameters
➡️ Span: Safe Access to Contiguous Storage

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
512👍8🔥7❤‍🔥3👏2🎉1🏆1
Быть инженером

Прочитал кайфовую историю, как Вадим интегрировал себе PassKit за несколько часов разработки, чтобы вместо 47 секунд тратить 3 на вход в тренажёрку 💪

Разве не в этом смысл быть разработчиком вообще? Упрощать жизнь, делать привычные действия быстрее или вообще автоматизированными.

В своём приложении Starly я также бился с возможностью упрощения и экономии личного времени. У меня сейчас порядка 20 пет-проектов, из которых я поддерживаю около 7. И представьте, что в каждом по 15 локализаций. Сколько времени надо на переводы?

Ну по классике: прикрутил SDK для работы с AppStore Connect, лупанул туда движок DeepL (и есть ещё кое-какой хак, как в телеге). Хотя можно подумать сейчас и над чем-то более весёлым в современных реалиях)

Так вот, вместо 1.5 часов просто на то, чтобы вбить переводы, я трачу около 2 минут - пишу текст обновления на русском или английском, а алгоритм под капотом делает всё остальное за меня.

Или вот надо было зарефакторить большой проект (всё еще надо) - сделал себе подсчёт строк в каждом файле, чтобы понять, с чего вообще начать.

А ещё когда-то пилил скрипт на питоне, чтобы спарсить все оценки с кинопоиска и перенести на letterboxd автоматически (киноманы поймут, о чём речь, когда у вас просмотренных тысяча фильмов). Думал даже выложить его в открытый доступ, но решил, что слишком маленькая аудитория.

А что для вас быть инженером? Используете ли вы свои навыки вне работы?

Может у вас есть пет-проект, о котором вы бы хотели рассказать - поделитесь!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
419❤‍🔥12🔥9👍62👏1👌1🍓11
This media is not supported in your browser
VIEW IN TELEGRAM
🚪 Превращаем макбук в скрипящую дверь с помощью датчика наклона (есть звук)

Оказывается, есть специальное (непубличное API), доступное аж с 2019. Впервые появилось в 16-дюймовом макбук про и если ваш ноут более новый, то оно скорее всего также доступно.

📖 В этой репе можно посмотреть на пример тестового проекта.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥6615👍115🤩4🍓2😎2🤝1
Что изменилось в работе со строками в Swift 6.2

Если раньше для опционального значения и использования в коде ниже было предупреждение String interpolation produces a debug description for an optional value; did you mean to make this explicit?:

let age: Int? = nil
print("Your age: \(age)")


И компилятор предлагал юзать String(describing:), чтобы избавиться от ворнинга, то теперь все стало проще.

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

let age: Int? = nil
print("Your age: \(age, default: "missing")")
// Prints "Your age: missing"


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

Расширенный список принятых пропозалов - в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥3215👍9💯83❤‍🔥1👌1
iOS-разработчики получают самую высокую зарплату в России согласно исследованию хабра. Так ли это на самом деле?

Я проверил это с помощью масштабного опроса и поделился выводами.

Кроме аналитики, есть и сравнение с реальными европейскими зарплатами в нашей и смежных сферах, а также отслеживание динамики изменений.

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

🧠 А ещё вы сможете получить:

➡️Карта изучения Swift Concurrency
➡️Вопросы на чтение кода
➡️Многопоточность
➡️DispatchQueue: практические вопросы
➡️Swift Concurrency
➡️Алгоритмы: терминология и примеры
➡️Память: ARC, side table, флаги, утечки
➡️Разбор подходов к анимациям и лучшие паттерны.
А также доступ к ранним релизам приложения iOS IQ, тонну теории и многое другое.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1218👍9🤯5🔥4💯3❤‍🔥2👏21🍓11
685🤯4👍2🔥2💯2🍓2
Утечки памяти в Swift: что с ними делать, как предотвратить?

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

Даже у нас на проекте сейчас одна из тасок - поиск вещей, связанных с экранами звонков и лайвкитом, в частности.

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

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

Есть несколько полезных задач на подумать: при работе с сетью, что не так с NotificationCenter и многое другое.

Подписаться можно тут: 💰 с приятными условиями на бусти ⭐️ в телеграме.

А пока можно вспомнить и про эти истории:

📖 Утечка памяти: детектив в Xcode
📖 Как автоматически обнаруживать утечки памяти с помощью UI-тестов
📖 Управление памятью в Swift

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6155🔥5👍2👏2❤‍🔥1💯1🏆1🍓1
This media is not supported in your browser
VIEW IN TELEGRAM
Пошаговая визуализация алгоритма LLM, лежащего в основе ChatGPT

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

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

📖 Можно посмотреть на большое интерактивное руководство о том, как работает GPT под капотом. В частности, рассматривают модель nano-gpt, имеющую всего 85 000 параметров.

На каждом шаге рассматривается, что происходит внутри, когда ставят простую задачу:

Отсортировать по алфавиту входящую последовательность CBABBC в алфавитном порядке, чтобы на выходе получить ABBBCC.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7177🤯5❤‍🔥3👍3🔥3💯22