Уже через 30 минут присоединяйтесь к открытой сессии с Михаилом Рубановым (Dodo). Разберемся:
- какие типичные ошибки реализации доступности встречаются в популярных сервисах;
- как можно спроектировать прототип интерфейса, который подойдет для незрячих людей, и преобразовать его в код.
- какие типичные ошибки реализации доступности встречаются в популярных сервисах;
- как можно спроектировать прототип интерфейса, который подойдет для незрячих людей, и преобразовать его в код.
YouTube
Открытая сессия: Как дизайнить доступность для скринридера / Михаил Рубанов (Dodo)
Приходи на новый сезон iOS Crew (https://podlodka.io/ioscrew) - по промокоду VOICEOVER скидка 500 рублей. компании начали заниматься доступностью приложений: адаптировать дизайн-систему, добавлять поддержку скринридера. Но все еще сложно дизайнить для незрячих…
👍10🔥2
Новый выпуск вышел в открытый доступ
Разберёмся, какие виды изображений бывают, как их добавлять в проект, как показывать на экране.
Разберёмся, какие виды изображений бывают, как их добавлять в проект, как показывать на экране.
❤6👍2
Новый выпуск для подписчиков на Boosty
В прошлых главах мы разбирались с тем как работают потоки (Thread), различные примитивы синхронизации (mutext, semaphore, lock, etc) и runloop. В этой поговорим про GCD.
В прошлых главах мы разбирались с тем как работают потоки (Thread), различные примитивы синхронизации (mutext, semaphore, lock, etc) и runloop. В этой поговорим про GCD.
🔥8👍1
Новый выпуск для подписчиков на Boosty
В этой главе мы рассмотрим использование GCD, на примерах. Разберем какие инструменты для синхронизации в ней существуют и как заменить с помощью GCD семафоры и мьютексы.
В этой главе мы рассмотрим использование GCD, на примерах. Разберем какие инструменты для синхронизации в ней существуют и как заменить с помощью GCD семафоры и мьютексы.
👍5🔥3⚡2
Новый выпуск вышел в открытый доступ
Наконец на практике применим полученные ранее знания и сверстаем целый экран.
Наконец на практике применим полученные ранее знания и сверстаем целый экран.
🔥13🤩4
Новый выпуск для подписчиков на Boosty
Для завершения темы GCD следует рассказать еще и о таймерах, которые работают с помощью ранлупа, а помощью планировщика очередей - DispatchSourceTimer. Этот таймер немного отличается от обычного Timer, но в целом предоставляет те же возможности.
Для завершения темы GCD следует рассказать еще и о таймерах, которые работают с помощью ранлупа, а помощью планировщика очередей - DispatchSourceTimer. Этот таймер немного отличается от обычного Timer, но в целом предоставляет те же возможности.
🔥4🙏2👍1
Новый выпуск для подписчиков на Boosty
После разбора операций, время перейти к еще одну фреймворку, не столь популярному, но все же иногда полезному - Operation. Operation возник позже GCD и по сути своей представляет всю ту же работу с очередями, но только в ООП стиле. В итоге он занял лидирующие позиции и уже наверное никогда не займет. Тем не менее периодически он используется, его можно встретить и лучше иметь представление как он работает.
После разбора операций, время перейти к еще одну фреймворку, не столь популярному, но все же иногда полезному - Operation. Operation возник позже GCD и по сути своей представляет всю ту же работу с очередями, но только в ООП стиле. В итоге он занял лидирующие позиции и уже наверное никогда не займет. Тем не менее периодически он используется, его можно встретить и лучше иметь представление как он работает.
🔥8👍5❤1
Новый выпуск для подписчиков на Boosty
Наконец мы подошли к последней технологии работы с асинхронностью и многопоточностью - swift concurrency. Это самая свежая, удобная и одновременно забагованная и неизвестная из всех доступных нам технологий. Мы будем разбираться с ней в течении нескольких глав и пройдем путь, от рассмотрения простого синтаксиса, до полного понимания, что происходит у нее внутри.
Наконец мы подошли к последней технологии работы с асинхронностью и многопоточностью - swift concurrency. Это самая свежая, удобная и одновременно забагованная и неизвестная из всех доступных нам технологий. Мы будем разбираться с ней в течении нескольких глав и пройдем путь, от рассмотрения простого синтаксиса, до полного понимания, что происходит у нее внутри.
🔥21👍2❤1
Новый выпуск для подписчиков на Boosty
После обзора на swift concurrency пора разобраться как работают Task и async/await, как правильно запускать задачи параллельно или асинхронно.
После обзора на swift concurrency пора разобраться как работают Task и async/await, как правильно запускать задачи параллельно или асинхронно.
❤8👍5🔥3
Новый выпуск вышел в открытый доступ
Наконец на практике применим полученные ранее знания и сверстаем целый экран.
Наконец на практике применим полученные ранее знания и сверстаем целый экран.
❤14🔥3
Новый выпуск для подписчиков на Boosty
Еденицей паралельной работы являются задачи - Task. Как мы видели в прошлой главе мы можем запускать задачи из обычного кода, либо внутри других задач, для паралельного выполнения кода. Сегодня мы поговорим о том, что задачи выстраиваются в иерархию. Давайте разбираться что это такое и зачем оно нужно.
Еденицей паралельной работы являются задачи - Task. Как мы видели в прошлой главе мы можем запускать задачи из обычного кода, либо внутри других задач, для паралельного выполнения кода. Сегодня мы поговорим о том, что задачи выстраиваются в иерархию. Давайте разбираться что это такое и зачем оно нужно.
👍10❤4
Новый выпуск для подписчиков на Boosty
Мы уже упоминали акторы (Actors), использовали MainActor для выполнения задач на главном потоке, в этой главе мы полноценно разберемся, что такое акторы, как их использовать и создавать.
Мы уже упоминали акторы (Actors), использовали MainActor для выполнения задач на главном потоке, в этой главе мы полноценно разберемся, что такое акторы, как их использовать и создавать.
🔥8👍2
Новый выпуск для подписчиков на Boosty
Мы почти разобрали все инструменты которые предоставляет Swift Concurrency. Осталось разобрать два последних AsyncSequence и Continuation. В этой главе мы будем разбирать AsyncSequence.
Мы почти разобрали все инструменты которые предоставляет Swift Concurrency. Осталось разобрать два последних AsyncSequence и Continuation. В этой главе мы будем разбирать AsyncSequence.
👍10🤩5
Новый выпуск вышел в открытый доступ
Итак, после практики в предыдущей главе у нас появилась объёмная вёрстка. Мы написали много кода, и разбираться в нём стало сложно. Для решения этой проблемы мы разделим его на небольшие UI-элементы.
Итак, после практики в предыдущей главе у нас появилась объёмная вёрстка. Мы написали много кода, и разбираться в нём стало сложно. Для решения этой проблемы мы разделим его на небольшие UI-элементы.
🔥8❤1
Новый выпуск для подписчиков на Boosty
Последний инструмент Swift Concurrency который нам осталось рассмотреть это Continuation. Он предназначен для связи Swift Concurrency и традиционного многопоточного кода.
Последний инструмент Swift Concurrency который нам осталось рассмотреть это Continuation. Он предназначен для связи Swift Concurrency и традиционного многопоточного кода.
🔥7👍1
Новый выпуск для подписчиков на Boosty
Пришло время поговорить о том как синхронизировать данные и перенаправлять между разными потоками.
Пришло время поговорить о том как синхронизировать данные и перенаправлять между разными потоками.
❤5🔥2👍1
Так, я записал все темы про многопоточку которые хотел и даже те что не хотел.
Думаю было бы круто добавить примеров из реальной так сказать жизни, но в голову ничего особенного не идет. Может у вас есть какие то кейсы с многопоточностью, которые не ясно как делать. Кидайте в меня, я разберу на видео)
Думаю было бы круто добавить примеров из реальной так сказать жизни, но в голову ничего особенного не идет. Может у вас есть какие то кейсы с многопоточностью, которые не ясно как делать. Кидайте в меня, я разберу на видео)
❤19
Ну и следующий модуль пора делать. Пишите в комментариях про что вы хотите послушать и голосуйте лайками если тему уже кто то написал до вас)
👍11❤2
Новый выпуск для подписчиков на Boosty
Иногда нам нужно отменить асинхронную задачу, если прошло достаточно много времени, разберемся как это делать в Swift Concurrency.
Иногда нам нужно отменить асинхронную задачу, если прошло достаточно много времени, разберемся как это делать в Swift Concurrency.
🔥7👍1
Новый выпуск для подписчиков на Boosty
В этой главе мы расскажем, что ждёт нас на этом курсе, какие вещи мы изучим и как глубоко.
В этой главе мы расскажем, что ждёт нас на этом курсе, какие вещи мы изучим и как глубоко.
🔥14
Новый выпуск для подписчиков на Boosty
Архитектура является наверное самой обсуждаемой темой в разработке приложений. Причем любых мобильных приложений и даже не мобильных. Все хотят выбрать некую правильную архитектуру, чтобы работать было проще. Про архитектуру спрашивают на собеседованиях, про нее спорят в чатах и на код ревью.
К сожалению в большинстве случаев все это похоже на блуждание во тьме. Кто-то , что, то слышал, читал, готовился, пробовал и что-то рассказывает. Но многие даже не знают что это такое. Люди существа простые и хотят простых решений, желательно осязаемых, по этому запоминаются какие-то конкретные примеры, но не то что привело к рождению этих примерах. В этом курсе мы попытаемся простыми словами рассказать, что же такое архитектура на самом деле и как ее проектировать.
Архитектура является наверное самой обсуждаемой темой в разработке приложений. Причем любых мобильных приложений и даже не мобильных. Все хотят выбрать некую правильную архитектуру, чтобы работать было проще. Про архитектуру спрашивают на собеседованиях, про нее спорят в чатах и на код ревью.
К сожалению в большинстве случаев все это похоже на блуждание во тьме. Кто-то , что, то слышал, читал, готовился, пробовал и что-то рассказывает. Но многие даже не знают что это такое. Люди существа простые и хотят простых решений, желательно осязаемых, по этому запоминаются какие-то конкретные примеры, но не то что привело к рождению этих примерах. В этом курсе мы попытаемся простыми словами рассказать, что же такое архитектура на самом деле и как ее проектировать.
🔥11👍9