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

[개발 사례] 크로스 플랫폼 델파이 앱 - 모바일 앱 스토어 6500+ 다운로드


Recommended Posts

 

During webinars I like to demonstrate how powerful RAD Studio with Delphi is for creating cross platform apps and how absolutely easy it is to do. I often make the point that I don’t want to work too hard which is why I like RAD Studio with Delphi – it does all the hard work for me and makes me look great! I get up every day and write code – and I write that code in the Delphi language. RAD Studio is my craftsman’s toolkit and makes me extremely productive.

온라인 세미나를 통해 델파이, RAD 스튜디오가 크로스 플랫폼 앱 개발에 얼마나 강력한지, 그리고 얼마나 쉽게 만들 수 있는지를 선보이고 싶었다. 너무 열심히 작업을 하고 싶지 않다는 신념을 종종 어필하는데, 바로 이 점이 내가 델파이, RAD스튜디오를 좋아하는 이유이기도 하다. RAD 스튜디오는 나를 위해 어려운 작업들을 모두 처리해주고, 멋지게 완성해준다! 나는 매일같이 일어나 코딩을 한다. 물론 그 코드는 델파이 언어로 작성한다. RAD스튜디오는 장인의 툴킷과도 같으며, 생산성을 놀랍도록 크게 향상시켜준다.

There are always a couple of skeptical people during the webinar Q & As who ask for “examples of real apps written in Delphi” as if I’m somehow perpetrating a kind of massive magic trick or skullduggery. I’ll say this again; Delphi apps are everywhere, and they are very good at just chugging along, working flawlessly and without drama in all sorts of situations. Robustness and backward compatibility are part of the mantra for the Delphi RTL.

온라인 세미나 Q&A 세션에서는 늘 회의적인 개발자들을 두어명씩 만나곤 한다. 보통 내가 마치 엄청난 마술 트릭이나 사기를 치는 것 마냥 보면서 "델파이로 작성한 실제 앱들"에 대해서 질문하곤 한다. 다시 한 번 언급하지만, 델파이 앱은 어디에든 있다. 그리고 어떠한 상황에서도 완벽하게, 어려운 상황없이 잘 작동한다. 견고함과 이전 버전과의 호환성은 델파이 RTL 철학의 핵심 부분이기도 하다.

Our Enterprise Article Series has been full of stories from genuine developers who also turn to RAD Studio Delphi and C++ Builder for their software development. Today I have an article written by Gustavo Valle Mascarenhas who is based in Brazil. Gustavo’s article arrived written entirely in Brazilian Portuguese and describes his Acreprev cross-platform mobile app which has over 6500 downloads on Android Play and the Apple iOS app stores.

엠바카데로의 엔터프라이즈 개발 사례 시리즈는 RAD스튜디오, 델파이, C++빌더로 소프트웨어를 개발한 실제 개발자의 이야기들로 가득차있다. 브라질의 개발자 Gustavo Valle Mascarenhas가 등록한 사례를 하나 받은 게 있다. Gustavo의 사례는 브라질 포르투갈어로 작성되어 있었는데, 안드로이드 Play와 애플 iOS 앱 스토어에서 6500회 다운로드된 Acreprev라는 크로스 플랫폼 모바일 앱에 대한 이야기였다.

To be fair, I don’t remember us saying the articles had to be written in English so I used Google to auto-translate the article into English and then I’ve tidied it up. I would have tried using ChatGPT to do the job for me but I suspect it would have provided us with a retelling of a Shakespeare’s Tempest written in the style of Douglas Adams or something equally creative; plausible, but ultimately a little flawed.

사실, 사례를 등록할 때는 영어로 작성해야 한다고 되어있던 규정을 깜박해서 해당 사례는 구글을 사용해 영어로 자동 번역한 다음 다시 정리했다. ChatGPT로도 시도를 해봤는데, 약간 이상하게 해석된 부분이 있다고 판단되어 구글을 사용했다.

Anyway, here’s Gustavo’s Enterprise Article. I have included the original Portuguese text at the end for those who understand the language.

어쨌든, 그렇게 정리한 Gustavo의 엔터프라이즈 사례를 공유한다.

 

spacer.png

 

