Al món de Linux podem trobar una gran quantitat d'aplicacions, tant d'ús general, com ara reproductors de música, editors d'imatges, entre d'altres, fins a ecosistemes sencers d'apps dedicats per a diferents àmbits (salut, educació, investigació, etc.).
Del costat de l'usuari tot això sona fantàstic, però quan es tracta de l'altre costat de la moneda, que és on entren els desenvolupadors, no sempre es vol que una aplicació o desenvolupament només apunti a una plataforma o sistema quan es vol arribar a la major quantitat dusuaris.
En aquest cas analitzarem SwiftUI i UIKit, els quals són els dos frameworks més populars per al desenvolupament a les plataformes d'Apple. Encara que aquests frameworks van ser creats per Apple, cadascú està orientat un tipus de desenvolupament i és per això que cal conèixer bé les característiques, avantatges i desavantatges de cadascun per poder prendre millor decisió.
Què és UIKit?
Quan es parla sobre el desenvolupament a iOS, UIKit és la primera carta sobre la taula per tenir en compte, ja que ha estat l'estàndard durant molt de temps, cosa que ha posicionat aquest framework com un dels més utilitzats pels desenvolupadors de iOS .
UIKit ha estat present des de la primera versió de iOS i es basa en un enfocament imperatiu (on el desenvolupador ha d'especificar cada pas individual de la construcció i modificació de la interfície), utilitza el patró de disseny Model-Vista-Controlador (MVC), brindant als desenvolupadors un control més detallat sobre cada aspecte de la interfície.
Avantatges de UIKit
- Maduresa i trajectòria: Com ja es va esmentar, UIKit ha estat present des de la primera versió d'iOS i des de llavors ha evolucionat fins al punt d'assolir un alt grau de maduresa, amb funcionalitats robustes i provat de ser una solució ideal d'eficàcia i fiabilitat per a aplicacions complexes i d'alt rendiment.
- Suport: Donat a la longevitat d'UIKit, aquest framework compta amb una àmplia documentació i una comunitat activa que dóna suport al seu ús, brindant solucions per a gairebé qualsevol problema que pugui sorgir durant el desenvolupament.
- compatibilitat: quan es tracta de compatibilitat, UIKit és compatible amb totes les versions de iOS, cosa que el torna ideal quan es tracta de dispositius més antics. Això és gràcies al fet que Apple ha brindat la computabilitat de UIKit amb cada nova versió de iOS. D'altra banda, UIKit pot treballar en conjunt amb altres frameworks d'Apple, així com també amb components i biblioteques que inclouen una varietat de funcionalitats.
- control: UIKit és més detallat, ja que ofereix als desenvolupadors un control eficient sobre cada aspecte de la interfície, a més que és ideal per a personalitzacions complexes o manejar animacions avançades.
Desavantatges de UIKit
- Major treball: Atès que UIKit permet tenir més control, això fa que es requereixi més codi repetitiu (codi necessari) per aconseguir el disseny i el comportament desitjat en les tasques. Això, per la seva banda, es tradueix en un augment de la complexitat en haver un major volum del codi i quan es tracta de projectes a gran escala, això pot fer que el projecte sigui més difícil de mantenir i evolucionar, cosa que ens porta a el següent desavantatge.
- Complexitat: Com que és un framework basat en un enfocament imperatiu, això pot fer que el codi sigui més difícil de seguir amb l'evolució i el creixement del projecte, la qual cosa es pot traduir en un cost més gran de recursos.
- Corba d'aprenentatge: un altre dels grans problemes que presenta la naturalesa imperativa de UIKit és que requereix una comprensió més profunda del flux de l'aplicació, ja que s'han de definir totes les etapes i que els desenvolupadors segueixin una sèrie de passos detallats per construir la interfície, cosa que pot ser més desafiant de dominar i això per a un desenvolupador novell, pot ser el seu pitjor malson.
Què és SwiftUI?
SwiftUI va ser dissenyat per simplificar el desenvolupament d'interfícies, millorant la productivitat en oferir vistes prèvies a temps real. Això permet als desenvolupadors veure els canvis de manera instantània sense la necessitat de compilar o executar laplicació, facilitant així un flux de treball més àgil i eficient.
A diferència de UIKit, SwiftUI és un marc més recent, presentat per Apple el 2019, aquest es caracteritza pel seu enfocament en una sintaxi declarativa, on els desenvolupadors simplement descriuen el que volen que faci el programa i el sistema s'encarrega de gestionar els detalls sobre com aconseguir-ho. Això contrasta amb UIKit, que requereix que els desenvolupadors especifiquin explícitament com s'ha d'executar cada acció o procés a la interfície d'usuari.
Avantatges de SwiftUI
- Sintaxi declarativa: sens dubte un dels grans avantatges de SwiftUI és que és més fàcil d'entendre per als desenvolupadors novells en centrar-se en com es vol que es vegi la interfície i no en com fer-ho. Això redueix la complexitat del codi i millora la llegibilitat, cosa que facilita la comprensió i seguiment del codi
- Vista prèvia en temps real: donat el seu disseny, SwiftUI permet veure als desenvolupadors els canvis realitzats a la interfície, cosa que facilita el treball en gran mesura tant en el disseny, la visualització de l'aplicació en diverses plataformes i maneres, a més que això es tradueix en un gran estalvi de temps.
- Menys codi: gràcies a la seva sintaxi declarativa, la quantitat de codi necessari per construir una interfície d'usuari es redueix significativament amb menys línies i simplificant el procés per fer modificacions o afegir noves característiques.
- Integració i compatibilitat: SwiftUI permet un desenvolupament més ràpid, senzill i adaptable, ja que facilita la compatibilitat amb múltiples dispositius d'Apple (iOS, macOS, watchOS i tvOS) en brindar una adaptació automàtica a diferents mides de pantalla i orientacions de dispositiu. També té una integració senzilla amb el llenguatge Swift ia diferència de UIKit, aquest compta amb el suport per a mode fosc, accessibilitat i localització.
Desavantatges de SwiftUI
- compatibilitat: Tal com esmentem, SwiftUI és relativament jove i aquest petit detall el converteix en un seriosa desavantatge. És important tenir en compte que SwiftUI requereix iOS 13 o posterior, cosa que limita el seu ús a dispositius més nous.
- Menys recursos i suport: un altre dels desavantatges que sorgeixen a causa del poc temps que té SwiftUI, és que els recursos disponibles, així com informació, tutorials i biblioteques de tercers disponibles són limitades a comparació del que es pot trobar disponible per a UIKit.
- Menor control: atès que a SwiftUI el desenvolupador no ha d'intervenir més afons, en comparació amb UIKit (on es té un major control), això es converteix en un desavantatge enfront de dissenys complexos i conjunts de dades de grans dimensions, a més que està limitat a quant a funcions dinterfície dusuari i animacions avançades.
Quan utilitzar UIKit?
En comparar SwiftUI i UIKit, ens podem donar una idea d'on és convenient utilitzar cadascun. I és que en el cas de UIKit que és més robust, sempre serà més adequat per a interfícies complexes amb funcionalitats avançades i/o que depenen en gran mesura de biblioteques i marcs de tercers així com també en projectes heretats amb codi base UIKit existent o que requereixen de compatibilitat amb versions antigues d'iOS.
Finalment, és important recalcar que UIKit està estrictament limitat a iOS, el que implica que no és compatible amb altres dispositius dApple.
Quan utilitzar SwiftUI?
Està buscant com crear una app swiftui? Abans d'això cal saber si aquesta solució és la més recomanable o no per al vostre cas particular. En el cas de SwiftUI, el seu ús és recomanat quan s'apunta als múltiples dispositius d'Apple, així com també per a versions d'iOS recents (13 en endavant). Un altre punt per tenir en compte SwiftUI és quan cal tenir més simplicitat en el projecte, així com també funcions d'interfície d'usuari i animacions modernes.
En poques paraules, SwiftUI és el candidat perfecte quan es tracta de aplicacions senzilles i modernes que apuntin als diferents dispositius dApple, a més que SwiftUI ofereix molts més recursos visuals que UIKit.
Conclusió
Tot i que SwiftUI apunta al desenvolupament modern i per part seva UIKit és el vell fiable, l'elecció d'un o altre depèn principalment de definir i conèixer les necessitats específiques de cada projecte, així com de les preferències del desenvolupador.
I encara que cada framework compta amb els seus pros i contres, és important tenir en compte que es poden utilitzar tots dos per aprofitar els avantatges cadascun, ja que es poden unificar per crear aplicacions robustes amb dissenys moderns, tenint un major control i personalització.