Autor Téma: Obecne Build :)  (Přečteno 839 krát)

Offline raul

  • Hrdina
  • ****
  • Příspěvků: 413
  • Karma: 15
    • Verze Delphi: FPC :D
Obecne Build :)
« kdy: 13-08-2020, 13:13:31 »
Zdar,

1) funguje nekomu - a mohl by mi sdelit kdy se presne stane - zmena version cisla pro build pro store ? Nastaveno to mam ve vsech konfiguracich, presto nejsem sto vypozorovat kdy se to stane - idealne by to bylo s compile, ale to bych chtle hodne. Nicmene mnohdy se ani po Clean/Build verze nezmeni (a zjistim to po nahrani na play ze :) ). Blby je, ze mame vice aplikaci lisici se jen IFDEFy + kompilujeme 64 i 32bit jako .aab, tudiz by bylo prima to syncnout komplet (ne ze jedna verze bude jina nez druhej build).

2) Deployment - opravdu zijeme v 21.stoleti ? Nevite kdo to psal ? Dal by se pouzit jako odstrasujici priklad. Proc se neda zkopirovat radek ? Proc se neda rict, toto pravidlo plati pro ty a ty konfigurace ? To by bylo vsechno prima, kdyby si obcasne nerekl, ze nektery soubor (idealne libProxyAndroidService.so, u ktereho to zjistim az po spusteni ne hned) zahadne sam od sebe nemizel. Prepinatko konfigurace nahore funguje dle sve nalady. Pouziva to nekdo uspesne ? Jak ?

3) Vyse uvedene me vede k dotazu - neexistuje nastroj, ktery by umoznoval funkcni a rozumnou konfiguraci/build ?
Nutne je to co umi klasicky delphi, tzn vygenerovat binarky, nicmene predtim - klidne dle sablon a cehosi (pokud by mel funkcni prebuild apod tak si nektery veci dogeneruju sam (misto toho, aby to udelaly delphi kdy to maj umet treba ze)) - vygeneruje spravne build number, nacte treba nejake soubory apod (lisi se nam i Manifesty 32b/64b), a ve vysledku ulozi (opet klidne v eventu ja sam) vysledne instalace do rozumnych adresaru (fakt ne dvacatej podadresar, ktery s emusi s kazdym buildem i opustit).

4) Mozna to prijde divne, ale zjistuju, ze nektere veci se iniciuji kompilaci (umime zjistit, ze se zmenil zdrojak), nektere u build, nektere az po clean, a nektere obcas vubec. Jelikoz nefunguji (resp je jich nedostatek) eventy, neda se s tim udelat z me strany nic. Zde by se fakt siklo Pre/Post-Compile, Pre/Post-Deploy a jiste i dalsi.

Pro pobaveni:
- Uz jste nastavovali ikonky aplikace ? To mame cca 5 ikon, 3 typy (ikona, notifikace, splash),2 architektury (32b/64b), 3 konfigurace...
- Uz jste nastavovali prava aplikace ? To mame cca 100 prav, 2 architektury, 3 konfigurace...
- Uz jste chteli zobrazit na dnesnim androidu notifikaci ? (Autori zamerne vynechali nutne vlastnosti pro ovladani atributu dulezitosti)
- Uz jste si hrali na androidu se Zindexem ? Kupte si na to panaka, plati to Embt..
- Nedelejte si nikdy podrizenou konfiguraci, ale hodne ji bokem. Obcas totiz vezme parametr odjinud, nekdy i nahodne (Treba SDK).
- Nesnazte se do Delphi dostat vice SDK s tim, ze zkompilujete kod dle nich at pokryjete co nejvic zarizeni/uzivatelu. Prepinat to jde jen rucne (ne konfiguraci).

Kdyby nekdo chtel, protahnul jsem java2pas komplet android.jar (pro x verzi sdk), obcas (denne) se vyskytne neco, co delphi neimportovali, tak jsem to dotah (ano, je to zalezitost par minut, ale taky par hodin hledani v dokumentaci/souborech).



P.S. To ze mam otevreny oci neznamena, ze jsem hater. A to ze je nemam zavreny znamena, ze se na ty veci dokazu podivat tak jak jsou.
Na delphi je dobrej kompilator (asi), a to, ze se snazi neco vyprodukovat. Bohuzel, kvalita jde casto velmi daleko za kvantitou a jakmile chcete nedelate obycejnou db klikacku pro firmu, je s tim ihned potiz - at jiz s vykonem, ci moznostmi/kvalitou.

