Pogledajte određenu poruku
Staro 02. 02. 2010.   #5
srdjan
xyz
Grand Master
 
Datum učlanjenja: 25.10.2006
Poruke: 893
Hvala: 87
346 "Hvala" u 163 poruka
srdjan ima spektakularnu aurusrdjan ima spektakularnu aurusrdjan ima spektakularnu aurusrdjan ima spektakularnu auru
Post

@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...
srdjan je offline   Odgovorite uz citat
3 članova zahvaljuje srdjan za poruku: