iOS Makes Me Hate
4.25K subscribers
1.61K photos
250 videos
24 files
1.63K links
Авторский канал про разработку. Путь продуктовых самураев в MAANG.

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK

лектор ВШЭ и тп

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

Сайт iosmakesmehate.tech
Download Telegram
Короче с праздником

Желаю больше любви. Ко всему со временем ее сложно сохранять.

В браке с ипотеками, кризисами, рождениями.

Также и на работе и профессии. Пусть будут искренние эмоции и счастье
2853
💎 Способы решения работы с большими данными: Проблема наивной предзагрузки

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

Я запускаю небольшую серию постов о недооценённой теме — управлении трафиком. Как я уже писал ранее, что чем больше размер данные, тем умнее нужно потреблять сеть.

👎 Наинвая стратегия
Допустим, у вас есть плеер или любой другой тяжелый контент. Самое очевидное решение загружать текущий файл + всегда предзагружать N следующих. Звучит логично. Так делают многие.

Но в реальных условиях это приводит к проблемам:
🟣текущий поток начинает конкурировать с предзагрузкой
🟣буфер проседает
🟣сеть перегружается
🟣растет latency
🟣юзер получает фризы

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

Простой пример: У вас есть видео размером 1000 MB.

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

Если буфер в норме:
🔘можно аккуратно подгружать следующий контент

🧍‍♀️ Тут важно запомнить: тем меньше нужно скачивать — тем быстрее задачи будут выполняться.

1/3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1211
Рубрика корпорат герл

Когда приходишь в офис на масленицу ради апельсиновых и шоколадных блинов
23141
Наконец нормальные зарплаты пошли на рынке

Тбанк молодцы
579
Провел лекцию в ВШЭ.

Назвал доклад "BDUI: Будущее или скам?".

Такой бы доклад наверное не пропустила никакая конфа.

Собрал мнение ~100 разрабов. Сформулировал свой опыт. Собрал открытые материалы.

И даже ответил на свои личные вопросы.

Решил подойдти непредвзято.

Основной вывод: это идеальный инструмент на бумаге для еcom и банков, где легкая и простая верстка, но в больших обьемах. Для сложных приложений со сложным лайаутом это скорее вредно.

Забавно, как у меня порвалась жопа. В прямом смысле. Когда сел в такси порвалась матня. Я решил это символично. Но лекцию не перенес :)

Ставь 💀если скам. Или 🔥норм.
Please open Telegram to view this post
VIEW IN TELEGRAM
433044
This media is not supported in your browser
VIEW IN TELEGRAM
Украл из линкедина

Есть еще и такое preparingThumbnail(of:)

А здесь подробнее
8
Forwarded from Yandex for Mobile
🗺 За кулисами Яндекс Карт

Как устроен один из самых нагруженных мобильных продуктов в России? Об этом поговорили Лев Бондаренко, старший iOS-разработчик Яндекс Еды, и Владимир Миллер, руководитель группы мобильной разработки Яндекс Карт. Обсудили продуктовый контекст, технологический стек и тонкости принятия архитектурных решений.

Главные темы беседы:

🟠 Где сегодня проходит граница между SwiftUI и UIKit, Combine и RxSwift и как команда выбирает инструменты под реальные задачи

🟠 Нужны ли iOS-инженеры в мире кросс-платформы и могут ли Android-разработчики их заменить

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

🟠 Как «продать» KMP iOS-разработчикам и ускорилось ли time to market после его внедрения

🔮 А ещё обсудили Redux (SwiftUI + Compose), BDUI, офлайн-режим, модуляризацию и сборку, автотесты и взаимодействие со смежными продуктами.

🎲 Посмотреть интервью можно на ютубе или в VK Видео. Оно будет полезно iOS- и Android-разработчикам, тимлидам и всем, кто интересуется развитием мобильной архитектуры и кросс-платформенных решений в больших продуктах.

Подписывайтесь:
💬 @Yandex4Mobile
📹 @YandexforMobile
Please open Telegram to view this post
VIEW IN TELEGRAM
1032
Сколько вы тратите на подписку аи-агентов?
Anonymous Poll
33%
0$
39%
20-40$
8%
>40-100$
6%
>100-200$
1%
>200-1000$
1%
>1000$
12%
Посмотреть результат
🤖 Подборка полезных аи-настроек для вашего проекта

