Первая часть моей серии о разработке независимых продуктов
Как разработчик мобильных приложений, я, конечно, больше всего мечтаю написать приложение и спокойно смотреть, как капают деньги ( ͡° ͜ʖ ͡°).
С какими проблемами можно столкнуться, создавая приложение в одиночку? Недавно я выпустил собственное приложение и хочу поделиться проблемами, которые встретил, и своими решениями.
1. Определите потребность
У каждого немного своя причина для создания независимого приложения.
Если мыслить масштабно, вы можете увидеть острую потребность людей, решение которой изменит мир; не хватает только программиста.
А если скромнее — возможно, вам просто хочется увидеть своё приложение в App Store. Это может быть эксперимент с новой технологией: после появления расширений Today в iOS 8 вышло много необычных приложений на их основе. Или это может быть утилита, устраняющая неудобство в вашей жизни, например файловый менеджер или погодное приложение с продуманными функциями.
Найдите потребность, большую или маленькую. Она даст вам мотивацию продолжать.
Я создал приложение для управления файлами под названием File Manager, исходя из потребностей своей жены.
File Manager превращает телефон в сервер. Другие устройства в той же сети Wi-Fi могут управлять его файлами через браузер: организовывать папки, копировать и перемещать файлы, загружать и скачивать их.
Определившись с этой потребностью, я потратил примерно три месяца на доведение проекта до выпуска. По пути немного изучил Swift.
2. Прототипы и взаимодействия в приложении
Когда есть потребность и её решение, у вас, вероятно, уже складывается примерное представление о прототипе и действиях пользователей. Следующий шаг — определить конкретные экраны и взаимодействия.
Я попробовал несколько инструментов прототипирования, а затем отказался от них.
Оказалось, что за время освоения инструмента прототипирования и создания макетов я успел бы собрать экраны с помощью xib. В итоге проблему прототипа я решил набросками от руки.
Позже, создавая другие продукты, я понял, что прототипы необходимы. Прототипирование — это на самом деле процесс упорядочивания логики и проверки её внутренней согласованности.
3. Что делать со всеми маленькими иконками?
После подготовки прототипа у меня появилось общее представление о структуре проекта. Но помимо кода оставалась проблема, с которой неизбежно сталкивается каждый независимый разработчик!
Где взять все маленькие иконки для проекта?
Вот несколько библиотек иконок, которыми я пользовался:
- Библиотека иконок Alibaba → Полные наборы векторных иконок со свободно настраиваемыми цветами и размерами — щедрый ресурс. Для коммерческого использования всё же нужно разрешение автора.
- icons8 → 56 500 бесплатных плоских иконок! Есть иконки для разных платформ и даже приложение для Mac.
- iconfinder → Тоже предлагает полные наборы иконок, с более явно выраженной коммерческой моделью.
4. Тестирование и бета-тестирование
В компании тестировщики, коллеги по продукту и другие участники команды помогают улучшать приложение. Как независимому разработчику находить и предотвращать как можно больше ошибок как можно раньше?
4.1 Самостоятельное тестирование
Теперь работу, которую я раньше передавал тестировщикам, приходится делать самому. Помимо ручного тестирования можно вырастить и тестовую обезьянку, которая поможет с проверками.
4.2 Поиск бета-тестировщиков
Создание независимого приложения означает не только роль разработчика: вы также отвечаете за продукт, эксплуатацию, поддержку пользователей и многое другое. Продвижение тоже ложится на нас. Начните с друзей, одноклассников и семьи, напишите в соцсетях: моё приложение почти готово, помогите его попробовать!
Бета-пользователи не только находят ошибки. Их новые запросы и предложения могут ещё больше помочь расширить и улучшить приложение.
4.3 Распространение тестовых сборок
Если получить идентификаторы устройств бета-тестировщиков несложно, можно воспользоваться платформой для размещения бета-сборок, например Pgyer или fir.im. Действуют ограничения по устройствам.
Если идентификаторы устройств получить трудно, можно использовать Apple TestFlight, открытый после iOS 8, с числом мест для бета-тестирования до 10 000.
5. Снимки экрана для App Store
Почему снимкам экрана для выпуска посвящён отдельный раздел? У независимых разработчиков сравнительно мало каналов продвижения. Снимки и описание на странице продукта в App Store — это вход и витрина приложения.
Если эти снимки выглядят плохо, мы можем потерять посетителя, который только что нашёл приложение.
В компании со снимками помогают дизайнеры интерфейса и коллеги по продукту. А как получить снимки нужных размеров, работая в одиночку?
5.1 Снимки в симуляторе
Можно снимать экраны приложения прямо в симуляторе, хотя результат может выглядеть немного грубовато.
5.2 Немного оформления
Рекомендую бесплатный сайт shotbot. Загрузите материалы, и он создаст полный набор снимков продукта в едином оформлении.
Примечание от 2022-04-11: Позже я написал приложение для Mac специально для создания снимков к собственным выпускам в App Store.
6. Другие использованные ресурсы
При работе над определёнными взаимодействиями и дизайном сторонние инструменты и готовые иконки иногда не вполне соответствуют вашим желаниям.
Тогда редактируйте изображения сами!
Конечно, большинство разработчиков не особенно сильны в Photoshop, а некоторые вообще им не пользовались. Что делать?
Вот два сайта: Online PS и веб-редактор Meitu
Простую обработку изображений можно выполнить в браузере, не скачивая тяжёлое ПО Adobe. Для тех из нас, кто не очень дружит с Photoshop, это хорошая новость.
Помимо редактирования изображений, головной болью может стать и сама иконка приложения. Ещё один сайт, который я рекомендую, — MakeIcon: загрузите логотип 1024×1024, и он автоматически создаст иконки всех остальных размеров. Поддерживается даже iMessage в iOS 10.
7. Итоги
Я завершил разработку с помощью имеющихся ресурсов, без дизайнера интерфейса. Если у вас есть дизайнер, можете спокойно направляться к выходу  ̄ヘ ̄.
Я давно хотел сделать собственное приложение. По-настоящему взялся за него лишь недавно, когда разобрался со всем необходимым. Главное — наконец появилась чёткая потребность, которую нужно решить, а по пути я немного изучил Swift.
Во время разработки у меня была даже неделя, когда я почти не писал код. Я понял, что при создании независимого приложения именно потребность помогает не бросать работу. Её масштаб не важен; важно решить проблему.
По мере разработки требований становилось больше: обмен через AirDrop, интеграция iCloud и разработка ShareExtension всё ещё не были закончены. Вперёд, улучшайте понемногу! ʘʚʘ (Я ни за что не признаюсь, что изначально делал это приложение, чтобы делиться своей «коллекцией.avi» между ПК, телефоном и iPad.)
Вот ссылка на моё приложение: Самый простой способ управления файлами — File Manager
Примечание от 2022-04-11: Приложение больше не находится через поиск. Не найдя хорошего способа монетизации, я продал его аутсорсинговой компании. Продажа дала много поводов для размышлений; подробнее об этом в следующей статье.
Исходная статья была опубликована на Jianshu. Позже мой аккаунт Jianshu взломали, а другие статьи постоянно блокировались. Теперь я переношу все записи блога на github.io.