iOS Dev
7.72K subscribers
1K photos
84 videos
1 file
1.16K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
加入频道
This media is not supported in your browser
VIEW IN TELEGRAM
Анимации в SwiftUI — подборка репозиториев на Github

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

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

🔗 Open SwiftUI Animations — 4 000

🔗 SwiftUI-Animations — 1 800

🔗 kavsoft-swiftui-animations — 460

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
20🔥9👍72👏2❤‍🔥111🏆1🎅1🆒1
Паттерны навигации в SwiftUI

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

📖 В этой статье рассмотрены общие варианты навигации, которые можно использовать при создании приложений:

🔘 Базовая навигация при использовании List
🔘 Динамическая программная маршрутизация
🔘 Глобальная маршрутизация в SwiftUI
🔘 Реализация навигации c использованием Environment Values.
🔘 Реализация навигации для TabView.

📖 А вот тут можно почитать про особенности NavigationPath, принципы работы и отличия от UINavigationController в UIKit.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍5👏5🔥31🤩1😎11
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё один шаг вперёд

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

К такому можно отнести работу с криптографией, для кого-то многопоточку, а для кого-то сложную вёрстку.

Когда я делал приложение, то изначально преследовал две цели: во-первых, заюзать как можно больше фишек из новых версий iOS, во-вторых, что гораздо более прозаично — сделать инструмент, который будет интересно не только изучать, но и соревноваться.

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

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

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

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

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

Кроме подборок материалов по Metal, я буду делиться и своими опытами, пусть не всегда удачными или «правильными», но совершенно точно необычными.

Сделайте ещё один шаг вперёд уже сегодня, подпишитесь на бусти или в телеграме (код шейдера с видео уже там).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥8👍2🤯2🤩2💯211👏1🎅1
This media is not supported in your browser
VIEW IN TELEGRAM
🥳 Создание файла из кода в буфере обмена в Xcode 16

Одна из наиболее приятных (если не топовых) фич в новом Xcode — новая возможность рефакторинга (и не только).

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

При этом Xcode ещё и сам подберёт и задаст подходящее название (например, как на гифке).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
49🔥25👍11👌211💯1🎄1🆒11
Барбара Лисков — об абстракции данных и ООП

Барбара — профессор MIT, автор языков Клу и Argus, лауреат премии Тьюринга, и вы все наверняка её знаете из-за изучения SOLID.

Рекомендую посмотреть интересное видео, в котором Барбара отвечает на необычные вопросы не только о прошлом, но и о будущем ООП. А ещё затрагивает технические нюансы принципа подстановки Лисков в контексте SOLID.

🤩 Ведь как известно, лучше всего — получать ответы на свои вопросы из первоисточников.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍9💯6🔥5❤‍🔥111🏆1🎅1😎1
🧠 Массивы в Swift: вопросы и техники

В iOS IQ добавлен новый раздел с практическими вопросами по работе с массивами.

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

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


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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥6👍42💯2🏆1🎅1🎄1
Swift Navigation: инструменты навигации от PointFree

PointFree выкатили в опенсорс либу Swift Navigation — набор мощных инструментов для всех платформ Swift (в качестве вдохновения использовались принципы SwiftUI).

С помощью библиотеки можно управлять навигацией в SwiftUI, UIKit и AppKit. Более того, её можно использовать и для платформ, отличных от Apple, таких как Windows, Linux, Wasm и т.д..

🛠 Инструментарий уже доступен на GitHub (1 800 )

Примеры работы доступны здесь:

📖 Case Studies — коллекция примеров SwiftUI и UIKit, демонстрирующих API этой библиотеки.
📖 Inventory — многоэкранное приложение со списками, всплывающими окнами и алертами.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥168👍4❤‍🔥2👏2🎉1🤩1💯1🆒1
Как решить проблему с констрэинтами или как быть с ошибками вида «will attempt to recover by breaking constraint»?

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

Хотел бы напомнить про трюк, а если быть точнее, мастхэв-навык при поиске подобных проблемных вьюх с помощью стандартных инструментов Xcode.

