고양국제고/셰어텍

[셰어텍] 12. 가자, 우리의 길로

카루-R 2021. 12. 7. 14:21
반응형

환영합니다, Rolling Ress의 카루입니다.

음... 우선...

세 시간 동안 고생해준 우리 CEO님께 박수를 드리죠. 고생 많으셨습니다..

'그 프로그램'은 그냥 보조적인 수단으로만 사용하고, 저는 그냥 무식하게 제가 늘 고집해오던 조합인 C#+XAML로 가겠습니다. 디자인 먼저 짜고, 기능 구현하는 게 편해요. 어려운데 노답인 거랑 어려운데 답이 있는 것 중에선 후자가 그나마 낫죠. 뭐 100% 완벽하다고는 말씀드리지 못하겠습니다만.

아무튼, 오늘은 우리 디자이너께서 정말 열일하셨습니다. 대략적인 디자인이 끝난 것 같은데, 함께 보시죠.

철저하게 사용자 중심의 애플리케이션을 구상해두셨군요. 일단, 실현 가능하긴 합니다. (뭐가 두려워요. 프로그래밍의 세계에선 능력만 있다면 상상을 현실로 펼칠 수 있습니다. 진짜로)

참고로, 저 메인페이지는 조금 까다롭습니다. 동적으로 읽어와서 전시해야 할 부분이 많은데, 이걸 ViewModel을 써야 하는지 아직 잘 모르겠네요. 특히나 이걸 자료구조로 만든다면, 아마 이중 링크드 리스트를 써서 push_front를 하든 해야 할 것 같습니다. 메인에서는 상위 세 개만 띄우거나 몇 개 띄워서 스크롤 할 수 있게 하면 되겠죠. 그리고 '더보기' 버튼을 누르면 주르륵 페이지로 넘어가는 겁니다.

그렇게까지 제 뇌를 헤집을 정도로 어렵지는 않을 겁니다. 이미 마이크로소프트에서는 Xamarin.Forms에 대해 Grid 및 FlexLayout 디자인을 제공하고 있어요. 디자이너께서 그려준 레이아웃과 어느 정도 일치합니다. 그럼 우리는 그 각각의 셀을 하나로 만들고, 그걸 Grid나 FlexLayout에 따닥따닥 추가하면 어느 정도 괜찮은 그림이 나오겠죠.

다음은 지도 화면입니다. 이걸 지리적으로 시각화하는 건데... 수도권에만 다다다다ㅏ닫ㄱ 찍힐 것 같은 느낌적인 느낌이 드네요. 기분탓인가요. 아무튼, 지도를 전체화면으로 넣은 뒤 특정 위치를 표시해주면 됩니다.

사실 지도는 이 한줄로 끝납니다만... 이게 API 키가 필요한가봐요.

우리가 해야 할 일

1. (디자이너) 아래 탭뷰 (지도, 메인, 마이페이지)에 사용될 아이콘을 만들어주세요.

- 내용물은 채우지 마세요. 윤곽선만 있는 게 보기 예뻐요.

- 색상은 흰색으로 해주세요. 크기는 약 400x400 px 정도면 적당할듯 합니다.

- 배경은 지워주세요.

2. 로그인 페이지를 만들어주세요. 그냥 ID, 비번 넣는 칸을 만들거나 회원가입 버튼도 따로 만들 거 생각하면 조금 복잡해지는데... 맡기겠습니다. 참고로 기존 UWP 앱에서 만들었던 (윈도우용 Conet) 계정을 그대로 사용하실 수 있습니다.

3. '포인트'의 개념과 사용처를 명확히 정해주세요. 앱 내에서 쓰든, 혹은 뭐 다른 식으로 활용하든, 해당 기능을 구현해놓기 전에 그것의 정체성이 명확해야 합니다. 정체성은 뭐다? 폭력이다!

4. 사용자에게 보이지 않는, Conet 내부에서 사용할 파일 이름을 정해주세요. 내부적으로만 사용합니다. 제가 작명 센스가 없는지라, 여러분께 맡길게요.

카루가 해야 할 일

1. 마이페이지에 로그인 버튼을 하나 만들어야 한다.

- 사용자 정보를 총괄하는 User 클래스를 하나 만들어둘 것.

bool HasLoggedIn { get; set; } = false;

이와 같은 프로퍼티 생성. SQL 서버와 연동시킬 수 있는 UserDAC 클래스를 같이 만들어두자. 자세한 사항은 아래 링크에서.

https://github.com/nsun527/ShareTechUWP/blob/master/ShareTechUWP/UserInfoDAC.cs

2. Google Maps API 키가 필요하다. APIv2 키를 발급받은 뒤, 프로그램에 넣어주세요. 그리고 지도가 제대로 구현되는지 확인한다.

https://docs.microsoft.com/ko-kr/xamarin/android/platform/maps-and-location/maps/obtaining-a-google-maps-api-key?tabs=windows

3. User 클래스에 다음과 같은 프로퍼티를 추가한다.

Picture Picture { get; set; }
UserPoint Point { get; set; }
List<Review> WrittenReviews { get; set; }
List<Review> GottenReviews { get; set; }
COORD Region { get; set; }

UserPoint => uint32 기반. 적립 / 차감 메서드를 통해
readonly staticDictionary와 연계하여 적립 및 차감

UserDAC는 필요 없음. 로컬 파일로만 저장할것.
반응형