Тёмный
Ildar Zalyalov
Ildar Zalyalov
Ildar Zalyalov
Подписаться
Lead Software Engineer H&M
Видео с разборами тем по iOS.
Ментор по iOS.

Для связи: t.me/ildar_ios
Если есть желание купить кофе: www.paypal.com/donate/?hosted_button_id=JAKSVCEZCTDTN
Занятие 21: DeepLinks & Universal Links
1:01:35
3 месяца назад
Занятие 20: Combine | Swift | UIKit
1:22:28
3 месяца назад
Занятие 10: Анимации в Swift
56:29
7 месяцев назад
Занятие 9:  Async Await, Task, MainActor
1:18:59
8 месяцев назад
Занятие 7: MVC в Swift.
48:17
9 месяцев назад
Комментарии
@nikodevjs
@nikodevjs День назад
Спасибо за лекцию ! Подскажите, пожалуйста, а что делать, если в ответе приходит словарь, а не массив ? По идее уже не получится написать func obtainCats() async throws -> [Cat], если я все правильно понимаю. В итоге нужно возвращать не массив, а просто Cat и guard let url начинает ругаться, ибо мы уже не можем выкинуть else { return [ ] }. Не совсем понимаю, что нужно возвращать в этом случае, xcode просит вернуть тип Cat, но else { return Cat } тоже нельзя написать, помогите, пожалуйста
@ildarzalyalov5281
@ildarzalyalov5281 День назад
@@nikodevjs Если вы под словарем имеете в виду что это и есть объект (условно Cat), то да конечно нужно поменять -> [Cat] на -> Cat; в guard let url для else можно выкинуть например кастомную ошибку или сделать возвращение у метода опциональным и тут просто return nil :)
@Khusrav77
@Khusrav77 3 дня назад
Я тоже хотел бы прийти к тебе на собеседование))
@Ruedge
@Ruedge 5 дней назад
одно из лучших объяснений для полного 0 в теме реактивщены. Большое спасибо!)
@stanlyshiyanovskiy4163
@stanlyshiyanovskiy4163 6 дней назад
Благодарю за видео! Подскажите, а репозиторий с примерами из видео доступен где-то?! Очень хотелось бы проверить гипотезу, почему не отображается имя пользователя. Мне кажется, что, создавая его в фоновом контексте и, возвращая в таблицу, обновление таблицы мы должны сделать на главном потоке.
@eridanbraus4853
@eridanbraus4853 12 дней назад
Очень крутая лекция, благодарю !
@MegaXupypG
@MegaXupypG 13 дней назад
Привет! Создал imageView. Добавил Alignment Horizontaly & Verticaly = 0, установил все constrains = 0, content mode = AspectFit. Как мне теперь прижать к низу картинку в imageView? Сейчас она строго по центру на всех устройствах, а мне нужно чтобы она была прижата к низу.
@iptashR
@iptashR 20 дней назад
Шура отлично подготовился ). На самом деле уровень крутой
@nadirnetaliyev8921
@nadirnetaliyev8921 29 дней назад
Как также добавлять MARK комменты как вы на 24:21?
@Crocopizdel
@Crocopizdel Месяц назад
сколько тебе нужно денег, чтобы ты научил меня всему, что нужно для джуна?
@ildarzalyalov5281
@ildarzalyalov5281 Месяц назад
Хаха, ну напишите мне в личку, обсудим 😄
@elka-a1303
@elka-a1303 Месяц назад
Хорошие вопросы. мне кажется на мидла/синьора должны быть вопросы из практического опыта, в плане как бы сделал ту или иную фичу, просто примерно набросать подходы/апишки. Плюс вопросы про разные апи , например нотификации, покупки и т.д.
@user-xb6ye4sh2s
@user-xb6ye4sh2s Месяц назад
спасибо
@andreifokin311
@andreifokin311 Месяц назад
extension Array where Element: Numeric { func mySum() -> Element { return self.reduce(0, +) } }
@redstudiokms
@redstudiokms Месяц назад
По поводу среза массива, распечатал адреса памяти, они разные
@ildarzalyalov5281
@ildarzalyalov5281 Месяц назад
сам по себе массив и array slice конечно имеют свои адреса, но array slice использует ту же самую область памяти для объектов, а не создает новую. Подробнее: developer.apple.com/documentation/swift/arrayslice
@freechina4895
@freechina4895 Месяц назад
Хорошие вопросы +f
@sarvarqosimov8363
@sarvarqosimov8363 Месяц назад
👍
@user-iy9ns3jg7v
@user-iy9ns3jg7v Месяц назад
Господа, вы делайте ставку еще и на то, что когда человек долго работает, теория вылетает из головы и забывается, потому что в реальной работе она особо не нужна. Поработайте года три без собесов, и забудется вообще все. Поэтому опытным разработчикам зачастую сложно проходить собесы
@user-iy9ns3jg7v
@user-iy9ns3jg7v Месяц назад
Халиль не писал sahih invest?
@raheemgabibov7523
@raheemgabibov7523 Месяц назад
Спасибо
@EeymanEeyman
@EeymanEeyman Месяц назад
Почему вопросы для мидла легче чем для джуна?)
@user-fh6ce3yu1t
@user-fh6ce3yu1t Месяц назад
так почему анимация не останавливается ?
@MetaFishing
@MetaFishing Месяц назад
Спасибо за контент!
@user-ql8vf9xr1k
@user-ql8vf9xr1k 2 месяца назад
а как action превязать к кнопке?
@user-bz8tk7vx1c
@user-bz8tk7vx1c 2 месяца назад
Вот честно - ставлю дизлайк по той причине что нету никакого понимания у смотрящего сей мувик - был ответ правильный или нет. Всегда коментарий от ведущего - ок ок класс. На некоторые вопросы были неправильные ответы - как это понять? Делай или вставки с коментарием своим после таких ответов или в конце давай отдельное пояснение по всем таким моментам. Иначе стоимость такого интервью - весьма сомнительна И это касается всех видосов данного автора
@tomvenom
@tomvenom 2 месяца назад
Что думаете про UIKIT? Будут ли по нему видео тоже?
@ildarzalyalov5281
@ildarzalyalov5281 2 месяца назад
Посмотрите пожалуйста плейлист, в который включено это видео, до этого 20+ тем было используя UIKit так или иначе)
@geproc
@geproc 2 месяца назад
Почему вы говорите констрэйны, а не констрэйнты?
@Crocopizdel
@Crocopizdel 26 дней назад
чтобы гуманитарий нервничал)
@dobrysiabar8791
@dobrysiabar8791 16 дней назад
@@Crocopizdel при чем тут гуманитарии? типа мы технари тупицы безграмотные?
@SimaTatch
@SimaTatch 2 месяца назад
интервьюеру хочется иногда посамоутверждаться)
@nezgovorovV
@nezgovorovV 2 месяца назад
О спасибо за Sui это прям огонь, нет актуальных уроков на ютубе кроме вас
@ipaktulane4748
@ipaktulane4748 2 месяца назад
Шикарно!
@gabibli
@gabibli 2 месяца назад
1:19:00
@ipaktulane4748
@ipaktulane4748 2 месяца назад
жаль @escaping не затронули в этой теме
@rushnfury
@rushnfury 2 месяца назад
Для освещения такой непростой темы определенно стоило лучше подготовиться.
@rushnfury
@rushnfury 2 месяца назад
17:55 extension Array where Element: Numeric { var sum: Element { reduce(0, +) } }
@freechina4895
@freechina4895 2 месяца назад
Спасибо за лекцию, с нетерпением ждём ещё 😊
@ildarzalyalov5281
@ildarzalyalov5281 2 месяца назад
Вы можете найти все последние видео с курса в плейлисте: ru-vid.com/group/PL6WGVnrRLVReJSmmX9_h4UmWZKgbmYYVv&si=az6Far4Mkn21qunr
@freechina4895
@freechina4895 2 месяца назад
@@ildarzalyalov5281супер 🎉 Подскажите пожалуйста, почему у ячейки остаются старые данные, если каждый раз когда она создаётся используется новый экземпляр ячейки?
@vakhram.
@vakhram. 2 месяца назад
Здравствуйте, спасибо за ваши уроки, очень нравится, у меня появился вопрос на моменте 50:27, в кложуре cellProvider у cell есть свойство delegate, как так? Разве это не свойство таблицы?
@ildarzalyalov5281
@ildarzalyalov5281 2 месяца назад
Здравствуйте 👋 Мы до этого добавили делегат для ячейки) Это делегат/свойство ячейки, а не таблицы. В начале видео есть часть, где мы просматривали текущую настройку проекта, там это упоминается) Ну и в целом есть более раннее видео, где мы изучали паттерн делегат и как его добавить куда хотим (например в ячейку).
@vakhram.
@vakhram. 2 месяца назад
@@ildarzalyalov5281 Спасибо большое, теперь все ясно
@vakhram.
@vakhram. 2 месяца назад
@@ildarzalyalov5281 Спасибо, теперь все понятно
@MrFndo
@MrFndo 2 месяца назад
тут один момент надо отметить, что DispatchGroup не гарантирует очередь выполнения операций, то есть если в примере выводилось на экран 1 2 3 это не значит что всегда выполнение задач будет завершаться таким порядком, DispatchQueue просто гарантирует что сколько началось операций столько закончится
@ARTEMvorkhlik
@ARTEMvorkhlik 3 месяца назад
Можешь, пожалуйста, на следующих уроках рассмотреть различие сертификатов adhoc, release, develop... И про code singing
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Не могу обещать, но посмотрим)
@vadimorlov4986
@vadimorlov4986 3 месяца назад
Было бы полезнее, если бы вы помогали с ответами на ваши вопросы.
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Уже в следующем видео с Федором так и сделал) Экспериментируем с форматами)
@vadimorlov4986
@vadimorlov4986 2 месяца назад
@@ildarzalyalov5281 🙏
@user-fh6ce3yu1t
@user-fh6ce3yu1t 3 месяца назад
Можно сохранять в ордеред сет.
@ARTEMvorkhlik
@ARTEMvorkhlik 3 месяца назад
На senior планируется ?
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Был бы кандидат)
@ARTEMvorkhlik
@ARTEMvorkhlik 3 месяца назад
Может тогда побудешь кандидатом, а в качестве интервьюера пригласишь кого-нибудь. Чтобы вопросы не повторялись, ведь у другого интервьюера будет другой багаж вопросов, основанный на своём отличном опыте
@Croleack
@Croleack 3 месяца назад
Хороший урок
@Croleack
@Croleack 3 месяца назад
Хорошее объяснение, автор молодец.
@nezgovorovV
@nezgovorovV 3 месяца назад
Здравствуйте, мне кажется или у вас слишком тихо слышно... а так урок отличный спасибо за материал ваш!
@nezgovorovV
@nezgovorovV 3 месяца назад
Когда без наушников имеею ввиду
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Да вроде нормально, возможно позже поменяю микрофон)
@nezgovorovV
@nezgovorovV 3 месяца назад
@@ildarzalyalov5281 спасибо, именно в наушниках как будто тихо.
@user-sk6cp8vr3v
@user-sk6cp8vr3v 3 месяца назад
Пару лет назад, когда искал первую работу и надо было понимание теории, я смотрел курс Ильдара, чтобы все закрепить понятным языком. Сейчас ищу уже на позиции мидл разработчика, снова смотрю курс Ильдара) Кстати, без тебя меня бы не взяли, тк вайпер я как раз и смотрел за день до собеседования, не мог его понять)
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Увидимся на сеньоре ;)
@deluxe092
@deluxe092 3 месяца назад
Спасибо за урок, такой вопрос. А если у меня есть какой то наблюдатель или запущен какой то таймер, счетчик и т.д. на первой вьюшке, вторая открывается модально ( не на весь экран) то есть в этом случае will/didDissappear не вызываются, но что если при появлении этой второй вьюшки мне надо остановить таймер, остановить наблюдателя или поставить на паузу какой то процесс, как мне узнать что был модальный переход, и мой экран сейчас не на переднем плане ? Спасибо
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Ну таймер останавливать например в момент перехода на первый экран (прям где код для открытия модального экрана), а далее активировать таймер обратно можно разными методами: 1) Вызывать в показанном экране в методе viewWillDisappear такой код if modalPresentationStyle == .pageSheet { presentingViewController?.beginAppearanceTransition(true, animated: animated) } Данный код стригерит метод viewWillAppear в первом контроллере, где можно продолжить таймер 2) используя паттерн делегат связать первый и второй экран и вызывать свой метод, чтобы дать знать первому экрану что текущий экран закрывается и нужно продолжить таймер. 3) Поменять .modalPresentationStyle = .fullScreen для нового контроллера, чтобы он показывался на весь экран
@deluxe092
@deluxe092 3 месяца назад
@@ildarzalyalov5281 спасибо большое)
@NickitaKuzbass
@NickitaKuzbass 3 месяца назад
Спасибо тебе, Ильдар! Было очень полезно и интересно)
@user-pc4tt7fk2f
@user-pc4tt7fk2f 3 месяца назад
чиназес
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Сюда
@artyom5602
@artyom5602 3 месяца назад
скиньте задачку на потоки плз
@ildarzalyalov5281
@ildarzalyalov5281 3 месяца назад
Задачу можете найти в описании видео 🙌🏼
@MKShowGo
@MKShowGo 3 месяца назад
Полезные видео уроки👍
@alehrazanau8983
@alehrazanau8983 3 месяца назад
Хороше собеседование. Федор хорошо справился. Для всех умников, кто говорит, что якобы вопросы для джуна. Не существуют вопросов для джунов, мидлов или синиоров. Есть просто технология и вопросы по ней. Тот блок вопросов, которые кажутся простыми, синиор, который не ходил долгое время на собеседования или специально не тренировал именно собеседования, может и не вспомнить ответы на них. Собеседование - вещь в себе и к ней нужно просто отдельно готовиться. А синиор, этот в первую очередь не тот, кто научился хорошо отвечать на вопросы собесов, а тот кто может строить приложения со всеми сложностями. Поэтому, если ты заучишь ответы на тн вопросы "синиору", это из тебя не сделает никак хорошего разраба. Во многих странах, синиор это 4 года computer science и лет 7 прикладного опыта. И самое плохое в собесах такого плана, что если кандидат не очень уверенно отвечает на некоторые вопросы, то это не означает, что он плохой программист.
@user-from-kz479
@user-from-kz479 3 месяца назад
OrderedSet 👍