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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Прикольная шпаргалка по mobile system design для собесов.

Все же изучая всякие практики и читая теории можно сказать, что детали в проектировании бэка, веба и мобилки — разные, из-за разных деталей платформ
5👍2❤‍🔥1🔥1
Интересная серия твитов про, binary size, скорость сборки, какие алгоритмы использует система, почему всякие экзистенциальные контейнеры ее тормозят
1
Understanding Swift Performance

Все же нет ни одной статьи про память в iOS, которая справилась бы лучше этой сессии на WWDC 2016. Такой пристарелый материал, но почему-то мало кому пришлось его осилить. А ведь правда, чтобы понять всё, что там говорят — нужно смотреть пару раз.

Теперь, отвечая на вопрос на память и типы вы легко можете:
▫️Объяснять стэк и кучу в Swift
▫️Что такое экзистенциальный контейнер
▫️Как память тесно связана с диспетчеризацией

В следующих постах подробнее поговорим про это, а пока можно почитать:

1️⃣ Протокольно ориентированное программирование
2️⃣Протокольно ориентированное программирование 2
3️⃣Протокольно ориентированное программирование 3
👍14
Existential Container

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

Компилятор Swift сгенерирует код, который автоматически упаковывает это значение в "экзистенциальный контейнер"

По умолчанию выделяется 3 машинных слова. Если размер превышает их, то в куче выделяется поле, которое управляется ARC и значение копируется туда. Указатель на поле копируется в первое поле, а остальные 2 слова не используются.

По своей сути экзистенциальный контейнер — это просто коробка фиксированного размера.

🚘 Здесь появляются дополнительные тонкости. В следующих постах поговорим про Protocol/Value Witness Table

- Связь между экземпляром структуры и методом протокола
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍1
Управление памятью и производительность типов значений

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

Но если все же интересно, то можно почитать статью и сравнить
- Куча общая для потоков, а значит память выделяется медленней.
- Когда value type выделяются в куче?
🔥7
В прошлую пятницу у меня был выбор: либо уехать в казахстан на пару недель, пока все не закрыли и встретить родственников. Либо поступить на вышку, которая в теории меня забронирует. Я выбрал второе.

Высшее образование не сказал бы, что большая, но колющая тема. Как я уже говорил, вся моя семья — учителя. У всех по несколько дипломов. А я не смог после колледжа совмещать работу и учебу на очке, и ушел вообще с высшего. Причем специальность была из списка на отсрочку. Впервые я пожалел, что отчислился)

Сейчас, скажем так, ценности поменялись 🤡 Значимость высшего образования также остается под вопросом, но она выросла психологически и социально. Без него, наверное, работадатель будет сомневаться, ибо ему сложно будет защитить от невнятного призыва. Дополнительные же гарантии помогут лучше планировать с нами работу.

Какое образование я выбрал? Да, которое было. Бизнес-информатик. Если познакомиться с программой обучения на следующие 4 года и 11 месяцев, то может показаться, что это бюджетная российская копия MBA.

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

Можно ли назвать это первым реалити шоу, где мы все будем анализировать ценность высшего 5 лет?
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳10🔥6👍2🌭1
Вопрос из зала: че выведет в консоль?
Какой будет ответ?
Anonymous Quiz
50%
true
24%
false
21%
Ошибка
4%
Краш
1%
nil
👍3
Проблемы с синглтонами и почему вместо них следует использовать DI

Эта тема уже задевалась вскольз, когда сравнивали сервис локатор и DI. Тут как раз статья вышла

Проблема синглтонов:

1. Риск гонки из-за доступа с разных классов
2. Ненастраиваемые инициализаторы
3. Сложность с мокированием данных

DI — это паттерн, который помогает инициализировать зависимость почти в начале композиции нашей апки, а потом внедрить.

Чаще всего внедрение происходит через инициализаторы и протоколы. Так мы можем легко контролировать переданные модули
👍3
Авито запустило стажировку, если вы помните.

Если учитесь на 3 курсе и старше, либо уже получили диплом по технической, математической или IT-специальности. А возможно, прошли курс переподготовки в IT.

🤑 Стажировка оплачивается

🏠 можно работать на удаленке

⌛️ продолжительность 6 месяцев

Знаю, кому-то будет полезно. Заявки принимают еще 10 дней
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😍4❤‍🔥2🏆1
Ха ха

Когда я копирую доку и книги — какой-то Timi Stark копирует меня в медиуме, переводя на английский дословно.

Кто ты без своего гугл переводчика?
Миллионер, Араб, иосер

Можно ли называть себя гордым словом РУССКИМ ПРОГРАММИСТОМ
😁9🌚4
А че может кто знает книги по нормальным языкам? Для Дронов писать по или ПВО симуляторы?

Чет заинтересовала тема с военным программным обеспечением и как красить пусковые кнопки
😁5😐2🤔1
А я напоминаю, что выкладываю разные интересные мне книги в другой канал. Там не только про иос

Также и те книги, которыми делятся подписчики

https://t.iss.one/iosmmcresources
👍7❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
AnimationTimer

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

Еще одна причина углубиться в таймеры и оптимизировать анимации.

- Подробнее про таймеры
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2🍓1
Ну и если че вот лучшее видео на ютубе о том, как работает стэк

- поинтеры
- прологи и эпилоги функций
- рост стэка вниз и вверх
- фреймы стэка
- вызов функций

в след посте попробую сделать визуализацию стэка в иос

https://www.youtube.com/watch?v=MXoMuymbfo8
🔥12