» »

cross platform development

cross platform development

sebavet ::

Nekaj časa že ne sledim temu področju pa sem naletel na problem, ko bi moral izdelati/uporabiti app za pametne telefone (iOS in Android) pri nekem širšem procesu. Aplikacija, ki bi jo moral izdelati po zahtevnosti ne presega zahtevnosti izdelave telefonskega imenika (vstavljanje novih kontaktov, in iskanje po bazi). Zanima me ali obstaja kakšen cross platform development tool (mogoče tudi online) za kreiranje res preprostih appov glede na zgoraj opisane potrebe, ali je bolje stvar dat izdelat freelancerju zaradi kompleksnosti problema. Eden izmed razlogov zakaj ne želim stvari dat izdelat appa freelancerju je v tem, da se bo stvar še cca. 2 leti prilagajala. Spremembe bodo sicer majhne, a pomembne. Sam se ne želim ukvarjati z inštalacijami pregolomaznih toolov za en precej preprost app, zato iščem preprost "app creator".
  • spremenil: sebavet ()

smacker ::

Rabiš samo lokalno bazo, ali se morajo vneseni kontakti pokazat vsem uporabnikom aplikacije?
Za to drugo boš rabil strežnik z bazo in API za dodajanje/iskanje kontaktov. App se da nato izdelat s kakim hybrid app frameworkom, kot je Ionic ali PhoneGap. Stvari niso enostavne, če nimaš pojma o programiranju, ne boš spravil skupaj. Hybrid appi bazirajo na spletnih tehnologijah, tak da je dovolj če poznaš javascript in html, css. Za strežnik in API lahko uporabiš katerikoli jezik.

kogledom ::

Ni samo izdelava problem, tudi deploy na store, če ga še nisi delal, ti zna delati preglavice in požreti preveč ur. Ob rednih popravkih bo deploy še toliko bolj važen/pogost.

slodreamer ::

ionic ima tool imenovan creator prav za to kar iščeš, mislim pa da je namenjen bolj prototipiranju kot razvoju produkcijske aplikacije. Od prototipa do tekoče delujoče aplikacije, ki pokriva tudi robne primere in vse podrobnosti, pa je ponavadi še kar nekaj dela.

sebavet ::

Programirat 'znam'. Stvar sem pripravil v phpju+jquerymobile, ampak si želim spravit skupaj stand alone app z lokalno bazo. App se ne bi povezoval s strežniško bazo. Sem pa opazil, da deploy na store ni preprost. Dovolj bi bila platforma, ki omogoča le izdelavo prototipa.

xmetallic ::

Mavrik ::

Xamarin je daleč najboljše za to - lahko probaš uporabiti Xamarin.Forms, sam če hočeš narediti dobro aplikacijo, izdelaš ločen vmesnik za obe platformi s skupno osnovo.
The truth is rarely pure and never simple.

111111111111 ::

S phonegapom boš imel težave pri deployu na app store, še posebej če misliš brskat po imeniku. Kolega hvali Xamarin, samo iz lastnih izkušenj ne vem ali je OK. Potrebno je pa znanje C#.

EDIT: vidim da so me že prehiteli. Browser mi ne osvežuje. :)

Zgodovina sprememb…

slodreamer ::

111111111111 je izjavil:

S phonegapom boš imel težave pri deployu na app store, še posebej če misliš brskat po imeniku. Kolega hvali Xamarin, samo iz lastnih izkušenj ne vem ali je OK. Potrebno je pa znanje C#.
EDIT: vidim da so me že prehiteli. Browser mi ne osvežuje. :)


Imenika res še nisem prebiral iz aplikacije, sicer pa imamo Ionic aplikacije tako na App store kot Google Play in nobenih težav s tem.
Veliko delam z Ionic, sem pa zavoljo razgledanosti preizkusil tudi Xamarin, in po svojih izkušnjah trdim, da je Ionic enostavnejši za namestitev, razvoj, oblikovanje in testiranje/debugiranje.
Xamarin pa ima prednost glede hitrosti delovanja (native koda), kar pa pri pisarniških aplikacijah (forme) niti ne pride do izraza.

sebavet ::

Html, js in css mi je bližje kot C#. Pred časom se nekje zasledil neko online aplikacijo za preproste appe, ne spomnim se naslova. Izdelani so bili jedilni listi za restavracijo. Ne spomnim ali je bilo možno uporabit lokalno bazo.

slodreamer ::

za lokalno bazo imaš v JavaScript najenostavneje local storage kamor shranjuješ pare key-values
podprto v vseh relevantnih browserjih

sebavet ::

