Как создать приложение IOS? Интервью с IOS-разработчиком Томом Астаховым.

Как создать приложение IOS? Интервью с IOS-разработчиком Томом Астаховым.

С чего начать разработку IOS-приложения? Как продвигать приложение? На эти и многие другие вопросы ответил IOS-разработчик Том Астахов в нашем интервью. Если в голову закрадывается идея о запуске в приложения в Appstore, то вам придется дочитать этот текст до конца.

Расскажи о себе.

Привет, я Том Астахов, мне 28 лет, и я все еще не умею водить машину. А еще я занимаюсь iOS-разработкой и продуктовым дизайном в агентстве Gold Carrot. Агентство занимается как внешними, так и внутренними (собственными) проектами. В одном из таких — таск-менеджер WEEEK — я полностью беру разработку iOS-приложения: начиная от проектирования с дизайном и заканчивая прототипированием и разработкой.

С чего начать разработку приложения?

Вопрос не однозначный и просто так на него ответа не дать. Как минимум, сначала надо сесть и подумать: «А надо ли оно вообще?» Пропустим вещи, связанные с обсуждениями проекта, процессами и прочей клиентской суетой, и перейдем сразу к сути — к разработке. Имея хорошие макеты (а порой даже и без них), надо определиться с базовыми вещами:

  1. 1. Определить суть приложения (что оно делает и какие задачи решает) — понимание сути так же должно быть важно разработчикам

  2. 2. Грамотно разделить на логические части (модули / слои)

  3. 3. Возможно заранее определиться с архитектурой (MVC, MVVM, VIPER или что-то еще)

  4. 4. Заложить фундамент: настроить гит, создать репозиторий, выбрать минимальную версию iOS, выбрать свой джедайский путь (проверенный UIKit или новомодный SwiftUI) и создать проект

  5. 5. И отвалить $99 за годовую подписку в AppStore для разработчика, конечно же

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

В чем разница между разработкой разных приложений? Есть какие-то свои особенности?

В общей картине разработка разных приложений выглядит одинаково: разработчик (или команда) берет и делает приложение. Все. Вот так просто.

Для разработки большого приложения (например, банковского) нужна большая команда. И с таким подходом будет сложно вместе работать. Поэтому команды придумывают свои процессы, в которых им будет комфортно работать: настраивают гит, занимаются DevOps-овскими штучками, делятся на еще меньшие команды, пишут тесты (зачастую одна команда пишет тесты для всех остальных команд) и естественно начинают делиться опытом.

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

  1. 1. Сроки и сложность

  2. 2. Состав команды

  3. 3. Фреймворки и зависимости в приложении

  4. 4. Возможность приложения работать в оффлайне

  5. 5. Зависимость от сервера (бэкенда)

Нет таких двух приложений, которые создавались бы примерно одинаково (за исключением приложений клонов).

Как опубликовать приложение?

Достаточно просто. Надо зарегистрировать аккаунт разработчика на сайте Apple для разработчиков и заплатить $99 за годовую подписку. Это подписка дает возможность в течение 1 года выпускать приложения в AppStore от своего лица.

Также есть командная подписка, она стоит уже 999$ в год.

Но если денег нет, то есть 2 выхода:

  1. 1. Пиратские сторы (магазины приложений). В двух словах, пользователь скачивает пиратский стор и устанавливает себе сертификат из этого стора. И далее это приложение устанавливает ваше приложение. Этот вариант не особо хорош, потому что пользователю будет угрожать банальный взлом телефона.

  2. 2. Выложить исходный код приложения, например, на GitHub. Другие разработчики смогут собрать и запустить ваше приложение у себя. А кто-то, может быть, даже задонатит на стаканчик кофе.

Чем отличается публикация в IOS и Android?

На самом деле здесь не так много отличий.

• Программа для разработчиков

И в AppStore, и в Google Play нужно сначала заплатить, чтобы иметь возможность выпускать приложение. Вот только в AppStore это делается каждый год (как подписка), а в Google Play надо заплатить всего один раз.

• Проверка приложений

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

AppStore и Google Play в этом похожи. После сборки приложения его билд (файл приложения) проходит ревью: сначала идет проверка билда (его проверяет машина), а затем приложение проверяют сотрудники Apple или Google. Проверка людьми самая страшная проверка, потому что они проверяют приложение на соответствие их гайдлайнам.

  • Забыл кнопку Apple для входа в аккаунт? — приложение не пропустят в AppStore, то есть зареджектят (reject)

  • Приложение вылетает при запуске? — реджект

  • В информации о приложении указал русский язык, а приложение на только английском — тоже реджект

В среднем ревью моих приложений в AppStore проходит за 6-9 часов. От чего зависит этот фактор — известно только сотрудникам Apple. Самое короткое ревью от загрузки файла до выпуска приложения в AppStore у меня было 12 минут, а самое долго — почти 4 дня.

Есть еще один неприятный момент для меня, как для iOS-разработчика, — это то, что ревью в AppStore проходит куда строже, чем в Google Play. Но есть и плюс: Apple всегда укажет подробную причину реджекта и прикрепят вырезку из гайдлайнов со скриншотами проблемных мест в приложении. А в случае чего с ними можно и поспорить, но делать этого я не рекомендую, потому что это может затянуться надолго. Также бессмысленные споры с поддержкой могут быть чреваты блокировкой аккаунта.

Как продвигать приложение?

Это вопрос, ответ на который волнует примерно всех разработчиков.

App Store Optimisation (ASO) — так называют продвижение в AppStore. Есть много мнений, споров и теорий о том, как делать это лучше, но в двух словах все выглядит просто. AppStore смотрит на несколько факторов при показе в поиске:

• Название приложения — 30 символов

• Краткое описание — 30 символов

• Полное описание — 4000 символов

• Превью-картинки и видео приложения (оно заполняется отдельно для каждого размера устройства и языка) — до 10 картинок или видео

• Промо текст

• Ключевые слова (они не видны пользователю) — 100 символов

• Частота обновлений приложения

• Частота обновлений текстов, перечисленных ранее

• Частота обновлений превью-картинок

При поиске в AppStore в первую очередь учитывается название, затем ключевые слова и в последнюю очередь краткое описание. И конечно же, в ASO есть свои лайфхаки. Например, есть неочевидный момент с локализацией. Ключевые слова можно задать для английского в США (U.S. English) и английского в Англии (U.K. English) — и по факту у нас как будто уже 200 символов для ключевых слов на один и тот же язык.

Что важно учитывать при разработке интерфейса для пользователя?

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

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

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

UX и UI не стоит разделять в интерфейсах — что в приложении, что в вебе. Также важно ориентироваться на гайдлайны, которые предоставляет Apple, — Human Design Guidelines (HDG). HDG — это мастхэв в копилке знаний iOS-разработчика.

Также отдельная тема — это доступность (Accessibility). Это про то, как, например, незрячий человек пользуется смартфоном. Разработчик из Dodo Engineering пишет очень хорошую книгу эту тему. Она так и называется — «Про доступность в iOS».

Как понять, что бизнесу нужно приложение и для каких бизнесов подойдет приложение?

Очень просто. Если приложение решает бизнес-проблему и окупается, то надо. В любом другом случае — это будет тратой времени, денег и нервов.

Если есть какой-то бизнес, и бизнес хочет приложение, потому что «ну это же приложение, люди там будут пользоваться, то-сё», то без других веских поводов это скорее всего будет провал.

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

Пример: любая локальная кухня возле вашего дома

