15 септембар 2013

Delphi for Android - Edit i ListBox kontrole

Edit i ListBox su vrlo često korišćene kontrole na mobilnim uređajima. Evo i primera:

Kreiraću novu FireMonkey Mobile Blank aplikaciju i sačuvati projekat kao Edit_ListBox.dproj.

Na formu sam stavio jednu Edit kontrolu i podesio je ovako:
Align - alTop
StyleLookup - searchedit
U Items Designeru Edit kontrole dodao sam TClearEditButton.

Dodao sam jedan ListBox i podesio:
Align - alClient
ShowCheckboxes - True

Sve to treba da izgleda ovako:

Design View

Kompletan source code za manipulaciju Edit i ListBox kontrolama
Izgled aplikacije na telefonu

Izgled aplikacije na telefonu

Delphi XE5 - Hello Android World!

Bez ovoga jednostavno se ne može početi :)

Projekat sa jednom Labelom i jednim Buttonom:

Za labelu, podešeno je sledeće:
Label1
  Align - alTop
  Height - 57
  TextAlign - taCenter
  VertTextAlign - taCenter
  WordWrap - True


Za dugme, napisan je jednostavan OnClick:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Text := 'Zdravo Android svete!';
end;

Projekat je sačuvan pod imenom HelloAndroidWorld.dproj i pokrenut - Shift+Ctrl+F9. (naravno telefon je prethodno priključen na računar USB kablom i odabran kao Target device).

Evo i kako to izgleda:
Design izgled ekrana

Code view
Pokrenuta aplikacija na telefonu
Pritisnuto dugme
Informacije o aplikaciji
Informacije o aplikaciji

Delphi XE5 - Prvi utisak

Dočekasmo još jednu verziju Delphija - 19. po redu (trinaesta je preskočena). Kao zakleti "delphijevac", ne propuštam priliku da vidim šta je sve novo i u ovoj verziji, a od mojih školskih dana i druženja sa prvom, 16-bitnom verzijom, ovaj RAD alat je postao punoletan. Za to vreme neke stvari su sazrele, mnogo toga je novog, nešto je već napušteno i zaboravljeno, a dinamika promena je, čini mi se, sve veća (starim...). Osvrnuću se samo na pojedinosti koje su na mene ostavile snažan utisak:
  • VCL i Win32 okruženje
  • DBExpress/Midas
  • RaveReports
  • Kylix/CLX
  • Interbase 6
  • Delphi 7
  • .NET
  • Unicode
  • FireMonkey

Poslednje u ovom nizu je upravo i ono najnovije, što stiže u verziji XE5 - podrška za "native" razvoj aplikacija za Android platformu. iOS je tu već nekoliko verzija, ali mi to nije privuklo pažnju, najviše zbog male popularnosti Apple hardvera u Srbiji, u odnosu na PC i Android. A podršku za Android sam iščekivao sa priličnim nestrpljenjem. I to iščekivanje je potrajalo dovoljno dugo da se upustim u avanturu zvanu Eclipse/Java/Android. Razmažen efikasnim Delphijevim okruženjem i jasnoćom Pascal sintakse, kad sam pokušao da razvijam aplikacije za Android u Eclipse Javi, imao sam utisak kao da sam iz automobila sa automatskim menjačem prešao u, paa - ne u onaj sa manuelnim menjačem, već onaj što se pali na kurblu... Kao što vegetarijanci ne jedu sve što ne jedu, tako ja jednostavno ne mogu da svarim Javu. Ali da se vratim na temu...

XE5 je stigao. Podrška za Android je tu. I kako to izgleda?

Naizgled lepo - jedan "codebase" - Delphi codebase za više platformi, ili u prevodu - jednom napisan kod može jednostavno da se kompajlira za win32, win64, Mac OSX, iOS, Android, Linux, uups - Linux još uvek ne može... :(

U suštini, ovo zaista radi. Delphi (Embarcadero) je prvi kome je to pošlo za rukom u "native" domenu. Naravno, za tako nešto, stari, dobro ispolirani VCL ide u zaborav, a na sceni se šepuri, još uvek ne dovoljno sazreli - FireMonkey. Neophodni su još i Android SDK/NDK i naravno - mobilni uređaj iliti telefon, pošto se ispostavilo da AVD (Android Virtual Device) nije upotrebljiv. Osim toga, poželjno je naoružati se i strpljenjem, jer svako kompajliranje, prenos aplikacije na telefon i pokretanje traju prilično dugo. Ali na kraju sve radi, čak i debugging.

Većini smrtnika sa jeftinijim telefonima (sa manje skladištenog prostora i RAMa) neće se dopasti veličina mobilne FireMonkey aplikacije - "Hello World" zauzima preko 20MB prostora na telefonu i koristi blizu 30MB RAMa (.apk fajl je oko 5MB). Za telefon, to je možda previše.

Osim Android podrške, izdvojio bih još i poboljšanu FireDAC kolekciju komponenti za rad sa bazama i pristup "RESTful" web servisima u oblaku (u narednim verzijama planira se i bolja integracija FireDACa sa DataSnapom, a DBExpress će izgleda ostati samo u vidu "legacy supporta").

Šta na kraju početku reći? Aktuelno, efikasno, korisno, u skladu sa trendovima današnjice, Embarcadero je napravio veoma interesantan development alat. Još kad ne bismo morali čekati 3-4. update da nestanu raznorazne bubice, bilo bi još bolje, pogotovo ako se uzme u obzir ne baš mala cena. U svakom slučaju, mislim da bi na kraju od svega moglo da ispadne nešto dobro za ovu ugroženu vrstu - Delphi programere.