Рубрика «iOS» - 62

image

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

  • Pthreads, или потоки POSIX. Библиотека для низкоуровневой работы с многопоточностью. Определена как набор типов и функций на языке C. Подробнее можно ознакомиться тут.
  • Background selectors. Это отправка сообщения объекту, которое будет исполнено на указанном потоке. В коде это селектор с названием performSelector и различными параметрами (например, performSelectorOnMainThread:withObject:waitUntilDone:). Документация
  • NSThread. Представлены как базовые средства для работы с потоками. Ознакомьтесь с концептуальным документом по работе с потоками и документацией.
  • Grand Central Dispatch. Библиотека, основанная на блоках — анонимных участках кода, иначе замыканиях. Рабочее название — libdispatch.
  • NSOperation. Построен на основе GCD. Стоит заметить, что сама операция является абстрактной сущностью и на практике стоит использовать NSInvocationOperation и NSBlockOperation.

В этой статье поговорим о вопросах CGD.

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

Никто не хочет сообщать Apple об уязвимостях iPhone - 1
Скриншот опроса, который провёл Джонатан Здзярски, бывший джейлбрейкер, а ныне специалист по безопасности. Недавно он перешёл на работу в Apple и удалил свой аккаунт в Twitter

В августе 2016 года Apple торжественно открыла программу выплаты вознаграждений за найденные уязвимости. Такие программы давно действуют практически у всех крупных IT-компаний. Долго сопротивлялась выплате вознаграждений Microsoft, но и она сдалась в 2013 году, запустив Microsoft Bounty Programs. Пожалуй, Apple оставалась последней среди производителей массовых продуктов, кто не платит хакерам, поэтому новость о начале выплаты вознаграждения была благоприятно воспринята сообществом.

Проблема только в том, что за прошедший год мы не слышали ни об одном случае, чтобы кто-то получил деньги от Apple. Возможно, им просто запрещено рассказывать об этом. А может быть, они предпочитают продавать эксплойты на чёрном рынке по гораздо более высокой цене.
Читать полностью »

На WWDC’17 Apple представила новый фреймворк для работы с технологиями машинного обучения Core ML. На основе него в iOS реализованы собственные продукты Apple: Siri, Camera и QuickType. Core ML позволяет упростить интеграцию машинного обучения в приложения и создавать различные «умные» функции с помощью пары строчек кода.

image

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

Привет, меня зовут Антон и я iOS-разработчик в Rosberry. Не так давно мне довелось работать над проектом Hype Type и решить несколько интересных задач по работе с видео, текстом и анимациями. В этой статье я расскажу о подводных камнях и возможных путях их обхода при написании реалтайм видео-секвенсора на iOS.

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

Как стать тимлидом и не взорваться - 1

Два года назад я начал негласно исполнять роль iOS-lead в компании и формированием стабильной работы iOS отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области нижней части кресла. Это происходило из-за ряда факторов:

  • Нехватка опыта менеджмента.
  • Отсутствие рядом компетентного человека, уже прошедшего путь становления от новой для себя роли к человеку, который понимает устройство процессов, обязанностей и пути решения проблем.
  • Нестабильность общих процессов в компании из-за её молодого возраста на тот момент.

Если вы стали лидом и первоначальная эйфория сменилась небольшим горением и унынием, то пара советов не будет лишней.

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

Как мы суслика яблоками кормили или эффективный backend на Go для iOS - 1

Как и обещал, рассказываю о том, как мы мигрировали свой бэкенд на Go и смогли уменьшить объем бизнес логики на клиенте более, чем на треть.

Для кого: небольшим компаниям, Go и мобильным разработчикам, а также всем, кто в тренде или просто интересуется данной тематикой.
О чем: причины перехода на Go, с какими сложностями столкнулись, а также инструкции и советы по улучшению архитектуры мобильного приложения и его бэкенда.
Уровень: junior и middle.

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

Интерфейсы, тестирование, метрики… Если вам интересно узнать, о чем ещё говорили на регулярном мероприятии Avito для профессионалов iOS-разработки, смотрите видеозаписи под катом. Докладчики — представители ведущих российских интернет-сервисов Mail.Ru, Yandex и, конечно, Avito. Также к нам присоединился спецгость из Минска, тимлид проекта Juno — Сергей Анищенко.

О чем говорили на Avito.iOS? Отчет, отзывы гостей и видеозаписи - 1
Читать полностью »

Make QR Codes Great Again или камерная революция от Apple - 1

На недавнем WWDC Keynote Крэйг Фидеричи мельком анонсировал нативную поддержку QR-кодов в iOS11. Новость эта прошла почти незаметно. А зря.

Под катом расскажем: ностальгически о прошлом QR-кода, обстоятельно – о настоящем и, вангуя, – о ближайшем будущем. А еще о том, почему нас, людей разрабатывающих продукты, чтобы смешить других, так с этого прёт.

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

Анонс Mobius 2017 Moscow: покорение Москвы - 1

Нас просили об этом, и теперь час настал. Конференция по мобильной разработке Mobius, давно и успешно проходящая в Петербурге, 11 ноября впервые придёт в Москву. Потребность в этом явно назрела: этой весной, проводя четвёртый петербургский Mobius, мы обнаружили, что около трети всех зрителей оказались москвичами.

Что можно ожидать от первого столичного Mobius? Имена спикеров и другие подробности — под катом.

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

Интегрируем Copy-Paste-Detector для Swift в Xcode - 1

DRY Principle

Одним из основных мета-принципов программирования является DRY (Don’t Repeat Yourself). Суть данного мета-принципа проста и должна являться негаснущим маяком для любого разработчика. Она гласит, что в разрабатываемой системе не должно быть кусков кода, имеющих одинаковый код. Выражаясь более простым языком, в программе не должно быть копипасты!
Для начала, давайте точно определим, что будем считать за копипасту. Если в проекте если одинаковые файлы — это грубейшая копипаста. Если есть одинаковые классы с разным названием и выполняющие одно и тоже — грубейшая копипаста. Даже если 10 строк одинакового кода — это тоже является копипастой. Возможно вы возразите, что 10 строк кода продублировать иногда позволительно. Из моего опыта, проект в 100000 строк вполне реально писать без подобной копипасты.
Какие же минусы несёт нам копипаста?

  • Один и тот же дублирующийся код в разных местах программы ведет к тому, что найденный и поправленный баг в одном месте автоматически не исправит баг в другом месте. Это ведет к тому, что ваша программа будет работать в целом непредсказуемо.
  • Общее увеличение кодовой базы. Как известно, чем меньше кодовая база, тем меньше ошибок в ней.
  • При изменении функциональности необходимо изменять сразу все места с копипастой. Для этого их сначала нужно найти, а потом изменить. В итоге, время работы увеличивается кратно.

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


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