iOS Makes Me Hate
3.94K subscribers
1.16K photos
167 videos
15 files
1.34K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
🚀 Результаты большого мобильного опроса: За кем из практикующих экспертов в iOS сообществе в России вы следите?

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

Меня можете не считать всерьез. Это просто потому, что я делал опрос в своем канале.

Вообще честно не стоит близко к сердцу воспринимать этот вопрос. Считаю много кого из разрабов упустили. Например, Витю из iOS Dev и его победах в тг конкурсах. Но самое время задуматься о public visibility
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Avito iOS meetup #10 (10.10.23)

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

Также нашел лучших спикеров для крутых тем:

🧵 Async / Await. Лучшие практики, советы и особенности — Максим Сурков, МТС 💳

В своём докладе Максим рассмотрит structured concurrency в Swift, поговорит о async/await, actors, tasks и проведёт аналогии с уже существующими инструментами для работы с многопоточностью. Доклад будет полезен тем, кто хочет интегрировать подход async/await в свои проекты или же в прод, но всё ещё сомневается.

🔄 SwiftUI — уже пора? — Тимур Долотказин, Авито 🛍

SwiftUI шагает по планете уже 4 года. Пора ли уже переводить свои приложения на него или стоит подождать? Тимур расскажет про свой опыт перехода на новый (старый) фреймворк, подводные камни и выводы, к которым он пришёл.

🔃 Гармония статики и динамики: погружаемся в mergeable libraries — Александр Сычев, Head of Mobile в Тинькофф Страхование 💳

На WWDC 2023 компания Apple представила новое решение — mergeable libraries, Оно объединяет преимущества статических и динамических фреймворков. Александр рассмотрит их внутреннее устройство и разберёт, как можно интегрировать их в свои iOS-проекты. В ходе доклада он выполнит сравнение производительности, чтобы понять, соответствуют ли обещания Apple действительности.

Приходите к нам в офис или подключайтесь. Я не так часто куда-то выхожу и выступаю.

📺 Ссылка на онлайн

🤼‍♂️ Ссылка на офлайн
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36❤‍🔥10👎2
Как airbnd переходили на SwiftUI

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

Пусть у них все же и вышло что-то положительное, только есть много но:
- это аирбнб. мы все помним их эксперименты, когда они выбирают технологию, пишут вбросы и потом отказываются от нее
- было куча багов
- полного перехода нет из-за навигации
- airbnb поддерживают только 16 и 17 iOS
- они потратили пару спринтов только на обучение SwiftUI
👍13👎2
Как async/await работает внутри

Крупная статья с подноготной Swift Concurrency и сравнение со старыми инструментами.

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

- Как async/await влияет на безопасность
- Какие элементы использует из GCD
- Зачем нам создавать свои Actor'ы

Итог: async/await упрощает концепцию параллелизма, но не везде облегчает ее. Допускать ошибки все также возможно.
👍13❤‍🔥7
😱 Ужасы Swift Concurrency

Еще один доклад про побочные эффекты нового инструмента для многопоточности:

- утечки памяти
- нелогичное поведение
- хаки для обходов
- непредсказуемость с SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎1
Вебинары о новых iOS-технологиях: «Swift Macros» и «SwiftData»

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

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

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

🔺Swift Macros
Макросы языка Swift — одно из самых заметных улучшений языка за последний год. Они помогают сократить количество шаблонного кода и упростить внедрение сложных функций. Проанализируем, как макросы могут быть использованы в проекте.
Рассказывает Настя Ищенко

🔺SwiftData
Core Data — мощный и удобный фреймворк для работы с данными в iOS-приложениях. Однако он был разработан еще во времена Objective-C и не поддерживает многие новые возможности языка Swift. На WWDC 2023 представили новый фреймворк — SwiftData, который призван заменить Core Data и упростить работу с данными в Swift. Расскажем, что такое SwiftData и как его использовать в своих проектах.
Рассказывает Даниил Алексеев

👉 Начало 4-го октября в 18:30. Получить ссылку на трансляцию можно в боте. Он заранее пришлёт напоминания перед вебинаром, а на следующий день — запись.

