سوئفٹ کا استعمال کرتے ہوئے iOS ایپلیکیشنز بنانے کا سبق

سوئفٹ کا استعمال کرتے ہوئے iOS ایپس بنانے کا سبق

Xcode اور Swift پروگرامنگ لینگویج کے ذریعے Apple کے جامع ترقیاتی ماحولیاتی نظام کی بدولت iOS ایپس بنانا کبھی بھی آسان نہیں تھا۔ اس آرٹیکل میں، آپ سوئفٹ کا استعمال کرتے ہوئے iOS ایپ بنانے کا بنیادی بہاؤ سیکھیں گے، ٹولز ترتیب دینے، نیا پروجیکٹ بنانے، انٹرفیس کو ڈیزائن کرنے، اور ایپ کو سمیلیٹر میں چلانے سے لے کر۔ اگرچہ یہ ٹیوٹوریل تعارفی ہے، لیکن ایک سادہ، کام کرنے والی ایپ بنانے میں آپ کی مدد کرنے کے لیے اقدامات کافی ہونے چاہئیں۔

-

1. آلات اور ضروریات کی تیاری

کوڈ لکھنا شروع کرنے سے پہلے ، یقینی بنائیں کہ آپ کے پاس درج ذیل آلات اور سافٹ ویئر ہیں:

1. MacBook/iMac (یا Apple آلات پر macOS)، کیونکہ Xcode سرکاری طور پر صرف macOS پر چلتا ہے۔
2. ایکس کوڈ (میک ایپ اسٹور سے مفت ڈاؤن لوڈ)۔ ایکس کوڈ میں ایک کوڈ ایڈیٹر، ایک آئی فون سمیلیٹر، اور تعمیر اور ڈیبگنگ ٹولز شامل ہیں۔
3. سوئفٹ (Xcode میں شامل)۔
4. (اختیاری) ایپل ڈیولپر کا اکاؤنٹ جسمانی آلات پر انسٹال کرنے اور ایپ اسٹور پر شائع کرنے کے لیے۔

ایکس کوڈ انسٹال ہونے کے بعد، ایپلیکیشن کو کھولیں اور اگر ضروری ہو تو اضافی اجزاء کے انسٹالیشن کے عمل کے مکمل ہونے کا انتظار کریں۔

-

2. Xcode میں ایک نیا پروجیکٹ بنائیں

1. Xcode کھولیں۔
2. ایک نیا Xcode پروجیکٹ بنائیں کو منتخب کریں۔
3. ٹیمپلیٹ سیکشن میں، منتخب کریں:
- iOS۔
- ایپ
4. اگلا پر کلک کریں، پھر پروجیکٹ کنفیگریشن پُر کریں:
- پروڈکٹ کا نام: مثال کے طور پر 'HelloSwiftApp'
- ٹیم: اپنا اکاؤنٹ منتخب کریں (اگر آپ لاگ ان نہیں ہیں تو خالی ہوسکتے ہیں)
- تنظیم کا شناخت کنندہ: مثال کے طور پر `com.devname`
- انٹرفیس: SwiftUI کا انتخاب کریں (ابتدائی افراد کے لیے زیادہ جدید اور آسان)
نوٹ: اگر آپ UIKit چاہتے ہیں، تو آپ Storyboard کا انتخاب کر سکتے ہیں، لیکن یہ ٹیوٹوریل SwiftUI پر مرکوز ہے۔
- زبان: سوئفٹ
5. اگلا پر کلک کریں اور پروجیکٹ اسٹوریج لوکیشن کو منتخب کریں، پھر Create پر کلک کریں۔

پروجیکٹ بننے کے بعد، آپ کو ایک فائل کا ڈھانچہ نظر آئے گا جیسے `HelloSwiftAppApp.swift` اور `ContentView.swift`۔

-

3. SwiftUI پروجیکٹ کے بنیادی ڈھانچے کو سمجھنا

SwiftUI میں، ایپلیکیشن کا نقطہ آغاز عام طور پر `YourAppNameApp.swift` فائل ہوتا ہے۔ مثال کے طور پر:

"تیز
SwiftUI درآمد کریں۔