Pro Radka - na Delphi je udelano hodne prace, ale celej system se rozrezonoval do velmi casto naprosto nefunkcnich kombinaci - zel relativne beznych. A jeste rejp nakonec - kdyz si pred casem tak vychvaloval tu aplikaci seznamky, take se dalo rict, ze je to diky komponentam treti strany, a proto je to tak plynule, takto si jen prihrival polivicku EMBT, soft by byl bez Alcinoe (v tomto pripade) bylo nepouzitelny.
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2920
  • Karma: 106
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Obecne Build :)
« Odpověď #1 kdy: 13-08-2020, 14:05:23 »
ad 2), mas pravdu - nic moc, taky jsem zjistil, ze nektere polozky se automaticky generuji podle Options
ad 3)  https://www.monkeybuilder.io/ , ale je drahy. Ja pouzivam beta verzi necoho co zatim neni volne dostupne, a autor ma dovolenou, takze ti poslu jen PM
ad 4) Project , building / build events? ale nastroje to volaji lepe

Nerozumim ohledne toho alcinoe, ja ve VCL taky pouzivam VirtualTreeView, TMS, nekdo DevExpress a co jako? Jinakj u Androidu pouzivam jen specialni map komponentu a Kastri, a výsledek (cca 30 formulářů, 120000 řádku) funguje slušně a hodně svižně, až jsem sám překvapen jak jednoduše se mi to programuje - 10.4.
Embarcadero MVP - Czech republic

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1235
  • Karma: 51
    • Verze Delphi: 10.3
Re:Obecne Build :)
« Odpověď #2 kdy: 13-08-2020, 14:22:41 »
2) Když jsem viděl tu hrůzu, myslel jsem si, že na to vyzraju a ručně upravím příslušný soubor, jenže to pak mělo tendenci víc nefungovat než fungovat. (Potřeboval jsem přidat embedded Firebird, takže dost souborů - přidávat je jednou je opruz, dělat to dvojmo pro Debug/Release je samozřejmě dvojnásobný opruz, pokud to budu dělat pro 64bitový Android, tak znovu dvojmo...) Škoda, že používání tohohle "geniálního" nástroje nebývá na těch videích, kde třikrát kliknou a už spouští hotovou aplikaci :-)

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2920
  • Karma: 106
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Obecne Build :)
« Odpověď #3 kdy: 13-08-2020, 14:29:00 »
2) Když jsem viděl tu hrůzu, myslel jsem si, že na to vyzraju a ručně upravím příslušný soubor, jenže to pak mělo tendenci víc nefungovat než fungovat. (Potřeboval jsem přidat embedded Firebird, takže dost souborů - přidávat je jednou je opruz, dělat to dvojmo pro Debug/Release je samozřejmě dvojnásobný opruz, pokud to budu dělat pro 64bitový Android, tak znovu dvojmo...) Škoda, že používání tohohle "geniálního" nástroje nebývá na těch videích, kde třikrát kliknou a už spouští hotovou aplikaci :-)


Ale stejne pro 64bit musis pridat 64bit verzi ne, takze je jina nez 32bit embedded. Nebo to neni jako library? Prave z toho duvodu jsem zacal pouzivas sqlite, sice je to rychla sracka, ale je v systemu a FireDac s tim celkem umi.
Embarcadero MVP - Czech republic

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1235
  • Karma: 51
    • Verze Delphi: 10.3
Re:Obecne Build :)
« Odpověď #4 kdy: 13-08-2020, 14:35:08 »
Ale stejne pro 64bit musis pridat 64bit verzi ne, takze je jina nez 32bit embedded. Nebo to neni jako library? Prave z toho duvodu jsem zacal pouzivas sqlite, sice je to rychla sracka, ale je v systemu a FireDac s tim celkem umi.

Ano, musím - pořád v sobě chovám naději, že půjde vše zkopírovat a jenom hromadně přepsat složku, ze které se to bere, ale nevím nevím. Ani si nejsem jistý, zda stačí změny provést jen v souboru .deployproj, nebo ještě i někde jinde. Zatím to odkládám, protože Firebird pro 64bitový Android není vydaný jako binárka, a já netuším, zda to jde s nějakým rozumným úsilím zkompilovat.

Offline raul

  • Hrdina
  • ****
  • Příspěvků: 413
  • Karma: 15
    • Verze Delphi: FPC :D
