xibless este o bibliotecă Python care generează cod Objective-C, care se bazează cacao UIS. & Nbsp; Scopul acestei biblioteci este de a înlocui XIBs în XCode și, dacă doriți, a scăpa de XCode totul.
Cu xibless, în loc de proiectare UIS cu un editor WYSIWYG, le construiască într-un script Python, în mod similar cu ceea ce faci atunci când vă construiți Qt UIS fără Designer. De exemplu, un script ca aceasta:
Rezultatul = Fereastra (200, 200, 330, 110, "Spune-mi numele tău!")
nameLabel = Label (rezultat, text = "Alias:")
nameField = TextField (rezultat, text = "")
helloLabel = Label (rezultat, text = "")
Butonul = Button (rezultat, title = "Say Hello")
nameLabel.width = 45
nameLabel.packToCorner (Pack.UpperLeft)
nameField.packRelativeTo (nameLabel, Pack.Right, Pack.Middle)
nameField.fill (Pack.Right)
helloLabel.packRelativeTo (nameLabel, Pack.Below, Pack.Left)
helloLabel.fill (Pack.Right)
button.packRelativeTo (helloLabel, Pack.Below, Pack.Right)
nameField.setAnchor (Pack.UpperLeft, growX = True)
helloLabel.setAnchor (Pack.UpperLeft, growX = True)
button.setAnchor (Pack.UpperRight)
ar genera cod Objective-C, care construi un formular cu un camp nume, o etichetă text și un buton. A doua parte a scenariului pune widget-urile pe formularul corespunzător.
Deși xibless este scris în Python, codul Objective-C, aceasta generează nu are nici o dependență Python, deci acest instrument este potrivit pentru orice dezvoltator de cacao.
xibless ruleaza pe Python 2.7 și în sus. Acest lucru înseamnă că, dacă sunteți pe OS X 10.7 sau mai nou, puteți utiliza built-in Python. În caz contrar, va trebui să instalați o versiune mai recentă de Python.
De ce xibless?
Pentru mulți oameni XCode și integrată interfața constructor muncă amenda sale și de a fi corect, XCode este un instrument de frumos. Cu toate acestea, ea are deficiențe, mai ales doar necazuri, dar încă, după un timp, necazuri deveni ... enervant. De exemplu, atunci când un UI XIb ajunge la un anumit nivel de complexitate, nu știi niciodată, atunci când faci update-uri minore, dacă din greșeală dat peste cap altceva. Pentru ca fiecare modificare, însă minoră este, schimbă o mare parte a dosarului XIb, nu pot să vă spun în dif dacă modificarea le-ați făcut a fost exclusiv cel pe care a vrut să facă. Există, de asemenea XIb localizare, cu localizare un-XIb-copiere-per-sale, care este mai mică optim, dar greu să lucreze în jurul. Oricum, eu nu am de gând să încerc să te conving. Dacă nu aveți deja vrea să scape de XCode și / sau XIBs, probabil că nu ai nevoie de xibless.
Instalare
Puteți instala xibless prin PIP:
Pip instala xibless
sau prin descărcarea pachetul sursă și de funcționare:
python setup.py instalare
Pentru a construi demo-uri în folderul demo-uri, CD-ul în ea și tipul:
./waf configurare
./waf
Aplicația rezultat va fi în dosarul construi.
Utilizare
xibless pot fi utilizate fie de la linia de comandă sau prin intermediul Python. Pentru a utiliza de la linia de comandă, tastați:
xibless
Sursa este calea modulului Python ai scris care descrie IU pe care doriți să construiască. dest este calea pe care doriți rezultat fișierul Objective-C să fie scrise în. Pentru a utiliza xibless direct de la Python, utilizarea este similară:
xibless import
xibless.generate (sursă, dest)
Acum, toate acestea nu este faptul că generează cod UI. xibless nu are, încă, nici o soluție integrată pentru a vă construi cu ușurință un program de XCode mai puțin. Cu toate acestea, ceea ce poate face este sa se uite la demo-uri dosar și bazează-te pe acele demo-uri (care sunt complet XCode mai puțin) pentru a construi propriul proiect.
Dezvoltare Timpurie
xibless este în dezvoltare foarte devreme și nu există nici o documentație API încă. Pentru moment, va trebui să dau că API de demo-uri și de săpat direct în sursa. De asemenea, rețineți că acest API ar putea schimba salbatic înainte v1.0.
De asemenea, numărul de muchii dure în acest moment sunt incalculabile. Nu există nici un mesaj de eroare de script-uri UI invalide, deci ar putea fi foarte greu, pentru acum, pentru a descoperi de ce script-uri nu funcționează.
Oh, da, și pierderi de memorie, nu e de tone de ei
Ce este nou în această versiune:.
- Adăugat VHLayout.
- Adaugat Box.
- În Vizualizare, delegat adăugat, fixedHeight, fixedWidth și accessibilityDescription atribute precum MoveTo () (o versiune mai puternică a packToCorner ()) și fillAll () metode.
- În Segment, a adăugat imagine și accessibilityDescription atribute.
- Adăugat SplitView.dividerStyle și-a adăugat documentație pentru o directă divizat vedere ierarhie.
- Adăugat TableView.borderType și View.focusRingType.
- Adăugat Button.bordered
- Adăugat MenuItem.state
- Adaugat TabView.tabViewType.
- Adaugat TextField.usesSingleLineMode.
- marja adăugată și alinia argumente pentru machete.
- depreciată View.packToCorner ().
- Layouts poate conține acum sublayouts.
- Se lasă Color () pentru a primi valori în intervalul de 0-255 în plus față de 0.0-1.0.
- Nu localiza siruri de caractere care conține numai & quot; - & quot; (Acestea sunt folosite pentru a indica un element de meniu separator).
- înălțime butoane radio depinde acum de numărul de rânduri pe care le are.
- umplutură fixă redimensionarea în machete, în cazurile în care există alte puncte de vedere lângă umplutura.
- Permiteți scripturi UI de a importa unități care sunt de același folder.
- Înlocuit Button.keyEquivalent cu Button.shortcut.
- runtemplate fixă, astfel încât unitatea XiblessSupport este compilat în executabilul RunUI.
- Fixed un bug în cazul în care ne-ar termina uneori cu două element generate cu aceeași varname.
- seta întotdeauna growX / growY la fals în setAnchor () pentru vizualizări, care au o lățime / înălțime fixă.
- & quot; textul & quot; argument de constructor TextField este acum opțională.
- laturi de sprijin și de mijloc în View.setAnchor ().
- Unități generate au acum un comentariu care indică timpul de generare și versiunea xibless.
- Mutat TextField.alignment până la control
- copiați Numai unitate XiblessSupport când a schimbat, evitându-se astfel recompilarea inutil.
- fixă delte aspect TabView pentru cazurile în care nu există nici un file.
- Comenzi rapide de sprijin implică caracterul "+".
- marje implicite îmbunătățit în machete, înălțimi de control și toate celelalte ajustări mici de acest fel.
Ce este nou în versiunea 0.4.1:.
- Adăugat NLSTR la script-uri de UI spațiu de nume
- Nu înfășurați Window.autosaveName în apelurile de localizare.
- Fixed un bug care cauzează niște sfori să nu fie ambalate în apelurile de localizare.
- Set RadioButon lui & quot; autosizesCells & quot; la Adevărat la crearea.
Ce este nou în versiunea 0.4.0:
- Adaugat Panel, SplitView, OutlineView, ListView, Bara de instrumente , SegmentedControl, SearchField, Slider și NumberFormatter.
- Adăugat Layouts.
- Adăugat suport pentru multe, multe, multe noi atribute, constante si tipuri.
- Acum generează o & quot; .h & quot; pentru a merge alături de unitatea generat.
- Postat de proprietate și subclasele sale, o modalitate mai ușoară de a adăuga suport pentru noi atribute, chiar și cele mai complexe.
- Este posibil acum pentru a trece peste marginile din apelurile de metode aspect.
- Adăugat suport pentru legături cu noul View.bind () metoda.
- Adaugata noi valori implicite în variabila globală, care poate fi folosit pentru a se lega la valorile implicite de utilizator.
- Constante accesate cu const poate fi acum bit SAU-ed.
- Codul generat este acum formatat să arate un pic mai bine și să fie mai ușor de depanare.
- Adaugarea de noi constante pentru comenzi rapide de meniu pentru taste speciale (sageti, introduceți etc.).
- Adăugat suport pentru argumente script UI.
Ce este nou în versiunea 0.3.1:
- împins în jos atributul de acțiune de la Button la control.
- butoane radio este acum o subclasa de control.
- fereastră Made recalcula vedere bucla sa după ce a generat copii săi.
Ce este nou în versiunea 0.3.0:
- butoane radio Adăugat, TableView, TabView, TextView, ImageView și ProgressIndicator.
- Adăugat suport pentru șir localizare.
- Adăugat TextField.alignment și TextField.textColor.
- Adaugat Button.keyEquivalent.
- Adaugat canClose, canResize și canMinimize la fereastra.
- Adaugata o subclasă de control.
- Vizualizare pot acum fi instanțiată direct în scripturi UI (Sunt ca & quot; Vizualizări personalizate & quot; in IB).
- centrare xibless poate fi acum rula pe script-ul pentru care rezultatul este o View.
- sistem de aspect îmbunătățit.
- origine Window este acum disponibil în ceea ce privește proporții ecran, mai degrabă decât pe pozitie absolute.
- fix 'id' ownerclass în principal generarea funcție prototip si a adaugat & quot; & quot; ownerimport variabilă globală în script UI.
- Escape rânduri libere în șir generare de cod.
- documentare Adaugata pentru Button.buttonType și Button.bezelStyle și a adăugat un demo pentru un buton cu un stil ramă diferit.
- fixe scurgerile de informații de memorie cele mai evidente.
- Fixed un bug în cazul în care atribute ca fonturi implicite la nivel de clasă nu ar fi generate la generarea mai mult de un script UI în aceeași sesiune python.
- Windows nu sunt eliberate atunci când sunt închise în mod implicit.
- Adăugat suport pentru referințe circulare (-o fereastră setare una dintre proprietățile sale unui element care a cerut ca fereastra înainte de a fi creat, de exemplu, initialFirstResponder). Noi anterior nu a putut genera codul pentru astfel de legături.
- Made argumentul alin în View.packRelativeTo () opțional.
Ce este nou în versiunea 0.2.0:
- documentare Adaugat Sphinx
- Adaugata comanda centrare xibless pentru previzualizări UI rapide.
- Adăugat ComboBox și Popup.
Cerințe :
- Python
Comentariile nu a fost găsit