@main
struct HelloSwiftAppApp: App {
var جسم: کچھ منظر {
ونڈو گروپ {
ContentView()
}
}
}
“۔

مختصر وضاحت:
- `@main` درخواست کے اندراج کے مقام کو نشان زد کرتا ہے۔
- 'WindowGroup' مین ویو کنٹینر ہے۔
- 'ContentView()' ظاہر ہونے والا پہلا منظر ہے۔

دریں اثنا، 'ContentView.swift' مرکزی منظر پر مشتمل ہے:

"تیز
SwiftUI درآمد کریں۔

struct ContentView: دیکھیں {
var جسم: کچھ منظر {
متن ("ہیلو، دنیا!")
.padding()
}
}
“۔

-

4. ایک سادہ UI بنانا: "فوری نوٹس" ایپ

چیزوں کو مزید دلچسپ بنانے کے لیے، ہم "کوئیک نوٹس" کے نام سے ایک سادہ ایپلیکیشن بنائیں گے جو صارفین کو نوٹس ٹائپ کرنے اور انہیں فہرست کے طور پر ڈسپلے کرنے کی اجازت دیتی ہے۔

مرحلہ 1: ان پٹ اور فہرست کے لیے ریاستیں بنانا

'ContentView.swift' کو اس میں تبدیل کریں:

"تیز
SwiftUI درآمد کریں۔

struct ContentView: دیکھیں {
@State نجی var نوٹ متن: String = “”
@State نجی var نوٹس: [String] = []

var جسم: کچھ منظر {
نیویگیشن ویو {
VStack (اسپیسنگ: 16) {
ٹیکسٹ فیلڈ ("نوٹ لکھیں…"، متن: $noteText)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding(.horizontal)

بٹن (ایکشن: ایڈ نوٹ) {
متن ("نوٹ شامل کریں")
فریم (زیادہ سے زیادہ چوڑائی: .انفینٹی)
}
.buttonStyle(.borderedProminent)
.padding(.horizontal)

فہرست {
ForEach(نوٹ، id: \.self) { نوٹ میں
متن (نوٹ)
}
.onDelete( انجام دیں: ڈیلیٹ نوٹ)
}
}
.navigationTitle("فوری نوٹس")
}
}

نجی فنک addNote() {
let trimmed = noteText.trimmingCharacters(میں: .whitespacesAndNewlines)
گارڈ !trimmed.isEmpty else { واپس }
notes.insert (تراشی ہوئی، پر: 0)
نوٹ ٹیکسٹ = ""
}

نجی فنک ڈیلیٹ نوٹ (آفسیٹس پر: انڈیکس سیٹ) {
notes.remove(atOffsets: offsets)
}
}
“۔

-

5. اہم کوڈ کی وضاحت

سمجھنے کے لیے کچھ اہم تصورات:

- @State : ڈیٹا کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے جو اس کے مطابق اپ ڈیٹ کرنے کے لیے UI کو تبدیل اور متحرک کرے گا۔
- 'نوٹ ٹیکسٹ' ان پٹ ٹیکسٹ کو اسٹور کرتا ہے۔
- 'نوٹس' نوٹوں کی فہرست کو محفوظ کرتا ہے۔

- ٹیکسٹ فیلڈ : ٹیکسٹ ان پٹ جزو۔
بائنڈنگ `ٹیکسٹ: $noteText` کا مطلب ہے کہ TextField براہ راست `noteText` حالت سے منسلک ہے۔

- بٹن(ایکشن:): 'addNote()' فنکشن کو چلانے کے لیے بٹن۔

- فہرست + ForEach : فہرست کی شکل میں ڈیٹا دکھاتا ہے۔
`id: \.self` استعمال کیا جاتا ہے کیونکہ آئٹم ایک منفرد سٹرنگ ہے (ایک سادہ مثال کے طور پر)۔

- onDelete : فہرست سے آئٹمز کو سوائپ کے اشارے سے حذف کرنے کی اجازت دیتا ہے۔

-

6. سمیلیٹر میں ایپلیکیشن چلانا

درخواست چلانے کے لیے:

