1. Создание технического задания - какие фичи есть и как они работают.
2. Создание частного технического задания - подробное описание каждой фичи, особенности, поведения и прочего (кнопки, меню, апи вызовы и прочее).
3. Разработка архитектуры проекта под требования и ограничения ТЗ.
4. Проработка архитектуры на более низком уровне - модули, подсистемы и прочее.
5. Проектирование пользовательского интерфейса и его дизайн прочее.
А далее уже более детальная разработка частей/модулей проекта и написание кода - независимые части/модули можно делать параллельно. От проекта к проекту детали могут меняться - но в целом логика примерно такая.
апи и бэкенд поменяйте местами с интерфейсы и дизайн, пока нет серверной части всё остальное бессмысленно.
Ну и как сказал Dark Hole , нет понятия правильно, на каждой стадии Вы будете
do{
добавлять, изменять, удалять,
}
while(конечный продукт)