ScreenLines: обгоняем Столото и Парковки России. Моё новое приложение

7 мин. чтения

4700 скачиваний за три дня. 34 место в топе утилит App Store России. Приложение недели в сообществе Indie iOS Apps. И всё это — приложение, которое просто показывает белую линию на экране.

Простая и регулярная проблема

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

В сервисных центрах за установку стекла берут от 500 до 2000 рублей, но и там их ставят «на глазок». Некоторые стёкла продаются с аппликаторами. Только зачем платить за одноразовую пластиковую рамку, которая в итоге займёт место в мусорном ведре?

От лайфхака к продукту

Отдельно раздражало, когда часть изображения просто «съедалась» криво наклеенным стеклом. Поэтому я нарисовал чёрный прямоугольник с белой границей под размер экрана и сохранил в галерею. Приложил стекло так, чтобы линия была видна полностью, прижал. Идеально!

Проверил идею на друзьях и детях. Даже те, у кого «руки не из того места», смогли наклеить стекло идеально с первого раза. Возможно, главную роль играет скорость — вы сразу видите результат.

Ребёнок клеит стекло с помощью ScreenLines Вероника клеит стёкла сама

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

Разработка началась в январе 2024 года. Казалось бы, что сложного — нарисовать линию?

Техническая кухня

80 моделей — 80 радиусов

Белая линия должна идеально повторять радиус скругления iPhone. iOS может определить радиус программно, но Apple запрещает использовать приватные методы. Спасибо, что можно получить идентификатор модели: например, iPhone17,1 — это iPhone16 Pro, iPhone17,5 — iPhone 16e. Для 11 дюймового iPad Air на M3 сразу четыре идентификатора: iPad15,3, iPad15,4, iPad15,5, iPad15,6.

Поэтому делаем таблицу радиусов, сопоставляем модели и рисуем. Выглядит она примерно так:

extension Model {
    var screenCornerRadius: CGFloat {
        switch self {    
        // ... 
        case .iPhone12ProMax, .iPhone13ProMax, .iPhone14Plus: 53.33
            
        case .iPhone12Mini, .iPhone13Mini: 44.0
                
        case .iPhone14Pro, .iPhone14ProMax, .iPhone15, .iPhone15Plus,
                .iPhone15Pro, .iPhone15ProMax, .iPhone16, .iPhone16Plus: 55.0
            
        case .iPhone16Pro, .iPhone16ProMax: 62.0
        // ... 

HLS вместо встроенного видео

Одно из ключевых технических решений в ScreenLines — использование HLS (HTTP Live Streaming) для видеоинструкции вместо обычного встроенного файла.

HLS — это протокол потокового видео, разработанный Apple. Вместо одного большого файла видео разбивается на множество коротких сегментов (обычно по 6-10 секунд), которые загружаются по мере необходимости. Каждый сегмент — это обычный .ts файл, а .m3u8 содержит список всех сегментов и метаданные.

Почему не просто файл в приложении?

HLS разбивает видео на короткие сегменты по 6-10 секунд. Вместо загрузки всего файла AVPlayer подгружает только нужные части:

Некоторые мелочи, недоступные картинке с прямоугольником:

Эволюция помощников

Проекту нужен сайт. Использовал ChatGPT, DeepSeek, Qwen, Gemini — все изображали бурную деятельность, но результат был так себе. Claude оказался единственным, кто подходит для работы. Давно купил подписку и сейчас использую везде. Даже на платной версии есть лимиты на количество сообщений, но результат стоит того.

С енотом, кстати, вышло случайно — просил разные нейросети рисовать что-то абсурдное. ChatGPT предложил такую идею.

Калькулятор экономии

Claude предложил калькулятор — простую, но интересную штуку. Составили таблицу устройств с ценами и простейшей математикой.

const devices = [
    { "model": "iPhone 16 Pro", "serviceCost": 2000, "selfCost": 700 },
    { "model": "iPhone 16 Pro Max", "serviceCost": 2000, "selfCost": 550 },
    // ... 
]

const totalSavings = totalServiceCost - totalSelfCost

Результаты взлёта

Приложение попало в топ за три дня. Без затрат на продвижение.

А ещё получило звание Indie App of the Week

Отзывы

А теперь оценки пользователей:

Что дальше?

С MacBook и терпением можно создать продукт, который займёт своё место в App Store и будет доступен во всём мире. Да, вам не обязательны дизайнеры, аудиторы и куча бюрократии. Не нужно согласовывать ни с кем ничего. Просто делайте. ScreenLines показал: в App Store всегда есть место для простых, но полезных решений. Не обязательно создавать сложные платформы — иногда достаточно элегантно решить одну проблему. Но дело не только в этом. Приложение вряд ли так быстро вылезло в топ, если бы о нём не рассказал блогер с аудиторией 788k подписчиков.

Если приложение висит в топе, значит его кто-то скачивает. А это результат продвижения и маркетинга. И это то, что мне предстоит освоить.


P.S. Если у вас iPhone — попробуйте ScreenLines. Бесплатно.

P.P.S. Енот передаёт привет 👋

P.P.P.S. Оказывается, Георгий Лямин, главред iGuides, тоже написал про ScreenLines в своём канале. Спасибо!


Ссылки