Вопрос или проблема
Для учебных целей мы хотим разработать программное обеспечение с низкими требованиями один раз и перенести его на несколько платформ. Поэтому мы ищем инструменты / IDE, которые это позволят.
Функции: магазин подержанных вещей, товары будут добавляться пользователями.
Технические требования: разработать один раз, перенести на несколько платформ: Android, iOS, Windows, веб-сайт. Однородный кросс-платформенный внешний вид приемлем. База данных будет размещена онлайн.
Навыки и опыт команды: это учебное задание для группы студентов, поэтому ожидается сильное сообщество и обширная литература.
Сроки: это будет побочный проект с потенциально многими добавленными функциональными возможностями в будущем, поэтому сроков на самом деле нет. Главное – освоить необходимые навыки.
Бюджет: это проект на безвозмездной основе, поэтому разработка/развертывание/поддержка с использованием бесплатных инструментов и возможность в конечном итоге продемонстрировать его по минимальной цене будут плюсом. Студенты будут использовать свои собственные компьютеры под управлением Windows, а также некоторые Android телефоны и несколько iPhone и Mac для дальнейшего тестирования результата.
С вашего опыта, на какой фреймворк нам стоит обратить внимание? На данный момент наши выводы:
Xamarin кажется хорошим для этой цели (так ли это?), но, возможно, другие среды разработки лучше / проще для изучения и использования или имеют более лучшие перспективы на рынке?
PhoneGAP прекращен
Skip выглядит хорошо, но основан на среде Apple, так что это не наш первый выбор на данный момент.
Другие мысли?
Спасибо за ваш отзыв, извините за долгий пост (и, пожалуйста, укажите на аналогичные, недавние темы, которые должны существовать, но которыми мы еще не нашли). Мы понимаем, что это, вероятно, вопрос на миллион долларов, но мы можем найти только списки инструментов с несовпадающими плюсами и минусами, что пока не очень полезно.
Я бы предложил обратить внимание на Anvil, чтобы посмотреть, подходит ли он для ваших нужд:
- Язык программирования = Python
- IDE = веб-браузер, ничего устанавливать не нужно поэтому должно работать практически на любом устройстве
- Приложения размещаются в браузере поэтому будут работать на любом устройстве с браузером = 0 усилий для порта
- База данных = Postgres и/или статический файл или что угодно, к чему может подключиться Python
- Документация и сообщество – Документация выглядит хорошо, и есть форум + на мой взгляд, поддержка отличная. Также есть набор учебных пособий.
- Ваши разработчики также приобретут опыт работы с
git
, что практически необходимо, а также сpython
иAnvil
- Сроки = Нет проблем
- Бюджет = Есть бесплатный план и упоминаются образовательные скидки до 100%
Если не учитывать HTML, тогда я бы рекомендовал RAD Studio от Embarcadero для C++ или Delphi для OO Pascal.
Или, Lazarus IDE, который также основан на OO Pascal.
Free Pascal – это компилятор с лицензией GPL, который работает на Linux, Windows, macOS, FreeBSD и других. Free Pascal разработан так, чтобы понимать и компилировать синтаксис Delphi, который является объектно-ориентированным. Lazarus – это часть недостающего пазла, которая позволит вам разрабатывать программы, похожие на Delphi, на всех вышеперечисленных платформах. В отличие от Java, которая стремится быть “один раз написать, везде запустить”, Lazarus и Free Pascal стремятся “один раз написать, везде скомпилировать”. Поскольку точно такой же компилятор доступен на всех вышеперечисленных платформах, это означает, что вам не нужно будет переписывать код, чтобы создать идентичные продукты для разных платформ.
В любом случае, вы можете обратить внимание на Flutter и Dart, которые генерируют приложения для Windows, Linux, Mac, Android, iOS и HTML.
Ответ или решение
Выбор подходящего инструмента для разработки образовательного программного обеспечения, которое можно будет портировать на разные платформы (iOS, Android, Windows, веб), является важным шагом для вашей команды учащихся. Основываясь на ваших требованиях и ограничениях, я рекомендую рассмотреть следующие инструменты и фреймворки:
1. Flutter
Flutter – это UI фреймворк от Google, который использует язык программирования Dart. Он позволяет создавать высококачественные приложения для мобильных, веб- и настольных платформ из одного кода.
- Преимущества:
- Одноразовая разработка с возможностью компиляции для Android, iOS, Windows, macOS и веба.
- Активное сообщество и обширная документация.
- Эффективные инструменты разработки и горячая перезагрузка (hot reload) для быстрого тестирования.
- Бюджет: Бесплатный и с открытым исходным кодом.
2. Anvil
Anvil — подходящее решение, если вы хотите использовать Python для создания веб-приложений.
- Преимущества:
- Имеет браузерный интерфейс, никакого дополнительного ПО устанавливать не нужно.
- Работает на любом устройстве с веб-браузером, что уменьшает усилия по портированию.
- Интеграция с базами данных, такими как Postgres или другими источниками, к которым может подключаться Python.
- Хорошая документация и поддержка сообщества.
- Бюджет: Имеет бесплатный тарифный план и упоминаются образовательные скидки.
3. Lazarus и Free Pascal
Если вас интересует создание настольных приложений, стоит рассмотреть Lazarus и Free Pascal.
- Преимущества:
- Позволяет разрабатывать приложения, которые могут работать на различных операционных системах без необходимости перекодирования.
- Поддерживает объектно-ориентированное программирование и может использовать данные из Delphi.
- Бюджет: Оба инструмента бесплатны и имеют открытый исходный код.
4. Xamarin
Xamarin, как вы уже отметили, также подходит для кросс-платформенной разработки, однако стоит учитывать его текущую популярность и поддержку.
- Преимущества:
- Позволяет разрабатывать приложения на C# с использованием .NET.
- Поддержка Android и iOS.
- Недостатки: Может оказаться сложнее в освоении для студентов, особенно если они не имеют предварительного опыта в C#.
Заключение
Основываясь на ваших требованиях к однократной разработке и будущему расширению функционала, я бы рекомендовал Flutter за его универсальность и активное сообщество. Anvil также является отличным вариантом, особенно если команда предпочитает Python.
Важно, чтобы ваши студенты могли хорошо ознакомиться с документацией и сообществом каждого инструмента. Это обеспечит им поддержку при возникновении сложностей в процессе разработки. Удачи в вашем проекте!