„Apple“ „iOS“ kūrėjams suteikė modernią, galingą ir išraiškingą „Swift“ kalbą, kuri užtikrina geresnę saugą ir našumą, palyginti su „Objective-C“. „Swift“ yra nauja kalba, o „Objective-C“, C kalbos dalis, gyvuoja beveik tris dešimtmečius.
Kodų bazės perkėlimas iš „Objective-C“ į „Swift“ gali atrodyti labai bauginanti užduotis. Tačiau tie, kurie tai padarė, gali tvirtai pasakyti, kad tai verta pastangų, nes tai gali labai pagerinti jūsų iOS programos priežiūrą ir našumą.
Daugelis mobiliųjų programų kūrimo įmonių tikisi, kad jų „iOS“ programų kūrėjai naudos „Swift“. naujos programos kūrimas. Taip pat tikimasi, kad jie žinos, kaip pereiti iš „Objective-C“ į „Swift“.
Šis straipsnis yra vadovas, padėsiantis atlikti perkėlimo procesą. Tai taip pat suteiks jums žinių apie geriausią praktiką ir patarimus, kad būtų užtikrintas sklandus perėjimas.
Pradėkime.
Kodėl verta pereiti prie „Swift“?
Swift yra moderni programavimo kalba, kurios sintaksė yra glaustesnė ir išraiškingesnė. Tai sumažina pagrindinį kodą ir palengvina skaitymą bei rašymą. Naudodami „Swift“ galite pasiekti tas pačias funkcijas naudodami mažiau kodo eilučių, palyginti su „Objective-C“.
Tai ne tik padaro jūsų kodų bazę švaresnę, bet ir sumažina klaidų tikimybę.
· Saugumas
„Swift“ pašalina visas įprastų programavimo klaidų kategorijas saugaus programavimo modelius ir modernių funkcijų pridėjimas, kad programavimas būtų lengvesnis ir saugesnis.
Pavyzdžiui, „Swift“ tipo sistema ir pasirinktiniai padeda išvengti nulinių rodyklės išimčių, kurios yra dažnas „Objective-C“ gedimų šaltinis.
· Spektaklis
Našumas yra vienas iš svarbiausių bet kurios programavimo kalbos aspektų. „Swift“ sukurta taip, kad būtų greita ir efektyvi, o našumas dažnai atitinka arba viršija „Objective-C“.
Kalba yra optimizuotas greičiuio „Swift“ kodas gali pranokti „Objective-C“ daugelyje scenarijų dėl savo modernaus kompiliatoriaus ir vykdymo laiko optimizavimo.
· Sąveika
„Swift“ yra visiškai suderinama su „Objective-C“, nes leidžia maišyti ir suderinti „Swift“ ir „Objective-C“ kodus tame pačiame projekte. Ši sąveika užtikrina sklandų perėjimą, nes galite palaipsniui konvertuoti savo kodų bazę į „Swift“ neperrašydami visko nuo nulio.
Kaip pasiruošti migracijos procesui
Prieš pasinerdami į perkėlimo procesą, būtina tinkamai pasiruošti:
Nustatykite svarbiausius projekto komponentus ir priklausomybes. Sutelkite dėmesį į dalis, kurioms „Swift“ funkcijos bus naudingos. Kodų bazės struktūros ir priklausomybių supratimas padės efektyviai planuoti perkėlimą.
· Nustatyti versijos valdymą
Įsitikinkite, kad jūsų projektas yra valdomas versijos (pvz., Git). Tai leidžia stebėti pakeitimus ir, jei reikia, grąžinti. Tvirta versijų valdymo sistema yra labai svarbi norint valdyti perkėlimo procesą ir užtikrinti, kad prireikus galėtumėte lengvai grįžti atgal.
· Naudokite automatinius testus
Turėdami išsamų automatinių testų rinkinį, galėsite patikrinti kodo teisingumą prieš ir po perkėlimo. Testai suteikia apsauginį tinklą, užtikrinantį, kad jūsų pakeitimai nesukels regresijos ir nepažeis esamų funkcijų.
Migracijos strategijos
Yra dvi pagrindinės strategijos, kaip pereiti iš „Objective-C“ į „Swift“:
iOS kūrėjai turėtų palaipsniui perkelti savo kodų bazės dalis į „Swift“, užtikrinant, kad kiekviena dalis tinkamai veiktų prieš tęsiant. Šis metodas yra mažiau rizikingas ir leidžia nuolat integruotis.
Galite pradėti nuo mažesnių, mažiau svarbių komponentų ir palaipsniui pereiti prie sudėtingesnių kodų bazės dalių.
· Didžiojo sprogimo migracija
Perkelkite visą kodų bazę į „Swift“ vienu ypu. Šis metodas yra greitesnis, bet rizikingesnis, nes iš karto apima reikšmingesnius pakeitimus. Didelio sprogimo perkėlimas reikalauja kruopštaus planavimo ir kruopštaus testavimo, siekiant užtikrinti, kad visa kodų bazė veiks po perėjimo.
Žingsnis po žingsnio perkėlimo procesas
1. Pradėkite nuo Sujungimo
Dėl sujungimo „Swift“ ir „Objective-C“ gali egzistuoti tame pačiame projekte. Pradėkite perkėlimo procesą sukurdami sujungimo antraštę (YourProject-Bridging-Header.h), kad „Swift“ parodytų savo „Objective-C“ kodą.
Kai prie projekto pridėsite savo pirmąjį .swift failą, greičiausiai gausite raginimą, kuris atrodo taip:
Spustelėkite Sukurkite sujungimo antraštę.
Jei raginimo nematote arba netyčia ištrynėte sujungimo antraštę, pridėkite naują .h failą prie projekto ir pavadinkite jį [MyProject]-Bridging-Header.htada įsitikinkite, kad susiejote jo kelią tikslinio projekto nustatymuose.
Sujungimo antraštės pavyzdys:
// YourProject-Bridging-Header.h
#import „YourObjectiveCClass.h“
Taip pat galite naudoti „Swift“ kodą „Objective-C“, importuodami automatiškai sugeneruotą „Swift“ antraštę (YourModuleName-Swift.h).
2. Perkelti paslaugų ir pagalbininkų klases
Be to, jūsų dėmesys turėtų būti skiriamas pagalbinėms ir pagalbinėms klasėms, kurios dažnai naudojamos jūsų projekte.
Tikslas-C:
@interface MathUtility : NSObject
+ (NSInteger)addNumber:(NSInteger)a toNumber:(NSInteger)b;
@pabaiga
@implementation MathUtility
+ (NSInteger)addNumber:(NSInteger)a toNumber:(NSInteger)b {
grąžinti a + b;
}
@pabaiga
Swift:
class MathUtility {
static func add(_ a: Int, to b: Int) -> Int {
grąžinti a + b
}
}
3. Konvertuokite modelių klases
Pradėkite konvertuodami paprastas, savarankiškas klases, pavyzdžiui, modelius. Paprastai tai mažiau priklauso nuo kitų jūsų kodų bazės dalių.
Tikslas-C:
@interface Asmuo : NSObject
@savybė (neatominė, stipri) NSString *pavadinimas;
@savybė (neatominė, priskirti) NSInteger amžius;
@pabaiga
@įgyvendinimo asmuo
@pabaiga
Swift:
klasės asmuo {
var pavadinimas: Styga
įvairus amžius: Tarpt
init(vardas: eilutė, amžius: Int) {
self.name = vardas
pats.amžius = amžius
}
}
4. Perkelkite peržiūros valdiklius
Galite pereiti prie sudėtingesnių komponentų, pvz., peržiūros valdiklių, kai tik įgysite pasitikėjimo mažesnėmis klasėmis.
Tikslas-C:
@interface MyViewController : UIViewController
@savybė (neatominė, stipri) UILetiketė *etiketė;
@pabaiga
@implementation MyViewController
– (void)viewDidLoad {
[super viewDidLoad];
self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
self.label.text = @”Sveikas, pasauli!”;
[self.view addSubview:self.label];
}
@pabaiga
Swift:
class MyViewController: UIViewController {
var etiketė: UILabel!
nepaisyti func viewDidLoad() {
super.viewDidLoad()
etiketė = UILetiketė(rėmas: CGRect(x: 0, y: 0, plotis: 100, aukštis: 50))
label.text = „Sveikas, pasauli!”
view.addSubview(etiketė)
}
}
„Objective-C“ makrokomandų tvarkymas „Swift“.
„Objective-C“ patogumui dažnai naudoja makrokomandas. Perkeldami į „Swift“, šias makrokomandas turite pakeisti atitinkamu „Swift“ kodu. Štai pavyzdys, kaip tvarkyti įprastas makrokomandas.
Tikslas-C:
#define Įrenginys [UIDevice currentDevice]
#define CanMakePhoto() [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]
#define isIPhone() (isDev(@”iPhone”) || isDev(@”iPod”))
– (BOOL)isDev:(NSString *)device {
grąžinti [Device.model containsString:device];
}
Swift:
klasės įrenginys {
statinė srovės srovė: UIDevice { UIDevice.current}
static var canMakePhoto: Bool {
UIImagePickerController.isSourceTypeAvailable(.camera)
}
static func isDevice(_ device: String) -> Bool {
UIDevice.current.model.contains(device)
}
static var isIPhone: Bool {
isDevice („iPhone“) || isDevice („iPod“)
Geriausia praktika
Naudokite perkėlimą kaip galimybę pertvarkyti ir išvalyti kodą. Pašalinkite nenaudojamą kodą ir patobulinkite dizainą. Dėl to jūsų kodų bazė bus lengviau prižiūrima ir su ja bus lengviau dirbti ateityje.
· Pasinaudokite „Swift“ funkcijomis
Pasinaudokite galingomis „Swift“ funkcijomis, tokiomis kaip pasirenkamos, bendrosios ir uždarymo priemonės, kad galėtumėte rašyti išraiškingesnį ir saugesnį kodą. Šios funkcijos gali padėti parašyti kodą, kuris yra glaustesnis ir mažiau klaidų.
· Išbandyk nuodugniai
Įsitikinkite, kad perkeltas kodas yra kruopščiai patikrintas. Norėdami patikrinti teisingumą, naudokite vienetų testus, vartotojo sąsajos testus ir rankinį testavimą. Automatizuoti testai yra ypač svarbūs norint užfiksuoti regresijas ir užtikrinti, kad jūsų pakeitimai neįtrauktų naujų klaidų.
· Dokumentacija
Atnaujinkite savo dokumentus, kad atspindėtų kodų bazės pakeitimus. Tai padeda jūsų komandai suprasti naująjį „Swift“ kodą ir užtikrina, kad būsimi kūrėjai galės lengvai naršyti ir prižiūrėti kodą.
Dažni iššūkiai
Klasių su sudėtingomis priklausomybėmis perkėlimas gali būti sudėtingas. Išardykite priklausomybes ir palaipsniui migruokite. Šis metodas padeda valdyti sudėtingumą ir sumažina klaidų riziką.
· Atminties valdymas
„Swift“ naudoja automatinį nuorodų skaičiavimą (ARC), pvz., „Objective-C“, tačiau yra subtilių skirtumų. Atkreipkite dėmesį į išsaugojimo ciklus ir atminties nutekėjimą. Naudokite silpnas ir nepriklausančias „Swift“ nuorodas, kad tinkamai valdytumėte objektų eksploatavimo laiką ir išvengtumėte atminties problemų.
· Našumo derinimas
Nors „Swift“ paprastai veikia, kai kurias kodo dalis gali reikėti optimizuoti. Naudokite priemones ir profiliavimo įrankius, kad nustatytumėte ir pašalintumėte veiklos kliūtis.
Reguliarus našumo tikrinimas užtikrina, kad jūsų programa po perkėlimo išliks reaguoti ir efektyvi.
Trikčių šalinimo patarimai ir priminimai
Perkėlimo patirtis skiriasi priklausomai nuo esamos kodų bazės, tačiau pateikiami keli bendrieji veiksmai ir įrankiai, padėsiantys pašalinti proceso triktis:
- Atminkite, kad „Objective-C“ negalite klasifikuoti „Swift“ klasės. Todėl klasė, kurią perkeliate, negali turėti jokių Objective-C poklasių.
- Kai perkeliate klasę į Swift, prieš kurdami turite pašalinti atitinkamą .m failą iš paskirties vietos, kad išvengtumėte pasikartojančio simbolio klaidos.
- Kad „Swift“ klasė būtų pasiekiama „Objective-C“, padarykite ją Objective-C klasės palikuonimi.
- Command ir spustelėkite Swift klasės pavadinimą, kad pamatytumėte jos sugeneruotą antraštę.
- Parinktis spustelėkite simbolį, kad pamatytumėte netiesioginę informaciją apie jį, pvz., jo tipą, atributus ir dokumentacijos komentarus.
Papildomi patarimai
· Reguliariai sujunkite pakeitimus
Perkėlimo proceso metu labai svarbu reguliariai sujungti pakeitimus iš pagrindinės šakos į migracijos skyrių. Ši praktika padeda išvengti didelių susijungimų konfliktų ir suderina jūsų perkėlimo pastangas su vykdoma plėtra.
· Naudokite „Swift“ žaidimų aikšteles
„Swift Playgrounds“ gali būti puikus įrankis eksperimentuoti su „Swift“ kodu ir išbandyti mažas perkėlimo dalis prieš integruojant jas į pagrindinį projektą. Šis metodas gali padėti suprasti „Swift“ sintaksę ir elgesį nepažeidžiant pagrindinės kodų bazės.
· Įtraukite savo komandą
Migracija yra komandinis darbas. Įtraukite savo komandos narius į procesą, dalinkitės žiniomis apie „Swift“ ir bendradarbiaukite spręsdami migracijos iššūkius. Reguliarios kodo peržiūros ir programavimo poros gali padėti užtikrinti perkelto kodo nuoseklumą ir kokybę.
Išvada
Perėjimas nuo „Objective-C“ prie „Swift“ yra didelė investicija, tačiau ji gali atsipirkti dėl kodo priežiūros, saugos ir našumo. Geriausia vadovautis sistemingu požiūriu, pasinaudoti „Swift“ funkcijomis ir kruopščiai išbandyti kodą atliekant perkėlimą.
Tai užtikrins sklandų ir sėkmingą perėjimą.
Ar esate pasirengęs pakeisti savo iOS programėles į naujausią ir efektyviausią programavimo kalbą? Rašykite mums adresu [email protected] Norėdami sužinoti daugiau apie tai, kaip Xavor mobiliųjų programėlių kūrimo paslaugos gali padėti jums pasiekti verslo tikslus.