Pull to refresh
68
0
Анатолий Ларин @junk

User

Send message

Как мы придумали TableAdapter и упростили работу с UITableView

Reading time 9 min
Views 5.3K


При работе с UITableView хотелось избежать написания шаблонного кода, который еще больше усложняется, если нужно обновлять состояние таблицы анимировано. Apple представила свое решение этой проблемы на WWDC 2019, но оно работает только с iOS 13. А у нас, как у студии разработки мобильных приложений, нет такой роскоши в выборе минимальной версии iOS.


Поэтому мы реализовали наше видение data-driven подхода для работы с таблицами, попутно упростив настройку ячеек. И добавили анимированное обновление таблицы, которое основано на автоматическом подсчете различий между старыми и новыми данными за линейное время O(n). Все это мы оформили в небольшую библиотеку, которую назвали TableAdapter.


О том, что у нас получилось и как мы к этому пришли, и пойдет речь в статье.

Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 6

Геймдизайнер мало чем отличается от психа. Как мы делали игру CMAN

Reading time 9 min
Views 12K
/start

Вечер пятницы, конец рабочего дня. Вы находитесь в офисе. Что будете делать?

— Поехать домой поспать
— Пойти в бар с друзьями
— Отправиться на свидание
— Проверить, почему горит свет в переговорке

Меня зовут Андрей Моревский, я архитектор в Додо и тот человек, который выбрал «Проверить, почему горит свет в переговорке». Тогда я ещё не подозревал, чем закончится эта история.

Читать дальше →
Total votes 41: ↑38 and ↓3 +35
Comments 8

Машинное обучение в Додо. Как запустить новое направление, если ты разработчик

Reading time 5 min
Views 15K
Под катом история о том, как в Додо появилось направление машинного обучения. Спойлер: это я его запустил. Хардкорных технических подробностей тут не будет, обязательно посвящу им отдельную статью. Сегодня больше про мотивацию и поддержку коллег.


Читать дальше →
Total votes 42: ↑37 and ↓5 +32
Comments 22

Виртуальная квартира: как покупают реальность вместо бетонной коробки

Reading time 5 min
Views 23K
При покупке квартиры на этапе строительства людям приходится ориентироваться на планировку, часто распечатанную на чёрно-белом принтере, или на красивый цветной буклет, дающий примерно столько же информации. Когда дом уже построен, то у покупателей есть возможность вживую посмотреть на своё будущее жильё — вернее, на бетонную коробку, которая всегда кажется меньшей, чем будет после ремонта.

Для застройщиков и продавцов недвижимости важно показать, как именно он будет жить, чтобы не бороться с неоправданными ожиданиями. И тут на помощь приходит 3D-визуализация дома вместе с мебелью и очки виртуальной реальности, которые позволяют внимательно оглядеть будущий дом.

Директор по решениям для бизнеса Planoplan Алексей Ёжиков рассказал, как VR помогает покупателям не брать «кота в мешке».


Total votes 23: ↑21 and ↓2 +19
Comments 21

Алиса, Google Assistant, Siri, Alexa. Как писать приложения для голосовых ассистентов

Reading time 12 min
Views 31K
image

Рынок голосовых ассистентов расширяется, особенно для русскоязычных пользователей. 2 недели назад Яндекс рассказала впервые про платформу Яндекс.Диалоги, 2 месяца назад Google представила возможность писать диалоги для Google Assistant на русском языке, 2 года назад со сцены Bill Graham Civic Auditorium Apple выпустила в открытое плавание SiriKit. Фактически, появляется новая отрасль разработки, где должны быть свои проектировщики, архитекторы и разработчики. Идеальный момент, чтобы поговорить про голосовые помощники и api для них.

В этой статье не будет подробных туториалов. Это статья об идеях и интересных технических деталях, на которых построены инструменты для сторонних разработчиков основных игроков рынка: Apple Siri, Google Assistant и Алисы от Яндекса.
Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Comments 11

Порхающие* велосипеды. Что делать с сохранением состояния во Flutter?

Reading time 9 min
Views 11K

(*одно из значений слова flutter — порхать)


Разбираемся, есть ли жизнь сохранение состояния во Flutter-приложении. Что будет, если ОС решит его перезапустить. Куда денется пользовательский ввод и навигация, и как с этим справляться.


