본문 바로가기

포트폴리오 Portfoilo

포트폴리오 앱 제작(1) - 개발에 사용할 것들.

이전편 loner123.tistory.com/133

 

포트폴리오 앱 제작(0) - 최악의 PPT를 삭제하다.

지금까지 블로그를 유입자 기준으로 설명하듯이 기술해서 적어내려 왔지만 이 카테고리 안에서는 포트폴리오 앱 제작과정을 차근히 일기 처럼 적어내려갈 생각입니다. 어느 날 운이 좋게도 코

loner123.com

이전 편에서 야심한 밤에 맥주 한 캔을 꿀꺽 꿀꺽 마시면서 나의 많은 히스토리와 내 총 기술력을 담는 앱을 만들기로 합니다. 그렇게 PPT를 휴지통에 던져버리고 새로운 프로젝트를 시작하기 전에 포트폴리오 제작에 총 집중을 하기로 결심했습니다.

그렇게 앱에 어떤 것들을 넣어 사용해볼까 하다가 다음의 것들을 결심합니다.

1. Retrofit을 사용한 http통신 (+Call 내장함수 안 쓰고 코루틴 활용),FireBase FireStore, Room (Room과 FireStore는 CRUD를 모두 활용하는 쪽으로 보여주기)

2. Kotlin 권장 스니펫,안드로이드 권장 아키텍쳐를 최대한 고려하면서 제작

3. 잿팩 라이브러리(ViewModel,LiveData,Navigation,라이프사이클 고려한 코루틴스코프 CorutineScope(viewModelScope,lifecycleScope) 등등), 싱글 액티비티로 설계, 데이터바인딩 활용

4. 디자인은 머트리얼 디자인을 참고해서 만들기 

5. Service(+Bind Service), BroadCastReceiver, ContentProvider 3개의 컴포넌트를 활용 

레트로핏

1번 Retrofit을 사용한 http통신 (+Call 내장함수 안 쓰고 코루틴 활용),FireBase FireStore, Room (Room과 FireStore는 CRUD를 모두 활용하는 쪽으로 보여주기)

1번 같은 경우 사이드 협업, 개인 앱, 서버 개발자와의 협업을 길게 하면서 오랫동안 사용해왔던 것이기 때문에 3개 다 빠질 수 없었다. Room은 앱이 통신을 위주로 하다 보면 사용할 일이 없는 경우가 간혹 있으나 레포지토리에서 캐싱 처리나 Room 다루는 걸 다시 복습 좀 할 겸 넣기로 했다.

2번 Kotlin 권장 스니펫,안드로이드 권장 아키텍쳐를 최대한 고려하면서 제작

2번 같은 경우 포트폴리오 제작하면서 복습 겸 되돌아보는 시간이라고 생각한다. 리소스 관리에 매우 민감한 안드로이드 앱은 관심사 분리에 맞춰서 잘 설계하는 것이 멋진 소프트웨어가 되는 길이라고 생각한다.

3번 잿팩 라이브러리(ViewModel,LiveData,Navigation,라이프사이클 고려한 코루틴스코프 CorutineScope(viewModelScope,lifecycleScope) 등등), 싱글 액티비티로 설계, 데이터바인딩 활용

3번 같은 경우 안드로이드를 떠날 수 없게 만드는 이유이기도 하다. 과거 MVVM 하면 데이터 바인딩으로 바인드 해주는 코드 스니펫이 많았는데 아예 AAC라 해서 뷰모델과 라이브데이타의 등장은 매우 혁신적이기도 하다. 라이프사이클의 효율을 업그레이드하면서 매우 좋은 아키텍처로 만들어주는 사기 같은 라이브러리들이다. 포트폴리오에 절대 빼놓을 수 없다.

Navigation은 스승님을 통해 알게 됬었는데 싱글 액티비티를 돕기 위해 태어났다고 해도 과언이 아닌 Navigation Component는 Sefe Args가 너무 사기다. 당연히 사용해야 한다.

4번 디자인은 머트리얼 디자인을 참고해서 만들기 

4번 같은 경우 항상 디자이너님이 만들어준 먹잇감을 떠나(?) 공부 겸 넣어보기로 한 소재이다. 이전부터 머트리얼 디자인에 관해 얘기는 들었고 간혹 개념 정도를 공부해본 정도지만 한번 이 포트폴리오 앱을 제작하면서 머트리얼 디자인도 깊숙이 파보기 위해 넣기로 했다.

5번 Service(+Bind Service), BroadCastReceiver, ContentProvider 3개의 컴포넌트를 활용

5번 같은 경우 현재는 잿팩 라이브러리 사용을 더 중요시하는 분위기라서 4대 컴포넌트의 비중(?) 떨어지긴 했지만 알아두면 매우 유용하고 강력한 컴포넌트들이라 빠질 수 없다고 생각한다. (아니 사실상 모르면 안 되지.. 특히 백그라운드 컨트롤 하면 역시 Service 사용과 Bind Service로 서비스와 통신하는 건 빼놓을 수 없다. )

기타. FCM 푸쉬기능, 커스텀 스낵바, RecyclerView.Adapter 보단 부드러운 DiffUtil,애니메이션 효과 많이 넣어볼려고 한다. 역시 포트폴리오 하면 UI 눈요기 좀 있어야 하지 않을까..

결론. 아키텍쳐 (데바,aac) + Service,BroadCastReceiver,ContentProvider + CorutineScope + FireBase FireStore+ Retrofit2 + Room + FCM + DiffUtil....