MVVM

MVVM क्या है? (Model View ViewModel) - Android में उपयोग

MVVM क्या है? (Model-View-ViewModel) Android Architecture

MVVM एक लोकप्रिय Android Architecture Pattern है जिसका उपयोग Android apps में clean और maintainable code लिखने के लिए किया जाता है।

🔷 MVVM का फुल फॉर्म:

Model-View-ViewModel

🔹 MVVM के तीन मुख्य भाग:

1. Model (मॉडल)

यह data और business logic को संभालता है जैसे कि API calls या database operations।

2. View (व्यू)

यह UI है जो user को दिखता है (Activity/Fragment)। यह सिर्फ data को दिखाता है और user input लेता है।

3. ViewModel (व्यूमॉडल)

यह Model और View के बीच का mediator होता है। यह View को observable data (LiveData) देता है।

🔹 MVVM का Flow:

User -> View (Activity)
        ↓
   ViewModel
        ↓
     Model (Repository/API)
        ↑
   ViewModel (LiveData)
        ↑
      View (Observe)
    

🔹 MVVM के फायदे:

  • UI और Logic अलग होते हैं
  • Testing आसान होती है
  • LiveData और DataBinding का बेहतर उपयोग
  • Code reusable और clean बनता है

🔹 MVVM का छोटा उदाहरण (Java में):

Model (User.java)

public class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() { return name; }
    public int getAge() { return age; }
}
    

ViewModel (UserViewModel.java)

public class UserViewModel extends ViewModel {
    private final MutableLiveData<User> userLiveData = new MutableLiveData<>();

    public void setUser(String name, int age) {
        userLiveData.setValue(new User(name, age));
    }

    public LiveData<User> getUser() {
        return userLiveData;
    }
}
    

View (MainActivity.java)

public class MainActivity extends AppCompatActivity {

    EditText nameInput, ageInput;
    TextView textViewResult;
    UserViewModel userViewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        nameInput = findViewById(R.id.editTextName);
        ageInput = findViewById(R.id.editTextAge);
        textViewResult = findViewById(R.id.textViewResult);
        Button submitButton = findViewById(R.id.btnSubmit);

        userViewModel = new ViewModelProvider(this).get(UserViewModel.class);

        submitButton.setOnClickListener(v -> {
            String name = nameInput.getText().toString();
            int age = Integer.parseInt(ageInput.getText().toString());
            userViewModel.setUser(name, age);
        });

        userViewModel.getUser().observe(this, user -> {
            String result = "Name: " + user.getName() + ", Age: " + user.getAge();
            textViewResult.setText(result);
        });
    }
}
    

Gradle Dependencies:

implementation "androidx.lifecycle:lifecycle-livedata:2.6.2"
implementation "androidx.lifecycle:lifecycle-viewmodel:2.6.2"
    

🔚 निष्कर्ष:

MVVM architecture Android में clean architecture के लिए एक smart और scalable तरीका है। इससे app का code structure बेहतर होता है और maintenance आसान होती है।

✍️ Written by Rehan Khan

Comments

Popular posts from this blog

Git And GitHub Collaborators and teams

How to create React JS application

📱 Top 50 Android Developer Interview Questions and Answers