Рубрика «swift» - 20

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

Пусть есть экран MelodyListViewController показывающий список мелодий. У него есть презентер MelodyListPresenter, который говорит ViewController что показывать. Данные презентер будет брать из сервиса MelodyService. MelodyService это обертка над базой данных и api клиентом, загружающая мелодии. Если сеть доступна, сервис берет данные с api, иначе с базы данных. Типы ошибок загрузки представлены в enum ServiceRequestError.Читать полностью »

Конечный автомат редко применяется мобильными разработчиками. Хотя большинство знает принципы работы и легко реализует его самостоятельно. В статье разберемся, какие задачи решаются конечным автоматом на примере iOS-приложений. Рассказ носит прикладной характер и посвящен практическим аспектам работы.

Под катом вы найдете дополненную расшифровку выступления Александра Сычева (Brain89) на AppsConf, в котором он поделился вариантами применения конечного автомата при разработке неигровых приложений.

О спикере: Александр Сычев занимается iOS-разработкой восемь лет, за это время участвовал в создании как простых приложений, так и сложных клиентов для социальных сетей и финансового сектора. В данный момент является техлидом в компании Сбербанк.
Читать полностью »

От презентации Apple, которая должна была пройти 12 сентября, ничего особенного не ждали: три новых модели iPhone и новую версию Apple Watch — об этих новинках знали заранее. Тем не менее, мы в Авито не могли пропустить это событие. Когда за пару дней до Very Special Event мы поняли, что образовалась компания из тех, кто не хочет смотреть трансляцию в одиночку, то решили позвать в гости наших друзей — iOS-разработчиков из других компаний. Посмотреть мероприятие вместе, обсудить новинки (и то, как они повлияют на разработку приложений под iOS), поесть шаурму, выпить смузи, вот это всё.

Рассказываю под катом, как мы смотрели Apple Special Event, и что думают мои коллеги о новых устройствах и фичах компании из Купертино.

Very Special Event: как мы смотрели презентацию Apple и что об этом думаем - 1Читать полностью »

Наверное, в каждом большом iOS-проекте — долгожителе можно наткнуться на иконки, которые нигде не используются, или обращения к ключам локализации, которые уже давно не существуют. Чаще всего такие ситуации возникают из-за невнимательности, а лучшее лекарство от невнимательности — автоматизация.

В iOS-команде HeadHunter мы большое внимание уделяем автоматизации рутинных задач, с которыми может столкнуться разработчик. Этой статьей мы хотим начать цикл рассказов о тех инструментах и подходах, которые упрощают нашу повседневную работу.

Какое-то время назад нам удалось взять ресурсы приложения под контроль с помощью утилиты SwiftGen. О том, как ее настроить, как с ней жить и как эта утилита помогает переложить проверку актуальности ресурсов на плечи компилятора, и пойдет речь под катом.

Контроль над ресурсами. Настраиваем SwiftGen - 1

Читать полностью »

image

Введение

WWDC15 – Apple анонсирует переход на Universal Links. Их смысл непомерно прост – отправлять пользователя в приложение, если он переходит на страницу сайта, которую приложение поддерживает. Наиболее часто это применяется в письмах, которые отправляются после регистрации для подтверждения электронной почты. Таким образом, Universal Links избавляет пользователя от необходимости самостоятельно возвращаться в приложение – а это хорошо как для пользовательского опыта, так и для статистики.
Читать полностью »

Привет!

Новости из мира финтеха за неделю набрались такие:

  • Банки жалуются на дороговизну новой биометрической системы;
  • Visa запускает в России сервис денежных переводов по номеру телефона;
  • SWIFT остается работать в России;
  • Курс биткоина в Иране превысил $26000.

Банки и биометрия

Финтех-дайджест: SWIFT продолжит работу в РФ, VISA позволит переводить средства по номеру телефона, дорогая биометрия - 1
Рисунок: Виктор Чумачев / Коммерсантъ