Все предыдущие вебинары можно посмотеть в записи по ссылке.
👍11👎3
🚀 Результаты большого мобильного опроса: Работа в командах каких направлений деятельности кажется вам наиболее привлекательной?

На удивление, хоть почти все банки удалены из appstore, но желание работать в них не уменьшилось и продолжает быть лидирующим. Возможно и понятно, на подсознательном уровне "работать в банке" звучит авторитетно. Да и там денег точно хватает.

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

Ну и третье место это всякие видеоредакторы и тп.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мотивацию надо поднять

О минимализме и ресурс менеджменте. Недавно я снова мельком перечитывал "Джедайские техники" Дорофеева и пришел к одному выводу:

Главная задача эффективности — это не поиск ресурсов. Это оптимизация уже имеющихся, которые расходуются зря.

Многие из нас смогли бы перевернуть мир, но нам не хватает главного — желаний, амбиций и мотивации. Я могу победить любую задачу, но мне лень...

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

Вместо достижения амбициозных целей мы ищем дешевую альтернативу. Ретрансляцию чужой жизни и наших грез. Закапываемся в маркетинговых небылицах, мифах и сказках. Выдумываем свои виртуальные оправдания. А почувствовав сложности снижаем ставки. Не зря ученные находят даже в просмотре порно большой вред для мозга.

Отказ от таких вещей очень важен для сохранения концентрации. А только недавно понял зачем эти все истязания. Насколько глубока кроличья нора.

О чем я? Знать как сделать не значит сделать. Чтобы закончить дело нужна дисциплина и мотивация пройти путь. Нужно избавиться от любых пожирателей энергии и соблазнов, которые шепчут тебе "Да зачем тебе это? Разве тебе не хватает дешевой замены. Покушай бургера, посмотри видео на ютубчике или займись тем, что приносит удовольствие здесь и сейчас". Нашему мозгу тяжело сопротивляться ради призрачной цели, если запах дешевого и готового опьяняет мозг.

Самый главный враг — соблазн.

Мы сами снижаем ставки. Меняем свою мотивацию ради дешевых удовольствий здесь и сейчас. А в конце говорим "Я не достиг успеха, потому что не хотел его". Но я все чаще задаю себе вопрос правда ли я этого не хотел или дешево прожег свои амбиции?

У нас есть все ресурсы. Важнее как их не потратить зря.

выключаю режим мотивационных речей Рокки Бальбо. А вы вот еще прикольную статью можете почитать про дофаминовый детокс
👍23😁1
Делаю один из главных шагов для своей дофаминовой стабильности — понемногу ограничиваю комментарии в канале. Одна из самых неэффективных трат энергии.

Мне, честно, не хочется тратить свой ресурс на споры в интернетах. Но и полностью комменты ограничивать я не хочу.

Для этого начнем описывать рекомендации по эффективной коммуникации в интернетах:

1. Пишем уважительно. Ко всем. К автору статьи. Ко всем остальным.
2. Если не согласны, то не просто выражаем мнение, но и заботимся о читателях.
3. Не скидываем ссылку "здесь все написано". Это неответственная коммуникация, которая жрет много энергии и создает условия спора ради спора. Объясняем свою мысль и подкрепляем ссылками,а не заменяем свои слова чужими.
4. Стараемся писать лаконично.
5. Напоминаем о правилах. Особенно мне.
6. Помним, что мы не тратим свое и чужое время зря просто вываливая эмоцию или мнение.
7. Любые намеки на троллинг, оскорбление, спам, провокации сначала штрафуются, а потом идет бан.


Накидывайте еще правила. Чуть попозде сформируем свой стайлгайд по эффективной коммуникации в интернетах
👍15😁7👎2
Forwarded from iOS Dev
Изучение Swift Concurrency за 2 часа

📺 В этом масштабном (иначе и не сказать) видео Vincent Pradeilles рассказывает о Swift Concurrency с нескольких разных точек зрения.

А вот и сами статьи, которые Винсент использовал:

📖 Async await в Swift с примерами.
📖 Конвертация асинхронного кода в async/await в Swift.
📖 Async let: параллельный вызов async-функций.
📖 Какую роль Tasks играют в системе параллелизма Swift?
📖 Разбор Swift Tasks Groups на примере.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥3
💸 Код на миллион долларов

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

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

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