Настройка для проекта сабагентов, правил, промтов и других md файлов — это супер горячая тема. Не уступающая по холливарам архитектурам и стайлгайду.

А не редко такие описания для агентов являются и хорошей документацией для кожанных мешков.

Я решил чуть углубиться чего же напридумывали уже. И разделил по разным группам настройки:

1️⃣ CLAUDE MD Mobile Development

Главная память проекта. Обычно агент подхватывает правила при старте и ориентируется на них.

2️⃣ Claude Code CLI - Complete iOS Development Setup Guide

Огромный гайд как настраивать Claude Code для iOS проекта. От описания арх рекомендаций, до выбора технологий и тестов.

3️⃣ Cursor Swift Rules

Лаконичный набор правил для курсора. Ничего лишнего.

4️⃣ Claude Code Skills for Apple Platform Development

Коллекция разных скиллов от написания кода для iOS/MacOS. До дизайна, продукта и публикации в App Store.

Делитесь своими полезными настройками
Please open Telegram to view this post
VIEW IN TELEGRAM
194
This media is not supported in your browser
VIEW IN TELEGRAM
Ставь лайк если настоящий программист и не пользуешься этой вонючей продукцией от Apple
13520
🫣 Способы решения работы с большими данными: Оценка пропускной способности

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

Пропускная способность (throughput) — сколько данных система способна обработать за единицу времени.


В мобилке ПС можно найти в таких местах:
🟣Загрузка данных по сети
🟣обработка большого JSON'а
🟣запись в локальную базу
🟣рендеринг большого кол-ва элементов

В больших система многое решается на уровне контента. Уменьшаем размер ответа. Кол-во байтов. Строк. Но есть еще супер базовые советы: Пагинация и lazy loading. Кэширование. Чанканизация.

Но хочется поговорить про необычные и непопулярные решения.

1️⃣ Codable + Chunk Parsing

Проблема: если сразу отдавать огромный массив JSONDecoder.decode(...), то он занимает много памяти и времени. Можно разделять JSON на части и парсить кусками

2️⃣ Сжатие данных (gzip vs Brotli)

Похожее делали в авито и других крупных компаний. Такое сжатие может дать до 65% уменьшения ответа.

3️⃣ Прерасчет лайаута и частичный рендеринг

Проблема: бэк отдает очень большой список компонентов. Мы не хотим рисовать сразу все. А остальные компоненты подготавливать в фоне вместо с отрисовкой.

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

А у SwiftUI я нашел только какой-то костыль. Если найдете норм решение — кидайте
Please open Telegram to view this post
VIEW IN TELEGRAM
62
Нужны ли iOS разработчики?

Сейчас читаю книгу Accelerate: The Science of Lean Software. В нем было исследовано более 23 000 команд. Где главный вывод: высокая производительность связана не с языком или стеком, а с культурой, архитектурой и инженерными практиками.

“We found no evidence that any one technology stack is superior. Instead, what predicts high performance are capabilities.”


В беседе с Яндекс.Картами я задал один из острых вопросов не все разрешили: Нужны ли iOS-разрабы в проекте с KMP?

Ещё пару лет назад на конференциях звучало: будущее за Kotlin Multiplatform. Не учишь Kotlin и пойдешь на мороз. Я понимал это байт.

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

Сегодня риторика изменилась. Теперь пугают не кроссплатформой. Пугают ИИ.

Но вопрос до сих пор в воздухе. Что же происходит с командой мобильных инженеров, если есть КМП или другая платформа? Если ли перевес что на 1 иосера теперь 5 андроидеров? Заменили ли кого-то?

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

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

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

Во многих книгах с хорошей базой по построению инженерной культуры пишут — это лучшая инвестиция в быстро меняющийся мир. А не изучение отдельных языков или стэков.
Please open Telegram to view this post
VIEW IN TELEGRAM
2032
Рубрика «офисная среда»

Вы просили больше лайф контента.
135