Дисклеймеры:


  • для понимания нужно иметь стартовые знания о Flutter;
  • рассуждаю с точки зрения Android, про iOS — это не ко мне;
  • не являюсь специалистом по Flutter/Dart, подхожу с позиции новичка;
  • в некоторых местах опускаю второстепенные моменты (например, реализации вспомогательных функций), найти недостающее можно в полном коде проекта.
Читать дальше →
Total votes 38: ↑38 and ↓0 +38
Comments 12

Дизайн в условиях хакатона

Reading time 5 min
Views 11K


Меня зовут Алиса, я старший дизайнер в Touch Instinct. Мы — аутсорс-компания. Скорость — один из важнейших критериев оценки нашей работы, наравне с качеством. Иногда для подготовки предложения для нового клиента нужно изучить, придумать и воплотить в жизнь концепцию приложения всего за пару дней. В таких ситуациях нет права на ошибку.

В марте я выступала на хакатоне, который мы организовали вместе с Партией еды. Рассказала участникам, как сделать хорошо за короткий срок. По мотивам лекции подготовила статью-памятку. Она будет полезна участникам команд, которые планируют участвовать в хакатонах, а также начинающим дизайнерам.
Читать дальше →
Total votes 33: ↑32 and ↓1 +31
Comments 4

Выиграй 100к на хакатоне Партии еды и Touch Instinct в Петербурге

Reading time 2 min
Views 3.6K


3-4 марта в Санкт-Петербурге Партия еды делает свой первый большой хакатон. И, кажется, первый в России на тему Фудтеха. Touch Instinct помогает.

Лендинг про хакатон получился знатным, но вопросов от участников все равно много. Мы ответили на все, даже про цыган с первого канала.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 4

Анимация в мобильных приложениях. Тестируем Kite compositor

Reading time 6 min
Views 10K


В 2017 году для MacOS вышла программа Kite compositor, которая может стать посредником между дизайнерами и разработчиками. Основная идея — быстрое создание анимации и прототипирование с последующей генерацией кода для платформы iOS. На структуре программы мы останавливаться не будем, на эту тему уже есть подробный материал. Цель нашей статьи — эксперимент. Дизайнер попробует создать анимацию с помощью программы, а разработчики проверят код и дадут обратную связь.
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 8

Выкладываем приложение в App Store. Даже если вы не разработчик

Reading time 4 min
Views 117K


Ранее писали про этап подготовки к релизу. Сейчас расскажем про публикацию приложения в AppStore. Пошаговый гайд будет полезен новичкам, которые до этого не сталкивались с полицией нравов из Купертино.

Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Comments 4

Готовимся к релизу в App Store. Инструкция для новичков и лайфхаки

Reading time 5 min
Views 77K


Подготовили гайд для заказчиков, которые занимаются публикацией приложения самостоятельно. Рассказываем о предрелизных хлопотах: как создать аккаунт разработчика, сколько времени заложить на оформление D-U-N-S number, какие скрины подготовить для стора.
Читать дальше →
Total votes 30: ↑25 and ↓5 +20
Comments 4

Как получить D-U-N-S number бесплатно

Reading time 2 min
Views 123K


D-U-N-S number — международный идентификатор юридических лиц. В России добровольно его добывают в одном случае: когда в AppStore нужно зарегистрировать компанию-разработчика.

Расскажем, как добыть этот номер бесплатно и сэкономить 12 240.
Читать дальше →
Total votes 36: ↑35 and ↓1 +34
Comments 11

«Коллеги, все нравится, но...» или как построить работу с заказчиком

Reading time 11 min
Views 19K


6 лет наша компания занимается дизайном и разработкой мобильных приложений. Мы много экспериментировали с оптимизацией процессов как внутри компании, так и при работе с клиентами. В итоге у нас сформировался свой, во многом уникальный, стиль работы.

Я руковожу отделом дизайна и хочу поделиться нашим подходом к работе. В этой статье расскажу, как построить работу с клиентом так, чтобы она была эффективной и комфортной для обеих сторон.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 12

Тестовая документация. Превращаем таблицы в деревья

Reading time 9 min
Views 90K


В предыдущей статье я рассказывала, как в нашей компании проходит первая стадия тестирования проекта — анализ. Сегодня расскажу о следующем этапе — проектирования и документирования тестов.

Этот этап опционален. На некоторых проектах нет задокументированных требований, и тогда зачастую поддержка тестовой документации является единственным разумным способом хранения и передачи знаний о продукте. Иногда тестовую документацию требует заказчик, иногда мы пишем ее для себя. Иногда, если у нас есть хорошо написанные требования, мы отказываемся от документирования тестов в пользу экономии ресурсов.