Re:Obecne Build :)
« Odpověď #5 kdy: 13-08-2020, 14:35:37 »
3) Podivam se, nevim co znamena drahy. Pro predstavu, kazdy final build je zalezitost zhruba 2-3 hodin, coz je hruza, na to, ze by to melo jit plne zautomatizovat.
4) Ty tri ? PreBuild, PostBuild, PreLink ? Ty to fakt nezachranej vzhledem k nekolikafazovemu prekladu (Clean, Build, Deploy(ci Run), nekolika typu konfiguraci atd). PreCokoliv - Idealni pro zmenu nejen build cisla (K cemu mame rychly Compile, kdyz stejne musime davat Build aby se zvedlo cislo obecne vzdy) - a to treba rucne v bataku (kdyz to nejsou schopni zaridit funkcne sami). Taky by se daly menit i dalsi veci (cislo verze treba, ktere klido na konci muze mit buildnum (tohle cislo pak bere Play a siklo by se ho mit taky syncnuty rozumne, tzn autoincrement). Take by se daly odstranit soubory, ktere si to pak umi vytvorit (kdyz uz neexistuji, jinak je to zdatne ignoruje, treba .jar, ale mam pocit, ze obcas i rozhrani servisu apod). No a PostDeploy minimalne by se take hodil - treba pro zkopceni .aab nekam rozumne, ne do x-te vetve x-teho podadresare (Coz se nebavim o moznosti nastavit treba jmeno vysledneho balicku primo v konfiguraci (tzn treba my mame ... lite, ... ... Pro, ale balicky stejne (odvahu udelat z toho 3 projekty fakt nemam, neb to uz se z toho uplne pos...)).

Pred casem si tady poukazoval na aplikaci Android, ve smyslu podivejte se, co se da v Delphi napsat. No cele rozhrani vyuziva knihovny tretich stran, neb ty z Delphi jsou zalostne - viz demo Alcinoe a scrollbox s rectangly treba nejakych 16fps vs 60fps (na Xiaomi Mi9 tzn Q855 - tzn jeden z nej mobilu, uz na Pixle 3a uz je to o dost horsi). Btw - primarne jsem leta psal serverovy veci, vzdy bez komponent delphi, vse sam nebo s kolegama a ... No, rychlost byla spickova = kompilator ok, optimalizator ok, ale samotne komponenty chybove a pomale. Pokud tedy chci poukazat na kvalitu, mohu rict, podivejte, toto je prelozeno v delphi (a kdyz budes chtit bejt fakt fer, tak pridat - s pomoci komponent tretich stran, nebot ty original stojej zaprd). Jukni na to demo, uvidis sam jakej je tam rozdil. Bohuzel, take nejsou dokonale (nicmene jsou zadarmo a ne od velke firmy), takze jsme je zatim nepouzili ve finale.
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline raul

  • Hrdina
  • ****
  • Příspěvků: 413
  • Karma: 15
    • Verze Delphi: FPC :D
Re:Obecne Build :)
« Odpověď #6 kdy: 13-08-2020, 14:41:44 »
2) Když jsem viděl tu hrůzu, myslel jsem si, že na to vyzraju a ručně upravím příslušný soubor, jenže to pak mělo tendenci víc nefungovat než fungovat. (Potřeboval jsem přidat embedded Firebird, takže dost souborů - přidávat je jednou je opruz, dělat to dvojmo pro Debug/Release je samozřejmě dvojnásobný opruz, pokud to budu dělat pro 64bitový Android, tak znovu dvojmo...) Škoda, že používání tohohle "geniálního" nástroje nebývá na těch videích, kde třikrát kliknou a už spouští hotovou aplikaci :-)

Tak tohle mam za solidni nightmare, stejne jako prava a dalsi. Mel jsem taky predstavu to zkusit rucne a treba v precomile bych si to porad prehraval znovu a znnovu, kdyby teda nejaky PreCompile bylo ze. Aktualne jsme na 2*architektura,3*typy release (a to zel u nekolika projektu, ono uz jen New Projekt je solidni nightmare.. prave kvuli prvnotnimu nastaveni alespon trochu). Bohuzel, relativne fungujici reseni s adresarem res (byt treba s templaty) by bylo asi o dost uzitecnejsi (max si treba v configuraci vybrat cestu k tomuto res).

5) Aktualne sem zaradim i ZIndex, neb pred chvili jsem byl jen mirne vzrusen, nyni jsem nasr.. Kdo to do pytle navrhnul ? Fakt neni resenim jit (zrejme) osvedcenejsi cestou nativni android a sice vyskama (ktere by teoreticky mohly byt i kompatibilni s nativ komponentama, jako fakt zijeme v roce 2020!) ??
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline raul

  • Hrdina
  • ****
  • Příspěvků: 413
  • Karma: 15
    • Verze Delphi: FPC :D
Re:Obecne Build :)
« Odpověď #7 kdy: 13-08-2020, 14:49:25 »
ad 3)  https://www.monkeybuilder.io/ , ale je drahy. Ja pouzivam beta verzi necoho co zatim neni volne dostupne, a autor ma dovolenou, takze ti poslu jen PM

