Forwarded from Сёрф Технологии
Как пришёл к успеху iOS-разработчик Никита 🍏
Продолжаем делиться историями Cёрферов. Представляем Никиту — iOS Team Lead. Он начал с middle и за полгода дорос до руководителя.
Никита развивает open-source Surf и пишет посты в Telegram-канал Surf iOS Team. О карьерном росте нашего тимлида читай в карточках.
P. S. Идём узнавать истории в отдел Backend 👌
Продолжаем делиться историями Cёрферов. Представляем Никиту — iOS Team Lead. Он начал с middle и за полгода дорос до руководителя.
Никита развивает open-source Surf и пишет посты в Telegram-канал Surf iOS Team. О карьерном росте нашего тимлида читай в карточках.
P. S. Идём узнавать истории в отдел Backend 👌
🔥12❤1👍1🙏1
Лёгкий способ добавить пагинацию на список
Корзины онлайн-магазинов — это длинная выдача. Получать её одной пачкой — расточительство ресурсов.
Логично разделить данные на части и отображать их по мере необходимости. Этот приём называется пагинацией.
При реализации пагинации считается хорошим тоном:
🔹Загружать следующую пачку после показа последней ячейки.
🔹Показывать индикатор процесса загрузки с помощью activityIndicator или кастомной view.
🔹Делать размер одной пачки примерно в 1,5 высоты экрана.
Если последний пункт индивидуален для каждого проекта, то первые два можно унифицировать: что мы и сделали с помощью RDDM.
👉 Плагин paginatable отследит событие показа последней ячейки и сообщит об этом в событии PaginatableOutput.loadNextPage.
👉 Он также поместит индикатор в футер таблицы или коллекции.
👉 Вам останется лишь связать результат загрузки с управляющими сигналами протокола PaginatableInput.
Подробнее о подключении плагина paginatable смотри на картинках и в репозитории проекта.
Корзины онлайн-магазинов — это длинная выдача. Получать её одной пачкой — расточительство ресурсов.
Логично разделить данные на части и отображать их по мере необходимости. Этот приём называется пагинацией.
При реализации пагинации считается хорошим тоном:
🔹Загружать следующую пачку после показа последней ячейки.
🔹Показывать индикатор процесса загрузки с помощью activityIndicator или кастомной view.
🔹Делать размер одной пачки примерно в 1,5 высоты экрана.
Если последний пункт индивидуален для каждого проекта, то первые два можно унифицировать: что мы и сделали с помощью RDDM.
👉 Плагин paginatable отследит событие показа последней ячейки и сообщит об этом в событии PaginatableOutput.loadNextPage.
👉 Он также поместит индикатор в футер таблицы или коллекции.
👉 Вам останется лишь связать результат загрузки с управляющими сигналами протокола PaginatableInput.
Подробнее о подключении плагина paginatable смотри на картинках и в репозитории проекта.
🔥8👍1
Перепись канала! Какой у тебя грейд?
Anonymous Poll
35%
Trainee
23%
Junior
16%
Middle
6%
Senior
20%
Без грейда
👍1
Функциональное реактивное программирование: что за зверь такой
Наверное, каждый iOS-разработчик, открывая вакансии, в требованиях видел: «Необходимо знание фреймворков RxSwift, RxCocoa».
Эти инструменты основаны на концепции реактивного программирования.
Реактивное программирование, как следует из названия, основано на реакции на событие: пользователь взаимодействует с интерфейсом и ждёт реакцию от приложения. Этот подход популярен в фронтенд-разработке, в том числе на iOS.
Мы в Surf долгое время избегали реактивщины в приложениях:
🔹 Во-первых, это лишние зависимости.
🔹 Во-вторых, подобные библиотеки несут в себе не только преимущества, но и проблемы с дебагом, сложностью поддержки кода и так далее.
Однако с выходом Combine и SwiftUI, мы решили начать внедрять реактивный подход в наши приложения. Благо, теперь не нужны сторонние решения: хватит того, что предоставляет Apple.
Если тебе интересно узнать, как работать с реактивным кодом на примере Combine, кидай реакцию к этому посту, и мы обязательно напишем продолжение😉
Наверное, каждый iOS-разработчик, открывая вакансии, в требованиях видел: «Необходимо знание фреймворков RxSwift, RxCocoa».
Эти инструменты основаны на концепции реактивного программирования.
Реактивное программирование, как следует из названия, основано на реакции на событие: пользователь взаимодействует с интерфейсом и ждёт реакцию от приложения. Этот подход популярен в фронтенд-разработке, в том числе на iOS.
Мы в Surf долгое время избегали реактивщины в приложениях:
🔹 Во-первых, это лишние зависимости.
🔹 Во-вторых, подобные библиотеки несут в себе не только преимущества, но и проблемы с дебагом, сложностью поддержки кода и так далее.
Однако с выходом Combine и SwiftUI, мы решили начать внедрять реактивный подход в наши приложения. Благо, теперь не нужны сторонние решения: хватит того, что предоставляет Apple.
Если тебе интересно узнать, как работать с реактивным кодом на примере Combine, кидай реакцию к этому посту, и мы обязательно напишем продолжение
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥9❤3
Сёрф iOS-разработка
Функциональное реактивное программирование: что за зверь такой Наверное, каждый iOS-разработчик, открывая вакансии, в требованиях видел: «Необходимо знание фреймворков RxSwift, RxCocoa». Эти инструменты основаны на концепции реактивного программирования.…
Как работать с реактивным кодом на примере Combine
Для работы с Combine важно понимать концепцию реактивного программирования — о ней мы писали в предыдущем посте.
Главные элементы Combine, с которыми происходит работа:
🔹 Publisher
🔹 Subscriber
🔹 Operators
🔹 Subjects
О них и поговорим: листай карточки👆
Для работы с Combine важно понимать концепцию реактивного программирования — о ней мы писали в предыдущем посте.
Главные элементы Combine, с которыми происходит работа:
🔹 Publisher
🔹 Subscriber
🔹 Operators
🔹 Subjects
О них и поговорим: листай карточки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤8👍3