Обновить
10
48.1
Konstantin Shkurko@SHK83

Разработчик мобильных приложений

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

Искусство бесшовных переходов в iOS от 60 FPS до идеального UX

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

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

Давайте же разберем как делать переходы в iOS-приложениях так, чтобы они не раздражали, не ломали флоу и не заставляли пользователя думать "что-то пошло не так". Выясним почему 60 FPS - это не всегда гладко, как избежать типичных багов вроде джанка и мигания, правильно использовать matchedGeometryEffect, писать кастомные переходы без костылей и отлаживать всё это дело до идеального состояния. В конце разберём реальный кейс - переход от списка к детальной странице без единого моргания экрана.

Продолжим

Мертвые не кусаются, но светятся: как работает приложение Локатор в iOS в 2026 году

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

Вы узнаете, как на самом деле работает магия приложения Локатор (Find My в англоязычной версии): от аппаратных хитростей контроллера питания до пост-квантовых алгоритмов шифрования. Мы разберем, почему «выключенный» iPhone - это лишь иллюзия для пользователя, как математика защищает ваши координаты от самой Apple и почему ваш смартфон превращается в криптографический маяк, когда гаснет экран. Статья будет интересна разработчикам, специалистам по безопасности и всем, кто хочет понимать реальные возможности (и ограничения) современной электроники.

Продолжим

Магия вне Хогвартса: как делать «дорогой» UI, не перегружая GPU

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.4K

Часто можно увидеть такую картину: разработчик влюбляется в концепт из Dribbble, тратит два дня на реализацию сложнейшей цепочки переходов, а потом удивляется, почему его iPhone 15 Pro начинает греться через пять минут использования приложения. Анимация - это всегда сделка с дьяволом (железом). Вопрос лишь в том, насколько выгодный курс обмена вы сможете выторговать.

Продолжим

iPhone Mirroring. Как Apple научила Mac «притворяться» вашим смартфоном без лагов и проводов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели4.7K

Когда на WWDC представили iPhone Mirroring, многие скептично хмыкнули: «Ну, очередной VNC/AirPlay, что мы, трансляций экрана не видели?». Однако за окошком iOS на рабочем столе вашего макбука скрывается сложнейший инженерный стек. Это не просто стриминг картинки - это полноценная виртуализация управления, работающая в условиях жестких ограничений по питанию и безопасности. Сегодня мы препарируем iPhone Mirroring и узнаем, как Apple заставила задержку (latency) исчезнуть, а безопасность - не пострадать.

Продолжим

Магия AirDrop: Как Apple заставляет Bluetooth и Wi-Fi работать в одной упряжке

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

Разбираться во внутренностях AirDrop - это как препарировать фокус иллюзиониста: на сцене всё бесшовно, а за кулисами - вспотевшие инженеры пытаются заставить два разных радиомодуля не конфликтовать за общую антенну. Прочитав этот текст, вы поймете, как Apple фактически создала свой стек протоколов на базе стандартного железа, почему Bluetooth Low Energy - это «швейцар», а Wi-Fi - «грузчик», и как индустрия наконец-то пришла к единому стандарту передачи данных, который не заставляет владельцев Android чувствовать себя лишними на этом празднике жизни.

Продолжим

MVVM+Coordinator+Factory: Святая Троица внедрения зависимостей

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.3K

Эта статья - финальный аккорд в нашей трилогии об архитектуре. Мы уже научились наводить порядок внутри экрана с помощью MVVM и управлять потоками переходов через Coordinator. Но остался один неудобный вопрос: кто создаст все эти зависимости? Если ваш Координатор превратился в свалку из десятка сервисов, которые он просто пробрасывает дальше, значит, пришло время внедрить Factory. Вы узнаете, как разделить создание объектов и управление ими, почему глобальные DI-контейнеры - это яд замедленного действия, и как построить систему, где каждый компонент получает только то, что ему нужно, не зная лишнего.

Продолжим

Coordinator в iOS: как я перестал бояться кнопки «Назад» и полюбил навигацию

Уровень сложностиСредний
Время на прочтение26 мин
Охват и читатели5.2K

Эта статья - логическое продолжение нашего погружения в архитектуру. Если в первой части мы навели порядок внутри «черного ящика» под названием ViewModel, то здесь мы выйдем за его пределы. Вы узнаете, как выпилить логику переходов из ViewControllers и ViewModels, почему вызов navigationController?.pushViewController() прямо в экшене кнопки - это архитектурный тупик, и как построить систему навигации, которая не превратит ваш проект в спагетти при добавлении десятого экрана. Мы разберем концепцию Child Coordinators, решим проблему утечек памяти (спойлер: системная кнопка "Назад" - ваш враг) и обсудим, выжил ли этот паттерн в эпоху SwiftUI.

