Кроссплатформенное приложение + web сервис + синхронизация баз этого всего. На чем все это писать?

Начинаем работу над новым комплексным проектом (кроссплатформенное приложение + web сервис + синхронизация баз этого всего). Сначала планируется делать разработку под Windows и Android, затем OSX и iOS, возможно также под Linux. При это планируется синхронизация баз на разных платформах и с внешней базой на сервере. В перспективе также web сервис со своей базой, но с синхронизацией.

На данный момент определяемся с инструментарием. Склоняемся к C++/Qt и база на SQLite. Таким образом планируем сэкономить на написании кода, вмонтировать базу в приложение и обеспечить более менее простую синхронизацию с серверной базой.
База для Web скорее всего MySQL. На чем кодить для web еще не определились, но на это время еще есть.

Честно говоря с Qt не работали вообще, с C++ немного. В основном C# + .NET и Delphi. Поэтому первый вопрос - стоит ли игра свеч?
Стоит ли разбираться с Qt и действительно ли получится сэкономить время на коде, или стоит писать под каждую платформу отдельно? Тем более, что функционал мобильных приложений скорее всего будет ограничен для облегчения приложения и повышения удобства использования.

Еще один вопрос по интерфейсу. Планируем делать отдельный для каждой платформы. Правильное ли это решение? Или можно сделать единый интерфейс?

Буду также очень благодарен за Ваши предложения по поводу выбора альтернатив по языкам, библиотекам и базам как для десктопов, так и для мобильных и web.
  • Вопрос задан
  • 4327 просмотров
Пригласить эксперта
Ответы на вопрос 4
@WEBIVAN
Если QT берется только ради кроссплатформенности, так существует xamarin для мобильного C#+mono для Linux, OS X.
Delphi XE5 также позволяет делать приложения под iOS,Andoid,Windows и OS X.
Это так, если уж вы работали с С# и Delphi.
С точки зрения пользователя, по моему, удобней таки отдельный интерфейс для каждой платформы по гайдлайнам. Меня, например, бесит приложение ВК на андроиде, которое, похоже делалось с одним интерфейсом на все платформы ибо, например, на физическую кнопку "назад" оно не реагирует.
Ответ написан
risik
@risik
Программист
В основном C# + .NET и Delphi.

Раз больше работали с C# и Delphi, то ориентироваться в наше время следует на эти инструменты. Как Вам уже и посоветовали - Xamarin и Delphi позволяют создавать приложения соответственно под iOS и Android. При это надо понимать, что ни то ни другое не являются серебрянными пулями. То есть, сделать так, чтобы на все платформы был вообще единый код не получится. Единый код будет для бизнес логики (от работы с БД до моделей этих данных). А, по крайней мере, UI все таки для каждой платформы придется делать свое. Хотя бы потому, что у каждой платформы свои принципы функционирования UI.

Из моего опыта общего кода обычно получается 50%-70% от каждого приложения. А остальные 30%-50% для каждой платформы свои.

Кстати, заодно избавитесь заранее от гемороя с созданием клиента для веб-сервисов под iOS. Адекватных кодогенераторов сейчас нет.
Ответ написан
Комментировать
armed
@armed
Я бы сделал так:
1. Для десктопов использовал NodeWebkit (будет работать сразу под Win/Lin/OSX).
2. Сервер тоже на Node.js (таким образом одной технологией убиваете два зайца).
3. Для iOS и Android сделал бы нативные приложения с учетом UI гайдлайнов каждой платформы. Но если дорого и сроки, то можно попробовать PhoneGap/Cordova или что-то подобное.

Рекомендовать по выбору инструментов не особо просто когда нет информации о специфике приложения.
Ответ написан
Комментировать
KEKSOV
@KEKSOV
Как вариант для построения кросс платформенного приложения - Chromium Embeded в качестве движка + ExtJS для отрисовки интерфейса. В приложение встраивается web сервер или используется какой-то готовый отдельно стоящий продукт.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы