RAINBOF: dartbb vic nefunguje a fungovat nebude vzhledem k tomu jak je html na soucasne platforme OS7/7.1 nepouzitelny. Nikdy z neho nedostanu takovy uzivatelsky komfort jako ma nativni kod v jave a dost by me to stvalo. Ty telefony jsou na to moc pomale a je tam moc omezeni a kompromisu. jave se mi ted venovat neche i vzhledem k tomu ze s ni RIM v OS10 uz moc nepocita.
Momentalne delam na trochu netradicne fungujici knihovne pro OS10 webworks psane v
dartu pracovni nazev
dartBB (poustet v chrome se zapnutou touch podporou nebo OS10 simulator). Oproti knihovnam typu bbUi.js, jquery mobile a podobnym ktere nejdrive vykresluji hromadu zpytvoreneho html a pote ho prerenderovavaji wrapry a hromadou balastu coz ma za nasledek hromady zbytecneho html generuju html naprimo z komponent jako napriklad Cascades(clovek nemusi umet ani tuk v html nebo css ale musi zas umet trochu programovat). Diky dartu je syntax podobna cascades celkem dost napr:
Cascades:
SegmentedControl *segmented = SegmentedControl::create()
.add(bb::cascades::Option::create()
.text("option 1")
.value("option1")
.selected(true))
.add(bb::cascades::Option::create()
.text("option 2")
.value("option2"))
.add(bb::cascades::Option::create()
.text("option 3")
.value("option3"));
TextField *textfield = TextField::create();
textfield.setInputMode(TextFieldInputMode.Password);
dartBB:
SegmentedControl segmented = new SegmentedControl()
..add(new Option()
..text("option 1")
..value("option1")
..selected(true))
..add(new Option()
..text("option 2")
..value("option2"))
..add(new Option()
..text("option 3")
..value("option3"));
TextField textfield = new TextField();
textfield.setInputMode(TextFieldInputMode.Password);
Reflection v dartu jsou momentalne implementovane jen castecne a nejdou kompilovat do js takze to ted uplne nejde ale do budoucna premyslim i o simulaci Qt mechanizmu pro SIGNAL/SLOT a nahrazeni tim bindovani listeneru ala javascript
Vyhoda dartBB by bylo
- vynechani jedne zbytecne painting sekvence neceho co se stejne prekryva wrapry jako soucasne gui knihovny v js
- syntax a principy podobne Cascades (komponenty, oop, nepotreba znalosti html, css)
- mene kodu potrebneho pro vykresleni komponent diky vetsimu pouzivani HTML5 a CSS3
- bohatsi jazyk a mchanizmy nez javascript nabizi
- pokud by se vsechno povedlo asi by nebyl problem v dartu vyresit nejaky kompilator JSON > dart > js kompilace a deklarace gui pomoci nejakeho jsonu jako to ma Qt s qml treba
Momentalne implementovane komponenty vzhledem a funkcionalitou pripominaji nativni komponenty casscades asi vic nez kterakoliv RIMem podporovana js knihovna nabizi. Jediny problem je ze uz to neni hloupe placani jquery selectoru a chaoticka snaha nejak rozumne strukturovat kod ale clovek u toho uz musi trosku vic premyslet, Ted musim vymyslet a vyresit nejaky invalidate mechanizmus (asi neco podobneho jako InvalidateManager v adobe air) pro class jmena a kontrolovani kdy je potreba zmenit nejake hodnoty komponent nejlip bez hromady listeneru. Takze pokud by se chtel nekdo pridat nebo vedel o necem co pouziva podobne veci tak sem s tim:D