Есть такая концепция Mobile first. Основной смысл то что вы делаете верстку для мобильного приложения, версию для десктопа пишете позже.
Начать стоит с плана, накидайте архитектуру приложения и дополняйте подробностями.
Разработайте бэкенд, возможно используя временные заглушки.
Отработайте аутентификацию, коммуникацию с пользователем, бизнес логику.
Все общение с сайтом ведите через api.
Если мобильное приложение предполагает больше чем просто мобильный сайт продумайте что вам нужно в интерфейсе и используйте максимально код с сайта.
Пс это все применимо к "информационным" проектам. Если само приложение "утилитарное", то с сайтом оно будет соотносится мало, но все равно оставьте максимум общего кода для переиспользования.
Соответственно мобильную часть пишете на Swift для обеих платформ. С серверной частью непонятки. Я бы посоветовал net core. Но вроде бы есть
https://github.com/vapor/vapor, возможно лучше его использовать, что бы не выходить за пределы SWIFT.