Если вы встретите такую ошибку (или её вариации):

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xb82d450 H:[UIButton:0xb82ad50]-(NSSpace(20))-| (Names: '|':UIView:0xb82f360 )>


Запустите View Debugger и вставьте айдишник проблемной вьюхи в поле поиска слева внизу. Xcode автоматически подсветит её и уже после вы спокойно сможете устранить эту проблему.

⭐️ А ещё есть полезнейший сайт, который часто может помочь в таких ситуациях.

⭐️Кстати, в базе знаний я делюсь своим опытом, и стараюсь наполнять разные разделы, один из которых — разбор различных проблем в разработке.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
32👍8🔥5❤‍🔥4👏42💯2🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Как автоматически обнаруживать утечки памяти с помощью UI-тестов

📖 Пол Пиелла написал отличную развёрнутую статью о том, как можно юзать функциональность, доступную нам аж с Xcode 13 (тогда появилась опция xcodebuild, генерирующая memory graph всякий раз, когда фэйлится тест XCTMemoryMetrics).

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

Саму статью можно разбить на несколько важных частей:

1️⃣ Написание самого теста, чекающего использование памяти.

2️⃣ Генерация memory graph.

3️⃣ Разбор результатов и анализ графа.

Тут пригодится ещё один материал про разбор содержимого XCResult.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
24👍12🔥4🤯2💯2❤‍🔥11👌1🎄1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одно приятное нововведение в Xcode 16

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

Использование: щелчок правой кнопкой мыши + Find References to Item.

Легко можно найти лишние ресурсы + избежать потенциальных опечаток (ну и сэкономить немного времени).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
48🔥32👍5🎉3🎄21👏1💯1🏆1😎11
iOS IQ — что доступно уже сейчас?

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

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

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

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

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

Ни в этом канале, ни в iOS IQ, ни в приложении такого не было, нет и не будет.

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

В iOS IQ сейчас вы можете:

➡️Познакомиться с решением практических задач на самые разные темы (от поиска утечек памяти до примеров работы со SwiftData).
➡️Узнать, как работать с дебаггером (про трюки с lldb, получить советы по отладке и неообычные примеры использования брейкпоинтов).
➡️Получить базу для подготовки к собеседованиям (память, чтение кода, разборы конкретных вопросов, и конечно тематические подборки).
➡️Разбор архитектурных шаблонов на реальных примерах. За основу взяты паттерны проектирования банды четырёх.
➡️Полезные вопросы с секции system design.
➡️Разбор техник для решения алгоритмов. И мой собственный набор решённых задач от яндекса.


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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥9❤‍🔥5👍2👏2💯21🤝1🤗1
24❤‍🔥5👍4🔥4👌3👏2💯2🆒2🙏1🎅1🎄1
Подборка докладов с конференции Swift Craft

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

📺 Управление состояниями для iOS-приложений
Аракс Авоян рассказывает о функциональном управлении состояниями в приложениях для iOS. В докладе уделено внимание основам функционального программирования (и приведены практические примеры).

📺 Назад в будущее - Swift 6 Edition!
Пол Пиелла Абадия подготовил этот доклад, в котором объясняет все предстоящие изменения, а также использует несколько примеров кода, чтобы лучше подготовиться к Swift 6 уже сейчас.

📺 Математик размышляет о макросах, @Models и ML
Дэниел Стейнберг делится своими размышлениями, в частности, как мы решаем, чему учиться и как изучать новые вещи, анонсируемые каждый год на WWDC.

📺 Дата и время в Swift — обработка даты в программировании на Swift (будет доступно 21 августа).
В этом докладе будет рассказано о взаимодействии Date с датами, календарями, форматорами, компонентами DateComponents, TimeZones и другими полезными вещами.

📖 Все доклады конференции доступны в этом плейлисте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥9👏4👍3❤‍🔥211💯1
❗️ CocoaPods прекращает активное развитие и переходит в режим поддержки

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

ℹ️ Orta Therox написал большой пост, в частности, затрагивающий и проблемы с безопасностью, а также выпустил важный анонс, в котором сообщил о будущих планах по поддержке и обслуживанию.

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

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
36🫡2515🔥8👍7🤯5💯2❤‍🔥1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Warp-эффект на metal-шейдере

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

