
Как я собрал на одном Angular коде: личный кабинет для сайта, Telegram Mini App, iOS и Android
Я Angular-разработчик и один пишу фронтенд своего сервиса "НеБалкон". Сначала был только сайт, но довольно быстро понадоблись личный кабинет, Telegram Mini App и приложения для iOS и Android.Требования формировал я сам и сам же их постонно менял. Волатильность была приличная: стартап всё-таки. Ищешь PMF, крутишь идею, меняешь УТП, находишь решение получше - и опять идёшь править формы, статусы и пользовательский флоу.На весь фронтенд было примерно 3 месяца. В такой ситуации заводить отдельный Flutter-проект или, тем более, писать два native-клиента на Kotlin и Swift мне показалось плохой идеей. Я бы сначала изучал новый для меня стек, потом переносил в него уже написанную логику, а после каждой своей новой 'гениальной' идеи синхронно правил несколько реализаций.Остаться на Angular было проще лично мне, но плюс не только в этом. Когда код общий, формы, модели, валидация и багфиксы не начинают жить своей жизнью на каждой платформе. Поменял сценарий один раз - он поменялся в вебе, TMA и мобильных приложениях.Так сайт и кабинет остались на Angular, TMA получил тот же CSR-клиент, а iOS и Android - Angular внутри Capacitor. Сейчас все 16 экранов кабинета используют одну реализацию, а доля общего TypeScript-кода получилась около 95%.Конечно, "общий код" не значит "вообще никаких отличий". Кнопка "Пополнить" везде одна, а способов вернуться с платёжной страницы у меня получилось три. Но до этого ещё дойдём. Читать далее