DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web aplikacije, web servisi i software (http://www.devprotalk.com/forumdisplay.php?f=30)
-   -   Mobile development frameworks (http://www.devprotalk.com/showthread.php?t=8384)

robi-bobi 01. 02. 2010. 11:46

Mobile development frameworks
 
ili kako im je vec ime ;)
kao nekome ko se do sada bavio iskljucivo web developmentom, interesantni su mi razni javascript frameworks za razvoj mobilnih aplikacija

isti su cesto i cross-platform, te zato i jos interesantniji

imamo na forumu spomenut jedan nas (kako bese link?), a evo jos jedan koji sam nasao
http://phonegap.pbworks.com/Roadmap

koristite li neki, dajte jos koji framework

edit: evo ga nas, od srdjana:
http://sharpoid.com/

srdjan 01. 02. 2010. 12:55

Imaš i sledeće :)

http://www.appcelerator.com
http://rhomobile.com

ivanhoe 01. 02. 2010. 19:52

jel koristio neko neki od navedenih za konkretan projekat, pa da moze da nam prenese kratak osvrt za i protiv?

Srdjane pretpostavljam da si ti ispitao pazljivo konkurenciju, sta po tvom misljenju valja i ne valja?

milan.scepa 01. 02. 2010. 20:51

Ja sam svojevremeno trazio neki koji podrzava sve platforme (Android, iPhone, Symbian, Blackberry, Windows Mobile ...) ali takvog nema.

srdjan 02. 02. 2010. 17:55

@ivanhoe, sva tri navedena valjaju :)

Phonegap app je prava web-aplikacija koja se otvara u browseru, sa "bridgeom" ka objektima za GPS, kameru i sl. Slično kao što imaš ActiveX koji pristupa resursima "ispod" browsera.

Rhomobile liči na Sharpoid, ili obrnuto ;) Imaš kod u Ruby-ju koji se zajedno sa formama (HTML) kompajlira u bytecode, koji se potom izvršava unutar Ruby VM. Forme se prilagodjavaju native kontroli i postižu "native look". Kad se naidje na odgovarajući tag, na Androidu kreira android.widget.EditText, na BB kreiraš net.rim.device.api.ui.component.TextField.

Titanium od aplikacije i resursa kreira kompletan Android (IPhone, ...) source projekta, koji šalje serveru, a klijentu (developeru) se vraća buildovana app koju može da isproba u lokalnom emulatoru. On je i najprijatniji za oko i ono što sam ja testirao radi lepo.

E sad... ovo su sve projekti dosta ljudi, u koje su uloženi milioni, a Sharpoid je one-man-show iz spavaće sobe. Slede neke razlike i zašto su u moju korist :)

1. Svi navedeni kreiraju upakovane aplikacije za distribuciju, sa Holy Grail "kako zeznuti paragraf 3.3.2 IPhone SDK Agreementa", koji kaže da ne možeš da koristiš kompajlirani skript... zlo zvano Flash, C64 BASIC, ... :)

Sharpoid može da downloaduje bytecode, ali i da kompajlira downloadovan ili ukucan source. Ovo je definitivno prednost, ali po cenu pristupa IPhone AppStore. I dalje je moguće kreirati "blanko" aplikaciju i hardcodirati bytecode, čime se postiže ista stvar kao za Rhomobile, čije app umeju da prolaze u AppStore.

Tumačenje 3.3.2 je zbog nedavne promene "AND u OR" prilično labavo i, koliko sam ja pratio diskusije na netu, zavisi od toga na koju nogu je ustao Apple inženjer koji tog dana radi review... Zato ja nisam prevelik IPhone entuzijasta kad je moj projekat u pitanju, iako ne bi bio problem napraviti IPhone port jednostavno mi se to ne radi jer mislim da je to sve zajedno velika nepravda :)

2. Runtime je popriličan, Hello World za Titanium je 1.3MB, za Rhomobile kažu slično. Hello Sharpoid sa sve kompajlerom < 100 KB

3. Sva tri su namenjena web-programerima. Postoje i ljudi koji nisu web programeri :) i ne poznaju HTML/CSS/Ruby/... Sharpoid više liči na Visual Studio forme ili čak Delphi nego web programiranje. Ovo je delimično subjektivna stvar, a osim toga ciljna grupa mi obuhvata i casual programere.

Kôd:

var x = new XMLHttpRequest();
x.onReadyStateChange = function (e)
{
  if (x.status == 200)
    console.msgBox("OK", x.responseText, true);
  else
    console.msgBox("Status " + x.status, x.responseText, true);
};

