LINUX.ORG.RU

Портирование приложения на мобильные платформы

 , , , ,


1

2

Хочу написать простенькое приложение на Vala с GTK+.
Потом хотелось бы портировать его на Android/iOS. Насколько я знаю, GTK на эти платформы не портирован, а вот GLib есть. Таким образом придётся только переписать графическую часть.
Есть смысл создавать такой «прототип», а потом портировать его или лучше сразу писать на джаве и не выпендриваться?

★★★★★

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

hibou ★★★★★
()

или лучше сразу писать на джаве и не выпендриваться?

Если ява, то ios в пролете. Можно прикрутить qt - будет на всех платформах. Только это монстр и на мобильниках будет выглядеть мягко говоря чужеродно.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Посмотрел бы хоть хелловорлд. Спойлер: он начинается с

import org.robovm.apple.coregraphics.*;
import org.robovm.apple.foundation.*;
import org.robovm.apple.uikit.*;

Оно бесплатно, более того — опенсорс.

Только игры из-за того, что уже долгое время есть поддержка со стороны libgdx.

PolarFox ★★★★★
()

Есть смысл создавать такой «прототип», а потом портировать его или лучше сразу писать на джаве?

у тебя портированние уже готового(доходного уже возможно) или стремление экономить усилия путём универсализации ещё не написанного?

qulinxao ★★☆
()
Ответ на: комментарий от CYB3R

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

пиши под наличную среду

всё равно на выброс(прототип же , эксперемента для камней подводных обнаружения)

qulinxao ★★☆
()

Если приложение реально простенькое, и есть скилл «переписать графическую часть», то не выпендривайся, возьми бесплатную версию http://unity3d.com и напиши всё на шарпах

stevejobs ★★★★☆
()
Ответ на: комментарий от andreyu

игры - потому как целевая аудитория ios жаждит игр. Всем плевать на гуи. Тем более чем гуи в играх отличется от гуи в игре?

ii8_ ★★★★
()
Ответ на: комментарий от stevejobs

Там есть удобные инструменты для создания платформонезависимого интерфейса, который везде выглядит нативно?

CYB3R ★★★★★
() автор топика

Вопрос в тему: какие еще есть языки с гуйом, которые работают на всех платформах (как ява) и выглядят прилично везде?

unt1tled ★★★★
()
Ответ на: комментарий от CYB3R

там можно рисовать на экране. Нарисованное тобой будет везде выглядеть ненативно (ну, как нарисуешь :). Зато полученная прога будет запускаться на куче платформ и выглядеть примерно одинаково. Джава всем лучше, но не запустится на ios - а вот юнити, т.е. mono - запустится.

stevejobs ★★★★☆
()
Ответ на: комментарий от CYB3R

но юнити придется изучать, так что наверное этот совет был глуп. забей.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

там можно рисовать на экране

Это я знаю. И этого я не хочу. Я хочу нативные интерфейсы.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

гтк разве кроссплатформенно и на телефонах? про кути тут сказали, что не везде

да, имел в виду фреймворки (языки с гуями :))

unt1tled ★★★★
()
Ответ на: комментарий от CYB3R

M-x qulinxao-mode

xamarin, firemonkey (серебряной пули отсутствие все же)

fluorite ★★★★★
()
Ответ на: комментарий от stevejobs

Да, слышал про это. Есть смысл писать код на vala, компилировать нативную библиотеку под android/ios и использовать этот phonegap для интерфейса?

CYB3R ★★★★★
() автор топика

Есть смысл создавать такой «прототип», а потом портировать его или лучше сразу писать на джаве и не выпендриваться?

если простенькое — лучше на жабе, и не выпендриваться.

если сложное — однозначно стоит сделать фреймворк, который позволит отлаживать, профайлить и вообще вести разработку без привлечения android sdk/ndk, эмулятора, и т.п.

а под андроид только пересобирать и проводить предрелизное тестирование. даже если ты потратишь пару месяцев на разработку фреймворка — это окупится с лихвой. но если проект можно на жабе + android sdk написать за пару месяцев — понятно, что писать фреймворк будет не целесообразно.

готовых вменяемых фреймфорков такого плана по сути нет (если есть — буду рад услышать о таковых). но если qt или unity3d подходит для твоих задач — лучше взять что-то из них.

у меня собственный фреймворк. но он проприетарный.

waker ★★★★★
()
Ответ на: комментарий от stevejobs

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

в данный момент, есть бакенды на xlib, gtk, cocoa(appkit) и android/java. добавить uikit дело пары вечеров, но мне это просто не нужно.

waker ★★★★★
()
Ответ на: комментарий от CYB3R

А сложно ли потом его портировать на iOS?

