Как быстро запустить корпоративное приложение на Android и IOS в 2023-м и не перетрудиться?
Дано:
- Есть задача - создать мобильное приложение для корпоративного использования (задачи выйти в сторы для широкой публики - не стоит, достаточно раздать своим пользователям).
- Запуск 1й версии нужен на горизонте месяца. Фукнционал простой (crud), доступ обязателен только к камере (+ желателен к GPS, и пуш-уведомлениям из фонового режима, но это можно отложить на v.2).
- В ближайшие полгода, все пользователи - свои, их до 100 человек, они готовы плясать с бубном по инструкции, если надо,
- Запуск следующей версии - на горизонте 3..6 месяцев. По доступу требования уже выше (GPS, сеть, батарея, пуш - как минимум, акселерометр, камера и микрофон - желательно).
- Пользователи - это уже сотрудники корп.клиентов (где-то до 1000 в обозримом будущем, здесь уже установку лучше сделать удобной и простой)
- Трафик приложения желательно минимизировать (пользователи будут буквально "в полях", хорошей связи ждать не приходится).
Вопрос: какой путь/технология, на ваш взгляд, здесь будет оптимальными? Чтобы И быстро запуститься, И раздать приложение владельцам всех телефонов, И получить доступ к железу в будущем, И не переделывать всё под ноль позже?
1. правильная идея "пилить сразу под мобилу" - смущает вопросами с регистрацией/оплатой аккаунтов разработчиков. За месяц, боюсь, нереально управиться (учитывая, что ни аккаунтов, ни даже забугорных карт у нас пока нет, это все месяца на 3 минимум, боюсь, затянется).
2. очевидная идея "надо быстро - пилим PWA" смущает тем, что потом (когда с аккаунтами разберемся) придется все перепиливать под ноль на натив/мультиплатформу. бюджет тоже не безграничен, переделок хочется избежать.
3. гибридная идея "сначала - APK для андроид и PWA для IOS, потом - перепилим для IOS" - выглядит разумной, НО всё равно влечёт доп.расходы на переделку, т.к. мультиплатформенные решения пока выглядят полу-мерами (те же xamarin/cordova - позволяют создать под Android/IOS, но PWA всеравно пилить отдельно...)
Собственно...
- верно ли я рассуждаю, что путь №3 в данной ситуации - оптимален? или есть какой-то еще, который я не увидел?
- есть ли мультиплатформенные решения, которые позволяют билдить одновременно во все 3 платформы (android, ios, pwa), хотя бы на уровне "70% общей кодовой базы"?
Дисклеймеры:
- глубоко в мобильную разработку я не погружен (я больше про веб), поэтому, возможно, каких-то очевидных вещей сходу не вижу..
- функционал приложения простой, а опыт внезапного освоения новых платформ и реализации задач со сроком "вчера" - у меня достаточно, поэтому в том чтобы "разобраться и сделать" - проблемы нет. вопрос лишь в том, чтобы потом, на пол-пути не обнаружить, что я изначально, на берегу, не туда повернул :)
React Native как уже упомянули выше. Сроки в любом случае короткие и не реально что-то приличное доставить за два спринта. Это Корпоративное приложение один человек писать будет или команда agile? Если все как положено и по agile то за два спринта (это ваш указанный срок 1 месяц до перого релиза) вы только успеете на заданные тут вопросы ответить, все согласовать и план работы накидать хорошо если. Потом ещё за один спринт можно дизайн успеть согласовать. В общем не соглашайтесь на такие сроки, если это реальное приложение, а не тестовое задание для интервью.
GPS, сеть, батарея, пуш - как минимум, акселерометр, камера и микрофон - желательно).
Фукнционал простой
ну да, конечно. И кстати у пва нет доступа к этим штукам. Постоянно переделывать на новый формат выглядит странной идеей и бесполезной тратой сил и времени
хотя бы на уровне "70% общей кодовой базы
от таких решений постепенно отказываются, в реальном мире это оказывается слишком дорого
флаттер есть для всех платформ, он выглядит самым подходящим. Если нужно своять какое то нечто быстро и не надолго
Сроки какие то фантастические скорее всего, если это вы один собрались за месяц сделать, сильно сочувствую вам и страшно представить какое говно в итоге будет. Напишите потом через месяц мне в комменте на это сообщение, интересно сколько в реальности успеете сделать за месяц
от таких решений постепенно отказываются, в реальном мире это оказывается слишком дорого
Странно , вроде flutter всё ещё растет .
Можно чуть больше конкретики ? Я понимаю что натив лучше но всякие xamarin,ы дешевле (особенно если приложение для "своих" и максимального импакта не нужно .)
Я не быканул , просто интересно от куда инфа )
от дропбокса например. Я имел ввиду решения типа kotlin multiplatform, там как раз идея что часть кодовой базы общая, например бизнес логика, а платформенные штуки будут на своем языке. Не выгорело, нужны очень редкие спецы на всех платформах, "одинаковая работа на всех платформах" в реале оказывается нихрена не одинаковой, слишком много специфичных проблем. На хабре еще от яндекса часто вижу статьи где они про свои проблемы мультиплатформы пишут. Какие то костыли плодят по сути
flutter вроде как не использует платформенный ui, а прям сам все рисует, благодаря этому не отстает всегда на шаг позади вроде xamarin. Ну и флаттер походу больше уже не растет, занял свою нишу и сидит там. Они кажется не в том направлении развития идут, много проблем еще на мобиле, а они в десктоп и веб поперли уже
ну да, конечно. И кстати у пва нет доступа к этим штукам
ну камоон, зачем вы так склеили? )))
1я версия, из обязательного - только камера, функционал - отметить факт выполнения определенного действия по чеклисту, подтвердить фотоотчетом. опционально - снять при этом данные с gps, чтобы убедиться, что физически чел был там, и слать пуши, когда пора чтото еще сделать. вот это за месяц, имхо, более чем реально. там больше возни будет на бэке апишки в порядок привести (т.к. щас там мешанина из олдскульного ssr и api-архитектуры, т.к. сначала никто не думал, что тут мобила вообще возникнет).
остальное - это 2я версия, там и сроки другие, и pwa уже не варик, конечно. просто хочется сразу сделать так, чтоб потом переезд наоколонатив не сводился к полной переделке)
по флаттеру - пока както обходил стороной, т.к. хотелось остаться как можно ближе к знакомому стеку (c#, либо web-стек+vue.. ну вкрай +react, его хоть и не юзал, но, думаю, там минимально времени надо на базовое изучение...
но гляну флаттер внимательнее еще раз, спасибо.
Александр Х, флаттер типичный сишный язык, как и джава или шарпы
либо web-стек+vue.. ну вкрай +react
разработка на мобиле мало общего с этим, я поэтому и сказал сразу что быстро ничего не выйдет. Тут постоянно на qna появляются тупые вопросы по андроиду, потому что бывший jsник пытается натянуть свои подходы там где не надо. Полностью согласен с Araya, в ваши сроки вообще не верю, но подозреваю что у вас просто не будет ни di, ни архитектуры, ни нормальной многопоточки и тд, поэтому в принципе есть шансы что то сделать в срок, хотя потом это будет невозможно поддерживать
по поводу того, что это будет на коленке и без должной архитектуры - тут даже не спорю, в первой версии так и будет )) но тут, боюсь, уж либо так, либо никак, т.к. задача "за месяц какую-то версию выкатить любой ценой", то дальше разбираться будем уже потом.
вобщем, после некоторого ресерча начинаю соглашаться с мнением, что любое быстрое решение потом всеравно переделывать придется. видимо так тому и быть :)
- есть ли мультиплатформенные решения, которые позволяют билдить одновременно во все 3 платформы (android, ios, pwa), хотя бы на уровне "70% общей кодовой базы"?
Под это определение разве не подходит React in web, React Native in iOS/Android и любой бэк?
Может, конечно, это и только я такой умный, самолюбие +3 тогда
APK для андроид (я с ним дел не имею и слава богу)
и sideloadly (или AltStore - что покажется проще) для ios. - профили под каждую копию живут неделю, зато каждый может настроить автообновление по вай фаю и всего тут. (альтстор вообще сам обновляет вроде)
Есть еще вариант, но придется прогуглить гпс и камеру - Expo Go - уже выложено в апп стор и вроде как должно быть в гугл плее.
бонусом - берешь любого реактера и заставляешь его параллельно конвертить веб в мобайл, объясняя это повышением его квалификации и дарственной в будущем на 1% акций))
Серебрянных пуль не существует. Самое близкое к хотелкам это JavaFXPorts от gluon и их Gluon Mobile. Внутри java, для гуя javafx который удобный и с css стилями.