четверг, 2 ноября 2017 г.

Этапы разработки проектов

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

Snowy: Контроль веса - это дневник веса вашего тела. Я старался делать приложение удобным, функциональным, приятным - то есть для себя, так как сам теперь им пользуюсь и постоянно думаю над вопросом: “А как же еще улучшить мое приложение?”.

Почему именно Контроль веса?

Не так давно у меня появились весы с анализатором тела. Мне стало интересно следить за изменениями в моем организме и тогда я завел табличку в Excel и начал записывать результаты взвешиваний. В итоге записей становилось все больше и больше и мне захотелось это все систематизировать.
Поэтому я скачал первый десяток популярных приложений для контроля веса, но часть мне показалось в использовании не очень удобной. И к моему огорчению, ни одно приложение не позволяло записывать мне данные из анализа (массу костей и мышц, процент жира и воды) - только вес.
А почему бы не разработать приложение для себя? Ведь это в моих силах, сделать удобное и функциональное приложение под свои нужды и поделиться им со всем миром. Так и родилась идея первого приложения Snowy: Контроль веса.

Этапы разработки:

1. Поиск проблемы, которую необходимо решить

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

2. Составление требований к приложению

С чего начать разработку приложения? С разработки Технического задания. Но поскольку это был не коммерческий, а личный проект, то я упростил документ.
Сначала я набросал тезисно функционал и примеры окон на листке бумаги, затем перенес все в Google Документы. Если вы придумали какие-то интересные функции или элементы UI, перенесите мысли на бумагу - так вы их не забудете.

3. Разработка UI

После формализации всех требований и определением общего виденья проекта пришло время разработать UI.
Очень подробные и понятные гайд-лайны по Material Design написали ребята из Google. (https://material.io/guidelines/)
Также Google предоставил очень большое количество бесплатных иконок (https://material.io/icons/) и инструмент подбора цвета (https://material.io/color/)
Разработку UI я решил делать в Sketch (https://www.sketchapp.com) - эта программа специально адаптирована под мобильную разработку и очень удобна для использования. Единственное, она доступна только для MacOS, но я думаю, что под Windows тоже можно найти стоящие графические редакторы.
Для тех, кто использует Sketch есть очень хороший ресурс с бесплатными исходниками - https://www.sketchappsources.com
Так же вдохновение я черпал с сайта Dribbble - https://dribbble.com

4. Архитектура проекта

Теперь настало время выбирать по какому пути разрабатывать свой проект. Для себя я выбрал MVP (Model - View - Presenter) - это шаблон проектирования, который используется в основном для построения пользовательского интерфейса.
  • Модель (англ. Model) — хранит в себе всю бизнес-логику, при необходимости получает данные из хранилища.
  • Представление (англ. View) — реализует отображение данных (из Модели), обращается к Presenter за обновлениями.
  • Представитель (англ. Presenter) — реализует взаимодействие между моделью и представлением.
В качестве библиотеки для реализации такой архитектуры я использовал Moxy (https://github.com/Arello-Mobile/Moxy)

5. Написания кода и разработка UI макетов

Собственно, на данном этапе мы начинаем претворять в жизнь нашу идею: реализуем структуры данных, разрабатываем макеты, думаем над логикой, пишем код. О более интересных моментах, которые я воплотил в своем проекте, я напишу в отдельных статьях.
За все время разработки проекта я дополнительно использовал сервис управления проектами Teamwork (https://teamwork.com). Для небольшого количества проектов и участников данная платформа является бесплатной. С помощью нее вы сможете оформлять новые задачи, которые вам необходимо решить - чтобы в будущем о них не забыть.

6. Тестирование

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

7. Монетизация

Про данный этап написана не одна сотня статей. Тут каждый сам решает, какой способ ему ближе. В своем приложении на первое время я отказался от рекламы в пользу удобства пользователям. Добавил только платный функционал.

Подводя итоги

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

Я надеюсь, что данная статья будет для кого-нибудь полезной.

Комментариев нет:

Отправить комментарий