Imenika res še nisem prebiral iz aplikacije, sicer pa imamo Ionic aplikacije tako na App store kot Google Play in nobenih težav s tem.
Veliko delam z Ionic, sem pa zavoljo razgledanosti preizkusil tudi Xamarin, in po svojih izkušnjah trdim, da je Ionic enostavnejši za namestitev, razvoj, oblikovanje in testiranje/debugiranje.
Xamarin pa ima prednost glede hitrosti delovanja (native koda), kar pa pri pisarniških aplikacijah (forme) niti ne pride do izraza.


App ne bo brskal po imeniku, app bo le podoben preprostemu imeniku (imel bo funkcije dodajanja in iskanja po bazi).

111111111111 ::

slodreamer je izjavil:

Imenika res še nisem prebiral iz aplikacije, sicer pa imamo Ionic aplikacije tako na App store kot Google Play in nobenih težav s tem.
Veliko delam z Ionic, sem pa zavoljo razgledanosti preizkusil tudi Xamarin, in po svojih izkušnjah trdim, da je Ionic enostavnejši za namestitev, razvoj, oblikovanje in testiranje/debugiranje.
Xamarin pa ima prednost glede hitrosti delovanja (native koda), kar pa pri pisarniških aplikacijah (forme) niti ne pride do izraza.


Govoril sem o Phonegapu ne o Ionic.

@sloDreamer: Z local storage znajo biti težave, ko boš pobrisal browser cache.

@sebavet: Če ne misliš pretirano širit applikacije, je dovolj že kakšna baza v datoteki, ki ima zapisan json, pa lahko naknadno spišeš server API, če boš kdaj rabil, ki ti bo vrnil potrebni JSON. LAhko si pa pogledaš tole: https://developers.google.com/web/progr... samo ni podprto še povsod ideja je pa dobra za kdaj v prihodnosti.

Mavrik ::

Pisanje mobilnih aplikacij v Javascriptu/HTMLju je krasna bližnjica za pekel pri podpori in iskanju napak. Večina takih aplikacij tudi zgleda za en drek in se grozno uporablja. Ne priporočam.
The truth is rarely pure and never simple.

smacker ::

Ionic bo super, local storage se hrani na nivoju aplikacije v cache in ni odvisen od browserja. Dokler ne pobrišeš appa podatki ostanejo. Lahko urediš še "backup" cacha v json. Stestiraj edino, kaj se zgodi s cachom aplikacije, ko posodobiš app.
Boljše JS+HTML kot pa da nepoznavalec dela native v Javi in Objective C.

Mavrik ::

smacker je izjavil:


Boljše JS+HTML kot pa da nepoznavalec dela native v Javi in Objective C.


Nikakor in pod nobenim pogojem. Tisti človek potem zavozi vse kar se da zavoziti v native in na vrhu vsega še niti ne ve kaj je narobe, večino časa pa zapravlja z hrošči v brskalniku.

Kot smo že rekli - Xamarin.
The truth is rarely pure and never simple.

shadeX ::

Mavrik ::

LibGDX je grafični pogon za igre, ki je precej neuporaben za standardne aplikacije - nima gradnikov za UI, niti ti ne pomaga z njimi.

Je pa ok če dejansko delaš igrico (čeprav se Unity precej bolje obnese).
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • spremenil: Mavrik ()

smacker ::

Mavrik je izjavil:

smacker je izjavil:


Boljše JS+HTML kot pa da nepoznavalec dela native v Javi in Objective C.

Nikakor in pod nobenim pogojem. Tisti človek potem zavozi vse kar se da zavoziti v native in na vrhu vsega še niti ne ve kaj je narobe, večino časa pa zapravlja z hrošči v brskalniku.
Kot smo že rekli - Xamarin.

Please elaborate. Maš kak vir, link, research na to temo? Tak kot si napisal, bo najmanj telefon eksplodiral ko bo hybrid app zagnal. Meni deluješ kot Xamarin dev, ki je to probal, se naučil in mu je super, za ostale tehnologije pa ne želi slišat. Hybrid app frameworki so namreč precej dodelani in se hitro razvijajo.

shadeX ::

Mavrik je izjavil:

LibGDX je grafični pogon za igre, ki je precej neuporaben za standardne aplikacije - nima gradnikov za UI, niti ti ne pomaga z njimi.

Je pa ok če dejansko delaš igrico (čeprav se Unity precej bolje obnese).