목차


 

Acreprev 앱이란?

In this article we will address the functionalities and embedded technologies of the “acreprev” application whose development was all carried out with the powerful Delphi Enterprise tool in its version 11.1. This application belongs to the Instituto de Previdência do Estado do Acre – ACREPREVIDÊNCIA, a founding autarchy of the Government of the State of Acre.

이 글에서는 강력한 델파이 엔터프라이즈 도구 11.1 버전으로 모두 구현한 "acreprev" 앱의 기능과 기술들을 살펴본다. 이 앱은 Acre 주 정보의 창립 자치 단체인 Instituto de Previdência do Estado do Acre – ACREPREVIDÊNCIA에서 소유하고 있다.

spacer.png

 

Acreeprev 앱의 기능

With the aim of carrying out proof of life for retirees and pensioners in the State of Acre, the construction of a solution was idealized that could effectively attest that the beneficiary is alive. It is important that we open a gap to point out that this entire process was previously carried out in person, so, due to the pandemic that hit us, we were forced to create new alternatives to guarantee the safety of our beneficiaries. It was with this in mind that we idealized the creation of a mobile application that would bring mobility and portability within everyone’s reach.

Acre 주는 퇴직자 및 연금 수령자를 대상으로 생활 증명을 하기 위해 수혜자가 살아있는지 확인하는 솔루션을 개발했다. 이전에는 해당 절차를 직접 진행했었지만, 팬데믹으로 수혜자의 안전 보장을 위한 새로운 대안이 필요했다. 이 부분을 염두에 두고 모든 사람에게 이동성과 휴대성을 제공할 수 있는 모바일 앱 개발이 이상적이라고 판단했다.

 

델파이 (RAD스튜디오)로 단 하나의 팀이 모든 것을 해내다.

To bring this sketch to reality, as mentioned above, we used the Delphi Enterprise IDE, a cross-platform tool capable of generating binaries for both Android and iOS operating systems. In this way, we were able to reduce costs with leveling the technical team, that is, we would not need two teams (Android/IOS) on the front line of development, as well as reducing time in application production. It is noteworthy to observe above some of the benefits that this tool has brought to our corporate environment, we will discuss each one of them in detail later.

아이디어를 현실화하기 위해 안드로이드 및 iOS 운영체제 모두를 지원하는 바이너리를 생성할 수 있는 크로스 플랫폼 도구인 델파이 엔터프라이즈 통합 개발 환경을 활용했다. 이를 통해 기술팀을 평준화해 비용을 절감할 수 있었다. 즉, 개발 최일선에 두 팀(안드로이드/iOS)이 필요하지 않아 비용과 개발 시간을 모두 단축할 수 있었다. 해당 개발 도구가 회사 환경에 가져다 준 이점을 살펴보는 것은 주목할 만한 부분이다. 아래에서 각 이점에 대해 자세히 다루겠다.

 

Acreprev 앱은 언제 처음 개발되었을까?

The acreprev app was launched in 2021 in the App Store – https://apps.apple.com/br/app/acreprev/id1610749146, having over 1,500 downloads and in the Google Play store (https:/ /play.google.com/store/apps/details?id=ac.gov.br.ACREPREV&hl=pt_BR&gl=US), with more than 5,000 downloads.

