• Повторяем дизайн приложений, получивших награду Apple

    • Translation
    • Tutorial
    Привет, Хабр! Дизайнеры рисуют приложения с красивыми кнопочками, тенями, анимациями, градиентами и сложными переходами между экранами. К сожалению, такие дизайны нелегко превращать в рабочие приложения. Можно ли облегчить нашу работу? Разберемся на примере приложений, получивших награды Apple за дизайн: Auxy, Streaks и Zova.

    image
    Читать дальше →
    • +30
    • 14.9k
    • 1
  • Использование паттерна SchedulableObject для выделения бизнес-логики в отдельный поток



      Интерфейс мобильного приложения — это лицо продукта. Чем более отзывчив интерфейс, тем больше радости приносит продукт. Однако удовлетворённость от использования приложения зависит прежде всего от объёма его функций. По мере увеличения количества и сложности задач они требуют всё больше и больше времени. Если архитектура приложения предполагает, что все они выполняются в главном потоке, то задачи бизнес-логики начинают конкурировать за время с задачами отрисовки интерфейса. При таком подходе рано или поздно обязательно находится сценарий, исполнение которого приводит к залипанию приложения. Для борьбы с этой напастью существует три принципиально разных подхода:

      1. Оптимизация алгоритмов и структур данных, вовлечённых в исполнение проблемного сценария.
      2. Вынос проблемного сценария из главного потока.
      3. Вынос из главного потока всех функций приложения, за исключением собственно рендеринга пользовательского интерфейса.

      Паттерн SchedulableObject позволяет аккуратно реализовать третий сценарий. Под катом рассматриваются его части с примерами реализации на Swift, а также преимущества и недостатки по сравнению с первыми двумя подходами.
      Читать дальше →
      • +25
      • 11.2k
      • 2