Responsive Design — بنیادی باتیں، اسکرینوں کے مطابق انٹرفیس کی موافقت

مصنف: IT Sectr اشاعت: 2026-02-25 مطالعے کا وقت: 9 منٹ

Responsive Design انٹرفیس بنانے کا ایک طریقہ ہے جس میں لے آؤٹ خود بخود ڈیوائس کے سائز، سمت اور قسم کے مطابق ڈھل جاتا ہے۔ موبائل ڈویلپمنٹ میں، responsive design iOS میں size classes اور Android میں configuration qualifiers کے ذریعے لاگو کیا جاتا ہے۔ مضمون انکولی لے آؤٹ کے اصولوں، دونوں پلیٹ فارمز کے ٹولز اور کوڈ کی مثالوں کا تجزیہ کرتا ہے۔

اہم نکات

  • Responsive Design — مختلف اسکرین سائز، سمتوں اور ڈیوائس کی اقسام کے مطابق انٹرفیس کی موافقت
  • Size Classes — افقی اور عمودی طور پر کمپیکٹ یا ریگولر سائز کا تعین کرنے کا iOS طریقہ کار
  • Configuration Qualifiers — مختلف اسکرین کنفیگریشنز کے لیے Android وسائل (layout-w600dp, values-sw600dp)
  • انکولی گرڈ — اسکرین کی چوڑائی تبدیل ہونے پر عناصر کی تنظیم نو، نہ کہ صرف کھینچنا
  • Breakpoints — لے آؤٹ کی حالتوں کے درمیان منتقلی کے نکات (مثال: iPhone کے لیے 375 pt، iPad کے لیے 768 pt)

Responsive Design کیا ہے؟

Responsive Design انٹرفیس بنانے کا ایک طریقہ ہے جس میں لے آؤٹ اسکرین کے سائز، سمت اور دستیاب جگہ پر ردعمل ظاہر کرتا ہے، فعالیت کھوئے بغیر عناصر کو دوبارہ ترتیب دیتا ہے۔ یہ اصطلاح 2010 میں Ethan Marcotte نے ویب ڈیزائن کے لیے وضع کی تھی، لیکن اصول مکمل طور پر مقامی موبائل ایپلیکیشنز پر لاگو ہوتے ہیں۔

موبائل ڈویلپمنٹ میں، responsive design کا مطلب ہے کہ ایک ہی ایپلیکیشن تمام ڈیوائسز پر صحیح طریقے سے ظاہر ہوتی ہے: iPhone SE (375 pt) سے iPad Pro (عمودی میں 1024 pt) تک اور Android اسمارٹ فون (360 dp) سے ٹیبلٹ (800 dp) تک۔ کلیدی عناصر ہیں لچکدار گرڈ، انکولی تصاویر اور فریم ورک کی سطح پر میڈیا سوالات (size classes, qualifiers)۔

Apple Developer Documentation کے مطابق، ایپلیکیشن یونیورسل ہونی چاہیے — علیحدہ iPad بلڈ کے بغیر تمام ڈیوائسز پر کام کرنی چاہیے۔ Google Play Jetpack WindowManager اور canonical layouts کے ذریعے انکولی لے آؤٹ استعمال کرنے کی سفارش کرتا ہے۔ ٹیبلٹ موافقت کی کمی منفی جائزوں کی ایک عام وجہ ہے۔

Responsive vs Adaptive Design

Responsive اور adaptive کی اصطلاحات اکثر الجھ جاتی ہیں، حالانکہ یہ مختلف طریقوں کو بیان کرتی ہیں۔ Responsive design ایک لچکدار گرڈ استعمال کرتا ہے جو اسکرین کی چوڑائی کے مطابق مسلسل ایڈجسٹ ہوتا ہے۔ Adaptive design پہلے سے طے شدہ breakpoints کے لیے مقررہ لے آؤٹ استعمال کرتا ہے — ایپلیکیشن ان کے درمیان اچانک سوئچ کرتی ہے۔

خصوصیتResponsive DesignAdaptive Design
طریقہہموار بہاؤمجرد سوئچز
گرڈفیصد پر مبنی، سیالہر breakpoint کے لیے مقررہ
نفاذAuto Layout, Flexbox, ConstraintLayoutSize Classes, layout-w600dp, علیحدہ storyboards
ڈیزائن لے آؤٹ کی تعدادایک، لیکن لچکدارمتعدد (عمودی، افقی، ٹیبلٹ)

