xibless is 'n Python biblioteek wat genereer Objective-C-kode wat bou Cocoa Uis. & Nbsp; Die doel van hierdie biblioteek is XIBs in Xcode te vervang, en as jy wil, om ontslae te raak van Xcode heeltemal.
Met xibless, in plaas van die ontwerp van Uis met 'n WYSIWYG-redakteur, kan jy hulle bou in 'n Python script, soortgelyk aan wat jy doen wanneer jy Qt Uis bou sonder die ontwerper. Byvoorbeeld, 'n script soos hierdie:
gevolg = Venster (200, 200, 330, 110, "Vertel my jou naam!")
nameLabel = Label (resultaat, text = "Naam")
nameField = tekstveld (resultaat, text = "")
helloLabel = Label (resultaat, text = "")
knoppie = Button (resultaat, title = "Sê hallo")
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)
sou Objective-C-kode wat bou 'n vorm met 'n naam in die veld, 'n teks etiket en 'n knoppie genereer. Die tweede deel van die script plaas die widgets op die vorm gepas.
Hoewel xibless is in Python geskryf, is die doel-C-kode genereer het geen Python afhanklikheid, so hierdie program is geskik vir enige Cocoa ontwikkelaar.
xibless loop op Python 2.7 en hoër. Dit beteken dat as jy op OS X 10.7 of nuwer, kan jy gebruik om die gebou-in Python. Andersins, sal jy 'n meer onlangse weergawe van Python te installeer.
Hoekom xibless?
Vir baie mense Xcode en sy geïntegreerde koppelvlak bouer werk boete en om eerlik te wees, Xcode is 'n lekker hulpmiddel. Maar dit het tekortkominge, meestal net struikelblokke, maar nog steeds, na 'n rukkie, struikelblokke geword ... irriterende. Byvoorbeeld, wanneer 'n XIB UI bereik 'n sekere vlak van kompleksiteit, jy weet nooit, wanneer doen klein updates, as jy per ongeluk deurmekaar iets anders. Want elke verandering egter geringe dit is, 'verander 'n groot deel van die XIB lêer, kan jy nie sê in die diff as die verandering wat jy gemaak het, was uitsluitlik die een wat jy wil maak. Daar is ook XIB lokalisering, met sy een-XIB-kopie per lokalisering, wat minder is as die optimale maar moeilik om te werk of nie. In elk geval, ek is nie van plan om te probeer om jou te oortuig. As jy nie reeds wil ontslae raak van Xcode en / of XIBs te kry, het jy waarskynlik nie xibless nodig nie.
Installasie
Jy kan installeer xibless deur pit:
PIP installeer xibless
of deur die aflaai van die bron pakket en hardloop:
python setup.py installeer
Die demos in die demos gids, CD te bou in dit en type:
./waf instel
./waf
Die gevolglike app sal wees in die aanloop gids.
Gebruik
xibless kan gebruik word uit die opdrag lyn of deur Python. Dit uit die opdrag lyn te gebruik, tik jy:
xibless
bron is die pad van die Python module wat jy geskryf het wat beskryf die UI wat jy wil bou. dest is die pad wat jy wil jou lei Objective-C lêer op geskryf word. Direk xibless gebruik van Python, die gebruik is soortgelyk:
invoer xibless
xibless.generate (bron, dest)
Nou, al hierdie is dat dit genereer UI-kode. xibless het nie, nog enige geïntegreerde oplossing om jou te laat maklik die bou van 'Xcode-minder-program. Maar wat jy kan doen is om te kyk na die demos gids en baseer jouself op dié demos (wat heeltemal Xcode-minder) jou eie projek te bou.
vroeë ontwikkeling
xibless is in 'n baie vroeë ontwikkeling en daar is geen API dokumentasie nie. Vir nou, sal jy daardie API om uit te vind van die demonstrasies en deur te grawe direk in die bron. Let ook op dat hierdie API wild kan verander voordat v1.0.
Ook die aantal ruwe kante op die oomblik is onberekenbaar. Daar is geen fout boodskap vir ongeldig UI skrifte, sodat dit dalk baie moeilik, want nou is, om uit te vind hoekom jou skrifte nie werk nie.
O ja, en die geheue lekkasies, daar is ton van hulle
Wat is nuut in hierdie release:.
- Added VHLayout.
- Added Box.
- In View, bygevoeg afgevaardigde, fixedHeight, fixedWidth en accessibilityDescription eienskappe asook moveTo () ('n meer kragtige weergawe van packToCorner ()) en fillAll () metodes.
- In Segment, bygevoeg beeld en accessibilityDescription eienskappe.
- Added SplitView.dividerStyle en bygevoeg dokumentasie vir 'n direkte split oog hiërargie.
- Added TableView.borderType en View.focusRingType.
- Added Button.bordered
- Added MenuItem.state
- Added TabView.tabViewType.
- Added TextField.usesSingleLineMode.
- Bygevoeg marge en bring argumente uitlegte.
- afgekeur View.packToCorner ().
- Layouts kan nou ook sublayouts.
- Laat Kleur () waardes in die reeks van 0-255 bykomend te ontvang 0,0-1,0.
- Moenie lokaliseer snare met slegs & quot; - & quot; (Hulle is gebruik om 'n separator menu-item aan te dui).
- RadioButtons 'n hoogte hang nou van die aantal rye wat dit het.
- Vaste toevoeg grootte in uitlegte in gevalle waar daar is ander sienings langs die toevoeg.
- Laat UI skrifte eenhede wat uit dieselfde gids in te voer.
- Vervang Button.keyEquivalent met Button.shortcut.
- Vaste runtemplate sodat die XiblessSupport eenheid is in die RunUI uitvoerbare saamgestel.
- Vaste 'n fout waar ons soms sou eindig met twee gegenereer item met dieselfde VARNAME.
- altyd 'growX / growY vals in setAnchor () vir sienings wat 'n vaste wydte / hoogte.
- Die & quot; text & quot; argument van tekstveld se konstruktor is nou opsioneel.
- Support kante en middel in View.setAnchor ().
- Gegenereer eenhede het nou 'n kommentaar te dui generasie tyd en xibless weergawe.
- Het TextField.alignment af te beheer
- enigste kopie XiblessSupport eenheid wanneer dit verander, en daardeur onnodige hersamestelling.
- Vaste TabView se uitleg deltas vir gevalle waar daar geen tabs.
- Support kortpaaie met betrekking tot die '+' karakter.
- Verbeterde verstek marges in layouts, beheer hoogtes en alle ander klein tweaked van hierdie soort.
Wat is nuut in die weergawe 0.4.1:.
- Added NLSTR te UI skrifte naamruimte
- Moenie draai Window.autosaveName in lokalisering oproepe.
- Vaste 'n fout wat veroorsaak dat 'n paar snare nie in lokalisering oproepe toegedraai word.
- Stel RadioButton se & quot; autosizesCells & quot; te True op die skepping.
Wat is nuut in die weergawe 0.4.0:
- Added Panel, SplitView, OutlineView, script lys, Toolbar , SegmentedControl, soekkassie, Slider en NumberFormatter.
- Added uitlegte.
- Bygevoeg ondersteuning vir baie, baie, baie nuwe kenmerke, konstantes en tipes.
- Nou genereer 'n & quot; .H & quot; om te gaan saam met die gegenereerde eenheid.
- Added Eiendom en sy subklasse, 'n makliker manier ondersteuning vir nuwe eienskappe, selfs die kompleks by te voeg .
- Dit is nou moontlik marges in uitleg metode oproepe te ignoreer.
- Bygevoeg ondersteuning vir bindings met die nuwe View.bind () metode.
- Bygevoeg die nuwe standaard globale veranderlike, wat gebruik kan word om die gebruiker standaard te bind.
- Konstantes verkry met const kan nou Bitwise word OF-ed.
- gegenereerde kode is nou geformateer 'n bietjie beter lyk en makliker wees om te ontfout.
- Bygevoeg nuwe konstantes vir menu kortpaaie vir spesiale sleutels (pyle, betree ens.).
- Bygevoeg ondersteuning vir UI script argumente.
Wat is nuut in die weergawe 0.3.1:
- afgedruk die aksie eienskap van Button te beheer.
- RadioButtons is nou 'n beheer subklas.
- Made venster herbereken sy oog loop nadat sy kinders gegenereer.
Wat is nuut in die weergawe 0.3.0:
- Bygevoeg RadioButtons, Tableview, TabView, TextView, ImageView en ProgressIndicator.
- Bygevoeg ondersteuning vir string lokalisering.
- Added TextField.alignment en TextField.textColor.
- Added Button.keyEquivalent.
- Added canClose, canResize en canMinimize te Venster.
- Bygevoeg 'n beheer subklas.
- View kan nou direk aangehaal word in UI skrifte (Hulle is soos & quot; Custom Views & quot; in IB).
- xibless run kan nou uitgevoer word op skrif waarvoor die resultaat is 'n vertoning.
- Verbeterde uitleg stelsel.
- Venster oorsprong is nou voorsien in terme van die skerm proporsies eerder as absolute posisies.
- Vaste 'ID' ownerclass in hooffunksie prototipe geslag en het bygevoeg dat die & quot; ownerimport & quot; globale veranderlike in die UI script.
- Escape newlines in string kodegenerasie.
- Bygevoeg dokumentasie vir Button.buttonType en Button.bezelStyle en bygevoeg 'n demo vir 'n knoppie met 'n ander ring styl.
- Vaste die mees flagrante geheue lekkasies.
- Vaste 'n fout waar eienskappe soos klas-vlak verstek skrif sou nie gegenereer word wanneer genereer meer as een UI script in dieselfde luislang sessie.
- Windows is nie vrygestel word wanneer gesluit deur verstek.
- ondersteuning vir omsendbrief verwysings ('n venster opstel een van sy eienskappe aan 'n item wat nodig dat venster voor geskep, byvoorbeeld, initialFirstResponder). Ons kon nie voorheen kode genereer vir sodanige bindings.
- Het die align argument in View.packRelativeTo () opsioneel.
Wat is nuut in die weergawe 0.2.0:
- Added Sphinx dokumentasie
- Bygevoeg die xibless run opdrag vir 'n vinnige UI previews.
- Added comboboks en Popup.
Vereistes :
- Python
Kommentaar nie gevind