Mja to z gradniki se strinjam. To da je grafični pogon pa nima nobene veze. Libgdx je framework ki ti izpostavi knjiznice s katerimi pac delas in potem exportas na zeljeno platformo. Zdelo se mi je pac omembe vredno, ker sem tudi sam imel podoben problem, resil pa ga elegantno z ze poznano java kodo.

Unity je pa prav game engine, in bo binary na koncu tehtal preko 40MB napram libgdx binary(par MB).

111111111111 ::

Za tako preprosto aplikacijo kot jo rabi OP mislim da je praktično katerakoli cross-platform rešitev OK. Težava je v 2 letnem prilagajanju, saj zna zadevo zakomplicirat in upočasnit in v takem primeru je cross platform izredno težko debugirat, se včasih splača kar na novo zadevo postavit.

TAko da si najprej dobro razjasni kaj hočeš in kakšna je prihodnost tvojega appa.

Mavrik ::

smacker je izjavil:


Please elaborate. Maš kak vir, link, research na to temo? Tak kot si napisal, bo najmanj telefon eksplodiral ko bo hybrid app zagnal. Meni deluješ kot Xamarin dev, ki je to probal, se naučil in mu je super, za ostale tehnologije pa ne želi slišat. Hybrid app frameworki so namreč precej dodelani in se hitro razvijajo.


Kar precej let izkušenj s popravljanjem takih "precej dodelanih appov", ki so se izkazali skoraj vedno za dovolj zavožene da bi bil 2x native razvoj hitrejši.

Če pa rabiš še linke:

TheLadders
Facebook
LinkedIn

In še več in še več. Pri JS/CSS/HTML aplikacijah je preprosto problem da nimaš načina kako sploh pogruntati zakaj ti browser povzroča težave, frameworki pa so precej slabo napisani (med vsemi, ki jih mi podpiramo, je recimo Appcelerator najhujša grozota, Cordova pa je takoj za petami. Ionica pa noben ne uproablja tako da je podpora vprašljiva).

Za tiste, ki niso sposobni delati v drugem kot v JS, bo počasi pripravljen React Native, samo trenutno je tako polomljen da boš večino časa se boril z njim kot pa pisal aplikacijo.

Še enkrat: Xamarin. Ni popoln, je pa precej korakov pred ostalim sranjem.
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • spremenil: Mavrik ()

krho ::

Se je bolj vešč js-ja potem ima react native...
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

smacker ::

HTML5 app ni čisto isto kot hybrid. HTML teče v browserju, hybrid pa je native app z WebView kontrolo in delujočimi APIji za dostop do strojne opreme in komponent operacijskega sistema (v TML5 je s tem res problem).
Ladders, FB, LinkedIn operirajo z ogromnimi količinami podatkov. Poleg tega majo potrebe po custom UI kontrolah, to so podjetja ki razvijajo nove GUI elemente, ki jih kasneje drugi kopirajo (pull to refresh, infinite scroll itd.) Čim uporabiš hybrid, si omejen na geste, ki jih prepoznava WebView. Drugi minus hybrid appov je battery drain, žal tu programer nima veliko kontrole. Za appe tipa FB, ki se uporabljajo 24/7 je to nesprejemljivo, za programerja začetnika pa pomoje celo prednost, ker maš neko normalno porabo baterije brez posvečanja pozornosti. Od kar so ti giganti šaltali nazaj na native je že kar nekaj časa, hybrid appi so v tem času precej napredovali. Ionic ma že native scroll, push notificatione, tudi v2.0 beta je zunaj, z AngularJS 2.0 ki baje občutno izboljša performance (nisem še mel časa preizkusit).
OP rabi simple app z vnosno formo in local storage. Ionic je super, ker dobiš v kompletu še dev server in lahko na PCju poganjaš v browserju in inspectaš kodo. Chrome je zelo blizu native Android browserju. Poleg tega Cordova zapeče to v native app z WebView kontrolo, tako da maš local storage ločen od browserja.
Support? Ni problema, maš knjigo, video vodiče, dober community ki je pripravljen pomagat. Uporabnikov je kar precej: Sworkit, Moodle,... http://showcase.ionicframework.com/
Ne pravim da je hibridno v splošnem boljše od native, mobile razvijalci naj se kr držijo native appov. Ampak če hoče web developer en simple app skupaj spacat, ne vidim nobenih zadržkov za hybrid.

sebastjan28 ::

Če gre za stand-alone rešitev, definitivno še en glas za Xamarin.

Iskanje napak in debuggiranje v raznih phonegap hitro postane zelo mučno početje. Če gre res za enostavno rešitev, bi bila verjetno tudi izdelava dveh ločenih applicakacij bila v praksi dokaj "zadovoljiva" opcija.

galu ::