var username = console.read("Unesi Twitter korisnicko ime");
if (username)
{
  var password = console.read("Unesi Twitter lozinku");
  if (password)
  {
    var tweet = console.read("Unesi novi tweet");
    if (tweet)
    {
      var url = "http://twitter.com/statuses/update.xml?status=" + tweet.urlEncode();
      x.open("POST", url, true, username, password);
      x.send(null);
    }
  }
}

4. Jednostavnije testiranje... ukucaš gornji source, klikneš na RUN. Ispraviš source, klikneš RUN. Ovi navedeni imaju nekoliko slojeva izmedju programera i izvršnog programa, što sve zajedno radi, ali ovo je definitivno lakše i brže.

5. Jednostavan alat. Radiš u desktop IDE-u ili na web-sajtu. Treba vremena i rada da to postane dopadljivo na oko, ali već sad se može isprobati kako radi. Prisustvo source-a u aplikaciji takodje omogućuje i source level debugger.

6. Jednostavnija distribucija. Kad je source ispravan, klikneš "objavi", gotovo. Imam neke interesantne ideje na ovu temu koje neću sad da ureknem. :)

7. Nekoliko načina rada: console (npr. telnet), canvas (tetris), ui (twitter). Kad radiš web-aplikaciju imaš samo web-aplikaciju.

8. Lakše portovanje. Portuje se VM, JS objekti i Sharpoid API za platformu. Samim tim nije ograničeno na telefone: možeš praviti Sharpoid app za .NET MF. Nisam preveo na C, ali trebalo bi da radi mega-brzo sudeći po .NET portu.

Mogu se praviti desktop aplikacije, netbook aplikacije (npr. kad se pojave Android netbuci) i tako...

Veoma bitno za mobile priču: ni jedan od "velikih" ne radi na JavaME, sigurno zbog obima runtimea. Iako nemaju takav buzz, novi Sony, Samsung ili LG teško da se mogu nazvati "dumb phone". Osim toga to je i dalje najrasprostranjenija platforma. Sharpoid radi na JavaME sasvim lepo.

9. Jeftinije. Rhomobile ima prilično skupe komercijalne licence, Titanium takodje ima u planu.

10. Nije open source - ovo je da me ne bi drndali na forumu kad krenem da naplaćujem :P

@milan.scepa, nije toliko problem podržavati sve navedene, koliko je problem razlika u mogućnostima svake od navedenih. Pogledaj matricu sa phonegap ili Rhomobile. Aplikacija koja bez izmena podržava sve navedene verovatno nije previše komplikovana.

Mislim da je "code once, run everywhere" pogrešan pogled na stvar, nije uvek radilo ni kod Jave, a kamoli kod ovako različitih uredjaja. Ako ti to treba uvek imaš mobile web.

Moja vizija sa Sharpoidom je napraviti Turbo Pascal :) za mobilne sa ultra jednostavnom distribucijom, mogućnostima sličnim "velikim" frameworcima + neke stvari vezane za poslovnu primenu. Da možeš da napraviš i Tetris i "mobilno knjigovodstvo".

Programiranje mobilnih treba da bude fun, a moje dosadašnje iskustvo, iako veoma interesantno, retko kad je bilo fun...

bluesman 02. 02. 2010. 18:16

Uh, što ne volim kada neko napiše ovoliki post, interesuje me da pročitam ali nemam vremena za toliko čitanja :(

srdjan 02. 02. 2010. 18:28

kraća verzija: poslaćeš mi fakturu jednog dana :)

MorenoArdohain 02. 02. 2010. 18:54

@srdjan, mozda je malo offtopic, ali ja sam pokusao da se igram sa tvojim sharpoid-om, i probao da ucitam neke od aplikacija koje imas tamo na sajtu. Medjutim, uvek mi izbaci samo Compile OK posle klika na "Testiraj"..?

srdjan 02. 02. 2010. 19:02

^ Da... pravilnije bi bilo da se zove "provera" (syntax check) jer to jedino i radi (probno kompajliranje u appletu). Ovo je da se ne bi desilo da učitaš neispravnu aplikaciju u telefon.

Startovanje se radi u telefonu (ili emulatoru) nakon "objave" ispravne verzije.

Moguće je i startovanje online, na canvasu tog istog testnog appleta, ali to još nije uradjeno...

milan.scepa 02. 02. 2010. 20:27

@srdjan zahvaljujem ti na "dugackom" postu i objasnjenjima.

Nadam se da ces ti meni uskoro ispostaviti fakturu ;)


Vreme je GMT +2. Trenutno vreme je 01:05.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.