Хорошей же причиной для создания приложения будет сеть таких ресторанов в городе или по стране. В этом случае надо заниматься цифровизацией бизнеса и переводить процессы в диджитал. Приложение имеет хорошее свойство — оно умеет работать безотказно и при высоких нагрузках, а «платить» ему надо столько же (то есть только за поддержку приложения). Посадить человека с телефоном для этого уже не получится, так как он один не справится, а садить 200 человек — очень дорогое удовольствие.

Пример: Додо Пицца или Кухня на районе

Как правило, малому бизнесу приложения не нужны, потому что почти всегда проблемы можно решить с помощью уже существующих сервисов. Делать собственное приложение для парикмахерской — самая бесполезная вещь в мире после просмотра покупки pop-it'ов. Онлайн запись можно на сеансы перевести в готовых CRM — например, в YCLIENTS или (о, ужас) Битрикс24. И вести учет расходов с постановкой задач тоже лучше в онлайне — например, в WEEEK, Notion или Airtable.

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

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

Будем полагать, что эти интерфейсы переданы мне в Figma / Sketch (в других случаях это боль). Чтобы проверить макет, я оцениваю его по пунктам:

  1. 1. В порядке ли макет? Можно ли на нем чисто визуально отделить экраны приложения от черновиков?

  2. 2. Все ли в порядке с компонентами, цветами, ассетами?

  3. 3. Есть ли экраны с микроанимациями и как они работают?

  4. 4. Как ведет себя контент при скролле?

  5. 5. Как ведет себя контент, когда открывается клавиатура?

  6. 6. Все ли места в приложении могут прерваны, и если не могут, то почему?

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

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

Кстати, ты упомянул, что по совместительству еще и дизайнер. Есть ли плюсы, когда ты дизайнер и разработчик в одном лице?

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

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

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

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

С одной стороны, мне никто не скажет, что мой код плох, а я не возражу: «Ну и что? Он же работает!» С другой стороны, мне никто не подскажет, было ли какое-то другое решение у той или иной задачи. Иногда я обращаюсь с вопросами в разные Telegram-чаты по разработке, и это помогает. А иногда и не очень — например, когда задача слишком большая или надо определиться с архитектурой и грамотно все разбить на модули.

Резюмируем.

Спасибо, Том, за интересные ответы! Резюмируем для вас: в этом интервью мы рассказали, с чего начать запуск IOS-приложения, какие особенности есть у приложений, что нужно сделать, чтобы опубликовать их, что нужно учитывать при разработке интерфейса для пользователя и как дизайн связан с программированием.

Начать дискуссию

Как законно снизить налоговую нагрузку на бизнес: ликбез от эксперта по налоговой безопасности

Разберитесь с тем, что ждать от налоговой реформы-2025 и от амнистии по дроблению.

Утренний бухгалтер № 5680. С 1 сентября закончится переходный период на машиночитаемые доверенности

До 31 августа еще можно работать по подписи представителя ООО или ИП, если она была оформлена до 1 сентября 2023 года.

Для борьбы со страховыми мошенниками в ЦБ могут появиться специальные следователи

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

Курсы повышения
квалификации

18
Официальное удостоверение с занесением в госреестр Рособрнадзора

Как заполнить ЕФС-1 с учётом последних изменений. Конспект вебинара с видео и тестированием

«Клерк» приготовил для вас подарок — мы открыли для вас полный бесплатный доступ к конспекту вебинара. Поможем вам разобраться, что нового в заполнении ЕФС-1 и дадим 16 примеров заполнения электронной трудовой книжки.

Иллюстрация: Вера Ревина / Клерк.ру
1

НДС при УСН в 2025 году: 27 вариантов

В зависимости от размера доходов за прошлый и текущий год будут разные варианты с НДС на УСН. Смотрите их в нашей таблице.

НДС при УСН в 2025 году: 27 вариантов
15
Обзоры для бухгалтера

Налоговики освободили рабов, обложение Питерского форума, отмена налога на чаевые в обзоре

Хотя налогового следа в покушении на Трампа обнаружить не удалось, новости о нем будут. Налоговый дайджест за 15.07.2024.

