Доброго времени суток, дорогой читатель. Если честно, не знаю, какая получится статья — интересная или не очень, но хочу рассказать вам немного о процессе разработки крупного обновления во всех деталях.
Постановка задач
Перед тем, как приступить к работе, мне пришлось составить список из задач, которые нужно решить в новом обновлении, условно их можно разделить на две категории — исправление того, что не работает и добавление новых возможностей.
Особой сложности я здесь у меня нет, есть доска на Trello, на которой я фиксирую карточки по нескольким категориям:
- Жалобы пользователей.
- Идеи новых функций от пользователей.
- Личные идеи новых функций.
Там же есть два списка "К новой версии" и "Готово". Я выбрал из жалоб и идеи на новые функции подходящие, как мне показалось варианты и перекинул их в список "К новой версии", восстанавливать как было не буду, но приведу скриншот, как получилось. Почти все карточки перекочевали в список готово и на данный момент я работаю над бета-тестированием на своих пользователях в Google Play, подробнее о внедрении новой версии расскажу ниже.
Хочу также отметить, что одной из основных целей данного обновления было увеличение количества платящих пользователей, оформивших подписку. Поэтому в списке вы можете заметить задачи с пометкой "Pro-версия". Я добавил несколько важных функций, которые просили пользователи и вынес их только для платной версии. Почти уверен, что это поднимет уровень подписчиков. При этом эти функции потребуются точно не всем пользователям и в этом я вижу баланс между платной и бесплатной версией.
Список задач в процессе разработки обновления постоянно менялся, добавлялись новые задачи, крупные я разбивал на мелкие, чтобы не забыть, частенько я работал над обновление с утра до ночи (уж очень сильно меня захватывает процесс разработки).
Работа над обновлением, программирую
На самом деле не знаю, как интересно для читателя рассказать о том, как я "программировал", да и какие-то особые моменты я сейчас уже не вспомню, поэтому расскажу об общих вещах, не углубляясь в само программирование. Если вам интересна эта тема — обязательно пишите в комментариях и я буду корректировать свои статьи с этим учётом.
Вся работа над обновлением у меня заняла около месяца. Если говорить о нагрузке, то работал я иногда по 8-10 часов, даже в выходные, а иногда не работал ни часу в день. Поэтому объём по часам не скажу, но по ощущениям я проделал огромную работу.
На данный момент проект с кодом программы выглядит примерно так:
Здесь можно посмотреть количество классов, строк и другую информацию. Самому стало интересно и установил в среду разработки плагин, который это всё считает. Конечно цифры не очень большие, в проектах, над которыми работает команда разработчиков эти показатели могут быть в разы больше. Просто это показывает примерный уровень затраченных усилий, хоть и в очень грубой форме.
Основным своим недостатком в разработке считаю отсутствие автоматических тестов, для этого проекта их нет совсем, постоянно говорю себе, что напишу их хотя бы в каком-то количестве для тестирования основных функций, но постоянно это откладывается на потом и приходится многие вещи тестировать руками (что очень неудобно, не интересно и занимает много времени). Не повторяйте моих ошибок — пишите авто-тесты и не ленитесь прогонять их почаще.
Список изменений новой версии
Далее приведу список изменений и поясню некоторые из них подробнее.
- В настройки приложения добавлена возможность включить автоматическую синхронизацию контактов при запуске приложения (раньше только вручную).
- Добавлена возможность пересылать и исходящие СМС на ряду с входящими.
- Исправлена работа телефонов с двумя сим-картами (раньше настройки обрабатывались некорректно).
- Исправлена работа приложения на старых версиях Android, при попытке обратиться к серверу — Volley (библиотека для работы с запросами) не могла подтвердить сертификат и возвращала ошибку. Вообще очень интересная ошибка, которую я только определил и она попросту лишала меня большого количества пользователей, так как у них не работало.
- Исправлена ошибка при настройке пересылки через SMTP (если указывать в поле пользователь не почту, то не работало).
- Возможность защиты приложения паролем (только для Pro-версии).
- Возможность указать расписание работы приложения на неделю. Например, если пересылать нужно только когда вы на работе (только для Pro-версии).
- Возможность указать шаблон сообщений, которые будут пересланы — с помощью специальных констант указать, какая информация нужна (только для Pro-версии).
- Множество других мелких исправлений и изменений.
Что сейчас?
Провожу бета-тестирование в узком кругу пользователей, окончательно проверяю работоспособность новой версии и при необходимости шлифую его.
Вы можете помочь мне и поучаствовать в бета-тестировании, для этого нужно всего лишь перейти по ссылке и подтвердить участие и новая версия вам будет доступна сразу, как только её пропустит Google Play (а они пока не пропустили, на момент написания статьи прошли уже сутки с момента отправки на проверку), почему так можно подробнее прочитать в моей предыдущей статье "Как я победил Google Play с их обновленной политикой разрешений для SMS и Call log". После проверки новой версии вы можете писать на почту разработчика прямо из приложения, если найдете какие-то баги, а я буду вам очень благодарен.
После этого буду медленно, небольшими порциями выводить новую версию в полноценное использование, отслеживая баги и проблемы при помощи Crashlytics.
Не забывайте писать комментарии, мне важно ваше мнение, ставьте лайки, делитесь с друзьями и ждите новые статьи уже совсем скоро.