V čem psát přenositelné aplikace?

acr

V čem psát přenositelné aplikace?
« kdy: 09. 01. 2016, 12:54:26 »
Zdravím,

přemýšlím, v čem je vhodné psát aplikace přenositelné mezi platformami - primárně Windos a Linux, případně i mobilní platformy.
Je mi jasné, že zvláště na mobilech-tabletech je životní cyklus aplikace jiný, ale mě jde hlavě o knihovny řešící určitou (všude stejnou) problematiku. Nejlépe se asi nabízí C#, ale nevím, jak moc je reálně použitelné mono nebo Xamarin.
Nějaké zkušenost?
« Poslední změna: 09. 01. 2016, 13:16:45 od Petr Krčmář »


Kit

Re:V čem psát přenositelné aplikace?
« Odpověď #1 kdy: 09. 01. 2016, 14:29:44 »
Zdravím,

přemýšlím, v čem je vhodné psát aplikace přenositelné mezi platformami - primárně Windos a Linux, případně i mobilní platformy.
Je mi jasné, že zvláště na mobilech-tabletech je životní cyklus aplikace jiný, ale mě jde hlavě o knihovny řešící určitou (všude stejnou) problematiku. Nejlépe se asi nabízí C#, ale nevím, jak moc je reálně použitelné mono nebo Xamarin.
Nějaké zkušenost?

Zrovna C# mi moc přenositelný nepřipadá, spíš Java. Ale i Python, Lua či Javascript jsou přenositelné. Záleží na typu aplikace.

.

Re:V čem psát přenositelné aplikace?
« Odpověď #2 kdy: 09. 01. 2016, 14:30:07 »
Na tohle není jednoduchá odpověď, protože hodně záleží na typu, použitenosti a nárocích na ty aplikace.

Každopádně jednou z nejpoužívanějších cest v poslední době je Javascript a nějaký framework.
Pro desktopy primárně Electron nebo Nw.js, pro mobily Ionic/Cordova/PhoneGap a případné další, tuhle oblast moc nesleduji. Sám používám electron a funguje dobře, vyvoj a základní testování na osx, primární nasazení win, potencionálně linux. Není to jen o jazyku,  holém kódu a knihovnách, tady problém většinou moc není, ale je potřeba ošetřit drobností, ve kterých se ty prostředí liší (zpravidla windows) a pokud jdeš dost nízko, občas je potřeba dopsat nějaké dílčí specifické rozšíření v nativním prostředí.

Asi tahle odpověď nebude místní komunitou zrovna nadšeně přijata :), ale že to je smysluplná (a často i nejjednodušší) cesta ukázal i Microsoft se svým Visual Strudio Code.

.

Re:V čem psát přenositelné aplikace?
« Odpověď #3 kdy: 09. 01. 2016, 14:33:40 »
a ještě dodám, že z toho electronu (ale i dalších) jde vygenerovat např. exe aplikace, takže není problém s instalací nějakého runtime prostředí. To se ale většinou týká i zmiňovaného Pythonu, Ruby a Lua, akorát ta podpora podle mne není na tak vysoké úrovni, jaká je třeba u electronu.

Re:V čem psát přenositelné aplikace?
« Odpověď #4 kdy: 09. 01. 2016, 15:08:36 »
Mám dobry zkušenosti s C++ a Qt(4). A to i v případě bez GUI, QtCore má užitečny věci třeba pro multithread, multiplatformní ukládání nastavení (na Linuxu se to samo strčí do .config/, na win do registrů, umí to (de)serializovat jakoukoli třídu) atd. Ale hlavně má Qt suprovou dokumentaci, takže vývoj šel rychle, i když sem se poprvy s Qt seznamoval za pochodu.
Případně s Pythonem se dá použít PyQt. A Qt5 umí i mobilní aplikace, ale to sem nikdy nezkoušel.


Rado2

Re:V čem psát přenositelné aplikace?
« Odpověď #5 kdy: 09. 01. 2016, 15:31:28 »
Na tohle není jednoduchá odpověď, protože hodně záleží na typu, použitenosti a nárocích na ty aplikace.

Každopádně jednou z nejpoužívanějších cest v poslední době je Javascript a nějaký framework.
Pro desktopy primárně Electron nebo Nw.js, pro mobily Ionic/Cordova/PhoneGap a případné další, tuhle oblast moc nesleduji. Sám používám electron a funguje dobře, vyvoj a základní testování na osx, primární nasazení win, potencionálně linux. Není to jen o jazyku,  holém kódu a knihovnách, tady problém většinou moc není, ale je potřeba ošetřit drobností, ve kterých se ty prostředí liší (zpravidla windows) a pokud jdeš dost nízko, občas je potřeba dopsat nějaké dílčí specifické rozšíření v nativním prostředí.

Asi tahle odpověď nebude místní komunitou zrovna nadšeně přijata :), ale že to je smysluplná (a často i nejjednodušší) cesta ukázal i Microsoft se svým Visual Strudio Code.