Вид тестовой документации также зависит от ситуации на проекте и ожиданий заказчика.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 12

Android Architecture Components в связке с Data Binding

Reading time 12 min
Views 22K


Не так давно для андроид-разработчиков Google представил новую библиотеку — Android Architecture Components. Она помогает реализовать в приложении архитектуру на основе паттернов MVx (MVP, MVVM etc.). Кроме того, уже давно выпущена другая библиотека от Google — Data Binding Library. Она позволяет прямо в разметке связывать отображение UI-контролов со значениями, содержащимися в объектах. Это важная особенность паттерна MVVM — связывать слой View со слоем ViewModel.


Обе библиотеки направлены на построение архитектуры Android-приложений в MVVM стиле.
Я расскажу, как можно использовать их вместе для создания проекта с архитектурой на основе MVVM.


Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 8

Определяем номера с помощью CallKit

Reading time 7 min
Views 20K


Когда в CRM 57000 контактов, людям совсем не хочется записывать их в айфон вручную. Надо найти решение поизящней, которое позволит не просто искать контакты в отдельном приложении, но и отображать имя человека при входящем звонке. Мы долго гуглили, а потом вспомнили про анонс фреймворка CallKit с WWDC. Информации по этой теме оказалось не так много: немногословная документация, статья на Хабре и ни одного пошагового руководства. Хочу восполнить этот пробел. На примере создания простого приложения покажу, как научить CallKit определять тысячи номеров.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 5

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

Reading time 12 min
Views 70K


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


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

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

Читать дальше →
Total votes 92: ↑89 and ↓3 +86
Comments 24

Утечки памяти в Android и способы их локализации

Reading time 4 min
Views 19K


На одном из проектов столкнулась с утечками памяти. Воспользовалась первым правилом разработчиков — загуглила. К моему глубокому разочарованию нашла много статей для программистов и совсем чуточку для тестировщиков. Большинство публикаций датированы 2011-2014 годом.

Ниже информация об утечках памяти, которая пригодится в 2017 году. Расскажу, чем их наличие грозит приложению, и перечислю несколько подходов к локализации.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 4

Основы медиапланирования рекламной кампании и анализа семантического ядра в Яндекс.Директ

Reading time 4 min
Views 6.4K


Недавно к нам пришел очередной рекламодатель. Сфера деятельности — продажа светодиодного оборудования — большие прожекторы и светодиодные ленты для уличного освещения и подсветки зданий и витрин. Соответственно речь идет о B2B, клиенту интересны только крупные заказы в его тематике со стороны строительных организаций, управляющих компаний, сектора ЖКХ и «совсем не интересны те кто хочет купить пару ламп для того чтобы сделать красивое освещение у себя на балконе».

Тематика достаточно узкая, рынок зрелый, среднеконкурентный, с устойчивым и сформированным спросом. Клиент давно и успешно торговал в оффлайне и решил попробовать интернет, благо в деньгах для расширения сфер влияния проблем нет. Стоит задача покрыть всю целевую аудиторию и сконвертировать максимально доступное количество клиентов. С собой принес медиаплан, рассчитанный с помощью прогнозатора Директа его отделом маркетинга.

Читать дальше →
Total votes 74: ↑65 and ↓9 +56
Comments 36

Синергия с Сontinuous Integration

Reading time 3 min
Views 26K

Некоторые люди консервативны по своей природе, это всегда мешает принятию чего-то нового. Мне до сих пор непривычно использовать Google Docs вместо Word, хотя, когда речь заходит о совместной работе, преимущества первого неоспоримы. Многие компании (порой даже весьма крупные), занимаясь разработкой программного обеспечения, игнорируют доступные способы повышения производительности труда программистов. Например непрерывную интеграцию (Continuous Integration/CI), которая упрощает процесс разработки и контроль проекта. Готовые решения существуют на рынке давно. К сожалению, до сих пор кто-то продолжает издеваться над сотрудниками, теряя время и деньги. Этот пост — желание поделиться опытом успешного внедрения непрерывной интеграции, и, быть может, попытка достучаться до некоторых менеджеров. Ведь зачастую именно их недальновидность препятствует оптимизации производства.
Читать дальше →
Total votes 67: ↑44 and ↓23 +21
Comments 28
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity