Настало время поговорить о друге нашем бэкэнде. Изначально я хотел собрать максимально простое приложение без бека, работающее чисто с API стороннего сервиса. По сути обертку для системы управления торговли, пока не буду рекламировать ребят, но это что то вроде облачной 1С.
Но, как оказалось в системе хранится не только лишь все. И не все магазины клиента подключены к этой системе. И в любом случае будут какие то кастомные настройки, варианты авторизации, интеграция с сайтом и т.д. и т.п. Так что выбираем, на чем писать бекенд приложения на флаттер?
Обзор возможностей
Я не настоящий разработчик, как говорится в анекдоте, так что разберу самые простые на мой взгляд способы не закопаться в задаче "собрать бэкэнд максимально просто и быстро"
Wordpress
Погоди, что? Да, вордпресс как бэкэнд. Мне такое предложил мой близкий друг, тимлид команды разработчиков на react/react native. И это не шутка, по крайней мере не совсем. Wordpress это готовая cms с role management с хорошей кастомизацией, с какой-никакой защитой. Можно завести любой тип данных и заставить отдавать данные как угодно. Ну и сделать свой API или даже навернуть что то готовое из плагинов не составит труда. Но способ очень экзотический и топорный, оставим его за рамками.
PHP
Я знаю php и собрать простенький бек не составит никакого труда. Вопрос только в том что это будет очень простое, не гибкое и не безопасное решение. Сойдет только как временная мера.
.NET
Третий вариант, накидать знакомым ребятам ТЗ и за относительно небольшие деньги получить работающее решение. Проблема в том что ТЗ как такового нет и этот стек со всеми виндовыми серверными штуками не очень user friendly лично для меня (оказывается .NET core можно и на линкусе запустить, но от этого не сильно легче стало). В итоге мы получим вещь лишь немногим лучшую чем самописный бек на php.
Dart
Очень интересно! С одной стороны экзотика, но с другой очень продвинуло бы мой прогресс как разработчика flutter (стоит ли напоминать что flutter приложения пишутся на dart?). С другой стороны мануалов почти нет, все придется делать самому и это путь скорее изучения технологии чем путь разработки продукта. Если интересно, рекомендую почитать сериал ребят, которые разрабатывают сервис целиком на Dart - https://t.me/SurfGear
NodeJs / Python / Ruby on Rails и т.п.
Все просто, никакого опыта и никаких знакомых из этих сфер. Да и желания браться за это все дело особого нет.
"Толстый клиент"
Возможно меня закидают помидорами за такой термин, но противопоставление "тонкому клиенту" я думаю понятно. Хардкодим все данные на стороне приложения. Все храним и обрабатываем прямо на клиенте. Необходимо подтянуть какие то данные, например количество магазинов в сети выросло на пару штук, зашиваем в новую версию и выкатываем обновление. Вам весело? Мне нет. Забыли про это.
BaaS
Вспоминаем популярное когда то слово SaaS. И переносим его в 2020 год. BaaS расшифровывается как Backend-as-a-Service. Этот вариант существенно отличается от остальных — бэк писать не придется совсем. Все вешается на API и хранится в облаке. BaaS в основном предназначены для ускорения разработки и прототипирования на начальных этапах, в больших и сложных приложениях это решение возможно не подойдет, но почему бы нам не остановиться на этом подробнее?
Firebase
Это слово в связке с Flutter слышно так же часто как и React вместе с Redux. Вообще Firebase это продукт принадлежащий Google и рекомендованный в качестве backend для Flutter.
Firebase - это мобильная платформа Google, которая помогает быстро разрабатывать высококачественные приложения и развивать свой бизнес.
Отсюда получаем нативную поддержку, тонны кода и мануалов, огромное количество видеоуроков. И отсутствие затрат (материальных и временных) на развертывание и поддержание сервера.
За все приходится платить, и Firebase не бесплатный, но что то мне кажется что для старта это лучший вариант.
Спасибо что дочитали!
Пишите свои мысли в комментах или в личку, рекомендуйте куда дальше двигаться, буду рад обратной связи.
Не забываем подписаться:
- Мой основной канал о технологиях и диабете - https://t.me/cyber_dia
- Канал про Flutter в телеграм - https://t.me/cyber_flutter
- Канал про Flutter в Яндекс Дзен - https://zen.yandex.ru/id/592d5735d7d0a6f37914fbca