xibless adalah library Python yang menghasilkan kode Objective-C yang membangun Cocoa UIS & nbsp;. Tujuan perpustakaan ini adalah untuk menggantikan XIBs di Xcode dan, jika Anda ingin, menyingkirkan Xcode sama sekali.
Dengan xibless, bukan merancang UIS dengan editor WYSIWYG, Anda membangun mereka dalam skrip Python, mirip dengan apa yang Anda lakukan ketika Anda membangun Qt UIS tanpa Designer. Sebagai contoh, script seperti ini:
Hasil = Window (200, 200, 330, 110, "Katakan padaku nama Anda!")
nameLabel = Label (hasil, text = "Nama:")
nameField = TextField (hasil, text = "")
helloLabel = Label (hasil, text = "")
Tombol = Button (hasil, 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)
akan menghasilkan kode Objective-C yang membangun bentuk dengan field nama, label teks dan tombol. Bagian kedua dari script menempatkan widget pada formulir tepat.
Meskipun xibless ditulis dengan Python, kode Objective-C itu menghasilkan tidak memiliki ketergantungan Python, sehingga alat ini cocok untuk setiap pengembang Kakao.
xibless berjalan pada Python 2,7 dan up. Ini berarti bahwa jika Anda berada di OS X 10.7 atau yang lebih baru, Anda dapat menggunakan built-in Python. Jika tidak, Anda harus menginstal versi yang lebih baru dari Python.
Mengapa xibless?
Bagi banyak orang Xcode dan bekerja pembangun antarmuka halus terintegrasi dan untuk bersikap adil, Xcode adalah alat yang bagus. Namun, ia memiliki kekurangan, kebanyakan hanya gangguan, tapi tetap saja, setelah beberapa saat, gangguan menjadi ... menjengkelkan. Misalnya, ketika XIB UI mencapai tingkat kerumitan tertentu, Anda tidak pernah tahu, ketika melakukan update minor, jika Anda salah kacau sesuatu yang lain. Karena setiap modifikasi, namun kecil itu, perubahan bagian besar dari file XIB, Anda tidak bisa mengatakan di diff jika modifikasi yang telah Anda buat adalah eksklusif yang Anda ingin membuat. Ada juga XIB lokalisasi, dengan lokalisasi satu-xib-copy-per-, yang kurang optimal tapi sulit untuk bekerja di sekitar. Lagi pula, aku tidak akan mencoba untuk meyakinkan Anda. Jika Anda belum ingin menyingkirkan Xcode dan / atau XIBs, Anda mungkin tidak perlu xibless.
Instalasi
Anda dapat menginstal xibless melalui pip:
pip menginstal xibless
atau dengan men-download paket source dan berjalan:
python setup.py install
Untuk membangun demo di folder demo, cd ke dalamnya dan ketik:
./waf mengkonfigurasi
./waf
Aplikasi yang dihasilkan akan berada di folder membangun.
Penggunaan
xibless dapat digunakan baik dari baris perintah atau melalui Python. Untuk menggunakannya dari baris perintah, Anda mengetik:
xibless
Sumber adalah jalan modul Python Anda tulis yang menjelaskan UI Anda ingin membangun. dest adalah jalur yang Anda inginkan sehingga file yang Objective-C Anda akan ditulis di. Untuk menggunakan xibless langsung dari Python, penggunaan yang mirip:
impor xibless
xibless.generate (sumber, dest)
Sekarang, semua ini tidak adalah bahwa ia menghasilkan kode UI. xibless belum, belum, solusi terintegrasi untuk membiarkan Anda dengan mudah membangun sebuah program Xcode-kurang. Namun, apa yang dapat Anda lakukan adalah untuk melihat demo folder dan mendasarkan diri pada orang-orang demo (yang benar-benar Xcode-kurang) untuk membangun proyek Anda sendiri.
Pengembangan Awal
xibless adalah perkembangan yang sangat awal dan tidak ada dokumentasi API belum. Untuk saat ini, Anda harus mencari API yang dari demo dan dengan menggali secara langsung di sumbernya. Juga, perhatikan bahwa API ini liar bisa berubah sebelum v1.0.
Juga, jumlah tepi kasar saat ini adalah tak terhitung. Tidak ada pesan kesalahan untuk script UI tidak valid, jadi mungkin akan sangat sulit, untuk saat ini, untuk mencari tahu mengapa script tidak bekerja.
Oh, ya, dan kebocoran memori, ada ton dari mereka
Apa yang baru dalam rilis ini:.
- Ditambahkan VHLayout.
- Ditambahkan Box .
- Dalam View, delegasi menambahkan, fixedHeight, fixedWidth dan accessibilityDescription atribut serta moveTo () (versi yang lebih kuat dari packToCorner ()) dan fillAll () metode.
- Di Segmen, menambahkan gambar dan accessibilityDescription atribut.
- Ditambahkan SplitView.dividerStyle dan menambahkan dokumentasi untuk tampilan hierarki perpecahan langsung.
- Ditambahkan TableView.borderType dan View.focusRingType .
- Ditambahkan Button.bordered
- Ditambahkan MenuItem.state
- Ditambahkan TabView.tabViewType .
- Ditambahkan TextField.usesSingleLineMode .
- Ditambahkan margin dan menyelaraskan argumen untuk layout.
- Usang View.packToCorner ().
- Layouts dapat sekarang mengandung sublayouts.
- Izinkan Color () untuk menerima nilai-nilai di kisaran 0-255 selain 0,0-1,0.
- Jangan melokalisasi string hanya & quot mengandung; - & quot; (Mereka digunakan untuk menunjukkan item menu pemisah).
- tinggi radiobuttons 'sekarang tergantung pada jumlah baris itu.
- filler tetap mengubah ukuran dalam layout dalam kasus di mana ada pandangan lain di samping filler.
- Izinkan skrip UI untuk mengimpor unit yang berasal dari folder yang sama.
- Diganti Button.keyEquivalent dengan Button.shortcut.
- runtemplate tetap sehingga unit XiblessSupport dikompilasi dalam RunUI dieksekusi.
- Fixed bug di mana kita akan kadang-kadang berakhir dengan dua item yang dihasilkan dengan varname yang sama.
- Selalu mengatur growX / growY ke False di setAnchor () untuk pandangan yang memiliki lebar / tinggi tetap.
- & quot; text & quot; argumen konstruktor TextField adalah optional.
- sisi Dukungan dan menengah di View.setAnchor ().
- unit Generated sekarang memiliki komentar yang menunjukkan waktu generasi dan versi xibless.
- Dipindahkan TextField.alignment ke Kontrol
- Hanya menyalin Unit XiblessSupport ketika berubah, sehingga menghindari kompilasi perlu.
- Tetap TabView itu tata letak delta untuk kasus-kasus di mana tidak ada tab.
- pintas Dukungan melibatkan '+' karakter.
- Peningkatan standar margin dalam layout, ketinggian kontrol dan semua tweak kecil lainnya semacam ini.
Apa yang baru dalam versi 0.4.1:.
- Ditambahkan NLSTR script UI namespace
- Jangan membungkus Window.autosaveName dalam panggilan lokalisasi.
- Fixed bug yang menyebabkan beberapa string tidak dibungkus dalam panggilan lokalisasi.
- Set RadioButton s & quot; autosizesCells & quot; True pada penciptaan.
Apa yang baru dalam versi 0.4.0:
- Ditambahkan Panel, SplitView, OutlineView, ListView, Toolbar , SegmentedControl, SearchField, Slider dan NumberFormatter .
- Ditambahkan Layouts .
- Ditambahkan dukungan untuk banyak, banyak, banyak atribut baru, konstanta dan tipe.
- Sekarang menghasilkan & quot; H & quot; untuk pergi bersama unit yang dihasilkan.
- Ditambahkan Properti dan subclass, cara yang lebih mudah untuk menambahkan dukungan untuk atribut baru, bahkan yang kompleks.
- Sekarang mungkin untuk mengesampingkan margin dalam pemanggilan metode tata letak.
- Ditambahkan dukungan untuk binding dengan metode baru View.bind ().
- Ditambahkan variabel global default baru, yang dapat digunakan untuk mengikat ke default pengguna.
- Konstanta diakses dengan const sekarang dapat bitwise OR-ed .
- Kode yang dihasilkan sekarang diformat terlihat sedikit lebih baik dan lebih mudah untuk debug.
- Ditambahkan konstanta baru untuk cara pintas menu untuk tombol khusus (panah, masukkan dll.).
- Ditambahkan dukungan untuk argumen naskah UI.
Apa yang baru dalam versi 0.3.1:
- Didorong ke atribut aksi dari Tombol Control.
- radiobuttons sekarang menjadi subclass Control.
- Membuat jendela menghitung ulang tampilan lingkaran yang dihasilkan setelah anak-anaknya.
Apa yang baru dalam versi 0.3.0:
- Ditambahkan radiobuttons, TableView, TabView, TextView, ImageView dan ProgressIndicator.
- Ditambahkan dukungan untuk tali lokalisasi.
- Ditambahkan TextField.alignment dan TextField.textColor .
- Ditambahkan Button.keyEquivalent .
- Ditambahkan canClose, canResize dan canMinimize ke Window.
- Ditambahkan subclass Control.
- Lihat sekarang dapat langsung dipakai dalam skrip UI (Mereka seperti & quot; Kustom Views & quot; di IB).
- xibless run sekarang dapat dijalankan pada skrip yang hasilnya adalah View.
- Peningkatan sistem tata letak.
- Jendela asal sekarang disediakan dalam hal proporsi layar daripada posisi absolut.
- Tetap 'id' ownerclass generasi fungsi prototipe utama dan menambahkan & quot; ownerimport & quot; variabel global dalam script UI.
- Luput baris dalam kode string yang generasi.
- Ditambahkan dokumentasi untuk Button.buttonType dan Button.bezelStyle dan menambahkan demo untuk tombol dengan gaya bezel yang berbeda.
- Fixed kebocoran memori yang paling mencolok.
- Fixed bug di mana atribut seperti font tingkat kelas standar tidak akan dihasilkan saat membuat lebih dari satu naskah UI di sesi python yang sama.
- Windows adalah tidak dilepaskan ketika ditutup secara default.
- Ditambahkan dukungan untuk referensi melingkar (jendela pengaturan salah satu dari sifat-sifatnya untuk item yang diperlukan jendela yang sebelum dibuat, misalnya, initialFirstResponder). Kami sebelumnya tidak bisa menghasilkan kode untuk binding tersebut.
- Membuat argumen menyelaraskan di View.packRelativeTo () opsional.
Apa yang baru dalam versi 0.2.0:
- dokumentasi Ditambahkan Sphinx
- Ditambahkan perintah xibless dijalankan untuk preview UI cepat.
- Ditambahkan Combobox dan Popup.
Persyaratan :
- Python
Komentar tidak ditemukan