если на жабе — под ios придется весь гуй переписать с нуля.

waker ★★★★★
()
Ответ на: комментарий от CYB3R

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

Но это было пару лет назад, с тех пор он мог стать лучше.

Есть смысл писать код на vala, компилировать нативную библиотеку под android/ios и использовать этот phonegap для интерфейса?

Сам я под него не кодил, а только трекал чужие часы, но вот что написано в FAQ:

Q: Can you use PHP/ASP/JSF/Java/.NET with PhoneGap?

A: A PhoneGap application may only use HTML, CSS, and JavaScript. However, you can make use of network protocols (XmlHTTPRequest, Web Sockets, etc) to easily communicate with backend services written in any language. This allows your PhoneGap app to remotely access existing business processes while the device is connected to the Internet.

Придется всё на джабоскрипте фигачить.

stevejobs ★★★★☆
()
Ответ на: комментарий от waker

а не сложно (=дорого) писать всё на чистом Си?

что думаешь о такой цепочке: C++ -> Objective C++ -> Objective C -> Swift ? Чтобы писать ведро на C++, а гуй на православном Swift.

stevejobs ★★★★☆
()

если простенькое и прототип — angular + phonegap. не best, но лучше чем маяться с vala на кроссплатформе

VladimirMalyk ★★★★★
()
Ответ на: комментарий от stevejobs

а не сложно (=дорого) писать всё на чистом Си?

смотря с чем сравнивать. на objc было бы быстрее/дешевле.

что думаешь о такой цепочке: C++ -> Objective C++ -> Objective C -> Swift ? Чтобы писать ведро на C++, а гуй на православном Swift.

на андроиде? как ты это себе представляешь?

waker ★★★★★
()
Ответ на: комментарий от unt1tled

а если писать логику отдельно и потом под платформы гуи отдельно, то на чем лучше логику? си?

на том, что лучше знаешь, и что поддерживается всеми целевыми платформами.

если что — C и C++ поддерживаются не везде, см. windows phone и firefox os как примеры.

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от waker

На иосе, конечно. На андроиде всё после C++ пишется на жабе. Имею в виду, насколько геморно под иос постоянно писать над своим C++-кодом несколько оберток чтобы скормить его свифту, не захочется ли на следующую неделю разбить монитор кулаком.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

На андроиде всё после C++ пишется на жабе.

4.2, при использовании определенных фреймворков можно без жабы.

насколько геморно под иос постоянно писать над своим C++-кодом несколько оберток чтобы скормить его свифту, не захочется ли на следующую неделю разбить монитор кулаком.

думаю, писать сразу на ObjC++ намного комфортнее. не вижу смысла наворачивать свифт.

waker ★★★★★
()
Ответ на: комментарий от waker

вот я и спрашиваю, что поддерживается всеми?

ато у меня такое впечатление, что нет ниодного полностью кроссплатформенного инструмента, даже без гуя... ну только ява разве что

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

вот я и спрашиваю, что поддерживается всеми?

нативно — ничто.

нет ниодного полностью кроссплатформенного инструмента, даже без гуя...

верно. единственный 100% портабельный путь — это писать на чем-то вроде C#, и транслировать во что угодно. типа как unity делает. можно в .net на winphone, можно в моно на ведроиде, можно в js+webgl в браузере, можно в флеш, можно в нативщину на ios, и т.п.

ну только ява разве что

ява тоже не везде.

waker ★★★★★
()
Ответ на: комментарий от PolarFox

Посмотрел бы хоть хелловорлд.

Я посмотрел витрину на сайте, что вы дали ранее. Там только игры.

Оно бесплатно, более того — опенсорс.

Ясно, смутил раздел сайта «Sponsor Us». Я не обратил внимания на заголовок, увидев цены.

andreyu ★★★★★
()
Ответ на: комментарий от ii8_

Всем плевать на гуи.

А вот ТСу нужно гуи.

Тем более чем гуи в играх отличется от гуи в игре?

Даже не знаю, как ответить на такой вопрос.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Только это монстр и на мобильниках будет выглядеть мягко говоря чужеродно.

В Qt 5.4 добавили «native look for Widgets and the Qt Quick Controls on Android». Вообще в пятерке замахнулись на многое, потому реализуют по частям.

anonymous
()
Ответ на: комментарий от anonymous

на мобильниках будет выглядеть мягко говоря чужеродно

4.2 - man symbian, blackberry, sailfish, meego. Так что допилят и другие платформы.

anonymous
()
Ответ на: комментарий от anonymous

4.2 - man symbian, blackberry, sailfish, meego.

И где все они сейчас? :)

Так что допилят и другие платформы.

Может лучше не нужно?

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.