عملی طور پر، موبائل ایپس دونوں طریقوں کا مجموعہ استعمال کرتی ہیں۔ بنیادی گرڈ responsive طور پر بنایا جاتا ہے (Auto Layout constraint انحصار کے ساتھ)، اور breakpoint (مثال: چوڑائی > 600 pt) تک پہنچنے پر، لے آؤٹ عناصر کی مختلف ترتیب کے ساتھ انکولی ورژن میں سوئچ ہو جاتا ہے۔ iOS Auto Layout (responsive) کو Size Classes (adaptive) کے ساتھ جوڑتا ہے۔ Android ConstraintLayout (responsive) کو qualifier وسائل (adaptive) کے ساتھ جوڑتا ہے۔

iOS Size Classes: Compact اور Regular

Size Classes ایک iOS طریقہ کار ہے جو دستیاب اسکرین کی جگہ کو دو محوروں پر درجہ بندی کرتا ہے: افقی اور عمودی۔ ہر محور Compact (C) یا Regular (R) ہو سکتا ہے۔ مجموعہ لے آؤٹ موافقت کے چار اختیارات دیتا ہے: CR (عام iPhone عمودی)، RR (iPad عمودی/افقی)، RC (Plus/Pro Max پر iPhone افقی)، CC (iPad Split View)۔

swift
// Swift میں Size Classes کی تعریف
import UIKit

class AdaptiveViewController: UIViewController {

    override func traitCollectionDidChange(
        _ previousTraitCollection: UITraitCollection?
    ) {
        super.traitCollectionDidChange(previousTraitCollection)
        adjustLayout(for: traitCollection)
    }

    private func adjustLayout(for traits: UITraitCollection) {
        switch (traits.horizontalSizeClass, traits.verticalSizeClass) {
        case (.regular, .regular):
            showSplitView() // iPad — master-detail دکھائیں
        case (.compact, .regular):
            showStackedView() // iPhone عمودی — اسٹیکڈ لے آؤٹ
        case (.compact, .compact):
            showCompactView() // iPhone SE افقی — کم سے کم
        default:
            showDefaultView()
        }
    }

    private func showSplitView() {
        // UISplitViewController یا HStack کا استعمال
    }

    private func showStackedView() {
        // iPhone کے لیے عمودی اسٹیک
    }

    private func showCompactView() {
        // ثانوی عناصر چھپائیں، اہم دکھائیں
    }
}

Interface Builder میں، Size Classes "wAny hAny" پینل کے ذریعے ترتیب دی جاتی ہیں — ڈویلپر ایک مخصوص مجموعہ (wRegular hRegular, wCompact hRegular) منتخب کرتا ہے اور constraint تغیرات شامل کرتا ہے۔ SwiftUI ردعمل انکولی کے لیے @Environment(\.horizontalSizeClass) اور @Environment(\.verticalSizeClass) استعمال کرتا ہے — جب سمت یا ونڈو کا سائز بدلتا ہے، SwiftUI خود بخود ویو کو دوبارہ کھینچتا ہے۔

swift
// SwiftUI میں Size Classes
import SwiftUI

struct ResponsiveView: View {
    @Environment(\.horizontalSizeClass) private var hSizeClass

    var body: some View {
        if hSizeClass == .regular {
            // iPad — سائڈبار کے ساتھ افقی لے آؤٹ
            HStack {
                SidebarView()
                    .frame(width: 300)
                ContentView()
            }
        } else {
            // iPhone — فل سکرین عمودی اسٹیک
            VStack {
                ContentView()
            }
        }
    }
}

Android Configuration Qualifiers

Configuration Qualifiers ایک Android طریقہ کار ہے جو ڈیوائس کی خصوصیات کی بنیاد پر مختلف وسائل (layout, values, drawables) لوڈ کرتا ہے۔ کوالیفائرز میں اسکرین کا سائز (small, normal, large, xlarge)، سمت (port, land)، کم از کم چوڑائی (sw<N>dp)، دستیاب چوڑائی (w<N>dp) اور اونچائی (h<N>dp) شامل ہیں۔

kotlin
// Kotlin میں ڈیوائس کنفیگریشن کا پتہ لگانا
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val config = resources.configuration
        val screenWidthDp = config.screenWidthDp
        val screenHeightDp = config.screenHeightDp
        val orientation = config.orientation

        when {
            screenWidthDp >= 900 -> setContentView(R.layout.activity_main_tablet)
            screenWidthDp >= 600 -> setContentView(R.layout.activity_main_sw600)
            else -> setContentView(R.layout.activity_main_phone)
        }
    }

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            supportFragmentManager.beginTransaction()
                .replace(R.id.container, LandscapeFragment())
                .commit()
        }
    }
}

