Thuta Learning
ရှာဖွေရန်
BasicMobile Developmentintermediate

iOS Project Structure

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • iOS Project Structure ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် Xcode/SwiftUI code ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

`Info.plist` က app ရဲ့ 'ID card' ပါ — app name, permission usage description (camera, location), supported orientation, minimum iOS version ကို ဖော်ပြထားပါတယ်။ `Assets.xcassets` ကတော့ image, icon, color ကို organize လုပ်ထားတဲ့ resource catalog ပါ — device resolution (1x/2x/3x) အလိုက် image variant ကို auto-select ပေးပါတယ်။ `App.swift` (`@main struct MyApp: App`) က app ဖွင့်တာနဲ့ ပထမဆုံး run တဲ့ entry point ပါ.

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Camera feature သုံးချင်ရင် `Info.plist` ထဲမှာ `NSCameraUsageDescription` key ကို 'ဓာတ်ပုံရိုက်ဖို့ camera access လိုအပ်ပါတယ်' ဆိုတဲ့ user-facing explanation string နဲ့ ထည့်ရေးရပါတယ် — ဒါမထည့်ဘဲ camera API ကို ခေါ်ရင် app crash ချက်ချင်း ဖြစ်ပါလိမ့်မယ် (Android ရဲ့ runtime permission request ထက် ပိုတင်းကျပ်ပါတယ်).

အတူတူ ကြည့်မယ်

swift
// App.swift
import SwiftUI

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

// Info.plist (excerpt)
// <key>NSCameraUsageDescription</key>
// <string>We need camera access to let you take photos.</string>
You should see
Project structure ရဲ့ file ၃ ခု (Info.plist/Assets/App.swift) ရဲ့ တာဝန်ကို ခွဲခြားနိုင်မည်။

၅ မိနစ် စမ်းကြည့်

Xcode project ထဲမှာ `Info.plist`, `Assets.xcassets`, `App.swift` ၃ ခုကို ဖွင့်ကြည့်ပြီး တစ်ခုချင်းစီက ဘာလုပ်ပေးလဲ ကိုယ်တိုင် မှတ်ချက်ရေးကြည့်ပါ။

သတိလေးတစ်ချက်

`Info.plist` ထဲက usage description string ကို generic/vague ရေးထားရင် (ဥပမာ - 'App needs access') Apple App Store review ကနေ reject ခံရနိုင်ပါတယ် — feature ကို ဘာကြောင့် လိုအပ်လဲ တိတိကျကျ ရေးရပါမယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Permission usage description string ကို `Info.plist` ထဲ ထည့်ဖို့ မေ့ခြင်း — feature (camera, location) ကို ခေါ်ရင် crash ချက်ချင်း ဖြစ်နိုင်ပါတယ် (Android ထက် ပိုပြင်းထန်တဲ့ failure mode ပါ)
  • Image asset ကို resolution variant (1x/2x/3x) မထည့်ဘဲ 1 ခုတည်း ထည့်ခြင်း — high-resolution device ပေါ်မှာ blurry ဖြစ်နိုင်ပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

Xcode project ထဲမှာ `Info.plist`, `Assets.xcassets`, `App.swift` ၃ ခုကို ဖွင့်ကြည့်ပြီး တစ်ခုချင်းစီက ဘာလုပ်ပေးလဲ ကိုယ်တိုင် မှတ်ချက်ရေးကြည့်ပါ။

You'll know it worked when: Project structure ရဲ့ file ၃ ခု (Info.plist/Assets/App.swift) ရဲ့ တာဝန်ကို ခွဲခြားနိုင်မည်။

iOS Project Structure | Thuta Learning