Как стать автором
Обновить
15
0
Даниил Алексеев @troy_brox

Мобильный разработчик

Отправить сообщение

Swift TaskGroup на примерах

Время на прочтение22 мин
Количество просмотров2.7K

В данной части из серии swift concurrency мы продолжим исследовать structured concurrency. В этот раз остановимся на сущности под названием TaskGroup. Узнаем как с ней работать и чем она отличается от Task и async let. На примере сравним аналогичные реализации с и без TaskGroup и разберем некоторые (не для всех очевидные) моменты при работе с данной сущностью.

Читать далее

Task и structured concurrency в swift

Время на прочтение16 мин
Количество просмотров8.7K

В данной части из серии статей про Swift concurrency мы подробно остановимся на сущности под названием Task и разберем на примерах, как с ней работать. Также поговорим про structured concurrency. Что это такое, как это понятие связано с Task и почему механизмы языка async/await structured, но не concurrent.

Помимо этого, мы разберем инструменты и механизмы structured concurrency. Среди них async let, Task hierarchy и Task cancellation. И, как обычно, не оставлю вас без примеров применения этого букета конкуррентности.

Читать далее

Swift async/await на примерах

Время на прочтение14 мин
Количество просмотров17K

В предыдущей части мы разобрали преимущества работы с async/await по сравнению с GCD. В этой части мы более подробно рассмотрим ключевые слова async и await (и не только). Разберемся в том, как они работают, что означает "неблокирующее ожидание" и самое главное рассмотрим это все на примерах.

Читать далее

Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров4.5K

Проблемы с графикой на iOS? Скрытые дебаг-фишки Xcode спасут вас!

Я прошёл через множество проектов — от стартапов до крупных компаний, и каждый раз графические глюки заставляли меня искать эффективные решения. Теперь я знаю, как пофиксить отрисовку. Вам понадобятся знания основ Swift, CPU, GPU и немного юмора.

Я расскажу, как исправить поехавшие пиксели с мощными дебаг-инструментами, и приведу примеры багов отображения на iPhone 16 Pro. Мой гайд поможет вам оптимизировать графику и сохранить пользователей, которых бесят тормозящие приложения.

Читать далее

Про ремесло и искусство, AI и немного о Scrum

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров1.5K

Никогда не понимал хейт со стороны некоторых разработчиков в сторону Scrum!  

Особенно его много здесь, на Habr. Казалось бы, этот фреймворк придуман разработчиками для разработчиков в противовес классическим многовековым иерархичным ступенчатым подходам к организации труда. В основе Scrum лежат самоорганизация, эмпиризм, бережливое производство. Взрослый подход для взрослых людей. Что здесь может не нравится? 

И опирается это всё на Agile манифест, который тоже был создан разработчиками для разработчиков: Роберт Мартин, Кент Бек, Роберт Фаулер и т.д. Знакомые фамилии?

Можно конечно сказать, что тут есть определенное ограничение: Agilе говорит нам, что «над продуктам должны работать мотивированные профессионалы». Так значит всю волну хейта поднимают только зелёные джуны, которых лишили няньки и заставили разделать командную ответственность?

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

Так что позиция «я хочу кодить, а не невотэтовотвсё» совершенно не зависит от опыта. А тогда от чего? 

Давайте разбираться.

Читать далее

Потоки под капотом: как работают многопоточность и синхронизация в iOS

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров12K

Привет! Я Александр Сычев, iOS‑эксперт в KTS. В этой статье поговорю о потоках.

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

В данной статье мы рассмотрим детали этой темы, а именно:

проанализируем работу потоков;

выявим скрытые механизмы, обеспечивающие их функционирование;

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

Читать далее

Как мы сделали on-device-распознавание номеров телефонов для ИТ-Пикника

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.5K

Всем привет! На связи Владимир Бойко и Александр Лахонин, мы занимаемся продуктом «Умная камера» в Центре технологий искусственного интеллекта Т-Банка.

В статье рассказываем, как в суперсжатые сроки реализовали распознавание номеров телефонов on-device на iOS. Результаты работы мы представили 40 тысячам гостей на стенде Т-Банка нашего продукта на ИТ-Пикнике 2024 — ежегодном фестивале для айтишников. 

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

Читать далее

CI для мобильной разработки или как мы используем fastlane

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.3K

Хороший CI/СD — залог успешной реализации и быстрой выкатки проектов команды. Но нам приходилось поддерживать две версии CI и делать много ручной работы при обновлениях.

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

Реализовать такой CI получилось с использованием fastlane. В статье я расскажу, что мы сделали и каких результатов удалось достичь.

Читать далее

Путь к стабильности: как мы снизили потребление оперативной памяти в iOS-приложении

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2K

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

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

Читать далее

Архитектура для SwiftUI — VSURF

Время на прочтение14 мин
Количество просмотров1.5K

Сегодня с вами Никита, iOS Team Lead в Surf. Никита объяснит, почему мы в Surf решили создать собственную архитектуру для разработки на SwiftUI. 

Читать дальше

SwiftUI туториал слайдер контроллера

Время на прочтение7 мин
Количество просмотров5.3K

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

Читать далее

Как стать iOS-разработчиком?

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров24K

Привет! На связи KTS и наш эксперт по направлению iOS-разработки Александр.

