Pull to refresh
19
0
Владислав Митюкляев @vmityuklyaev

iOS разработчик

Send message

Как настраивать диплинки: инструкция для Firebase, AppsFlyer и Facebook

Reading time10 min
Views24K

На связи Алексей Поддубный, iOS-разработчик AGIMA. Я расскажу, как в iOS работают диплинки, и разберу тонкости настройки популярных сервисов: где создавать ссылки с динамическими параметрами, как настраивать конфигурацию приложений и что делать после настройки. Инструкции основаны на оригинальных туториалах, которые мы перевели и адаптировали.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Майки, деньги, два торта: как мы разучились оценивать задачи

Reading time5 min
Views16K


Привет, Хабр! Меня зовут Артём и я тимлид в Skyeng. У моей команды разработки есть заказчик, он же продуктовый менеджер, он же просто Ваня. Ваня считает, что наша схема с оценкой задач не идеальна. Например, оценка в 2 дня ничего ему не даёт. Свою задачу на проде он увидит через неделю или дней 10. Или больше. Или меньше.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments35

Как заонбордиться тимлиду — первые 90 дней на новой работе

Reading time7 min
Views9.5K

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

Ещё дадим несколько советов на тот случай, если всё-таки не удаётся показать результат за отведённое время.

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments5

Как мы пришли к релизам мобильных приложений раз в неделю

Reading time9 min
Views9.8K

Несколько лет назад в Ozon между двумя релизами приложения на одной платформе могло пройти три месяца. Мы планировали, что хотим выпуститься с определенной большой фичей и пока её не сделаем — не релизим. 

С чем мы столкнулись, пока выпускали релизы по этой схеме: 

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments58

Неразрешимые проблемы разработки

Reading time3 min
Views10K


Сроки


В разработке ПО существует неразрешимое противоречие — это оценка сроков.


С одной стороны, бизнесу надо знать, сколько займёт разработка фичи, причем как можно точнее. И это понятно — ведь надо как-то принимать решения, чтобы сравнить предполагаемые доходы и расходы и достать деньги в нужном количестве.


С другой стороны, разработка порою в душе не е... вообще не знает, сколько надо времени, особенно если


  • новая функциональность нетипична
  • есть зависимости на другие команды
  • будет задействована новая технология
  • ТЗ надо сильно уточнять
  • надо разобраться в логике легаси-кода

Часто, для того, чтобы точно оценить сроки, нужно, собственно, сделать половину работы. Чем точнее надо оценить сроки, тем больше надо на это затратить времени, что приводит к суммарному увеличению time-to-market, причем все равно без гарантий.

Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments128

Хочу в iOS-разработку: к чему готовиться на собеседовании в продуктовую команду

Level of difficultyEasy
Reading time8 min
Views7.7K

Привет! Я Серёжа Копытов, iOS TechLead. Веду собесы с 2020 года, многие разработчики и техлиды в команде прошли через меня. Уже через полгода интервью я активно включился в настройку подбора и сейчас основное время занимаюсь его развитием.

В статье расскажу, как выглядит наше техническое интервью, как оно стало таким, какие случаи я встречал и какие выводы сделал. Читайте, если сами общаетесь с кандидатами или проходите собеседования в IT и хотите понять, как продуктовые компании принимают решение.

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments4

Bottom sheet: Custom transitioning

Reading time10 min
Views7.5K

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

В этой статье я расскажу, как мы решили задачу по созданию экрана оплаты в приложении «Кошелёк» с помощью кастомной навигации между контроллерами, которые отображаются как bottom sheet.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments1

Как упростить жизнь за 312 коротких шагов: проектируем GraphQL API в микросервисной архитектуре

Level of difficultyEasy
Reading time9 min
Views10K

Звук – HiFi-сервис с большой командой инженеров. Мы используем передовые технологии и современный стек, и экспериментируем, чтобы решать сложные, нестандартные задачи. Одна из технологий  – GraphQL.

Эта статья изначально создавалась как гайд по работе с GraphQL для инженеров Звука (системные аналитики, разработчики, QA). При этом статья может быть полезна всем, кто никогда не работал с GraphQL, но очень хочет понять, зачем он может быть нужен, и как поможет решить задачу вашего бизнеса.

Читать далее
Total votes 29: ↑28 and ↓1+27
Comments36

Логи в iOS, эпизод 2: os_signpost

Reading time4 min
Views3K

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

Сегодня расскажу, как Apple предлагает решать эту проблему с помощью логов.

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments0

Как мы автоматизируем iOS: настройка Gitlab CI + Fastlane + Firebase + ItunesConnect

Reading time17 min
Views15K

В основном идея использования CI/CD для iOS, да и для других платформ, — это автоматизация рутинной работы. Когда мы работаем над одним приложением, можем вручную собирать небольшой проект. Но команда растёт, хочется тратить время эффективнее, чем вручную собирать проект или объяснять новичкам, что же там с Code-signing нужно делать.

Пожалуй, самое рутинное и самое важное занятие, которое берёт на себя CI, — это прогон тестов. Нет зелёных тестов? В master не попадёшь. А с ростом команды вероятность того, что кто-то вольёт в master нерабочий код, будет только увеличиваться. Нужна автоматизация.

В этой статье я хочу подробно рассказать о пути настройки Gitlab CI + Fastlane + Firebase + Testflight. Примеры приводятся на основе одного проекта, в котором участвовали 10 разработчиков. В конце будут описаны проблемы, с которыми мы сталкивались, и их решения.

