💎 Релиз вопросов для собесов по UIKit | Джун ч2
Один из моих любимых сборников. В нем я прошелся по:
🟣 Жизненный цикл UIView
🟣 Жизненный цикл AutoLayout
🟣 Обработка жестов
Для подписчиков доступна интересная задача с тачами и жестами. Позже опубликую в канале.
🌿 Этот и другие сборники можно найти тут
🧬 Ознакомиться с другими сборниками тут
Один из моих любимых сборников. В нем я прошелся по:
Для подписчиков доступна интересная задача с тачами и жестами. Позже опубликую в канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
Обновление ноушена и комьюнити за неделю
Эта неделя была для меня горячей по работе, но я все равно старался наполнять контентом.
На этой недели мы:
🟣 Немного ушли в философию
🟣 Узнали про задачи для сеньоров по System Design
🟣 Разобрались с навигацией в SwiftUI
🟣 Обошли деревья в глубину
🟣 Поговорили про патрен прокси
🟣 В чате порасуждали про переходы в разные стэки, изучение в бэк, выгорание, завалы на работе, прохождение собесов и конечно же вилки.
Полный список изменений в картинке
🌸 Вступить в сообщество и получить доступ к закрытым материалам можно тут.
Эта неделя была для меня горячей по работе, но я все равно старался наполнять контентом.
На этой недели мы:
Полный список изменений в картинке
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведется в консоль при нажатии на view1?
Anonymous Quiz
18%
touchBegan, touchesEnded, Gesture, touchesCancelled
21%
Gesture, touchBegan, touchesEnded, touchesCancelled
11%
Gesture, touchesCancelled
16%
touchBegan, touchesEnded
23%
touchBegan, Gesture, touchesCancelled
10%
Будет ошибка
О базах знаний и порядке
🔘 Вы забудете этот пост через пять других. Как и все следующие. Как и все предыдущие.
Наша память ограничена. Сможешь вспомнить о чем я писал 10 постов назад? Даже я не вспомню.
Немного истории. Я уже писал, что этот канал был создан случайно. Два с половиной года назад я был преподом в одной из школ. Мне куда-то нужно было складывать полезные ссылки. Так был задан вектор.
Полезных ссылок стало слишком много. Я начал писать статьи на Хабре, которые привели сюда трафик. Никогда я не покупал рекламу и не байтил на подписку, не ходил на конфы и подкасты. Не участвовал к коллабах и отказывал хейтерам в батлах. Если тебе нравится мой контент тебе либо скажут, либо сам найдешь. Так я оценивал качество и свои точки роста.
Все это нужно чтоб удержать фокус на создании базы знаний и формулировки своих практик обучения. Но я ошибался.
Я вижу, как десятки каналов, которые созданы для хранения личных ссылок на один, два подписчика, репостят себе посты. Идут по тому пути, где споткнулся я.
Я наивно полагал, что сохранив статью в канал, оформив ее, я закреплю знания и буду экспертом. Или вернусь к этому посту позже.
Пройду собес на изи. Но такой ленивый подход начал давать сбои. В сотнях статей ты начинаешь теряться, все сбрасывается в кучу, ты забываешь то, что делал пару месяцев назад. Хлама становится больше, в нем сложно найти нужное.
Бесконечная лента закрепила в нас паттерн, который заставляет забывать любую инфу с каждым новым постом. Очищая ячейку памяти для хранения туда новой записи, а потом очищается снова.
Лента чатов, ютубов, твиттеров, для хранения важной и полезной инфы — бесполезна. Так пришли ноушены, обсидианы, заметки. Так будет развиваться дальше.
Так создался симулятор иосника. Так создался мой ноушен, так я экспериментирую с обсидианом.
Каналы и другие инструменты — это инструмент маркетинга, но не образования. Вас подпитывают страхом упущенной выходы, пересказывая старое, повторяя сказанное, делясь отложенным. Закрывая в бесконечном цикле псевдоразвития. Как в рекурсивном рилсе из инсты, из которого нет выхода. Вечное цукуеми из которого найти выход получится только тебе.
Здесь я уже делаю легкие выжимки больших и детальных постов из баз знаний. Там возвожу памятники.
Почему? Прочитай сначала.
Наша память ограничена. Сможешь вспомнить о чем я писал 10 постов назад? Даже я не вспомню.
Немного истории. Я уже писал, что этот канал был создан случайно. Два с половиной года назад я был преподом в одной из школ. Мне куда-то нужно было складывать полезные ссылки. Так был задан вектор.
Полезных ссылок стало слишком много. Я начал писать статьи на Хабре, которые привели сюда трафик. Никогда я не покупал рекламу и не байтил на подписку, не ходил на конфы и подкасты. Не участвовал к коллабах и отказывал хейтерам в батлах. Если тебе нравится мой контент тебе либо скажут, либо сам найдешь. Так я оценивал качество и свои точки роста.
Все это нужно чтоб удержать фокус на создании базы знаний и формулировки своих практик обучения. Но я ошибался.
Я вижу, как десятки каналов, которые созданы для хранения личных ссылок на один, два подписчика, репостят себе посты. Идут по тому пути, где споткнулся я.
Я наивно полагал, что сохранив статью в канал, оформив ее, я закреплю знания и буду экспертом. Или вернусь к этому посту позже.
Пройду собес на изи. Но такой ленивый подход начал давать сбои. В сотнях статей ты начинаешь теряться, все сбрасывается в кучу, ты забываешь то, что делал пару месяцев назад. Хлама становится больше, в нем сложно найти нужное.
Бесконечная лента закрепила в нас паттерн, который заставляет забывать любую инфу с каждым новым постом. Очищая ячейку памяти для хранения туда новой записи, а потом очищается снова.
Лента чатов, ютубов, твиттеров, для хранения важной и полезной инфы — бесполезна. Так пришли ноушены, обсидианы, заметки. Так будет развиваться дальше.
Так создался симулятор иосника. Так создался мой ноушен, так я экспериментирую с обсидианом.
Каналы и другие инструменты — это инструмент маркетинга, но не образования. Вас подпитывают страхом упущенной выходы, пересказывая старое, повторяя сказанное, делясь отложенным. Закрывая в бесконечном цикле псевдоразвития. Как в рекурсивном рилсе из инсты, из которого нет выхода. Вечное цукуеми из которого найти выход получится только тебе.
Здесь я уже делаю легкие выжимки больших и детальных постов из баз знаний. Там возвожу памятники.
Почему? Прочитай сначала.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы просили — я начал делать. Собрал сборник задач про рефакторинг и кодревью. Тут будут и вопросы как переписать код под SOLID, и про паттерны, и про нэйминги и функции. Такого точно нигде не видел.
Это один из частых запросов, который сложно найти в интернете, но любят задавать на собесах. Все задачи с кодом, без теории.
Рекомендованный алгоритм по решению:
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой/какие SOLID принцип нарушает класс?
Anonymous Poll
62%
Single responsibility
17%
Open closed
10%
Liskov substitution
47%
Interface segregation
13%
Dependency inversion
11%
Никакой
День нелюбимой работы
Сегодня день ненавистной работы. День, когда люди посылают далеко и громко ту работу, которую ненавидят.
Я не люблю отдых в компаниях. Редко вижусь с родственниками. Почти никуда не выхожу. Отдаю все свое внимание собаке и немного девушке. Но дико люблю бани. Единственный вид отдыха, который понимаю.
Для меня это целая церемония и ритуал еще с детства, когда мы с отцом могли поговорить по душам и расслабиться. Сегодня я был в ней.
Очень сильно обращаю внимание на работу банщика. Если он приходит на работу без любви, то чаще мой отдых испорчен. А есть те, кто со страстью делает работу и атмосфера в парилке накаляется особой энергией.
Считаю, если у тебя нет любви к своей работе — то ты должен ее бросать. Любовь должна быть не та, без которой ты не можешь. А та, что помогает полюбить все недостатки и профессионально относиться не смотря на проблемы и настроение.
Мой канал об этом. Да и приближаясь к солидной цифре к 300 платным подписчикам на бусти я все становлюсь уверенней, что без любви никуда.
Желаю всем любить свою работу.
Сегодня день ненавистной работы. День, когда люди посылают далеко и громко ту работу, которую ненавидят.
Я не люблю отдых в компаниях. Редко вижусь с родственниками. Почти никуда не выхожу. Отдаю все свое внимание собаке и немного девушке. Но дико люблю бани. Единственный вид отдыха, который понимаю.
Для меня это целая церемония и ритуал еще с детства, когда мы с отцом могли поговорить по душам и расслабиться. Сегодня я был в ней.
Очень сильно обращаю внимание на работу банщика. Если он приходит на работу без любви, то чаще мой отдых испорчен. А есть те, кто со страстью делает работу и атмосфера в парилке накаляется особой энергией.
Считаю, если у тебя нет любви к своей работе — то ты должен ее бросать. Любовь должна быть не та, без которой ты не можешь. А та, что помогает полюбить все недостатки и профессионально относиться не смотря на проблемы и настроение.
Мой канал об этом. Да и приближаясь к солидной цифре к 300 платным подписчикам на бусти я все становлюсь уверенней, что без любви никуда.
Желаю всем любить свою работу.
Отличная новость от Jetbrains, которую все ожидали.
Kotlin теперь депрекейтед. Гугл уже анонсировал, что swift будет новым языком для разработки под андроид
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-deprecated/
Kotlin теперь депрекейтед. Гугл уже анонсировал, что swift будет новым языком для разработки под андроид
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-deprecated/
Как использовать Runloop в iOS приложениях
Когда-то давно мы уже писали свой ранлуп. Но статей про него много не бывает.
RunLoop — это цикл, который помогает обрабатывать получение и обработку входящих событий в конкретном потоке. Для каждого потока есть свой ранлуп.
Какие проблемы решает ранлуп?
- Обработка задач и их выполнение
- Оптимизация задач
💎 Больше ресурсов про многопоточность тут
Когда-то давно мы уже писали свой ранлуп. Но статей про него много не бывает.
RunLoop — это цикл, который помогает обрабатывать получение и обработку входящих событий в конкретном потоке. Для каждого потока есть свой ранлуп.
Какие проблемы решает ранлуп?
- Обработка задач и их выполнение
- Оптимизация задач
Please open Telegram to view this post
VIEW IN TELEGRAM
Hackernoon
How to Use RunLoop in IOS Applications
Run Loop is a very important tool in iOS development. Let's explore how to use it.
В ноушене вышла большая статья про потокобезопасность.
Постарался собрать инфу по самым популярным и неочень вопросам:
А также многое другое с кодом и в конце вопросами для самопроверки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Совсем недавно мы в ноушене написали про DI в SwiftUI и даже сделали свою собственную реализацию в тестовом проекте.
Вот попалась крутая серия статей про него и некоторые другие авторы активизировались подробнее его разбирать. Когда либо мы предугадываем тренду, либо их задаем.
В них расматриваются:
- Практики внедрения зависимостей
- Разбор разных библиотек
- Как сделать приложение безопасным, стабильным и тестируемым
Статьи:
Please open Telegram to view this post
VIEW IN TELEGRAM
Об инфляции сложности
Почему в ит считается, что стоять на одном месте — это означает деградировать?
Есть мнения, что сейчас джунам сложнее найти работу и требования как от сеньоров. С первым утверждением отчасти я согласен, но со вторым готов поспорить.
Я часто вижу внутренние цифры со стажировок. Да, сейчас рекорды по поданным на старте заявкам, но в итоге, до следующих этапов доходят не так и много людей, как было и раньше.
Многие хорошо зубрят доступную теорию, которой много на собесах и нет в стажировках. Но почти не могут пройти базовые задачи на программирование.
Сложность — это динамическая переменная. Она формируется от доступности. Если люди сто лет назад не умели читать, считая это очень сложной операцией, то сейчас это базовое требование от каждого. Также и от любой задачи в любой команде. Прошлый спринт эта задача была сложная, а сегодня на планировании она легкая, потому что уже знают, как ее делать
Системы усложняются и растут, а вместе с ней и базовые требования от специалистов.
Если 3 года назад одни задачи были доступны только сеньорам, то с приходом доступности информации знание той же side table стало уже стажерским, тк о ней пишут в самых доступных ресурсах.
Доступность — главный индикатор сложности. Сложность — это не показатель кол-ва операций, которые ты должен сделать, а как много людей смогло преломить себя решив эту задачу. Сложность подается инфляции.
Через 3 года то, что спрашивают на сеньоров, будут спрашивать на джунов. Поэтому нужно держать форму и окружать себя теми, кто легко справляется этой инфляции. Кто легко находит редкую инфу, а не знает популярную теорию и первые статьи из интернета.
Инфошум и инфобарыги запутали джунов. Им советовали легкие пути, но легкие пути быстро теряют вес и становятся базовым требованием. Тут главное не отпустить хватку и продолжать ежедневно двигаться, развиваться, тк можешь не успеть за скоростью инфляции. Не удержаться на седле.
Если ты не увеличиваешь стоимость своих знаний, то тебя сожрет инфляция. Вчерашние знания станут меньше стоить. Мало изучать все подряд, нужно изучать самое ценное.
Сопротивляться инфляции можно тут
Почему в ит считается, что стоять на одном месте — это означает деградировать?
Есть мнения, что сейчас джунам сложнее найти работу и требования как от сеньоров. С первым утверждением отчасти я согласен, но со вторым готов поспорить.
Я часто вижу внутренние цифры со стажировок. Да, сейчас рекорды по поданным на старте заявкам, но в итоге, до следующих этапов доходят не так и много людей, как было и раньше.
Многие хорошо зубрят доступную теорию, которой много на собесах и нет в стажировках. Но почти не могут пройти базовые задачи на программирование.
Сложность — это динамическая переменная. Она формируется от доступности. Если люди сто лет назад не умели читать, считая это очень сложной операцией, то сейчас это базовое требование от каждого. Также и от любой задачи в любой команде. Прошлый спринт эта задача была сложная, а сегодня на планировании она легкая, потому что уже знают, как ее делать
Системы усложняются и растут, а вместе с ней и базовые требования от специалистов.
Если 3 года назад одни задачи были доступны только сеньорам, то с приходом доступности информации знание той же side table стало уже стажерским, тк о ней пишут в самых доступных ресурсах.
Доступность — главный индикатор сложности. Сложность — это не показатель кол-ва операций, которые ты должен сделать, а как много людей смогло преломить себя решив эту задачу. Сложность подается инфляции.
Через 3 года то, что спрашивают на сеньоров, будут спрашивать на джунов. Поэтому нужно держать форму и окружать себя теми, кто легко справляется этой инфляции. Кто легко находит редкую инфу, а не знает популярную теорию и первые статьи из интернета.
Инфошум и инфобарыги запутали джунов. Им советовали легкие пути, но легкие пути быстро теряют вес и становятся базовым требованием. Тут главное не отпустить хватку и продолжать ежедневно двигаться, развиваться, тк можешь не успеть за скоростью инфляции. Не удержаться на седле.
Если ты не увеличиваешь стоимость своих знаний, то тебя сожрет инфляция. Вчерашние знания станут меньше стоить. Мало изучать все подряд, нужно изучать самое ценное.
Сопротивляться инфляции можно тут
Когда я решал литкод, то часто думал почему мало задач про многопоточку. С таким же запросом иногда приходят в чат.
Добавил новый раздел в котором будет:
Решения будут на языке Swift с комментариями
Please open Telegram to view this post
VIEW IN TELEGRAM
Backend Driven UI
Поговорим про еще один тренд, который был популярен в 2018-2020 годах, но снова активно начал форситься в мобильном комьюнити. BDUI любят пугать мобильщиков, что скоро их всех заменят бэкендеры. Опять нас кто-то пугает... Но давайте определим плюсы и минусы технологии.
Backend Driven UI — этот механизм позволяет легко изменять приложение не выкатываясь в сторах. Это делается с помощью json'а, который отправляет бэк. В этом джейсоне отображена верстка вашего экрана из заранее заготовленных компонентов, текстов, стилей и даже функций.
Идеальное решение, которое, казалось бы как кроссплатформа, может навсегда убить нативщиков. Но есть много но, когда хороший концепт так и не получает крутую реализацию.
BDUI правда помогает легко обходить релизы. Да, не без нюансов, мы ограничены тем кодом, который пропустил стор, но все же можем. В чем же тогда минусы?
Пообщавшись со многими разрабами и потыкая в него самому, а где-то даже и написав с нуля, я сформулировал мнение по зонам использования такого инструмента.
Он отлично подходит в сценариях, когда есть простые экраны с информацией, но плохо со сложной логикой и там, где пользовательский опыт важнее скорости выкатки.
Где полезен тогда BDUI? Там, где важен time-to-market. Почти все маркетплейсы его используют. Для них скорость выкатки фичи для быстрой услуги важнее. Но каждый сам судит удобность яндекс.маркета, озон и других
Где вреден? Там, где важен Retention. Где удержание важнее быстрой услуги. Например, почти во всех приложениях, с красивым, быстрым и удобным дизайном сложно выжать из BDUI тот же перфоманс и гибкость, которые дают нативные инструменты. Например, люди привыкли читать текст или смотреть видео, в этот момент время удержания гораздо важнее, тк нужно показать рекламу, которую досмотрят доконца. Здесь почти всегда BDUI проигрывает.
Заменит ли нас BDUI? Нет, если вы задумываетесь об удержании
Поговорим про еще один тренд, который был популярен в 2018-2020 годах, но снова активно начал форситься в мобильном комьюнити. BDUI любят пугать мобильщиков, что скоро их всех заменят бэкендеры. Опять нас кто-то пугает... Но давайте определим плюсы и минусы технологии.
Backend Driven UI — этот механизм позволяет легко изменять приложение не выкатываясь в сторах. Это делается с помощью json'а, который отправляет бэк. В этом джейсоне отображена верстка вашего экрана из заранее заготовленных компонентов, текстов, стилей и даже функций.
Идеальное решение, которое, казалось бы как кроссплатформа, может навсегда убить нативщиков. Но есть много но, когда хороший концепт так и не получает крутую реализацию.
BDUI правда помогает легко обходить релизы. Да, не без нюансов, мы ограничены тем кодом, который пропустил стор, но все же можем. В чем же тогда минусы?
Пообщавшись со многими разрабами и потыкая в него самому, а где-то даже и написав с нуля, я сформулировал мнение по зонам использования такого инструмента.
Он отлично подходит в сценариях, когда есть простые экраны с информацией, но плохо со сложной логикой и там, где пользовательский опыт важнее скорости выкатки.
Где полезен тогда BDUI? Там, где важен time-to-market. Почти все маркетплейсы его используют. Для них скорость выкатки фичи для быстрой услуги важнее. Но каждый сам судит удобность яндекс.маркета, озон и других
Где вреден? Там, где важен Retention. Где удержание важнее быстрой услуги. Например, почти во всех приложениях, с красивым, быстрым и удобным дизайном сложно выжать из BDUI тот же перфоманс и гибкость, которые дают нативные инструменты. Например, люди привыкли читать текст или смотреть видео, в этот момент время удержания гораздо важнее, тк нужно показать рекламу, которую досмотрят доконца. Здесь почти всегда BDUI проигрывает.
Заменит ли нас BDUI? Нет, если вы задумываетесь об удержании
ViewBuilder — это атрибут Swift, представленный в SwiftUI.
По сути, это механизм, основанный на замыкании, который позволяет динамически создавать вью путем объединения нескольких дочерних вьюх в одно родительское.
В ноушене написал подробнее про:
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Head of mobile
Сегодня празднуется Всемирный день крысы, так что его можно и мемом отправздновать