مختلف اسکرینوں کے لیے وسائل کا ڈھانچہ: res/layout/activity_main.xml (فون)، res/layout-sw600dp/activity_main.xml (7" ٹیبلٹ)، res/layout-sw720dp/activity_main.xml (10" ٹیبلٹ)۔ Android smallestWidth کی بنیاد پر خود بخود درست لے آؤٹ منتخب کرتا ہے — سمت سے قطع نظر dp میں کم از کم اسکرین چوڑائی۔ کوالیفائر sw<N>dp موافقت کا سب سے مستحکم طریقہ ہے۔

kotlin
// Jetpack Compose — موافقت کے لیے WindowSizeClass
@Composable
fun ResponsiveScreen() {
    val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass

    when {
        windowSizeClass.windowSizeClass == WindowWidthSizeClass.EXPANDED -> {
            TabletLayout() // >= 840 dp
        }
        windowSizeClass.windowSizeClass == WindowWidthSizeClass.MEDIUM -> {
            MediumLayout() // 600–840 dp
        }
        else -> {
            CompactLayout() // < 600 dp
        }
    }
}

Jetpack WindowManager (androidx.window لائبریری) تین چوڑائی کے زمروں کے ساتھ WindowSizeClass فراہم کرتا ہے: COMPACT (0–600 dp)، MEDIUM (600–840 dp)، EXPANDED (>840 dp)۔ یہ پرانے qualifier فولڈرز کا ایک جدید متبادل ہے۔ Google اسے فولڈ ایبل ڈیوائسز اور ٹیبلٹس کی موافقت کے لیے تجویز کرتا ہے۔

انکولی گرڈ اور breakpoints

انکولی گرڈ responsive design کی بنیاد ہے۔ مقررہ سائز کے بجائے، عناصر فیصد تناسب، لچکدار constraints اور اندرونی مواد کے سائز کا استعمال کرتے ہیں۔ Breakpoints اسکرین چوڑائی کے وہ نکات ہیں جن پر لے آؤٹ حالتوں کے درمیان سوئچ کرتا ہے۔

BreakpointiOS Size ClassAndroid Qualifierڈیوائس کی قسم
0–374 pt / dpCompact widthiPhone SE, پرانا Android
375–599 pt / dpCompact widthsw320dpiPhone 14, Galaxy S24
600–839 pt / dpRegular widthsw600dpiPad mini, 7" ٹیبلٹس
840+ pt / dpRegular widthsw720dpiPad Pro, 10" ٹیبلٹس

Google Material Design اور Apple HIG سے تجویز کردہ breakpoints: 0–599 dp (فون، ایک کالم)، 600–839 dp (ٹیبلٹ، دو کالم، navigation rail)، 840+ dp (ٹیبلٹ، تین کالم، navigation drawer)۔ Breakpoints کی تعداد 4 سے زیادہ نہیں ہونی چاہیے — ضرورت سے زیادہ منتقلی کے نکات دیکھ بھال اور جانچ کو مشکل بناتے ہیں۔

انکولی ڈیزائن کے بہترین طریقے

کامیاب responsive design کے لیے پچھلی دہائی میں iOS اور Android ڈویلپر کمیونٹی کی طرف سے تیار کردہ اصولوں کے ایک سیٹ پر عمل کرنا ضروری ہے۔ ذیل میں Apple HIG، Google Material Design اور پروڈکشن پروجیکٹ کے تجربے پر مبنی اہم سفارشات ہیں۔

  • سب سے چھوٹی اسکرین سے شروع کریں — iPhone SE (375 pt) یا Android compact (360 dp) کے لیے لے آؤٹ ڈیزائن کریں، پھر بڑی اسکرینوں کے لیے توسیع شامل کریں۔ یہ یقینی بناتا ہے کہ اہم مواد ہر جگہ فٹ ہو
  • اندرونی مواد کا سائز استعمال کریں — UILabel، UIButton، ImageView کے قدرتی سائز ہوتے ہیں۔ Auto Layout اور ConstraintLayout اضافی constraints کے بغیر خودکار پوزیشننگ کے لیے ان کا استعمال کرتے ہیں
  • چھوٹی اسکرینوں پر مواد مت چھپائیں — چھپانے کے بجائے، دوبارہ ترتیب دیں (reflow)۔ صارف کو ایک ہی فعالیت تک رسائی ہونی چاہیے، صرف ایک مختلف ترتیب میں
  • تمام Size Classes پر جانچ کریں — iOS سمیلیٹر بغیر دوبارہ شروع کیے Size Classes تبدیل کرنے کی اجازت دیتا ہے۔ Android Emulator مختلف ڈیوائس پروفائلز فراہم کرتا ہے۔ ٹیبلٹس اور فولڈ ایبل ڈیوائسز پر جانچ ضرور کریں
  • Material 3 Adaptive Layout — Google فہرست/تفصیل، ٹول بار اور نیویگیشن کے لیے تیار canonical layouts فراہم کرتا ہے۔ اپنے پیٹرن ایجاد کرنے کے بجائے ان کا استعمال کریں