Mavrik je izjavil:

Pisanje mobilnih aplikacij v Javascriptu/HTMLju je krasna bližnjica za pekel pri podpori in iskanju napak. Večina takih aplikacij tudi zgleda za en drek in se grozno uporablja. Ne priporočam.


Can confirm. Izgled se da izpiliti (ampak vzame kar nekaj časa), performance pa ostane grozen.
Tako to gre.

Mavrik ::

krho je izjavil:

Se je bolj vešč js-ja potem ima react native...


React Native na tej točki še vedno ni uporaben za resno delo. Precej obeta, samo trenutno ima še precejšnje probleme z osnovno funkcionalnostjo (še posebej na Androidu, ki je sekundarna platforma) in hitrostjo (trenutno se recimo še vedno ukvarjajo kako delati sezname dovolj hitre pri scrollanju). Ne priporočam za resen projekt - čez 6-12 mesecev morda.
The truth is rarely pure and never simple.

gapipro1 ::

Lahko se odločiš tudi za sledečo kombinacijo:

https://coligo.io/building-a-mobile-app...


VueJS ratuje vedno bolj in bolj popularen framework in je res super produktiven.

111111111111 ::

OK. A je kdo resno delal s Cordovo? jaz sem nazadnje ene 2 leti nazaj, so kaj izboljšali, je to za produkcijo al je še vedno hobby?

_Dormage_ ::

111111111111 je izjavil:

OK. A je kdo resno delal s Cordovo? jaz sem nazadnje ene 2 leti nazaj, so kaj izboljšali, je to za produkcijo al je še vedno hobby?


Zadeva je ok. Izboljšav je kar nekaj, predvsem build system in plugin management.
Sej tudi ionic uporablja cordovo z AngularJS.

blackbfm ::

A je kaksen poseben razlog da rabis prav app na telefonu? Sicer naredis spletno aplikacjo, je dalec najmanj kompliciranja

slodreamer ::

111111111111 je izjavil:

OK. A je kdo resno delal s Cordovo? jaz sem nazadnje ene 2 leti nazaj, so kaj izboljšali, je to za produkcijo al je še vedno hobby?


Naša aplikacija Clausius Android in iOs - ionic build - ni perfect ampak glede na razpoložljive vire, se mi ne zdi slabo. Prvo verzijo smo imeli s Phonegap in custom JS.
Prednost tega je, da jo enostavno objaviš tudi kot spletno aplikacijo.
od androida 4.4 naprej je stvar dosti boljša, sploh debugiranje z chrome development tools direkt na napravi pa ne vem če ima kakšnega enakovrednega kandidata, možno pa da se motim
težko res dobro poznat več vzporednih tehnologij ...

Prednost ionica je, da ponuja že pripravljene komponente v stilu mobilnih aplikacij, ki jih lahko hitro uporabiš. Seveda pa lahko s Cordovo kombiniraš katerikoli javascript UI framework.

Zgodovina sprememb…

rognaj ::

Lepo.

V "Holiday function" imate v demo verziji v slovenščini "Vrnitev:"

slodreamer ::

rognaj je izjavil:

Lepo.

V "Holiday function" imate v demo verziji v slovenščini "Vrnitev:"


Hvala za opozorilo, ampak je namenoma tako, uporabnik vključi funkcijo holiday ko gre na dopust, in nastavi kdaj se vrne, ko se ta funkcija potem izključi.

jizzer ::

rognaj ::

slodreamer je izjavil:

rognaj je izjavil:

Lepo.

V "Holiday function" imate v demo verziji v slovenščini "Vrnitev:"


Hvala za opozorilo, ampak je namenoma tako, uporabnik vključi funkcijo holiday ko gre na dopust, in nastavi kdaj se vrne, ko se ta funkcija potem izključi.


Vse je v angleškem jeziku, samo "Vrnitev" je v slovenskem...

slodreamer ::

Vse je v angleškem jeziku, samo "Vrnitev" je v slovenskem...

Maš prav, hvala, je blo kar v HTML zapisano :))


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

javaScrpit ura

Oddelek: Programiranje
81605 (1209) Ahim
»

Programiranje Android

Oddelek: Programiranje
6927 (759) kuall
»

Razvoj mobilne aplikacije Kivy vs Ionic

Oddelek: Programiranje
61158 (1002) jukoz
»

Programiranje Android aplikacije

Oddelek: Programiranje
142281 (1610) nightrage
»

Microsoft odprl platformo .NET (strani: 1 2 )

Oddelek: Novice / Ostala programska oprema
5929816 (25666) MrStein

Več podobnih tem