Drahy ? Budto neumim cist, nebo mi to prijde naopak dost levny. 10 centu za VEREJNY build me prijde dost v poho. I 1000 buildu je jen 100USD.
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2920
  • Karma: 106
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Obecne Build :)
« Odpověď #8 kdy: 13-08-2020, 14:51:41 »
MonkeyBuilder, OK asi jsem to spatne pochopil co je verejny build.

Co mas za problem? Se ZIndex to neni zase tak jednoduche, ale prislo mi ze to funguje. Osobne jsem si hral v kombinaci nativnich Android prvku a FMX a nakonec to slo i kdyz to byl boj.  Mozna si jen nerozumime. Sel jsem prave pres Alcinoe a upraveny TAlAndroidNativeView, kdy jsem zapouzdroval komponentu treti strany. Nakonec jsem sel jinudy, ale jak rikam prislo mi ze to funguje.
Embarcadero MVP - Czech republic

Offline raul

  • Hrdina
  • ****
  • Příspěvků: 413
  • Karma: 15
    • Verze Delphi: FPC :D
Re:Obecne Build :)
« Odpověď #9 kdy: 13-08-2020, 14:59:29 »
5) ZIndex - bavim se o nativnich komponentach, jejichz ovladani BringToFront/SendToBack je u slozitejsi (a diky mnozstvi potrebnych falesnych layout bezne) aplikace sila. Treba u vyjizdeciho menu (soustava overlay layout a menu layout) neni problem, aby prosvitalo tlacitko ci label primo z aplikace. Jinak overlaynout treba BannerAd se mi zatim nepovedlo (opet nativni komponenty). Btw- Original nepises, pises o Alcinoe a o tom, ze pak si sel jeste jinkou cestou. Neni to moc ?

6) Pozice Layout - hehe, testuju tu release build a nestiham se divit (bezne jedem v debugu byt bez debugeru (coz je taky kapitolka obcas)). Layout, ktery vypocitavam a sam komplet pozicuju tak je o 1cm vys.. (Zatim jsem nezjistil proc, v Release nemam zadne logy, musim to prozkoumat, nicmene, v pocitani zadny ifdef neni, to uz jsem projel. Lisi se ted primarne tim, ze tam neni blok s banerem (zbytek by se mel dopocitat, neb primarne tam banner neni, a zapne se az po nacteni). No, musim zkoumat.

A to je prave to, co me stve na tomto software, ze misto sve prace neustale zkoumam a hledam co kde jak. Zkratka, proto abych jezdil autem ho prece nemusim umet opravit, coz zde musim.
« Poslední změna: 13-08-2020, 15:01:13 od raul »
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3241
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Obecne Build :)
« Odpověď #10 kdy: 13-08-2020, 16:56:04 »
Nejak tem narkum nerozumim a nekterych ani rozumet nechci, ale uz pred desitkami let jsme se ustalili na praxi:
1) IDE jsme ve vsech jazykach vzdycky pouzivali jen jako editor/debugger. Zadne buildy jsme v tom nedelali, cislovani verzi jakbysmet
2) Temer vsechny VCS, co jsem videl, mely moznost prenaset nejakou informaci o cislu revize do metapromennych ve zdrojovkach. U SVN pouzivame $WCREV$ na nejnizsim radu verze -> kazdy na prvni pohled vidi, co za revizi si ma vyndat z repository, aby mohl neco zkoumat/opravovat tj. zadne dvoji cislovani - koho zajima, kolikrat se compilovalo?
3) Build delame vzdy z command line.
    a) V Delphi soustavou batchu vcetne vyroby instalacek pomoci ISS, takze ikonky, soubory, konfigurace, zapisy do registry aj., vsechno resime  pres strom .INC souboru od spolecnych vlastnosti az po jednotlive aplikace, vc etne toho, ze sdilime veci mezi serverovskyma a klientskyma aplikacema
    b) Ve VS pomoci jsme vyuzili pomerne komplexni MSBuilder, script pro nej a nas task v C# pro nej , ktery umoznuje vyndat pozadovanou verzi z repository a buildnout ji podle zadanych podminek. Pousti se take v ramci continuous integration pri kazdem commitu do SVN.

4) Dalsi narky uz jsem si nezapamatoval nebo mi nic nerikaji ;-)


Offline tomak586

  • Nováček
  • *
  • Příspěvků: 23
  • Karma: 1
Re:Obecne Build :)
« Odpověď #11 kdy: 13-08-2020, 18:17:35 »
Tipuji ze BannerAd asi ne overlaynoutnes. Ono vse co je postaveny na nativnim WebView ne overlaynoutnes, takze i mapu a webbrowser. Dela se to ze si udelas screen a ten das do image ktery zobrazis a puvodni komponentu ktera je na webviev zneviditelnis. A ten image uz overlaytnes. A nebo si zkus pohrat s property ControlType misto Styled dat Platform.