Привет, Хабр! Дизайнеры рисуют приложения с красивыми кнопочками, тенями, анимациями, градиентами и сложными переходами между экранами. К сожалению, такие дизайны нелегко превращать в рабочие приложения. Можно ли облегчить нашу работу? Разберемся на примере приложений, получивших награды Apple за дизайн: Auxy, Streaks и Zova.
arhangelskij @arhangelskij
iOS dev
Использование паттерна SchedulableObject для выделения бизнес-логики в отдельный поток
12 min
13KИнтерфейс мобильного приложения — это лицо продукта. Чем более отзывчив интерфейс, тем больше радости приносит продукт. Однако удовлетворённость от использования приложения зависит прежде всего от объёма его функций. По мере увеличения количества и сложности задач они требуют всё больше и больше времени. Если архитектура приложения предполагает, что все они выполняются в главном потоке, то задачи бизнес-логики начинают конкурировать за время с задачами отрисовки интерфейса. При таком подходе рано или поздно обязательно находится сценарий, исполнение которого приводит к залипанию приложения. Для борьбы с этой напастью существует три принципиально разных подхода:
- Оптимизация алгоритмов и структур данных, вовлечённых в исполнение проблемного сценария.
- Вынос проблемного сценария из главного потока.
- Вынос из главного потока всех функций приложения, за исключением собственно рендеринга пользовательского интерфейса.
Паттерн SchedulableObject позволяет аккуратно реализовать третий сценарий. Под катом рассматриваются его части с примерами реализации на Swift, а также преимущества и недостатки по сравнению с первыми двумя подходами.
+25
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity