ဒီ mini project မှာ Swift basics တွေကိုပေါင်းပြီး Course Progress Tracker တစ်ခုတည်ဆောက်ပါမယ်။ Learner တစ်ယောက်ရဲ့ lesson progress ကို array, dictionary, function, optional, loop, condition တွေနဲ့တွက်ပြမယ့် example ဖြစ်ပါတယ်။
ဒီ project လေးက real app မှာ course dashboard, onboarding checklist, task tracker, habit tracker စတာတွေတည်ဆောက်ရာမှာသုံးနိုင်တဲ့ logic foundation ကိုပေးပါတယ်။
struct CourseProgress {
let learnerName: String
var completedLessons: [String]
let totalLessonCount: Int
var completedCount: Int {
completedLessons.count
}
var percent: Double {
Double(completedCount) / Double(totalLessonCount) * 100
}
func summary() -> String {
if completedLessons.isEmpty {
return "\(learnerName) has not started yet."
}
return "\(learnerName) completed \(completedCount)/\(totalLessonCount) lessons (\(Int(percent))%)."
}
}
var progress = CourseProgress(
learnerName: "Nandar",
completedLessons: ["Intro", "Variables", "Arrays"],
totalLessonCount: 10
)
print(progress.summary())
for lesson in progress.completedLessons {
print("Done: \(lesson)")
}CourseProgress struct က learner name, completed lessons, total lesson count တွေကိုသိမ်းပါတယ်။ completedCount နဲ့ percent က computed properties ပါ။ summary() method က progress အခြေအနေကို user-facing text အဖြစ်ပြန်ပေးပါတယ်။
Nandar completed 3/10 lessons (30%). Done: Intro Done: Variables Done: Arraysနောက်တစ်ဆင့်
နောက်တစ်ဆင့်အနေနဲ့ addCompletedLesson() method တစ်ခုထည့်ပြီး lesson အသစ်ကို duplicate မဖြစ်အောင်စစ်ပါ။ ပြီးရင် SwiftUI List view ထဲမှာ ဒီ data ကိုပြနိုင်အောင်ကြိုးစားပါ။