Рубрика «разработка под iOS» - 74

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

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

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

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

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

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

Как HBO делала приложение Not Hotdog для сериала «Кремниевая долина» - 1

Сериал HBO «Кремниевая долина» выпустил настоящее приложение ИИ, которое распознаёт хотдоги и не-хотдоги, как приложение в четвёртом эпизоде четвёртогого сезона (приложение сейчас доступно для Android, а также для iOS!)

Чтобы добиться этого, мы разработали специальную нейронную архитектуру, которая работает непосредственно на вашем телефоне, и обучили её с помощью TensorFlow, Keras и Nvidia GPU.
Читать полностью »

Библиотека EasyDi содержит контейнер зависимостей для Swift. Синтаксис этой библиотеки был специально разработан для быстрого освоения и эффективного использования. Она умещается в 200 строк, при этом умеет все, что нужно взрослой Di библиотеке:

— Создание объектов и внедрение зависимостей в существующие
— Разделение на контейнеры — Assemblies
— Типы разрешения зависимостей: граф объектов, синглетон, прототип
— Разрешение циклических зависимостей
— Подмена объектов и конктесты зависимостей для тестов

В EasyDi нет разделения на register/resolve. Вместо этого зависимости описываются вот так:

var apiClient: IAPIClient {
  return define(init: APIClient()) {
    $0.baseURl = self.baseURL
  }
}

Cocoapods / EasyDi
Github / EasyDi

Под катом очень краткое описание «Зачем DI и что это», также примеры использования библиотеки:

  • Как использовать и типы зависимостей
  • Как тестировать c подменой объектов
  • Как можно это использовать для A/B тестов
  • Как собрать VIPER-модуль

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

На примере мобильного приложения «1С:Управление нашей фирмой» (сокращенно УНФ) я хочу показать эволюцию мобильного бизнес-приложения от его возникновения и выхода самой первой версии до сегодняшнего дня. Сейчас у этого приложения более 220 000 скачиваний; приложение бесплатное, но в нем есть платные опции (реализованные через встроенные покупки).

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

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

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

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

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

В новом дайджесте плохой бэкенд, плохие магазины Apple и Google, плохие креативы, смерть гамбургера. Зато хорошие SDK, качественный код, самодостаточные контроллы, будущее еды и сельского хозяйства. Добро пожаловать!

Дайджест интересных материалов для мобильного разработчика #209 (19 июня — 25 июня) - 1Читать полностью »

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

DRY Principle

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

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

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

image

Привет, читатели!

Сегодня в офисе Туту.ру пройдет очередной митап iOS разработчиков. Мы организуем прямую трансляцию митапа. Если вы не смогли к нам попасть, то у вас есть шанс увидеть все online.

Программа

  • 19:00 Открытие
  • 19:15 Анимация как средство самовыражения.
    Александр Зимин
  • 20:00 Перерыв
  • 20:25 Team Lead. Структурирование мыслей.
    Николай Ашанин
  • 21:00 Перерыв
  • 21:15 Викторина
  • 21:35 Реактивный VIPER.
    Дмитрий Котенко
  • 22:00 Автепати (трансляция в личные соцсеточки)

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

Google и Apple против инди-разработчиков - 1

TL;DR: технологические гиганты Google и Apple доминируют на рынке магазинов приложений, ведь у них практически нет конкурентов. Поэтому они предоставляют инди-разработчикам очень слабую поддержку. Вашу игру или приложение могут внезапно удалить, и вы почти ничего не можете с этим сделать.

Нашу игру Fake Slap! засуспендили в Google Play за нарушение Политики в отношении насилия. Мы получили автоматическое письмо, сообщающее, что игра засуспенжена, и — бам! Она исчезла. Для нас это стало серьёзным шоком, игра находилась в Google Play и App Store уже больше месяца без каких-либо проблем. Политика в отношении насилия гласит: «Запрещается публиковать приложения, изображающие безнаказанное насилие или другие опасные действия». Ниже приводится несколько примеров, таких как: инструкции по причинению себе вреда, документирование своих атак террористическими группами, изготовление взрывных устройств и другого оружия и реалистичные изображения или подробные описания насильственных действий. Наша игра точно ничему из этого НЕ соответствует. Да, наша игра про политику, и её персонажем является президент США, но она определённо не относится к перечисленным видам насилия.
Читать полностью »


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