Опытом делятся эксперты-практики, без воды

Директор в тюрьме — что делать бухгалтеру? Непридуманная история 👮‍♂️«Ночной бухгалтер» № 1724

Если директор попадает в СИЗО, а у бухгалтера нет возможности уволиться, как поступить? Упрощенцы, потерявшие право на УСН в 2024 году, получат шанс вернуться на нее в 2025. Долго говорите по телефону или получаете много смс-ок? Вам могут заблокировать платеж в банке.

Иллюстрация: Вера Ревина / Клерк.ру

Корпорация МСП и ЦБ будут обмениваться данными о микрофинансовых организациях

Представители малого и среднего бизнеса могут оценивать организации, которые предоставляют льготное финансирование. Сам же ЦБ получит статистику, чтобы управлять рисками МФО.

Валюта

Центробанк больше не будет публиковать статистику внебиржевого валютного рынка

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

Госзакупки

Экспертиза цен на госзакупках помогла сэкономить больше 11 млрд рублей

Профильный департамент Москвы провел экспертизу начальных максимальных цен на госзакупках. Это позволило сэкономить свыше 11 млрд рублей.

Срок подачи льготных заявок в Роспатент увеличат в два раза

Теперь у патентообладателей будет не шесть, а 12 месяцев, чтобы запатентовать обнародованное изобретение.

НДС

Отдельные операции по продаже товаров ЕАЭС через электронные площадки облагаются НДС в связи с принятием закона № 100-ФЗ

29 мая 2024 был принят закон № 100-ФЗ «О внесении изменений в части первую и вторую Налогового кодекса Российской Федерации», который несколько расширил перечень операций, облагаемых НДС в России. К ним были отнесены отдельные операции по продаже товаров ЕАЭС через электронные торговые площадки.

Отдельные операции по продаже товаров ЕАЭС через электронные площадки облагаются НДС в связи с принятием закона № 100-ФЗ

❗️ Уже началось обучение в летней школе бухгалтера! Присоединяйтесь

Сегодня, 15 июля, последний день, когда вы еще можете приобрести любой курс повышения квалификации, а также курсы профпереподготовки для бухгалтеров на УСН и финансовому менеджменту со скидками до -78%. Выбирайте курс и приступайте к обучению!

Инвестиции

«БКС Мир инвестиций» запретил выводить тенге с брокерских счетов

Ограничения для инвесторов начали действовать с 15 июля. Они не смогут переводить средства с брокерских счетов на реквизиты внешних банков, в том числе и на счета БКС Банка.

НДФЛ

С водителя надо удержать НДФЛ за суточные свыше 700 рублей

Для сотрудников с разъездным характером работы установлен необлагаемый максимум для суточных. Это 700 рублей в день.

4
Социальный вычет

Как заполнить справку для соцвычета по НДФЛ на медуслуги

С 2024 года ввели новую форму справки о стоимости медицинских услуг, на основании которой можно оформить социальный налоговый вычет по НДФЛ. Но в порядке ее заполнения есть неясные моменты.

1
Отчетность

Полный перечень отчетов за второй квартал: что сдавать организациям на ОСНО во второй половине июле

Что организации на ОСНО должны сдать до конца июля.

Иллюстрация: Вера Ревина/Клерк.ру
Общество

Авиабилеты подорожали на 9%

Сильнее всего стоимость авиаперелетов выросла в марте: тогда билеты подорожали на 22%.

Кредитование

НБКИ: молодежь стала чаще брать микрозаймы

По данным кредиторов, передающих сведения в Национальное бюро кредитных историй (НБКИ), в январе-мае 2024 года в структуре выданных микрозаймов увеличилась доля только тех заемщиков, возраст которых не достиг 30 лет.

Интересные материалы

За электропогрузчик тоже начислят транспортный налог

Налоговая база по транспортному налогу считается как мощность двигателя транспортного средства в лошадиных силах.