2021년 처음 앱 스토어(https://apps.apple.com/br/app/acreprev/id1610749146)에 등록되어 1,500 이상 다운로드를 기록했고, 구글 플레이스토어(https:/ /play.google.com/store/apps/details?id=ac.gov.br.ACREPREV&hl=pt_BR&gl=US)에서는 5,000회 이상의 다운로드를 기록했다.

 

Acreprev 크로스 플랫폼 앱으로 어떤 걸 할 수 있을까?

As previously mentioned, it allows retirees and pensioners to prove their lives [establish they are genuine claimants and have not passed away – IanB], which must be done annually in the month of their birthday.

앞서 언급한 바와 같이 퇴직자와 연금 수급자는 매년 생일이 있는 달에 [청구인 본인이 맞으며 사망하지 않았음을 입증 - IanB]를 수행해야 한다.

Its usability is very simple, the beneficiary performs a simple registration informing CPF and functional registration, later informs a valid cell phone, which must be validated by receiving an SMS with a four-digit code, it is worth mentioning that this registration is only for those who have not registered on our site. After this step, the beneficiary must read and accept the terms of the privacy policy.

사용법은 매우 간단하다. 수혜자는 CPF와 기능 등록 등 간단한 등록 확인 절차를 진행하고, 유효한 휴대폰 번호를 등록해 SMS로 4자리 코드를 수신해 인증 받을 수 있다. 이 등록 절차는 사이트에 등록한 적이 없는 사람에게만 적용된다는 부분이 의미가 있다. 이 모든 단계를 진행한 이후에는 개인 정보 보호 정책 약관을 확인하고 동의해야 한다.

spacer.png

Finally, it comes to the main stage, which is sending the photographs using the cell phone camera. In the first step, you must send two photos, the front and back of your official photo document. In the second stage, you must take a “selfie” holding the aforementioned document below your chin, not using utensils such as glasses, caps, hats or any other that may mischaracterize the photo of the document, and that’s it, the process has come to an end proof of life. Now the photos sent will be analyzed by the ACREPREVIDÊNCIA servers, which will attest to the authenticity of the data sent by crossing it with a reliable database. The result of this analysis will be communicated via SMS (text message) and via push notification on the App. Once the superficial approach of the operation of the application is done, we will go deeper into the technologies implemented thanks to the Delphi tool.

마지막 단계는 휴대폰 카메라로 사진을 촬영해 전송하는 것이다. 첫 번째 단계에서는 공식 사진 문서의 앞면과 뒷면, 두 장의 사진을 보낸다. 두 번째 단계에서는 안경, 모자 등 사진 인증이 어려운 착장은 모두 빼고 앞서 언급한 적이 있는 문서를 턱 아래에 대고 '셀카'를 찍어야 한다. 이 사진이 증빙 자료가 되는 것이다. 전송된 사진은 ACREPREVIDÊNCIA 서버에서 분석해 신뢰할 수 있는 데이터베이스와 상호 참조하여 데이터 진위를 확인한다. 분석 결과는 SMS 및 앱 푸시 알림을 통해 전달된다. 이어서 앱 작동 방식을 간단히 살펴본 후, 델파이로 구현된 기술에 대해 더 자세히 살펴보도록 하겠다.

 

크로스플랫폼 앱 개발 도구로 델파이 RAD스튜디오를 선택한 이유

As already mentioned, Delphi is a cross-platform IDE, that is, just one code for several platforms on the market. In our conceptual model, the “acreprev” application is the client, this project is entirely object-oriented, observing the MVC protocol (Model – View – Controller) that performs HTTP requests carrying all the information, including the images of the documents and the selfie in format JSON using the REST protocol.

앞서 언급했듯 델파이는 여러 플랫폼에서 실행할 수 있는 단일 코드베이스를 만들 수 있는 크로스 플랫폼 통합 개발 환경이다. 개념 모델 측면에서 "acreprev" 앱은 클라이언트 역할을 하며, 프로젝트는 완전히 객체 지향적이다. 또한 REST 프로토콜을 사용해 JSON 형식으로 문서와 셀카 등 필요한 모든 정보를 전달하는 HTTP 요청을 용이하게 만들어주는 MVC 프로토콜(Model – View – Controller)을 준수한다.

It is important to emphasize the major bottleneck that was traveling images in JSON format, but that was easily remedied with Delphi using the TMemoryStream class inherited from System.classes. All HTTP requests are implemented using the Thread’s concept, more specifically AnoynmousThread which inherits from the TThread class, a powerful Delphi resource to implement the multi-tasking concept. of JSON objects (TJSONObject) with REST protocol applicability.

JSON 형식으로 이미지를 전송할 때 상당한 병목 현상이 있다는 점을 살펴볼 필요가 있다. 하지만 이 문제는 델파이의 System.classes에서 상속된 TMemoryStream 클래스를 사용해 쉽게 해소되었다. 모든 HTTP 요청은 스레드 개념, 특시 TThread 클래스에서 상속된 AnoynmousThread를 사용해 구현되었다. 이 강력한 델파이 리소스는 멀티태스킹 개념 구현을 용이하게 하여 REST 프로토콜에 적용 가능한 JSON개체(TSJONObject) 전송을 허용한다.

spacer.png

We can cite some of the features developed in the application, such as opening a communication/support channel for making calls from within the application to external applications for exchanging text messages, such as WhatsApp. All this was implemented using Intent’s through the TJIntent class for Android and making a direct call using the following line of code in IOS: SharedApplication.OpenURL.

이 앱 기능 중 하나는 WhatsApp과 같은 외부 애플리케이션으로 전화를 걸 수 있는 통신/지원 채널을 열 수 있다는 점이다. 이 기능은 안드로이드 용 TJIntent 클래스를 통해 인텐트를 사용해 구현되었으며 iOS의 SharedApplication.OpenURL 코드 라인을 사용해 직접 호출했다.

We also implemented the push notification service, through the TPushService class, through the Google FireBase service, thus managing to notify beneficiaries of the status of their proof of life, which can be approved or rejected.

이 앱의 또 다른 기능은 푸시 알림 서비스이다. 이 서비스는 TPushService 클래스와 Google Firebase 서비스를 사용해 구현했다. 이를 통해 수혜자에게 생사 증명 상태에 대한 승인 및 거부 여부를 통지할 수 있다.

 

이 크로스 플랫폼 앱에 사용한 백엔드 또는 서버 단 기술은?

We’ve covered the client side (App), now we’ll talk about the application responsible for receiving the Request’s, processing them, persisting them in the database and sending us the Response of this request, I’m talking about a REST JSON API. In general terms, it is the application responsible for receiving HTTP GET/POST requests containing an object of the TJSONObject type, processing them and persisting the data in the Postgres database, with an object of the TJSONObject type as Response for the Application.

지금까지는 클라이언트 단(앱)에 대해서 다루었다면, 이제 요청 수신 및 처리, 데이터베이스에 이를 유지하고 REST JSON API 형식으로 응답을 보내는 서버 단을 살펴보겠다. 이 앱은 TJSONObject 유형의 객체를 포함하는 HTTP GET/POST 요청 처리를 담당한다. 앱은 Postgres 데이터베이스에서 데이터를 처리 및 유지하고 응답을 TJSONObejct 유형의 객체 형식으로 앱에 다시 전송한다.

 

spacer.png

 

We can talk about the powerful set of components we use for data persistence, called FireDAC. Through it we can communicate with the most current databases on the market. Its range of components and embedded technologies make it the best and most practical data persistence and query tool.

이 앱은 데이터 지속성을 위해 강력한 컴포넌트 셋인 FireDAC을 사용했다. 이를 사용해 업계에 존재하는 최신 데이터베이스와의 통신이 가능했다. 방대한 범위의 컴포넌트와 임베디드 기술을 제공하는 데이터 지속성과 쿼리에 있어서는 가장 뛰어나고 실용적인 도구이다.

Finally, through the Delphi Enterprise IDE, in this project, we can easily access physical resources, such as the mobile device camera, access the photo album and perform push notifications, these are just some of the features implemented in our project. It is clear that for any corporation that wants to develop mobile applications for multiplatform apps, using only a single code base, and that aims to develop application programming interfaces with current standards, such as REST, the Delphi IDE is certainly the best and the most consolidated tool on the market for this purpose.

이 프로젝트는 델파이 엔터프라이즈 IDE를 사용했기에 모바일 기기의 카메라나 사진 앨범 액세스 등 물리적 리소스 액세스와 푸시 알림 기능을 손쉽게 구현할 수 있었다. 다만 이 기능들은 프로젝트에 구현한 기능들 중 일부에 불과하다. 단일 코드 베이스만으로 멀티 플랫폼 모바일 앱을 구축하고, REST와 같은 현재 표준인 앱 프로그래밍 인터페이스를 개발하고자 하는 기업에게는 델파이 IDE가 의심할 여지없이 가장 우수한 통합 개발 도구임이 틀림없다.

 

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

  • RAD changed the title to [개발 사례] 크로스 플랫폼 델파이 앱 - 모바일 앱 스토어 6500+ 다운로드

이 토의에 참여하세요

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

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...

중요한 정보

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