Siužeto lenta vs programiškai „Swift“

„Swift“ bendruomenėje vyko aršios diskusijos dėl siužeto ir programinės įrangos naudojimo kuriant jūsų sąsają. Panašu, kad „Apple“ pastūmėjo bendruomenę naudoti siužetinę liniją, ir naudoti tai kaip standartą ateičiai. Tačiau vis dar yra keletas siužetinės juostos naudojimo trūkumų. Noriu trumpai aptarti kiekvieno metodo pranašumus ir papasakoti apie savo asmeninę patirtį naudojant kiekvieną metodą.

Siužetinė lenta

1. Paprastas naudojimas

Kai pirmą kartą pradėjau mokytis „iOS“ kūrimo, buvau išmokytas naudoti siužetinę liniją. Aš maniau, kad tai buvo tiesmukiška ir lengva išmokti. Po dienos ar dviejų mokymosi siužetinės lentelės ji tiesiog labai greitai spustelėjama. Jei man reikėjo sukurti naują vaizdų valdiklį su mygtukais, etiketėmis, teksto laukais ar nuorodomis, tai gana lengva įgyvendinti. Keliais paspaudimais, vilkite ir upuść, aš tiesiog sukūriau paprastą savo programos išdėstymą. Palyginus su programavimu, tai gali tapti ilgu procesu, kurio metu tiesiog sukuriamas maketas. Čia yra programinių apribojimų pavyzdys:

tegul sampleView = UIView ()
„view.addSubview“ („mintaView“)
sampleView.translatesAutoresizingMaskIntoConstraints = klaidinga
„mintaView.centerXAnchor.constraintEqualToAnchor“ („view.centerXAnchor“) .active = true
„sampleView.centerYAnchor.constraintEqualToAnchor“ („view.centerYAnchor“) .active = true
pavyzdysView.widthAnchor.constraintEqualToAnchor (view.widthAnchor) .active = true
„sampleView.heightAnchor.constraintEqualToAnchor“ („view.heightAnchor“) .active = true

Galite pamatyti, koks tai yra daug kodo, jei norite sukurti paprastą vaizdą. Įsivaizduokite, kad tai galite padaryti su visais mygtukais, etiketėmis, teksto laukais ir tt, todėl tai gali tapti gana nuobodi. Svarbu įtraukti translatesAutoresizingMaskIntoConstraints ir .active = true, kitaip mūsų vaizdas nebus rodomas. Dažnai pamiršiu įtraukti šias 2 kodo eilutes ir stebiuosi, kodėl mano rodinys nebus rodomas.

2. Vaizdinis

Vienas iš svarbiausių siužetinės juostos naudojimo pranašumų yra tas, kad jis suteikia labai gerą vaizdinį jūsų programos vaizdą. Jūs žinote, kaip atrodys kiekvienas mygtukas, etiketė, teksto laukai ir vaizdas. Keli paspaudimai ir reguliavimas leidžia lengvai sukurti visą vaizdą. Papildomi apribojimai taip pat pateikiami vizualiai, bet koks apribojimų pritaikymas parodomas kita spalva.

Programinė

1. Kontrolė

Visų jūsų UI elementų kodavimas suteiks jums valdymo pojūtį. Viską, ką galima pasiekti naudojant „StoryBoard“, tą patį galite padaryti naudodamiesi kodu. Tiksliai žinote, kokius parametrus galite sukurti savo UI elementui. Pvz., Jei nusprendžiau paryškinti vieną iš šriftų, turėsiu spustelėti visus savo vartotojo sąsajos elementus ir pakeisti juos paryškintu šriftu. Galite pamatyti, kaip lengvai pamiršite atlikti šį pakeitimą. Pakeisti savo nustatymus kode yra lengva, nes tiksliai žinote, kur įdėjote visus vartotojo sąsajos elementus.

2. Pakartotinis panaudojimas

Žinau, kad jau minėjau, kad paprasto rodinio sukūrimas kode gali būti ilgas ir sunkus procesas, tačiau šiuos kodus galime naudoti pakartotinai savo projekto metu. Jei norėčiau sukurti etiketes savo rodinyje, galiu tiesiog nukopijuoti didžiąją dalį to kodo ir padaryti keletą nedidelių pakeitimų. Bumas! Čia yra mano etiketė. Kitas scenarijus yra tas, kad noriu naudoti tą patį tikslų išdėstymą, kaip ir ankstesnis mano projektas, tiesiog nukopijuoju ir įklijuoju. Bumas! Čia yra visas mano išdėstymas.

3. Netvarka ir naršymas

Viena iš pagrindinių priežasčių, kodėl man nepatinka naudoti „Storyboard“, yra tada, kai ji tampa netvarkinga. Pradiniame „Storyboard“ etape tai gali atrodyti ne problema, tačiau užpildžius vartotojo sąsajos elementais ir valdikliais, naršyti yra labai sunku. Dažnai norėdamas pakoreguoti savo etikečių vietą iš tikrųjų spusteliu ką nors nesusijusį. Tai gali tapti galvos skausmu. Sprendimas yra iš tikrųjų padidinti ir sumažinti, tačiau manau, kad tai nėra perspektyvus sprendimas.

4. Susiliejimo konfliktas

Tai yra pagrindinė priežastis, kodėl aš atsisakiau naudoti „Storyboard“. Vykdydamas savo galutinį projektą, dirbau su 3 kitais kūrėjais, kai kurie iš mūsų mėgsta naudoti „Storyboard“, o kiti - kode, komplikacijos pradeda kilti, kai nusprendėme sujungti savo darbą „GitHub“. Susijungimo konfliktą išspręsti labai sunku. Tai darbą su ta pačia „Storyboard“ daro varginantį procesą. Tai nėra paprasta užduotis, nes „Storyboard“ sujungimo konfliktai susideda iš daugiau nei vien kodo, yra kodai, kurie suteikia vartotojo sąsają.

Tikiuosi, kad tai buvo naudinga tema. Tai tik mano asmeninė nuomonė, jokiu būdu nenoriu įtikinti žmones naudoti kodą, o ne siužetinę liniją. Tai tik pirmenybės klausimas. Tikiu, kad siužetinė linija bus ateitis, taigi, jei tikite, kad tai yra geriausias maršrutas, suteikite daugiau jėgų jums!

Ačiū, kad prisitaikėte!