1. Xcode کے اوپری حصے میں، ٹارگٹ ڈیوائس کو منتخب کریں، مثال کے طور پر iPhone 15 (Simulator)۔
2. چلائیں بٹن پر کلک کریں (مثلث آئیکن ▶)۔
3. سمیلیٹر کھل جائے گا، پھر ایپلیکیشن خود بخود چل جائے گی۔

ایک نوٹ ٹائپ کرنے کی کوشش کریں، "نوٹ شامل کریں" کے بٹن کو دبائیں، اور دیکھیں کہ یہ فہرست میں ظاہر ہوتا ہے۔ کسی بھی آئٹم کو حذف کرنے کے لیے اسے بائیں طرف سوائپ کریں۔

-

7. سادہ ڈیبگنگ

جب کوئی درخواست توقع کے مطابق کام نہیں کرتی ہے، تو آپ یہ کر سکتے ہیں:

- خرابی کے نوشتہ جات کے لیے ایکس کوڈ کے نیچے ڈیبگ کنسول پینل کو دیکھیں۔
- متغیر اقدار کو چیک کرنے کے لیے `پرنٹ()` شامل کیا گیا:

"تیز
پرنٹ ("نوٹ شامل کیا گیا:"، تراشا ہوا)
“۔

مزید برآں، Xcode پروگرام کو ایک مخصوص لائن پر روکنے کے لیے ایک بریک پوائنٹ فیچر فراہم کرتا ہے تاکہ آپ متغیرات کے مواد کا معائنہ کر سکیں۔

-

8. ایپلی کیشنز کو بہتر بنانا: ڈیٹا کی توثیق اور اسٹوریج

مندرجہ بالا ایپلیکیشن اب بھی نوٹس کو عارضی طور پر اسٹور کرتی ہے (ایپلی کیشن بند ہونے پر وہ غائب ہو جائیں گے)۔ ترقی کے اگلے مرحلے کے لیے، آپ شامل کر سکتے ہیں:

1. مقامی ذخیرہ (یوزر ڈیفالٹس)
ایپلیکیشن بند ہونے کے بعد برقرار رہنے کے لیے نوٹوں کی ایک صف کو UserDefaults میں محفوظ کریں۔
2. ڈیٹا بیس (کور ڈیٹا/SQLite)
زیادہ پیچیدہ ڈیٹا کے لیے موزوں ہے۔
3. نوٹس کی خصوصیت میں ترمیم کریں۔
ریکارڈ میں ترمیم کرنے کے لیے ایک تفصیلی منظر بنائیں۔
4. مزید پرکشش UI
شبیہیں، رنگ، اور کلینر لے آؤٹ شامل کریں۔

ایک آسان قدم کے طور پر، آپ `JSONEncoder` اور `JSONDecoder` کا استعمال کرتے ہوئے ریکارڈز کو `UserDefaults` میں محفوظ کر کے شروع کر سکتے ہیں۔

-

9. کیسمپلن

Swift اور SwiftUI iOS ایپس بنانے کا ایک جدید اور تیز طریقہ فراہم کرتے ہیں۔ اس ٹیوٹوریل میں، آپ نے ایک نیا iOS پروجیکٹ بنانے، SwiftUI ایپ کے بنیادی ڈھانچے کو سمجھنے، TextFields، بٹنز اور فہرستوں کے ساتھ ایک سادہ UI بنانے اور سمیلیٹر میں ایپ کو چلانے کا طریقہ سیکھا۔ اگرچہ ایپ اب بھی آسان ہے، یہ بنیاد مزید پیچیدہ خصوصیات جیسے ڈیٹا اسٹوریج، صفحہ نیویگیشن، اور API انضمام کی طرف بڑھنے کے لیے ضروری ہے۔

اگر آپ چاہیں تو، میں اس ٹیوٹوریل کے مزید جدید ورژن بنانے میں بھی آپ کی مدد کر سکتا ہوں، جیسے UserDefaults/Core Data کے ساتھ مستقل اسٹوریج شامل کرنا، NavigationStack کے ساتھ ایک تفصیلی صفحہ بنانا، یا URLSession کا استعمال کرتے ہوئے انٹرنیٹ سے ڈیٹا حاصل کرنے والی ایپ بنانا۔

ایک تبصرہ چھوڑیں