Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

Recommended Posts

엠바카데로 델파이 총괄 프로젝트 매니저인 마르코칸투가 아들과 함께 만든 앱입니다.

수집형 게임으로, 30분마다 새로운 레고 미니 피규어가 나옵니다 (인내심이 필요한 게임입니다!). 

현재 버전의 앱을 사용하면 온라인에서 피규어를 두 배 거래할 수 있으며, 새 피규어를 골드로 빠르게 교환할 수도 있습니다. 피규어가 완료되면 알림이 오도록 설정할 수도 있습니다.

현재 미니 피규어는 총 190+개이며, 새로운 시리즈 13이 포함되어 있습니다.

spacer.png

개발자의 관점에서 흥미로운 기능들이 있습니다:

  • 그래픽 뷰는 동적으로 생성합니다. TTVertScrollBox 내부에서 alTop으로 정렬되고, 런타임 시 생성되는 여러 TGridPanelLayout 컴포넌트를 중첩하여 위의 이미지와 같이 나타나도록 했습니다. 속도가 느린 기기에서는 부드럽게 표시되지 않을수도 있지만, 대부분의 기기 (제 기기 포함)에서는 문제없이 작동합니다.
  • TPaperSketchEffect를 사용해 아직 사용할 수 없는 아이템을 표시했습니다. 설정값은 외부 파일에 저장하기 때문에, 앱을 재설치하더라도 설정은 유지됩니다. 폴더는 Androidapi.IOUtils 유닛의 GetSharedFilesDir 함수를 사용해 확인합니다. 
  • 대기 시간 등 상태 정보는 외부 파일에 저장되어, 앱이 종료될 때 (또는 업데이트될 때도) 보존됩니다.
  • 델파이의 배포 관리자를 사용해 다양한 이미지를 APK에 추가했습니다 (다중 선택 가능 - 안드로이드 상에서의 파일 추가, 대상 폴더 등). 수십 개의 파일을 추가하는 작업도 매우 쉬웠습니다.
  • APK 크기는 8.5M입니다. 앱에 약 3M의 이미지가 포함되어 있다는 점을 고려하면 꽤 괜찮은 용량입니다.
  • 모든 이미지를 로드하고 동적으로 빌드하기 때문에 시작하기까지 시간이 소요될 수 있습니다. iOS와는 달리 Android에는 스플래시 화면이라는 개념이 없기 때문에, 폼이 로드될 때까지 화면에는 아무 것도 나타나지 않습니다. 앱에 시작 화면을 추가한 이유입니다. 시작할 때에만 생성되는 유일한 폼입니다. 모든 폼을 만들면 지향하는 앱의 성격과 달라집니다. 스플래시 양식에 OnCreate 이벤트 핸들러를 사용하는 경우도 마찬가지입니다. 코드는 단순하게 유지하기 위해서 타이머를 사용해 한 번만 실행하도록 하고, 모든 준비가 되면 숨겨져 있던 두 개의 초기 버튼이 표시되어 이동할 수 있도록 합니다.

마르코 칸투가 설명하는 이 앱의 이야: https://blog.marcocantu.com/blog/my_son_first_play_store_app.html

앱 다운로드: https://play.google.com/store/apps/details?id=com.marcocantu.MyMiniFigures&hl=en

 

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.