Pull to refresh
35
0
Ртищев Евгений @katleta

Мобильная разработка, Мобильная архитектура

Send message

Custom refactoring tool: Swift

Reading time10 min
Views7.5K
Любой инженер стремится сделать процесс своей работы максимально оптимизированным. Нам, как мобильным разработчикам iOS, очень часто приходится работать с однообразными структурами языка. Компания Apple улучшает инструменты разработчиков, прилагая много усилий, чтобы нам было удобно программировать: подсветка языка, автодополнение методов и многие другие возможности IDE позволяют нашим пальцам успевать за идеями в голове.



Что делает инженер, когда необходимый инструмент отсутствует? Верно, сделает всё сам! Ранее мы уже рассказывали о создании своих кастомных инструментов, теперь поговорим о том, как модифицировать Xcode и заставить его работать по твоим правилам.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments0

Как красиво оформить публикацию на Хабре

Reading time7 min
Views45K
Публикация – основная единица связи автора с читателем. Практика показывает, что на Хабре можно разместить почти любой формат: небольшой анонс и лонгрид-обзор, интервью, фотоотчёт, трансляцию события, урок и многое-многое другое. Нередко успех публикации зависит и от её оформления – приятно оформленный материал читать одно удовольствие. В этой статье мы постараемся предоставить вам много полезных советов по хорошему оформлению материала.

И первый лайфхак – кликабельная картинка до ката, которая ведёт сразу внутрь публикации:


Читать дальше →
Total votes 140: ↑121 and ↓19+102
Comments112

Многопоточность (concurrency) в Swift 3. GCD и Dispatch Queues

Reading time28 min
Views330K
Надо сказать, что многопоточность (сoncurrency) в iOS всегда входит в вопросы, задаваемые на интервью разработчикам iOS приложений, а также в число топ ошибок, которые делают программисты при разработке iOS приложений. Поэтому так важно владеть этим инструментом в совершенстве.
Итак, у вас есть приложение, оно работает на main thread (главном потоке), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI). Как только вы начинаете добавлять к вашему приложению такие «затратные по времени» куски кода, как загрузка данных из сети или обработка изображений на main thread (главном потоке), то работа вашего UI начинает сильно замедляться и даже может привести к полному его «замораживанию».



Как можно изменить архитектуру приложения, чтобы таких проблем не возникало? В этом случае на помощь приходит многопоточность (сoncurrency), которая позволяет одновременно выполнять две или более независимые задачи (tasks): вычисления, загрузку данных из сети или с диска, обработку изображений и т.д.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments14

Как Яндекс пытался скопировать мой сервис тепловых карт

Reading time2 min
Views118K
Примерно год назад я сделал такую штуку как тепловые карты цен, я тогда описал весь процесс вот в этой статье. Сервис получился интересный, но денег он не приносит совсем, просто красивая картинка наглядно показывающая где дорого, а где дешево, так сказать, имиджевая составляющая — аналогов на наших сайтах по недвижимости почему-то не было, до недавнего времени. Но на днях то же самое сделал Яндекс.
Читать дальше →
Total votes 374: ↑337 and ↓37+300
Comments335

«Breaking Bugs» в Сбербанке: как исправить семидневную норму багов за сутки

Reading time7 min
Views6.3K
Багфиксинг – нудная, но обязательная часть любой разработки, и заниматься ей хотят далеко не все. Как превратить багфиксинг в нечто увлекательное? Устроить соревнование! В этом посте мы подробно расскажем о нашем 24-часовом «багфикс-марафоне» — от предварительной подготовки до разгребания последних коммитов после награждения победителей.

Total votes 22: ↑17 and ↓5+12
Comments21

Каждый разработчик желает знать, как попасть в фичеринг

Reading time7 min
Views7.9K
Сегодня мы затронем тему, которая волнует каждого причастного к разработке приложений под iOS — попадание в подборки магазинов экосистемы Apple. В сентябре прошлого года произошло глобальное обновление App Store, в связи с которым у разработчиков появилось больше шансов привлечь (доброкачественное) внимание администрации, завоевать новую аудиторию, увеличить прибыль, поднять конверсию и просто выйти в тренд.

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

«Святой» Тимлид и его последователи

Reading time8 min
Views7.3K
До Saint TeamLead Conf, конференции про боли тимлида, осталось две недели. В этой конференции мы уже не хотели просто обозначить как можно больше проблем, а хотели раскрыть каждую тему с разных точек зрения. Мы с программным комитетом, основываясь в том числе и на февральской TeamLead Conf, собрали воедино все основные направления деятельности тимлида (не будем забывать, что пока все вкладывают в эту роль разное). Полученное обобщили, структурировали и использовали как кирпичики для построения программы: коммуникации; измерения и оценка; работа со знаниями; построение команды и выстраивание процессов; мотивация команды; и работа над собой, которая и включает то самое: «Я стал тимлидом, и что теперь».

Расписание получилось, как мне кажется, очень взвешенное и сбалансированное, по каждому из 10 направлений есть несколько докладов, причем выступления внутри одной секции идут друг за другом и участнику не понадобится выбирать, какой доклад про коммуникации ему интереснее. Просто приходишь 24 сентября, в понедельник, во второй зал, удобно располагаешься, раскладываешь брошюру и блокнот — и впитываешь чужой опыт. В перерывах задаешь вопросы и общаешься с «коллегами по несчастью». Это будет удобно, и, мы надеемся, позволит каждому найти советы под свои задачи.

Под катом коротко о каждой теме, чтобы показать вам нашу продуманную структуру конференции. Но доклада 32, поэтому в целом это длинно.



TL;DR: Вот ссылка на расписание, можно потыкать только в отдельные доклады — в них всех много живого опыта, практики и вполне конкретных рекомендаций.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments0

React Native — одного JS мало

Reading time5 min
Views193K

Итак, пришла пора быстро погрузиться в тему. Для усиления эффекта, использую разные техники преобразования информации в знания. В частности, представляю конспект доклада Алексея Андросова (старшего разработчика интерфейсов, Yandex).

Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments84

Docker. Зачем и как

Reading time6 min
Views509K
Есть множество прекрасных публикаций для тех, кто уже пользуется docker-ом. Есть хорошие статьи для тех, кто хочет этому научиться. Я пишу для тех, кто не только не знает, что такое docker, но и не уверен стоит ли ему это знать.

Я сознательно опускаю некоторые технические подробности, а кое где допускаю упрощения. Если вы увидите, что docker – то, что вам нужно, вы легко найдете более полную и точную информацию в других статьях.
Читать дальше
Total votes 62: ↑60 and ↓2+58
Comments159

Архитектурный дизайн мобильных приложений

Reading time9 min
Views98K
Признак плохого дизайна №1:
Наличие объекта-«бога» с именем, содержащим «Manager», «Processor» или «API»


Ведущий iOS-разработчик Redmadrobot Егор BepTep Тафланиди — о том, как добиться стройного архитектурного дизайна мобильного приложения, используя классические шаблоны проектирования и логическое разделение исходного кода на модули.

Читать дальше →
Total votes 43: ↑33 and ↓10+23
Comments26

Эффективная DI библиотека на Swift в 200 строк кода

Reading time7 min
Views10K
Библиотека 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-модуль
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments7

Умные заглушки для интеграции

Reading time6 min
Views8.9K
Прошли те времена, когда банковские системы представляли из себя большие монолитные приложения, неспешно обновляющиеся с учетом требований регулятора. Сейчас это сотни взаимодействующих между собой подсистем и тысячи модулей,  которые непрерывно развиваются вместе с новыми требованиями бизнеса и быстро меняющимся IT-пространством. На разработку всего этого брошены сотни отдельных боевых единиц — Agile-команды.


Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments5

Как я был разработчиком, а теперь тимлид

Reading time16 min
Views91K

enter image description here


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

Читать дальше →
Total votes 158: ↑139 and ↓19+120
Comments164
Предложите идею мобильного сервиса для пользователя банка, частного лица или корпоративного клиента и получите возможность выиграть грант 650 000 рублей для разработки вашего проекта
Узнать подробности и принять участие
Total votes 28: ↑22 and ↓6+16
Comments17

За закрытой дверью фронтенда ЕФС

Reading time6 min
Views27K
В этой статье мы расскажем о библиотеке компонентов Единой фронтальной системы (ЕФС)  и как в целом устроен фронтенд платформы.


Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments24

Свобода выбора: freelance или крупная корпорация

Reading time2 min
Views16K
В программе ЕФС мы делаем по-настоящему крупные проекты, высокие темпы развития зачастую ставят нас в ситуацию ресурсного дефицита по причине того, что скорость найма сильно не дотягивает до скорости происходящих изменений.

Какое решение в такой ситуации принимает менеджмент?


Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments17

Мобильная платформа. Архитектура гибридных приложений на ReactNative

Reading time12 min
Views13K
Наверное, вы уже не раз слышали о мобильной разработке на ReactNative в Единой Фронтальной Системе (ЕФС) Сбербанка. Мы уже писали для чего мы используем саму технологию ReactNative в своих разработках, а также рассказывали как не бояться это делать.



Сегодня мы взглянем с высоты птичьего полета на построение архитектуры мобильных приложений с использованием ReactNative, Objective-C, Typhoon, VIP, SOA, TypeScript, React и Redux.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12

ReactDoc — первое open source решение программы «Единая фронтальная система»

Reading time3 min
Views9.7K
Программисты всегда пользовались генераторами документации, когда это было возможно. Это упрощает документирование, позволяет получить справку по продукту без обращения к коду самого проекта. В Программе долгое время использовался JavaDoc, т.к. большинство проектов написаны на Java, но это было до недавнего времени. Сейчас проекты развиваются  - мало кто представляет хороший продукт без хорошего UI. Отрасль frontend дала жизнь новому направлению разработки — разработчик UI. Концентрируясь на удобстве пользователя, а не на бизнес-процессах, UI-разработка позволяет избегать  сложности бизнес-приложений — камень преткновения многих enterprise-решений.

image
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments13

Мобильная платформа. Как не бояться ReactNative

Reading time6 min
Views17K
Первый пост блога мы решили посвятить «мобильной» тематике и  рассказать о  разработке глобального решения для запуска и создания приложений — «Мобильная платформа ЕФС».
       
Что это? Это многомодульный продукт, позволяющий массово создавать мобильные приложения, тиражировать их и поддерживать во время эксплуатации.



Итак, что мы делаем по порядку и по пунктам.
Total votes 36: ↑30 and ↓6+24
Comments33

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity