UserControl, MVP i interfejs aplikacji mobilnych

Stworzenie dobrego interfejsu aplikacji mobilnej jest wyzwaniem, szczególnie jeśli chcemy wykorzystać całą dostępną przestrzeń ekranu i nie bazować, tylko na właściwościach Anchor i Dock. W zależności od złożoności okna możemy próbować - manualnie, w kodzie, zmieniać położenie kontrolek - jednak jest to podejście pracochłonne i utrudniające przyszłe modyfikacje.

Mimo wszystko żyjemy w dobie wizualnych narzędzi programistycznych i szybciej przyjdzie nam utworzenie odpowiedniego interfejsu użytkownika przy użyciu designer’a wbudowanego w Visual Studio niż ręczne kodowanie położenia poszczególnych elementów okna.
Dlatego też lepszym rozwiązaniem może być utworzenie dwóch różnych form dla tego samego ekranu i wyświetlanie ich w zależności od aktualnej orientacji. To rozwiązanie ma jednak dość poważną wadę - otóż, nie możemy go zastosować do głównego ekranu naszej aplikacji (gdyż jest ono powiązane z podstawowym wątkiem programu). Aby wyeliminować tą niedogodność możemy umieścić zawartość naszego okna w kontrolce UserControl i mając dwie takie kontroli dla jednego ekranu (orientacja horizontal/landscape) możemy je wyświetlać w zależności od potrzeby.

Kolejnym problemem z jakim, w powyższym przypadku, przyjdzie się nam borykać jest to, iż musimy umieścić taki sam kod w dwóch różnych miejscach. Ale i na to jest rada - zastosowanie wzorca Model - View - Presenter (MVP). Przykład wykorzystania tego wzorca w tym konkretnym zastosowaniu można pobrać stąd.

MVP - UserControl example

O dobrym screencast‘cie traktującym o wzorcach Model - View - Presenter i Model - View - Controller pisałem tutaj.

Napisz odpowiedź