انکولی ڈیزائن کا بنیادی اصول: مواد لے آؤٹ کی وضاحت کرتا ہے، اس کے برعکس نہیں۔ اگر iPad iPhone کے جیسا کارڈ اسٹیک دکھاتا ہے، صرف چوڑا کھینچا ہوا — یہ responsive design نہیں ہے۔ Responsive design لے آؤٹ پر نظرثانی کرتا ہے: iPhone پر — عمودی اسکرول، iPad پر — سائڈبار کے ساتھ master-detail۔

اکثر پوچھے گئے سوالات

Responsive Design، Adaptive Layout سے کیسے مختلف ہے؟

Responsive Design ایک لچکدار گرڈ استعمال کرتا ہے جو اسکرین کی چوڑائی کے مطابق آسانی سے ایڈجسٹ ہوتا ہے۔ Adaptive Layout breakpoint نکات پر مقررہ لے آؤٹ کے درمیان سوئچ کرتا ہے۔ عملی طور پر، دونوں طریقے یکجا کیے جاتے ہیں: responsive بنیادی گرڈ + بڑی تبدیلیوں (فون بمقابلہ ٹیبلٹ) کے لیے انکولی سوئچز۔

iOS میں کون سی Size Classes موجود ہیں؟

iOS دو محور استعمال کرتا ہے: افقی (Compact/Regular) اور عمودی (Compact/Regular)۔ عمودی iPhone — Compact width, Regular height (CR)۔ iPad — Regular width, Regular height (RR)۔ افقی iPhone Plus/Pro Max — Regular width, Compact height (RC)۔ ڈویلپر ہر مجموعہ کے لیے constraint تغیرات مقرر کرتا ہے۔

Android میں sw600dp کیا ہے؟

sw600dp (smallestWidth 600 dp) ایک Android وسائل کوالیفائر ہے جس کا مطلب ہے کہ ڈیوائس کی کم از کم اسکرین چوڑائی کم از کم 600 dp ہے۔ یہ ٹیبلٹس (7" اور بڑے) کے لیے متبادل لے آؤٹ لوڈ کرنے کے لیے استعمال ہوتا ہے۔ سمت اثر انداز نہیں ہوتی — sw اسکرین کے چھوٹے پہلو پر غور کرتا ہے۔

ایپ کی موافقت کی جانچ کیسے کریں؟

iOS پر، مختلف Size Classes والے سمیلیٹر اور مختلف سائز کے ڈیوائسز کے ساتھ SwiftUI Preview استعمال کریں۔ Android پر — ایمولیٹر میں ڈیوائس پروفائلز (Pixel 5, Pixel C, Galaxy Tab) اور Android Studio میں Layout Validation استعمال کریں۔ دونوں پلیٹ فارمز پر، فزیکل iPad/Android ٹیبلٹ اور فولڈ ایبل ڈیوائس پر جانچ کریں۔

Material Design میں canonical layouts کیا ہیں؟

Canonical layouts Google Material Design 3 سے تیار انکولی لے آؤٹ پیٹرن ہیں: list-detail، feed (کارڈ فیڈ)، supporting pane (مرکزی مواد + ایکشن پینل)۔ ہر پیٹرن کے تین ورژن (compact/medium/expanded) ہیں اور یہ خود بخود WindowSizeClass کے مطابق ڈھل جاتا ہے۔

خلاصہ

  • Responsive Design — لچکدار گرڈز اور breakpoints کے ذریعے اسکرین کے سائز اور سمت کے مطابق لے آؤٹ کی موافقت
  • Size Classes iOS میں (Compact/Regular) iPhone، iPad اور Split View کے لیے لے آؤٹ کی وضاحت کرتی ہیں
  • Configuration Qualifiers Android میں (sw<N>dp, w<N>dp, layout-land) ڈیوائس کے مطابق وسائل لوڈ کرتے ہیں
  • Jetpack WindowManager تین زمروں کے ساتھ WindowSizeClass فراہم کرتا ہے: COMPACT، MEDIUM، EXPANDED
  • Breakpoints: 0–599 dp (فون)، 600–839 dp (ٹیبلٹ)، 840+ dp (چوڑا ٹیبلٹ)
  • Responsive ≠ سادہ کھینچنا — مواد چھپانے کے بجائے عناصر کی تنظیم نو کی ضرورت ہے
  • جانچ تمام اقسام کے ڈیوائسز پر، بشمول ٹیبلٹس اور فولڈ ایبلز، ترقی کا ایک لازمی مرحلہ ہے

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں