안드로이드 앱 개발기 #24 - 시작 화면 구성 요소 식별하기

image.png

시작하며...

프로젝트 초기 단계에서 시작 화면을 구성하는 요소들이 무엇인지 식별하고 이들의 관계는 선으로 연결해 보았습니다. 안드로이드에서 화면을 구현하기 위한 클래스는 Activity이구요. 프로젝트를 생성하면 Activity를 상속 받는 MainActivit 클래스가 자동으로 생성됩니다. 내용이 없는 메인 화면이 자동으로 만들어지는 것이구요. 거기에 무엇을 보여주고 무엇을 할 것인지를 만들어 가는 것이 앱 개발자가 해야 할 일입니다.


적용할 디자인 패턴

안드로이드 앱에 클린 아키텍처를 적용하기 위해서 필수로 들어가는 디자인 패턴은 MVVM(Model-View-ViewModel) 패턴과 Repository 패턴입니다. DataSource, UseCase 패턴도 들어갈 수 있지만, 시작 화면은 복잡하게 구현할 필요는 없으므로 이번에는 이들을 넣지 않는 것을 고려하고 있습니다.

MVVM 패턴을 안드로이드 앱에 적용할 때, View 역할은 Activity가 맡습니다. Model은 데이터를 의미하는 클래스들을 만들면 되구요. ViewModel은 안드로이드에서 제공하는 ViewModel 또는 AndroidViewModel 클래스를 상속받는 하위 클래스를 만들면 됩니다. 이 클래스에는 화면이 동작하는 로직을 구현하면 됩니다. 예전에는 Activity 클래스 안에 화면 보여주는 코드와 로직 코드를 모두 구현하는 경우가 많았는데요. MVVM 패턴을 적용하면서 보여주는 역할을 하는 클래스와 로직을 수행하는 클래스가 분리됩니다. Repository는 데이터를 읽거나 기록하는 역할을 맡는다고 보시면 됩니다.


시작 화면에 필요한 자료 그리고 Repository 패턴

시작 화면에서는 로그인이 되었는지를 확인하는 기능이 들어갈 예정입니다. 사용자가 로그인을 하면, 로그인 자료가 환경설정(shared preferences)에 저장됩니다. 그리고 나중에 앱을 다시 시작하면, 시작 화면에서 로그인 자료를 읽고 로그인 여부를 확인할 것입니다. 이를 읽고 쓰는 역할을 인증 Repository가 수행할 예정입니다.


마치며...

시작 화면의 구성 요소를 간단히 설명하려는데도 예상보다 긴 글이 작성되었습니다. 간단한 시작 화면도 이런데, 메인 화면 같은 복잡한 화면을 대상으로 구조 설명을 하기는 훨씬 어렵지 않을까 걱정이 됩니다. 쉽지는 않겠지만, 할 수 있는 한도에서 구조를 정리하고 설명하는 글들을 써보고자 합니다.


지난 안드로이드 앱 개발기

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 56758.93
ETH 3033.46
USDT 1.00
SBD 2.30