Ранее я писал о том, что добавил новый раздел в iOS IQ, в котором разбираю некоторые необычные вещи, эффекты и варианты реализации с помощью возможностей системных фреймворков.

🤩 Один из таких эффектов — Warp, реализацию которого без Metal я уже применял в приложении.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
516🔥9🤩6💯4👍3❤‍🔥11🏆1
❗️Apple Search Ads заблокировал все рекламные инструменты и кампании для разработчиков из РФ и Беларуси

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

Я тоже получил такое письмо утром, Apple ссылается на пункт 13, но по факту причина только одна: страна регистрации аккаунта.

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

😃 iOS Dev — вот такое утро
Please open Telegram to view this post
VIEW IN TELEGRAM
45🤯41👍16🫡14🔥74❤‍🔥33🙏3🎄1🆒1
Как повысить видимость приложения на устройстве

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

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

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

📖 Целиком статья доступна здесь, можно посмотреть на примеры и добавить несколько 👏.

😃 iOS Dev — а вот тут я писал про способ использования для NSUserActivity
Please open Telegram to view this post
VIEW IN TELEGRAM
1632👍18💯7❤‍🔥4🎄4🆒2211🎉1🎅1
Скрытые возможности крашлогов: как читать информацию об ошибках

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

Патрик Уордл проделал огромную работу и написал статью, в которой объяснил, как упростить понимание структуры и информации из крашлогов.

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

Сам материал наполнен большим количеством примеров не только под iOS, но и macOS, и, даже показан баг 0day (который затрагивает даже бетки 15 макоси).

📖 Рекомендую прочитать и сохранить исследование.

А если вы хотите узнать, что, например, означает EXC_BAD_ACCESS — у нас в канале уже есть и такой пост.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8147🔥6💯21👍1👏1🏆1🎄1😎1
Зарплаты стажёров и джунов в IT

На Хабр.карьере вышло новое исследование зарплат, на этот раз изучили зарплатные возможности для новичков в IT — стажеров и джунов.

Главные выводы:

1️⃣ Проще попасть в IT с позиции стажера.

2️⃣ Доля вакансий с удаленкой для джунов и стажеров сейчас 60%, это на 17% больше, чем в начале 2023.

3️⃣ Больше всего начинающие IT-специалисты зарабатывают в Ozon Tech, YADRO и Холдинге Т1.

💸Эти данные основаны на реальных зарплатах, а больше про динамику на рынке можно узнать в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
624741👍1🔥1🎉1👌1💯1🆒11
Инструментарий. Полезные советы при работе с Xcode, терминалом и симулятором

В новом разделе в Notion я добавил некоторые неочевидные советы при работе с Xcode, которые упростят и ускорят разработку (в том числе и полезные возможности при работе с симулятором от тестирования пушей и диплинков до навигации и советов при билдах).

Уже сейчас в базе знаний доступно несколько важных составляющих:

Подготовка к собеседованиям:
- Мок-собесы с публичным доступом (сейчас несколько десятков на русском и английском языках).
- Вопросы для подготовки по секциям (сотни вопросов на разные темы)
- Частные узкие темы (с поиском проблем в коде).
- System Design. Мои советы и большая подборка материалов.

Алгоритмы:
- Сложность алгоритмов.
- Разбор десятков задач с контестов (в том числе и от яндекса).
- Популярные методы решения задач (с примерами).

Архитектуры:
- Все паттерны проектирования банды четырёх. Общая информация и примеры реализации на Swift.
- Архитектурные заблуждения.
- Реализация в реальных приложениях.

Красим кнопки Необычные эффекты:
В этом разделе я делюсь анимациями, подходами к созданию и десятками примеров.

Ранний доступ к обновлениям приложения:
Статья о разработке доступна в публичном доступе.


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

Вы можете подписаться здесь или в телеграм-боте ( ❤️).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
4317🔥6👍5❤‍🔥311🤩1💯1🎄1🆒1