Мобильные устройства помогают оставаться на связи с друзьями, работать, развлекаться и повышать продуктивность. iOS, несмотря на введенные санкции и сокращение продаж техники в РФ, остается популярной платформой, пользователи которой ожидают качественные и стабильные приложения для смартфонов, планшетов, умных часов и ТВ‑приставок.

Насколько востребована позиция iOS‑разработчика на рынке РФ, какие риски с выбором этого направления для старта карьеры наиболее актуальны, что именно надо изучать и где искать нужные материалы — в этой статье.

Читать далее

Интеграция Yandex MapKit в SwiftUI проект. Часть 1

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров4K

Всех приветствую.

Совсем недавно поступила задача заменить стандартные карты от Apple на Яндекс карты. Ниже немного о Yandex MapKit.

Yandex MapKit — это кроссплатформенная библиотека, которая позволяет использовать возможности Яндекс.Карт в мобильных приложениях для iOS и Android.

Основная проблема заключалась в том, что библиотека Yandex MapKit создана для UIKit, но наша цель поставить все это дело на SwiftUI. Поэтому прибегаем к старой доброй пикче.

Читать далее

Swift async/await. Чем он лучше GCD?

Время на прочтение12 мин
Количество просмотров22K

Прошло уже больше года с момента выпуска async/await. Многие крупные и не очень проекты уже успели поднять минимальную версию до iOS 13, следовательно открылась возможность полноценно использовать новые языковые возможности по работе с асинхронным кодом. Но перед тем как начать полноценно рефакторить старый код и/или писать новый код используя относительно новую технологию в голове невольно всплывает вопрос: «А зачем? Чем это лучше того же GCD?». В этой вступительной статье из серии по async/await постараемся вместе ответить на этот вопрос.

Читать далее

Как развивался DevOps: от начала времен до ArgoCD и IaC

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров6.5K

Привет, меня зовут Сергей — я руководитель DevOps-направления KTS. 

Этот цикл из трёх статей, посвящённый истории развития деплоя приложений, основным моделям и их сравнению. Мы достаточно детально пройдёмся по Pull-модели и покажем, как с помощью «передовых» инструментов организовать управление инфраструктурой больших проектов и дать возможность разработчикам самостоятельно заказывать элементы в инфраструктуре под нужды своих приложений.

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

Читать далее

6 ошибок, из-за которых менеджеры-джуны остаются джунами

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров12K

Привет, я Вика Строгонова, руководитель проектного офиса в KTS. Я веду проекты с 2017 года и прошла путь от младшего менеджера до руководителя проектного офиса. Сейчас в моем портфеле более 20 проектов, в подчинении — 42 человека, среди них  разработчики, аналитики и менеджеры. 

Текст написан на собственном опыте, поэтому уверена, что есть и другие ошибки, которые я не учла в статье. Буду рада, если поделитесь ошибками джунов, с которыми вы чаще всего сталкиваетесь, в комментариях. 

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

Читать далее

Визуализация 5 алгоритмов сортировки на Python

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров53K

Сортировка массивов часто используется в программировании, чтобы помочь понять данные и выполнить поиск. Поэтому скорость сортировки больших объемов информации крайне важна для функциональных проектов и оптимизации времени работы. Есть много алгоритмов для упорядочения объектов.

В статье вы посмотрите на реализацию и визуализацию пяти популярных алгоритмов сортировки: выбором, пузырьком, вставками, слиянием и быстрой сортировкой.

Код написан на Python, а графический интерфейс построен на Tkinter.

Читать далее

Список фишек Android Studio для ускорения разработки

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров13K

Привет! Меня зовут Стефан, я занимаюсь Android-разработкой в KTS.

Android-разработчики каждый день сталкиваются с своим основным инструментом — Android Studio. 

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

Читать далее

KMP глазами iOS-разработчика

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров13K

Привет! Меня зовут Мялкин Максим, я занимаюсь мобильной разработкой в KTS.

Мы в мобильной команде для шаринга кода на несколько платформ используем KMP. 

На Хабре можно встретить достаточное количество статей по этой технологии, но большинство из них рассматривает выбор кроссплатформенной технологии либо перевод проекта на KMP.

В этой статье я расскажу наш опыт взаимодействия с KMP со стороны iOS-разработки: проблемы, с которыми столкнулись, их решение, наш подход, и главное — как к этой технологии относятся iOS-разработчики.

Читать далее

Но это (не)точно: чего ждать мобильным разработчикам в 2023-м году

Время на прочтение6 мин
Количество просмотров10K

Привет, это Максим Мялкин — управляющий партнёр и руководитель мобильной разработки KTS. Пора планировать год. Это можно сделать, зная текущие тренды — многие из них перекинули мостик из 2022-го года в 2023-й. Разбираем, что происходит в отрасли:

— Затраты на разработку снижаются
— Зарплаты разработчиков под Android стали выше, чем под iOS
— Санкции влияют на продажи техники и закрытость iOS
— Рынок ищет альтернативы App Store и Google Play

Читать далее
1

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность

Специализация

Mobile Application Developer
iOS development
SWIFT
Xcode
UIKit
Autolayout
iOS Human Interface Guidelines
RxSwift
Development of mobile applications
SwiftUI
Realm