В недавнем дайджесте мы писали, что в России начинает работать единая биометрическая система, которая облегчает жизнь как банкам, так и их клиентам. Для того чтобы к этой системе присоединиться, необходим перечень базовых элементов. Они нужны для сбора биометрических данных и передачи их в Единую биометрическую систему.

Как оказалось, минимальные затраты на подключение к такой системе банка с одним отделением составляют примерно 4 млн. рублей, каждое новое отделение обойдется еще в 130 тысяч. А избежать расходов просто нельзя — дело в том, что к концу 2019 года система должна начать работу во всех отделениях всех банков.
Читать полностью »

Видео докладов с CocoaHeads @ FunCorp митапа - 1

25-го августа мы (FunCorp) совместно c CocoaHeads провели iOS митап. А сегодня для тех, кто не смог посетить мероприятие и посмотреть трансляцию, выкладываем записи докладов.
Читать полностью »

Компонентная архитектура UI в iOS-приложении - 1

Привет!

Меня зовут Валера, и уже два года я разрабатываю iOS-приложение в составе команды Badoo. Один из наших приоритетов — легкосопровождаемый код. Из-за большого количества новых фич, еженедельно попадающих к нам в руки, нам нужно в первую очередь думать об архитектуре приложения, иначе будет крайне сложно добавить новую фичу в продукт, не ломая уже существующие. Очевидно, что это также относится и к реализации пользовательского интерфейса (UI) независимо от того, делается это с помощью кода, Xcode (XIB) или смешанного подхода. В этой статье я опишу некоторые методики реализации UI, которые позволяют нам упрощать разработку пользовательского интерфейса, делая её гибкой и удобной для тестирования. Также есть версия этой статьи на английском.

Прежде чем начать…

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

Оно состоит из трёх частей:

  1. Компоненты — кастомные UI-компоненты, то есть код, относящийся только к пользовательскому интерфейсу.
  2. Демоприложение — демонстрационные view models и другие сущности пользовательского интерфейса, имеющие только UI-зависимости.
  3. Реальное приложение — view models и другие сущности, которые могут содержать специфические зависимости и логику.

Почему такое разделение? На этот вопрос я отвечу ниже, а пока ознакомьтесь с пользовательским интерфейсом нашего приложения:
Читать полностью »

Разделение на компоненты, layout anchors и другие методики реализации UI на iOS - 1

Привет!

Меня зовут Валера, и уже два года я разрабатываю iOS-приложение в составе команды Badoo. Один из наших приоритетов — легкосопровождаемый код. Из-за большого количества новых фич, еженедельно попадающих к нам в руки, нам нужно в первую очередь думать об архитектуре приложения, иначе будет крайне сложно добавить новую фичу в продукт, не ломая уже существующие. Очевидно, что это также относится и к реализации пользовательского интерфейса (UI) независимо от того, делается это с помощью кода, Xcode (XIB) или смешанного подхода. В этой статье я опишу некоторые методики реализации UI, которые позволяют нам упрощать разработку пользовательского интерфейса, делая её гибкой и удобной для тестирования. Также есть версия этой статьи на английском.

Прежде чем начать…

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

Оно состоит из трёх частей:

  1. Компоненты — кастомные UI-компоненты, то есть код, относящийся только к пользовательскому интерфейсу.
  2. Демоприложение — демонстрационные view models и другие сущности пользовательского интерфейса, имеющие только UI-зависимости.
  3. Реальное приложение — view models и другие сущности, которые могут содержать специфические зависимости и логику.

Почему такое разделение? На этот вопрос я отвечу ниже, а пока ознакомьтесь с пользовательским интерфейсом нашего приложения:
Читать полностью »

В этом выпуске: больше новых рефакторингов, лучше автодополнение, поддержка баз данных из DataGrip и даже поддержка Touch Bar. Более подробно — под катом.

Splash
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js