Продолжим

MVVM-курильщика: почему ваша ViewModel — это помойка на 2000 строк, и как это исправить

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

Если вы когда-нибудь открывали проект, где ViewModel превратилась в свалку логики, навигации и форматирования дат - поздравляю, вы видели MVVM-курильщика. Рассказываю, почему «чистый» MVVM из учебников рассыпается в бою, как превратить ViewModel в машину состояний вместо мусорного ведра, и почему import UIKit в вашей VM - это диагноз. Без воды, с примерами кода и болью. Эта статья - не очередной пересказ документации. Вы научитесь разделять данные и их представление так, чтобы тесты писались сами собой, а ваши коллеги не проклинали вас на код-ревью.

Продолжим

Сохранение позиции прокрутки и состояния курсора при переходах по навигации в iOS

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.4K

Вы когда-нибудь замечали разницу между просто хорошим приложением и тем, которое ощущается «родным», надежным и дорогим? Часто дело не в дизайне или анимациях, а в мелочах, которые мы воспринимаем как должное, пока они не ломаются. Одна из таких критических мелочей - способность приложения помнить, где вы остановились. Вы читаете длинную статью, сворачиваете приложение, чтобы ответить на сообщение, возвращаетесь через минуту, а вас выбрасывает в самое начало текста. Раздражает, правда? Или пишете заметку, переключаетесь на браузер, возвращаетесь, а клавиатура скрыта и курсор потерян. В этой статье мы разберем, как технически грамотно реализовать сохранение позиции скролла и состояния курсора в iOS-приложениях. Мы уйдем дальше банальных советов и рассмотрим реальные сценарии с навигацией, табами и асинхронной загрузкой данных, чтобы ваши пользователи никогда не чувствовали себя потерянными.

Продолжим

Почему PWA на iOS всё ещё не торт — и что на самом деле разрешает Apple

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

Если вы открыли эту статью, значит, ваш менеджер или заказчик снова пришли с «гениальной» идеей: «А давайте не будем тратить бюджет на нативную iOS-разработку, а сделаем PWA? Это же кроссплатформенно, модно и дешево!». И теперь вам нужно аргументированно объяснить (или понять самому), почему в 2026 году, несмотря на все обещания открытого веба и давление регуляторов, PWA на iPhone всё ещё ощущается как гражданин второго сорта.

В этом тексте не будет маркетинговой шелухи про «единый код для всех». Мы разберем суровую техническую реальность Safari 19, ограничения WebKit, о которых Apple предпочитает молчать, и те немногие лазейки, которые позволяют сделать опыт использования веб-приложений хотя бы терпимым. Вы узнаете, почему localStorage умирает при установке, как заставить работать Deep Links (и почему они все равно ломаются), и в каких редких случаях PWA действительно может заменить App Store. Это гайд по выживанию в экосистеме, которая активно сопротивляется вашему присутствию.

Продолжим

Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences

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

В Android-разработке рано или поздно придётся столкнуться с задачей передачи данных между приложениями. Казалось бы, что тут сложного - отправил intent, получил результат. Но стоит копнуть глубже, и выясняется, что за простым API скрывается целый зоопарк потенциальных дыр в безопасности. Мы разберем три основных механизма обмена данными в Android: intents, URI schemes и shared preferences. Посмотрим, как они работают под капотом, где подстерегают грабли и как защитить своё приложение от любопытных глаз. Если вы пишете на Android и хотите понять, почему «просто передать данные» - это плохая идея, читайте дальше.

Продолжим

Безопасный обмен данными между приложениями в iOS

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.3K

Межпроцессное взаимодействие в iOS - штука хитрая. Apple выстроила целую систему песочниц и ограничений, и просто так передать данные из одного приложения в другое не получится. Зато когда разберёшься, открывается масса возможностей: от банальной передачи изображений до выстраивания целых экосистем приложений. Давай разберем все основные способы обмена данными между приложениями (от URL Schemes до App Groups) с акцентом на безопасность и реальные проблемы, которые могут возникнуть. Покажу код, расскажу, где какой метод уместен, и объясню, как не наделать дыр в защите данных пользователя.

Продолжим

Информация

В рейтинге
173-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

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

Разработчик мобильных приложений, Разработчик приложений
Ведущий
Python
Git
ООП
REST
SQL
CI/CD
Django
Swift
SwiftUI
Дизайн мобильных приложений