Для кого будет полезен этот опыт? Для всех, кому нужен CI/CD и кто сидит на Gitlab. Для Github будет другая связка, например с Travis, — остальные компоненты неизменны. В нашей команде все используют Gitlab CI, Fastlane вместо голого xcodebuild для быстроты и удобства разработки, Firebase и Testflight.

Если у нас бесплатный Gitlab и мы укладываемся в лимит Firebase, то получаем бесплатное решение по настройке CI/CD.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments7

Неправильный путь в backend driven UI. Доклад Яндекса

Reading time8 min
Views5.4K
Архитектура современных приложений часто позволяет передавать логику между клиентом и бэкендом. Главное — не зайти в этих экспериментах слишком далеко. Разработчик iOS-приложения Авто.ру Сергей Сергеев объяснил, как его команда пришла к backend driven UI не самым легким способом.

— Всем привет. Я iOS-разработчик, но история будет кроссплатформенная.
Читать дальше →
Total votes 7: ↑4 and ↓3+1
Comments3

Создание и хостинг телеграм бота. От А до Я

Reading time15 min
Views173K
Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

Статья получилась длинной, советую пробежаться глазами по содержанию и кликнуть по интересующему вас пункту.

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.


Для начала стоит определиться, что же будет делать наш бот. Я решил написать банального простого бота, кторый будет парсить и выдавать нам заголовки с Хабра.
И так, начнём же.
Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments37

Есть ли жизнь без Auto Layout?

Reading time9 min
Views6.7K
Технология Auto Layout появилась в 2012 году, но споры и дебаты о том, как правильно верстать интерфейс, не утихают до сих пор. Использовать ли Auto Layout интерфейс в билдере или в коде? Верстать без него на фреймах или вообще использовать что-то стороннее? Тема такая горячая, что обсуждение докладов в кулуарах на эту тему часто проходит на повышенных тонах — у каждого есть свое мнение на этот счет. Сейчас, 8 лет спустя, вопрос всё ещё актуален, к тому же появились новые технологии и библиотеки для верстки.

На профессиональной конференции разработчиков мобильных приложений Apps Live 2020 был круглый стол с представителями Юлы, проектов VPROK и DeliveryClub. Мы обсудили все эти вопросы, а также быстрее и удобнее ли с AL или все-таки можно решать вопрос скорости другим способом.


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

Переход c Cocoapods на Swift Package Manager

Reading time4 min
Views15K


Cocoapods считается наиболее популярным менеджером зависимостей для iOS. Последние годы Apple работает над развитием своего нативного менеджера зависимостей Swift Package Manager (SPM).

Изначально его использование было возможно только для server-side Swift или приложений для терминала. На таких приложениях обкатывали и дорабатывали SPM, комьюнити знакомилось с его работой, а команда Apple получила бета тестеров.

С релизом Xcode 11 SPM начал приходить и в мир разработки под iOS. Сейчас это уже полноценный инструмент, который можно использовать, но пока с ограничениями.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments6

Спокойствие спокойствию рознь

Reading time15 min
Views9.1K
иконка библиотеки Три года назад, я написал статью о DI библиотеке для языка Swift. С того момента библиотека сильно измененилась и стала лучшей в своем роде достойным конкурентом Swinject, превосходящяя его по многим показателям. Статья посвящена возможностям библиотеки, но и имеет теоретические рассуждения. Итак, кому интересны темы DI, DIP, IoC или кто делает выбор между Swinject и Swinject прошу под кат:
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments3

Тесты в iOS: хороший, плохой, …

Reading time21 min
Views14K

Привет! Меня зовут Андрей Михайлов, я работаю iOS-разработчиком в Циан и отвечаю за внедрение модульного тестирования в процесс разработки. Сегодня я немного расскажу о том, какими свойствами должны обладать хорошие автоматизированные тесты, чем хорошие тесты отличаются от плохих, и для чего на самом деле стоит их писать (не только чтобы находить баги в коде). Это первая статья в серии, посвященной тестированию, она сфокусирована на теории и будет полезна не только iOS-разработчикам.

Добро пожаловать под кат!

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments14

Как работая из дома оставаться здоровым и не сойти с ума

Reading time5 min
Views6.1K

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

Проверить свои привычки
Total votes 19: ↑12 and ↓7+5
Comments9

Туториал по AsyncDisplayKit 2.0 (Texture): Начало работы

Reading time16 min
Views14K


«Искусство – это все, что вы можете сделать хорошо. Все, что вы можете сделать качественно» (Robert M. Pirsig).


От переводчика:
С появлением autoLayout создавать интерфейс iOS-приложения стало намного проще и быстрее. Вам больше не нужно думать о подгонке размеров под определенные устройства, autoLayout сделает это за вас. Вычисление происходит на основе констрейнтов относительно ближайших элементов. Чем больше таких зависимостей, тем дольше будет строиться autoLayout, и это основная проблема всех приложений с сложным интерфейсом.
Использование AsyncDisplayKit позволит вам на порядок уменьшить объем работ, выполняемых в основном потоке, и реализовать сложные интерфейсы с минимальным количеством кода. Ребята из Raywenderlich сделали подробный и наглядный туториал по работе с ним. Надеюсь, что перевод статьи поможет вам ещё быстрее освоить этот фреймворк.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
Senior
SWIFT