Перейти к содержанию
Fire Monkey от А до Я
  • 0

Альтернатива FMX


Brown1993

Вопрос

Добрый день!

Подскажите пожалуйста, сейчас в интернете наблюдается такая вещь как сплошной негатив в сторону FMX, то "пинг между дроидом и fmx, не получается достичь требуемого fps", то "платформа не доработанная". Вопрос: существует ли разработка на том же C++Builder XE под Андроид не используя FMX? И стоит ли углубляться дальше в изучение этой платформы или стоит задуматься о Java и OBJ-C?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

Такой вопрос глупо задавать на форуме который посвящён только fmx. Здесь нет наверное людей которые для стеба сидят. А вообще, кто вам мешает изучать разные языки и фреймворки. Что душе будет ближе и рукам удобней то и выбирайте.

Ссылка на комментарий
  • 0

Такой вопрос глупо задавать на форуме который посвящён только fmx. Здесь нет наверное людей которые для стеба сидят. А вообще, кто вам мешает изучать разные языки и фреймворки. Что душе будет ближе и рукам удобней то и выбирайте.

Дело в том что я не хочу учить отдельно платформы, мне очень нравится FMX, вопрос стоял другой, могу ли я компилировать софт в C++B XE не используя FMX на андроиде. И что вы скажете про ограничения FMX, связанная с нагрузкой. Скажем так, существует ли какой либо пинг между FMX и андроидом который тянет за собой висяки?

Изменено пользователем Brown1993
Ссылка на комментарий
  • 0

а вообще, если тебе не для поиграться а какой то серьезный проект хочешь замутить изучай android studio и xcode

А разве серьезное приложение или игру под ios и android я не сделаю в среде C++Builder?

Ссылка на комментарий
  • 0

сделаешь, если перепишешь fmx под себя, исправишь глюки его. но, не дай бог хозяева решат что этот проект мертвый и закопают его, то придется все переписывать на нативных языках если не захочешь закапать свой проект. а с этими продажами перепродажами хз что будет в конце концов. уже бесплатный проект закрыли на С++. 

 

насчет игр, то что то типа тетриса, арканоида, ну или бешеных птиц сможешь. что то типа nfs, real reacing 3 уже нет. 

Ссылка на комментарий
  • 0

Ядро Андроида - Linux Kernel, написан, в основном, на си, и серьезность проекта коррелируется скорее с навыками программера чем со средой RAD.

 

Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.

 

Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).

 

 Android Native Development Kit позволяет портировать библиотеки и компоненты приложений, написанные на Си и других языках.

 

Изменено пользователем Камышев Александр
Ссылка на комментарий
  • 0

Не так. Android Native Development Kit  позволяет собирать код для библиотек, возможно собранных и на других языках и запускать на выполнение из под под Dalvik. То есть выполнение обычной библиотеки с расширением so. И эта библиотека через ретранслятор написанный на языке Java общается с андроидом и рисует на форме. 

Ссылка на комментарий
  • 0

Не так. Android Native Development Kit  позволяет собирать код для библиотек, возможно собранных и на других языках и запускать на выполнение из под под Dalvik. То есть выполнение обычной библиотеки с расширением so. И эта библиотека через ретранслятор написанный на языке Java общается с андроидом и рисует на форме. 

Возможно я ошибаюсь, но это скорее описание работы Software Development Kit, ключевое слово Native.

В 2009 году в дополнение к ADT был опубликован Android Native Development Kit (NDK)[56] — пакет инструментариев и библиотек, позволяющий реализовать часть приложения на языке С/С++. NDK рекомендуется использовать для разработки участков кода, критичных к скорости.

Ссылка на комментарий
  • 0

отсюда http://developer.android.com/tools/sdk/ndk/index.html

 

The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. Typically, good use cases for the NDK are CPU-intensive applications such as game engines, signal processing, and physics simulation.

 

- тут пишут что для игровых движков, обработки сигналов и симуляции физики нативный код может работать лучше java.

 

оттуда же сразу:

 

Before downloading the NDK, you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++. When examining whether or not you should develop in native code, think about your requirements and see if the Android framework APIs provide the functionality that you need.

 

- тут, в числе прочего, пишут что использовать только нативный код нужно если это действительно необходимо, а не потому что привык писать на си.

 

еще:

 

The Android NDK is a companion tool to the Android SDK that lets you build performance-critical portions of your apps in native code. It provides headers and libraries that allow you to build activities, handle user input, use hardware sensors, access application resources, and more, when programming in C or C++. If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine.

 

 - нативный код выполняется внутри виртуальной машины

 

так что весь инструментарий в руки, возможностей воз, пиши - не хочу

 

и еще, Dalvik и сменивший его ART(Android Runtime) также написаны на си.

Изменено пользователем Камышев Александр
Ссылка на комментарий
  • 0

ядро тоже написано на си :) 

 

но речь была не о том что лучше использовать NDK или SDK и писать на яве или с++, а о том что FMX это обертка на NDK и если завтра решат закопать FMX вместе с RAD Studio все проекты придется писать заново но уже на Android Studio и XCode. 

Ссылка на комментарий
  • 0

Итого, мы плавно подошли к отделению логики, отображения и данных, иначе модель-отображение-контроль

 

https://ru.wikipedia.org/wiki/Model-View-Controller

 

Применительно к этому обсуждению - для быстрой разработки простых приложений FMX удобен, абзац.

 

Для серьезных проектов использовать FMX только в качестве интерфейса между приложением и пользователем, приложением и сервером.

Т.е. для форм, контролов, файлов, сокетов и портов. Это инструмент отображения и обмена данными.

 

Модель, либо логика и методы работы с данными не должны быть привязаны к FMX.

В этом случае, модель (ядро приложения) можно без изменений использовать вместе с инструментами которые предоставляет Android Studio и XCode.

Однако паскаль тут совсем не вот, только Си, только хардкор. 

Для XCode есть "Free Pascal for Xcode Integration Kit", а с AndroidStudio *.pas, видимо, совсем никак.

 

Для серьезной графики можно пользоваться кроссплатформенным OpenGL.

Как вариант - использование java классов, здесь обсуждают http://fire-monkey.ru/topic/2085-serial-port/

 

Таким образом, даже если случится страшное и FMX вымрет (что вряд ли), то красоту кода удастся бережно сохранить и использовать в дальнейшем.

Ссылка на комментарий
  • 0

а почему тогда изначально не начинать писать симбиозное ядро и тут же его прикручивать к xcode и NDK? :) зачем это начинать делать через доппрокладку на FMX? :) Сел. Написал ядро. Перенс его в xcode, накидал компонетов связал. перенес в NDK, хз как там с компонентами но раз есть наваять можно. и все. твоя программа везде пашет и ничего не надо больше выдумывать. 

Ссылка на комментарий
  • 0

а почему тогда изначально не начинать писать симбиозное ядро и тут же его прикручивать к xcode и NDK? :) зачем это начинать делать через доппрокладку на FMX? :) Сел. Написал ядро. Перенс его в xcode, накидал компонетов связал. перенес в NDK, хз как там с компонентами но раз есть наваять можно. и все. твоя программа везде пашет и ничего не надо больше выдумывать. 

В FMX все-таки единый кроссплатформенный интерфейс, и если он будет развиваться - это удобно, не надо под разные платформы допиливать после доработок. 

Конечно это будет неплохо смотреться в резюме: кодинг на нескольких языках, несколько сред разработки IDE, симбиозное ядро, схема использование шаблонов MVC... и т.д.

В общем да, изящно.

Изменено пользователем Камышев Александр
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...