UIKit పరిమితుల నుండి విముక్తి పొందడం: స్విఫ్ట్యుఐ విధానం
UIKit నుండి SwiftUIకి మారడం అనేది కఠినమైన మార్గదర్శకాల ప్రపంచం నుండి సృజనాత్మక స్వేచ్ఛకు మారినట్లు అనిపిస్తుంది. 🌟 ఫ్లెక్సిబిలిటీ ఉత్తేజకరమైనది అయినప్పటికీ, ముఖ్యంగా నిర్బంధ-ఆధారిత లేఅవుట్లకు అలవాటు పడిన డెవలపర్లకు కూడా ఇది అధికంగా ఉంటుంది. అనుపాత అంతరం మరియు నిర్మాణాన్ని కొనసాగిస్తూనే పరికరాల అంతటా అందంగా స్వీకరించే లేఅవుట్లను సృష్టించడం ఒక సాధారణ పోరాటం.
మీరు ఎగువ కంటైనర్తో మూడు స్థిర-ఎత్తు వీక్షణలుగా విభజించి, అందుబాటులో ఉన్న స్థలాన్ని పూరించడానికి విస్తరించే దిగువ కంటైనర్తో ఇంటర్ఫేస్ను నిర్మిస్తున్నట్లు ఊహించుకోండి. చిన్న పరికరాలలో, ఎగువ విభాగం కుదించబడాలి, కానీ నిర్దిష్ట కనిష్ట ఎత్తు కంటే తక్కువగా ఉండకూడదు. పెద్ద పరికరాలలో, టాప్ కంటైనర్ పెరుగుతుంది, కానీ నిర్వచించబడిన గరిష్ట ఎత్తు వరకు మాత్రమే. ఈ అవసరాలను బ్యాలెన్స్ చేయడం స్విఫ్ట్యుఐలో సూదిని థ్రెడ్ చేసినట్లుగా అనిపించవచ్చు.
UIKitలో, దీనిని పరిష్కరించడంలో స్వయంచాలకంగా లేఅవుట్ మరియు పరిమితులను పెంచడం, వీక్షణలు మరియు స్పేసర్లు దామాషా ప్రకారం సర్దుబాటు చేయడం వంటివి ఉంటాయి. అయితే, SwiftUI దృష్టికోణంలో మార్పును కోరుతుంది, సాపేక్ష విలువలు మరియు మాడిఫైయర్లపై దృష్టి సారిస్తుంది. కోడ్ను అతిగా క్లిష్టతరం చేయకుండా లేదా ప్రతి మలుపులో జామెట్రీ రీడర్ను ఆశ్రయించకుండా అదే స్థాయి ఖచ్చితత్వాన్ని సాధించడంలో సవాలు ఉంది.
ఈ కథనం SwiftUIలో అటువంటి లేఅవుట్ను రూపొందించడంలో మునిగిపోతుంది, కనిష్ట మరియు గరిష్ట పరిమాణాలను నియంత్రించడానికి మరియు పరికరాల్లో అనుపాతతను కాపాడుకోవడానికి ఆచరణాత్మక చిట్కాలను అందిస్తోంది. ప్రయోగాత్మక ఉదాహరణ మరియు స్పష్టమైన వివరణలతో, మీరు ఉపయోగించిన ఖచ్చితత్వాన్ని సాధించేటప్పుడు SwiftUI యొక్క డిక్లరేటివ్ స్టైల్ను స్వీకరించడానికి మీకు అధికారం లభిస్తుంది. 🚀
ఆదేశం | ఉపయోగం యొక్క ఉదాహరణ |
---|---|
Spacer(minLength:) | ఈ ఆదేశం వీక్షణల మధ్య సౌకర్యవంతమైన అంతరాన్ని జోడిస్తుంది. ది లేఅవుట్లో స్పేసింగ్ కాన్సిస్టెన్సీని నిర్వహించడానికి కీలకమైన 20px వంటి పేర్కొన్న విలువ కంటే స్థలం ఎప్పటికీ తగ్గిపోదని పరామితి నిర్ధారిస్తుంది. |
.frame(height:) | వీక్షణ కోసం స్పష్టమైన ఎత్తును సెట్ చేయడానికి ఉపయోగించబడుతుంది. ఉదాహరణలలో, ఎగువ కంటైనర్ నిర్వచించబడిన నిమి మరియు గరిష్ట ఎత్తు పరిమితుల్లో అనుపాత పరిమాణాన్ని నిర్వహించేలా ఇది నిర్ధారిస్తుంది. |
GeometryReader | దాని పిల్లల వీక్షణల పరిమాణం మరియు స్థానానికి ప్రాప్యతను అందించే కంటైనర్ వీక్షణ. స్క్రీన్ పరిమాణానికి సంబంధించి టాప్ కంటైనర్ యొక్క అనుపాత ఎత్తు వంటి డైనమిక్ కొలతలను లెక్కించడానికి ఇది చాలా అవసరం. |
.background(Color) | వీక్షణ కోసం నేపథ్య రంగును సెట్ చేస్తుంది. స్క్రిప్ట్లలో, రంగులు వంటివి , , మరియు స్పష్టత కోసం లేఅవుట్ విభాగాలను దృశ్యమానంగా వేరు చేయడానికి ఉపయోగించబడతాయి. |
.maxHeight | వీక్షణ కోసం గరిష్టంగా అనుమతించదగిన ఎత్తును సెట్ చేసే లేఅవుట్ పరిమితి. ఐప్యాడ్ల వంటి పెద్ద పరికరాలలో టాప్ కంటైనర్ పరిమాణాన్ని క్యాప్ చేయడానికి ఇది ఉపయోగించబడుతుంది. |
.minHeight | వీక్షణ యొక్క కనిష్ట ఎత్తును నిర్వచించే పరిమితి, చిన్న పరికరాలు దాని కంటెంట్ అవసరాల కంటే టాప్ కంటైనర్ను తగ్గించకుండా చూసుకోవాలి. |
.frame(maxHeight: .infinity) | ఈ మాడిఫైయర్ అందుబాటులో ఉన్న అన్ని నిలువు స్థలాన్ని ఆక్రమించడానికి వీక్షణను విస్తరించడానికి అనుమతిస్తుంది. దిగువ కంటైనర్లో, ఎగువ కంటైనర్ దిగువన మిగిలిన స్థలాన్ని పూరించడానికి వీక్షణ సాగేలా ఇది నిర్ధారిస్తుంది. |
VStack(spacing:) | పిల్లల వీక్షణలను వాటి మధ్య అనుకూలీకరించదగిన అంతరంతో నిలువు స్టాక్లో నిర్వహిస్తుంది. ది టాప్ కంటైనర్లో సబ్వ్యూల మధ్య స్థిరమైన ఖాళీలను సెట్ చేయడానికి పరామితి కీలకం. |
.size.height | లేఅవుట్ సర్దుబాట్ల కోసం డైనమిక్గా నిష్పత్తులను లెక్కించేందుకు ఉపయోగించే స్క్రీన్ లేదా పేరెంట్ కంటైనర్ ఎత్తును తిరిగి పొందే GeometryReader యొక్క ఆస్తి. |
PreviewProvider | Xcodeలో SwiftUI వీక్షణల ప్రివ్యూను అందిస్తుంది, డెవలపర్లు పరికరంలో యాప్ని అమలు చేయకుండానే వారి లేఅవుట్ను దృశ్యమానంగా పరీక్షించడానికి మరియు ధృవీకరించడానికి వీలు కల్పిస్తుంది. |
SwiftUIలో పరిమితి లాంటి లేఅవుట్లను డీకోడింగ్ చేయడం
అందించిన స్క్రిప్ట్లు UIKit యొక్క స్వీయ లేఅవుట్ యొక్క ఖచ్చితత్వాన్ని అనుకరిస్తూ, SwiftUIలో నిబంధన లాంటి లేఅవుట్ని సృష్టించే సవాలును ఎదుర్కొంటాయి. వీక్షణలు కనిష్ట అంతరం మరియు ఎత్తు ఉండేలా చూసుకోవడానికి మొదటి స్క్రిప్ట్ `స్పేసర్(minLength:)` మరియు `.frame(height:)`ని ఉపయోగిస్తుంది. ఈ విధానం చిన్న పరికరాలలో కూడా టాప్ కంటైనర్ నిర్దిష్ట ఎత్తు కంటే తక్కువగా కుంచించుకుపోకుండా నిర్ధారిస్తుంది. ఎత్తు కోసం నిర్దిష్ట పరిమితులను నిర్వచించడం ద్వారా, స్థలం పరిమితం అయినప్పుడు మేము లేఅవుట్ కూలిపోకుండా నిరోధించాము. పెద్ద స్క్రీన్ల కోసం ఫ్లెక్సిబిలిటీని అనుమతించేటప్పుడు సబ్వ్యూల మధ్య అంతరం 20px కంటే ఎక్కువగా ఉంటుందని `స్పేసర్(minLength:)` హామీ ఇస్తుంది. 🎯
రెండవ స్క్రిప్ట్లో జ్యామెట్రీ రీడర్ ఉపయోగం లేఅవుట్ యొక్క డైనమిక్ అనుసరణను అనుమతిస్తుంది. ఇది అందుబాటులో ఉన్న స్క్రీన్ ఎత్తు ఆధారంగా ఎగువ మరియు దిగువ కంటైనర్ల నిష్పత్తిని గణిస్తుంది. ఉదాహరణకు, iPhoneలో, కనిష్ట మరియు గరిష్ట ఎత్తు పరిమితులను గౌరవిస్తూ 1:1 నిష్పత్తిని నిర్ధారించడానికి `topHeight` డైనమిక్గా సర్దుబాటు చేస్తుంది. ఐప్యాడ్లో, `maxTopHeight` పరామితి ఎగువ కంటైనర్ పెరుగుదలను పరిమితం చేస్తుంది, దిగువ కంటైనర్లో తగినంత స్థలం ఉందని నిర్ధారిస్తుంది. ఇది అన్ని పరికర పరిమాణాలలో ఊహించదగిన విధంగా ప్రవర్తించే అనుకూల ఇంటర్ఫేస్లను రూపొందించడానికి స్క్రిప్ట్ను అనువైనదిగా చేస్తుంది. 📱
రెండు స్క్రిప్ట్లు GeometryReaderపై ఎక్కువగా ఆధారపడకుండా అనుపాత లేఅవుట్లను ఎలా నిర్వహించాలో ప్రదర్శిస్తాయి. SwiftUI యొక్క డిక్లరేటివ్ సింటాక్స్ను ప్రభావితం చేయడం ద్వారా, లేఅవుట్ యొక్క నిర్మాణం మరియు విజువల్ సోపానక్రమాన్ని నిర్వచించడానికి మేము `.frame()` మరియు `.background()`ని ఉపయోగిస్తాము. ఉదాహరణకు, ఎగువ కంటైనర్ కొలతలతో సంబంధం లేకుండా, మిగిలిన స్థలాన్ని విస్తరించడానికి మరియు పూరించడానికి దిగువ కంటైనర్కు `.ఫ్రేమ్(maxHeight: .infinity)` కేటాయించబడింది. ఈ మాడ్యులర్ విధానం కోడ్ను పునర్వినియోగపరచదగినదిగా చేస్తుంది మరియు విభిన్న డిజైన్ అవసరాలకు అనుగుణంగా సులభంగా మారుతుంది.
ఆచరణాత్మక అనువర్తనాల్లో, విభిన్న కంటెంట్తో యాప్ల కోసం ప్రతిస్పందించే లేఅవుట్లను రూపొందించేటప్పుడు ఈ పద్ధతులు మెరుస్తాయి. మీడియా ప్లేయర్ యాప్ రూపకల్పన చేయడాన్ని ఊహించండి: ఎగువ విభాగం నియంత్రణలను (స్థిరమైన ఎత్తు) ప్రదర్శిస్తుంది, అయితే దిగువ వీడియో కంటెంట్ను చూపుతుంది. చిన్న పరికరాలలో, నియంత్రణల విభాగం కొద్దిగా తగ్గిపోతుంది, అయితే వీడియో దామాషా ప్రకారం సర్దుబాటు అవుతుంది. అదేవిధంగా, డ్యాష్బోర్డ్ ఇంటర్ఫేస్లో, దిగువ విభాగంలో వివరణాత్మక చార్ట్ కోసం తగినంత స్థలాన్ని వదిలివేసేటప్పుడు టాప్ మెట్రిక్స్ ప్యానెల్ చదవగలిగేలా ఉండేలా మీరు ఈ స్క్రిప్ట్లను ఉపయోగించవచ్చు. ఈ SwiftUI టెక్నిక్లను కలపడం ద్వారా, మీరు దృశ్యపరంగా ఆకర్షణీయంగా మరియు క్రియాత్మకంగా పటిష్టంగా ఉండే లేఅవుట్లను రూపొందించవచ్చు. 🚀
SwiftUI లేఅవుట్ ఛాలెంజ్: నిర్బంధం-వంటి ఖచ్చితత్వాన్ని సాధించడం
ఈ పరిష్కారం మాడ్యులర్ స్ట్రక్చర్తో SwiftUI యొక్క డిక్లరేటివ్ విధానాన్ని ఉపయోగిస్తుంది మరియు GeometryReaderపై ఆధారపడకుండా లేఅవుట్ను ఆప్టిమైజ్ చేస్తుంది. ఇది కనిష్ట మరియు గరిష్ట ఎత్తు పరిమితులతో పరికరాల్లో అనుకూలతను నిర్ధారిస్తుంది.
import SwiftUI
struct AdaptiveLayoutView: View {
let minTopHeight: CGFloat = 200
let maxTopHeight: CGFloat = 400
var body: some View {
GeometryReader { geometry in
VStack(spacing: 0) {
VStack {
TopView()
Spacer(minLength: 20)
CenterView()
Spacer(minLength: 20)
BottomView()
}
.frame(height: min(max(minTopHeight, geometry.size.height / 2), maxTopHeight))
.background(Color.red)
VStack {
FillView()
}
.frame(maxHeight: .infinity)
.background(Color.green)
}
}
}
}
struct TopView: View { var body: some View { Color.blue.frame(height: 50) } }
struct CenterView: View { var body: some View { Color.yellow.frame(height: 50) } }
struct BottomView: View { var body: some View { Color.purple.frame(height: 50) } }
struct FillView: View { var body: some View { Color.orange } }
struct AdaptiveLayoutView_Previews: PreviewProvider {
static var previews: some View {
AdaptiveLayoutView()
}
}
SwiftUI లేఅవుట్ సొల్యూషన్: జామెట్రీ రీడర్తో డైనమిక్ రీసైజింగ్
ఈ ప్రత్యామ్నాయ పరిష్కారం లేఅవుట్ కొలతలు మరియు నిష్పత్తులపై ఖచ్చితమైన నియంత్రణ కోసం GeometryReaderని ప్రభావితం చేస్తుంది, అన్ని స్క్రీన్ పరిమాణాలలో అనుకూల ప్రవర్తనను నిర్ధారిస్తుంది.
import SwiftUI
struct GeometryLayoutView: View {
var body: some View {
GeometryReader { geometry in
let totalHeight = geometry.size.height
let topHeight = max(min(totalHeight * 0.5, 400), 200)
VStack(spacing: 0) {
VStack {
TopView()
Spacer(minLength: 20)
CenterView()
Spacer(minLength: 20)
BottomView()
}
.frame(height: topHeight)
.background(Color.red)
VStack {
FillView()
}
.frame(height: totalHeight - topHeight)
.background(Color.green)
}
}
}
}
struct GeometryLayoutView_Previews: PreviewProvider {
static var previews: some View {
GeometryLayoutView()
}
}
GeometryReader లేకుండా SwiftUIలో డైనమిక్ లేఅవుట్లను సాధించడం
SwiftUI యొక్క ఒక శక్తివంతమైన ఇంకా తక్కువగా అన్వేషించబడిన అంశం ఏమిటంటే, సంబంధిత మాడిఫైయర్లను ఉపయోగించి ప్రతిస్పందించే లేఅవుట్లను సృష్టించగల సామర్థ్యం, ఇది GeometryReader అవసరాన్ని నివారిస్తుంది. `.frame()` మరియు `.layoutPriority()` వంటి ప్రాపర్టీలను ప్రభావితం చేయడం ద్వారా, మీరు వివిధ స్క్రీన్ పరిమాణాల్లో వీక్షణలు ఎలా సర్దుబాటు అవుతాయో సమర్థవంతంగా నియంత్రించవచ్చు. ఉదాహరణకు, దిగువ కంటైనర్కు అధిక లేఅవుట్ ప్రాధాన్యతను కేటాయించడం, ఎగువ కంటైనర్ యొక్క ఎత్తు పరిమితం చేయబడినప్పుడు అందుబాటులో ఉన్న స్థలాన్ని పూరించడానికి అది విస్తరించేలా నిర్ధారిస్తుంది. అతివ్యాప్తి లేదా లేఅవుట్ సంకోచాన్ని నివారించడంలో ఈ వ్యూహం ప్రత్యేకంగా ఉపయోగపడుతుంది. 🎯
ఎగువ కంటైనర్లోని సబ్వ్యూల కోసం `.fixedSize()`ని ఉపయోగించడం మరొక విధానం. వీక్షణలు వాటి అంతర్గత కంటెంట్ పరిమాణాన్ని కలిగి ఉండేలా ఈ మాడిఫైయర్ నిర్ధారిస్తుంది, అవసరమైనప్పుడు తల్లిదండ్రుల పరిమితులను భర్తీ చేస్తుంది. ఉదాహరణకు, అగ్ర గణాంకాల పట్టీ ఉన్న డ్యాష్బోర్డ్లో, `.fixedSize()` బార్ యొక్క కొలమానాలు ఎల్లప్పుడూ స్పష్టంగా ఉన్నాయని హామీ ఇస్తుంది. అదనంగా, `.padding()`ని డైనమిక్ స్పేసర్లతో కలపడం వలన స్పష్టమైన కొలతలు అవసరం లేకుండా ఇంటర్-వ్యూ స్పేసింగ్పై చక్కటి నియంత్రణను అందిస్తుంది, ఫలితంగా క్లీనర్ మరియు మరింత మెయింటెనబుల్ లేఅవుట్ లభిస్తుంది.
చివరగా, `.alignmentGuide()`ని పరిచయం చేయడం వలన వాటి పేరెంట్ కంటైనర్కు సంబంధించి వీక్షణల ఖచ్చితమైన ప్లేస్మెంట్ను అనుమతిస్తుంది. సబ్వ్యూలు మారుతున్న స్థలానికి అనుగుణంగా ఉన్నప్పుడు అగ్ర వీక్షణ తప్పనిసరిగా ఎంకరేజ్ చేయబడే పరిస్థితుల్లో, `.alignmentGuide()` అనేది అమూల్యమైనది. ఉదాహరణకు, మీడియా ప్లేబ్యాక్ యాప్లో, విజువల్ సామరస్యాన్ని కొనసాగించడానికి చుట్టుపక్కల మూలకాలు డైనమిక్గా సర్దుబాటు చేస్తున్నప్పుడు ప్లే బటన్ (టాప్-సెంటర్) ఖచ్చితంగా ఉంచబడుతుంది. ఈ పద్ధతులను కలపడం ద్వారా, మీరు GeometryReaderపై ఎక్కువగా ఆధారపడకుండా అనువర్తన యోగ్యమైన మరియు దృఢమైన లేఅవుట్లను రూపొందించవచ్చు. 🚀
- వీక్షణలు కనీస పరిమాణానికి తగ్గకుండా చూసుకోవడానికి ఉత్తమ మార్గం ఏమిటి?
- ఉపయోగించి విస్తరణ కోసం సౌలభ్యాన్ని అనుమతించేటప్పుడు వీక్షణలు కనిష్ట ఎత్తును నిర్వహించేలా నిర్ధారిస్తుంది.
- నేను GeometryReader లేకుండా అనుపాత లేఅవుట్లను సాధించవచ్చా?
- అవును, మాడిఫైయర్లు ఇష్టపడతాయి సంబంధిత పరిమాణాలతో మరియు GeometryReader అవసరం లేకుండా దామాషా సర్దుబాట్లను అనుమతించండి.
- కంటైనర్లోని వీక్షణల మధ్య అతివ్యాప్తి చెందడాన్ని నేను ఎలా నిరోధించగలను?
- ఉపయోగించి వీక్షణల మధ్య తగినంత అంతరాన్ని నిర్ధారిస్తుంది, నిర్బంధ లేఅవుట్లలో కూడా అతివ్యాప్తిని నివారిస్తుంది.
- ఎలాంటి పాత్ర చేస్తుంది లేఅవుట్లలో ఆడవా?
- సంక్లిష్టమైన లేఅవుట్లలో స్థిరత్వాన్ని నిర్ధారిస్తూ, నిర్దిష్ట అమరికలకు సంబంధించి వీక్షణల స్థానాలను నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది.
- టైట్ స్పేస్లలో రీడబిలిటీని కొనసాగించడంలో `.fixedSize()` సహాయం చేయగలదా?
- అవును, మెరుగైన రీడబిలిటీ కోసం బాహ్య పరిమితులను అధిగమిస్తూ, దాని అంతర్గత పరిమాణాన్ని నిలుపుకోవడానికి వీక్షణను బలవంతం చేస్తుంది.
- అంతరాన్ని డైనమిక్గా నియంత్రించడం సాధ్యమేనా?
- అవును, ఉపయోగిస్తున్నారు మరియు కలిసి సౌకర్యవంతమైన ఇంకా నియంత్రిత అంతరాన్ని అందిస్తుంది.
- నేను నా SwiftUI లేఅవుట్లను ఎలా సమర్థవంతంగా పరీక్షించగలను?
- Xcode ప్రివ్యూ కాన్వాస్ని ఉపయోగించి, లేఅవుట్లు సరిగ్గా సరిపోయేలా చూసుకోవడానికి మీరు పరికర పరిమాణాలు మరియు ధోరణులను సర్దుబాటు చేయవచ్చు.
- SwiftUIలో లేఅవుట్ ప్రాధాన్యతలు ముఖ్యమా?
- అవును, కేటాయించడం పరిమితులను వర్తింపజేసినప్పుడు ఏ వీక్షణలకు ఎక్కువ స్థలం లభిస్తుందో నిర్ణయించడంలో సహాయపడుతుంది.
- మెరుగైన సౌలభ్యం కోసం నేను స్పష్టమైన పరిమాణాలను ఉపయోగించకుండా ఉండవచ్చా?
- అవును, దీనితో అంతర్గత పరిమాణాలపై ఆధారపడటం మరియు డైనమిక్ స్పేసర్లు హార్డ్కోడెడ్ కొలతల అవసరాన్ని తగ్గిస్తుంది.
- SwiftUIలో రెస్పాన్సివ్ డిజైన్ కోసం ఉత్తమమైన విధానం ఏమిటి?
- సాపేక్ష పరిమాణాన్ని కలపడం (), డైనమిక్ స్పేసింగ్ మరియు లేఅవుట్ ప్రాధాన్యతలు అన్ని పరికరాలలో ప్రతిస్పందనను నిర్ధారిస్తాయి.
SwiftUIలో పరిమితి-వంటి లేఅవుట్లను రూపొందించడం వశ్యత మరియు నియంత్రణ మధ్య సమతుల్యతను అందిస్తుంది. `.frame()` మరియు `.layoutPriority()` వంటి ఫీచర్లను ఉపయోగించడం ద్వారా, డెవలపర్లు విభిన్న స్క్రీన్ పరిమాణాలలో తమ సమగ్రతను కొనసాగించే అనుకూల డిజైన్లను రూపొందించడానికి అవసరమైన ఖచ్చితత్వాన్ని సాధించగలరు. ఇది UIKitకి బహుముఖ ప్రత్యామ్నాయంగా SwiftUIని అనుమతిస్తుంది.
ఇది మీడియా ప్లేయర్ ఇంటర్ఫేస్ అయినా లేదా అడాప్టివ్ ప్యానెల్లతో కూడిన డ్యాష్బోర్డ్ అయినా, SwiftUI ప్రతిస్పందించే లేఅవుట్లను రూపొందించడంలో అద్భుతంగా ఉంటుంది. డెవలపర్లు డైనమిక్ స్పేసర్లు మరియు అలైన్మెంట్ టూల్స్ను ఉపయోగించుకుని, సౌందర్య ఆకర్షణను కోల్పోకుండా క్లీన్ మరియు ఫంక్షనల్ డిజైన్లను నిర్ధారించవచ్చు. ఈ విధానాన్ని స్వీకరించడం వినియోగదారు అనుభవాన్ని మెరుగుపరుచుకుంటూ లేఅవుట్ నిర్వహణను సులభతరం చేస్తుంది. 🚀
- SwiftUI లేఅవుట్ సూత్రాలు మరియు డైనమిక్ సైజింగ్పై వివరాలు Apple యొక్క అధికారిక డాక్యుమెంటేషన్ నుండి స్వీకరించబడ్డాయి: SwiftUI డాక్యుమెంటేషన్ .
- Swift by Sundell బ్లాగ్ నుండి సూచించబడిన పరికరాలలో ప్రతిస్పందించే డిజైన్ కోసం కాన్సెప్ట్లు: సుండెల్ ద్వారా స్విఫ్ట్ .
- రే వెండర్లిచ్ ట్యుటోరియల్స్ నుండి సమీక్షించబడిన వాస్తవ-ప్రపంచ SwiftUI అమలుల ఉదాహరణలు: రే వెండర్లిచ్ .