Tiež som trochu hľadal riešenie, ale praktické skúsenosti s prenositeľnou aplikáciou nemám. C# / Xamarin vyzeral zaujímavo, keď som to riešil, ale neskúšal som. Neviem, či existuje niečo slušné, kde naozaj stačí jeden kód na všetky platformy.
Osobne keby som mal použiť Electron a mučiť sa v javascripte, tak by som radšej napísal 3x tú istú aplikáciu v C#/C++ a aspoň by vyzerala na každej platforme prirodzene a mala natívnu rýchlosť a možnosti. momentálne sa učím písať prenositeľne aspoň C++ kód bez GUI, to GUI asi treba písať pre každú platformu zvlášť.
Písať aplikáciu webovými technológiami môžeš, ak to má byť niečo nenáročné, našiel si nejaké pekné knižnice s konzistentným vzhľadom a nevadí, že to bude vyzerať podivne.

Jaro

Re:V čem psát přenositelné aplikace?
« Odpověď #6 kdy: 09. 01. 2016, 16:00:47 »
Zvazte pouzitie Javy a pribalte k aplikacii aj Java Runtime Environment s pomocou nastrojou ako launch4j a podobnych (je ich dost, staci poguglit), poskytuju siroke moznosti konfiguracie, aplikaciu je s nimi mozne zbuildovat ako klasicky exe, pripadne rpm, deb, os x app.
Na tvorbu UI mate v Jave AWT, Swing, SWT. Pripadne moze aplikacia mat v sebe embeddovany webovy server a UI moze byt browser s URL localhost.

uetoyo

Re:V čem psát přenositelné aplikace?
« Odpověď #7 kdy: 09. 01. 2016, 16:04:02 »
a ještě dodám, že z toho electronu (ale i dalších) jde vygenerovat např. exe aplikace, takže není problém s instalací nějakého runtime prostředí. To se ale většinou týká i zmiňovaného Pythonu, Ruby a Lua, akorát ta podpora podle mne není na tak vysoké úrovni, jaká je třeba u electronu.

Pro Python velmi dobře funguje PyInstaller.

Zelenac

Re:V čem psát přenositelné aplikace?
« Odpověď #8 kdy: 09. 01. 2016, 16:06:01 »
C#, blbneš? Hybaj si stáhnout Qt Cretator. A hned si v něm udělej prográmek, třeba si najdi examply a tam je pěkná věcička, jmenuje se to tuším network-chat. Jsou tam i další, třeba camera. Prgogramy v Qt si můžeš zkompilovat pro widle, pro linux, pro android, jde i iOS, nejsem si jistý jestli i WP. Je to nejlepší knihovna na světě, která strčí Pythony, Cšarpy i Javy do kapsy. Původně ji udělali v Nokii pro Symbian.

Zelenac

Re:V čem psát přenositelné aplikace?
« Odpověď #9 kdy: 09. 01. 2016, 16:08:32 »
s když se tak nabízí C#, tak se taky podívej jak moc se nenabízí: pokud vím, tak Visual Studio s Xamarinem stojí nějakých 20000,- Kč a to se mi nepodařilo dohledat, jestli je to jednorázová platba, nebo musíš platit ještě nějaký poplatek rok co rok.

Zelenac

Re:V čem psát přenositelné aplikace?
« Odpověď #10 kdy: 09. 01. 2016, 16:21:09 »
Jo a ona je sice i pro Python, jenže Python je přebytečný šunt, a když se pro něj něco vyvíjí, tak je to mrhání časem, místo aby se dělaly pořádné knihovny pro C++. Když Qt, tak jedině s C++ 8)

Honza

Re:V čem psát přenositelné aplikace?
« Odpověď #11 kdy: 09. 01. 2016, 16:25:23 »
s když se tak nabízí C#, tak se taky podívej jak moc se nenabízí: pokud vím, tak Visual Studio s Xamarinem stojí nějakých 20000,- Kč a to se mi nepodařilo dohledat, jestli je to jednorázová platba, nebo musíš platit ještě nějaký poplatek rok co rok.

1 vývojářská licence pro Qt stojí $350, měsíčně, aha?

arnold

Re:V čem psát přenositelné aplikace?
« Odpověď #12 kdy: 09. 01. 2016, 16:26:52 »
QT vypada fajn

Zelenac

Re:V čem psát přenositelné aplikace?
« Odpověď #13 kdy: 09. 01. 2016, 16:29:23 »
s když se tak nabízí C#, tak se taky podívej jak moc se nenabízí: pokud vím, tak Visual Studio s Xamarinem stojí nějakých 20000,- Kč a to se mi nepodařilo dohledat, jestli je to jednorázová platba, nebo musíš platit ještě nějaký poplatek rok co rok.

1 vývojářská licence pro Qt stojí $350, měsíčně, aha?

Vsadím se, že těch 350$ platíš jen v případě, pokud chceš support, jinak to není nutné ani pro komerční apps.

jaasg

Re:V čem psát přenositelné aplikace?
« Odpověď #14 kdy: 09. 01. 2016, 17:11:03 »
> kniznice
> všude stejnou problematiku

vies co napis to v C, o 20 rokov len prekompilujes a mas vybavene

pokial ta všude stejna problematika je nejake GUI, tak sorry
ale GUI sa rychlo vyvija a hladat svaty gral v tejto oblasti je naivne.