Мое любопытство завело в сторону "А что такое высококачественный код программиста за десятки тысяч долларов?". Мы будем изучать лучшие практики из всех трудов программирования и переводить его в Swift.

Недавно я делал опрос какое для вас важное качество хорошего кода. Поэтому начнем с читаемости.

Открываю новую рубрику "Код на миллион долларов", где будем разбираться что такое читаемость, тестируемость и другие непонятные слова теорикам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30❤‍🔥2
Стоит ли нанимать сверхквалифицированных инженеров в ит?

Вы часто можете слышать от многих разработчиков: "Зачем мне решать алгосы/знать математику/уметь стоять на голове/писать крутой код, если буду красить кнопки".

И многие не врут, что собесы чаще сложнее реальных задач. Но для чего же такие собесы? Бизнесу нужно найти лучшего кандидата для усиления.

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

Человек, который справляется со сложными задачами легко — полезен команде для роста даже если для него сейчас нет задач.

Но что же лучше? Повышать свою квалификацию, когда на рынке уже нет места для твоих глубоких знаний или расширять свои навыки в смежных областях? На этот вопрос ответили т-шейпом.
👍3
💸 Код на миллион долларов:

Программирование — это конструирование

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

🟡 В книге "Совершенный код", а я к ней буду часто ссылаться, есть такой абзац: "При конструировании ПО оригинальный подход часто оказывается менее эффективным, чем повторное использование идей, кода и тестов из предыдущих проектов"

🟣 Не стоит придумывать уникальную поэму или гениальный код, стоимостью в пару квартир. Задача разработчика — написать эффективную программу с первого раза и с минимальными издержками.

🚀 Для этого есть несколько способов:

🔵 Увеличение начитанности. Стоит читать как можно много чужого кода из гитхабов и следить за практиками
🔵 Красть идеи и цельные концепции из других языков
🔵 Практиковаться переводить мысли в код.
🔵 Инкрементно разрабатывать программу. Не давать чрезмерных обещаний и не стараться написать код идеально с первого раза
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25😁1
🤍 А я напоминаю, что сегодня в 19:00 по мск будем проводить Avito iOS meetup #10

💳 Async / Await. Лучшие практики, советы и особенности — Максим Сурков, МТС

🛍 SwiftUI — уже пора? — Тимур Долотказин, Авито

💳 Гармония статики и динамики: погружаемся в mergeable libraries — Александр Сычев, Head of Mobile в Тинькофф Страхование

Приходите или подключайтесь. Я там буду ведущим.

📺 Присоединиться к трансляции на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20👎2
💸 Код на миллион долларов: Метафоры инструментария

Используя только молоток, вокруг себя мы будем видеть только гвозди

Когда я спрашиваю у разработчиков с чем они сравнивают программирование, то слышу многие сравнения:

Кто-то сравнивает написание кода с готовкой. Есть рецепт и иди вари борщ. Правильно перчи или соли. Вари на нужном огне и выбирай лучшее мясо.

Другие видят в нем строительство. Есть архитекторы, есть маляры, есть крановщики. Одни пишут планы, другие рисуют чертежи, третьи красят стены, четвертые только матерятся.

Один из знакомых начальников, далекий от программирования, называл программистов писателями. Им просто нужно выполнить в программе то, что им говорит менеджмент. Такие глупые болванчики, которые повторяют слова своих руководителей... Хороший ли тот руководитель, кто нанимает команду, слабее себя, решаем каждый сам.

Важность метафор уже расскрывали в книгах и статьях. Каждая из них задает свои органичения и не стоит следовать только одной концепции. Это может быть не так эффективно при решении разных задач.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8👍4👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Продвинутые анимации в SwiftUI

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

Пока остальные откапываются от obj-c мы идем к самому красивенькому и важному. Анимациям 😘

В статье детальный разбор всех новых штук для адаптивного и приятного интерфейса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Фотки с митапа

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

Особенно большое спасибо спикерам, зрителям и организаторам.

Пару раз мы ловили большое спасибо за организацию этого митапа и это сильно греет душу. Кто-то даже шутил сделать свой аналог AppConf’а. Возможно, шутки перестанут быть шутками 😉
❤‍🔥35👍6😁1