C++Builder C++과 파이어몽키로 멋진 UI 완성하기
2018.05.21 16:07
많은 기업들이 "모바일 우선" 방식을 채택하고 있고, 다양한 플랫폼에서 실행되는 애플리케이션을 개발하는 것이
곧 성공의 필수 조건이 되었습니다.
2개 이상의 플랫폼 용 앱 개발이 가능한 개발자들에 대한 수요는 정말 많습니다. 그리고 이미 애플리케이션 사용자들은 멋진 UI와 직관적인 UX에 익숙해져 있습니다.
일반적으로 모바일 앱 개발을 위해서는 다양한 프로그래밍 언어와 도구들(예: iOS쪽의 Xcode나 안드로이드쪽의 Android Studio)을 배운 다음 각각의 플랫폼 화면과 고유 UI 요구사항에 따라 동일한 기능이 작동될 수 있도록 따로 구현해야만 합니다. 하지만 파이어몽키는 이 복잡함을 단숨에 해소시켜 줄 정말 좋은 개발 방법입니다.
파이어몽키(FMX)는 다양한 디바이스용 앱 개발이 가능한 프레임워크로 C++빌더에서 제공하고 있습니다. 단 하나의 코드베이스만으로 윈도우, 맥OS, 안드로이드, iOS 용 네이티브 앱 개발을 개발해 바로 각 앱 스토어와 기업에 개발한 앱을 배포할 수 있습니다. C++빌더에서는 전체적인 애플리케이션 개발 기능을 총 지원합니다: UI 구현, 데이터베이스, 네트워킹, 디바이스 간 통신, 모든 플랫폼을 넘나드는 기타 라이브러리 제공 등.
중복되는 UI 작업, 이제 그만하세요!
보통 iOS UI 구현을 위해서는 기본적인 도구인 Xcode와 스위프트(Swift)를, 안드로이드 UI는 안드로이드 스튜디오(Android Studio), 자바, 코틀린을 사용합니다. 각각이 매우 비슷하기는 하지만, 개발 작업들이 각 도구마다 반복되어야만 합니다. 심지어 크로스-플랫폼 개발 솔루션이라고 하는 다른 도구의 경우에도, 공유 가능한 작업의 양이 매우 한정되어 있습니다. 에를 들자면 잠마린(Xamarin)이 있죠. 개발 형식은 크로스 플랫폼 개발에 맞추어져 있지만, 비표준화된 앱 개발을 하는 경우라면 스위프트(iOS)나 자바(안드로이드)를 또 활용해야 하기 때문에 많은 작업들을 중복적으로 해야만 합니다.
파이어몽키는 인터페이스를 단 한 번만 만들면 됩니다. 수정이 필요한 부분이 있다면, 각 애플리케이션 또는 플랫폼에 맞게 매우 쉽게 수정할 수 있습니다. 예를 들어 단 한 번 작성한 인터페이스를, iOS 버전에서는 기본 구현으로 한가지 컨트롤만 작동되도록 하고 안드로이드 버전에서는 버튼 간격이나 색상 등을 변경할 수 있습니다. 사용할 언어는 단 하나 C++입니다. 모든 컨트롤과 UI 작업이 C++만으로 가능합니다. 중간에 다른 언어를 사용하거나 변환 레이어를 만들 필요가 전혀 없습니다. 기존에 작성해놓았던 C++ 코드가 있다면 바로 네이티브 C++ 앱에 가져오기만 하면 됩니다.
그림: 안드로이드와 iOS에서 버튼 스타일을 쉽게 조정할 수 있는 네이티브 UI 스타일 기능
많지 않은 컨트롤만 제공하는 다른 개발 도구들과 비교해보면, RAD스튜디오와 C++빌더는 다양한 디바이스 용 애플리케이션에서 사용할 수 있는 수 백개의 기능들을 제공합니다. 그리고 관련 써드파티사들도 매우 많아, 다양한 컴포넌트들을 활용할 수 있습니다.
UI (사용자 인터페이스) 구성하기
파이어몽키는 방대한 UI 컨트롤 라이브러리를 제공합니다: 버튼, 리스트, 입력 컨트롤, 스위치, 툴바 등등. 완벽한 픽셀을 지원하는 네이티브 플랫폼 스타일이나 커스터마이징 가능한 테마가 내장되어 있어, 제공되는 앱 UI를 기업 브랜드 가이드라인에 맞게 설정할 수 있습니다.
또한 플랫폼이나 사용자 지정 스타일 지원을 포함한 완벽한 GUI 컨트롤 라이브러리가 제공되어, 다양한 컨트롤들을 활용할 수 있습니다: 기본 운영 체제의 런타임 시 구현가능한 입력 컨트롤이나 스크롤 가능한 리스트 등.
이 기능은 현재(2018년 5월) iOS와 윈도우에서만 제공되며, 추후 안드로이드와 맥OS에서도 지원할 계획입니다.
RAD스튜디오와 C++빌더는 이와 같이 멀티-플랫폼 애플리케이션 개발에 대해 최고의 유연성을 제공합니다.
IDE를 살펴보면, 비주얼 디자이너(Visual Designer)라는 기능이 있습니다. 파이어몽키에서는, 이를 파이어UI(FireUI) 멀티-디바이스 디자이너 라고 부릅니다. 멀티-디바이스 디자이너는 매우 강력하며, 엠바카데로의 멀티-디바이스 애플리케이션 개발 방식의 핵심이라고 볼 수 있습니다. UI는 단 한 번만 디자인하고, 각 디바이스에 맞추어 다양하게 변형할 수 있습니다. 바로 이 기능이 막대한 시간과 개발 비용을 절감해주는 핵심 기능입니다.
C++빌더는 최적화된 미리보기 화면을 제공합니다. 윈도우 데스크탑, 맥 데스크탑, 아이폰, 아이패드, 다양한 안드로이드 폰이나 태블릿까지 각 디바이스마다 화면이 어떻게 보여질지를 미리 확인해볼 수 있습니다.
화면은 애플리케이션이 실행되는 디바이스에서 각각에 따라 레이아웃이나 컴포넌트가 어떻게 표현될지를 확인할 수 있는 매커니즘입니다.
멀티-디바이스 런타임 라이브러리와 컴포넌트 성능
파이어몽키는 멀티-디바이스 런타임 라이브러리를 활용합니다: 쓰레딩, 병렬 프로그래밍 지원, 파일 시스템 접속,
로컬 및 원격 데이터베이스 접속(관계형, NoSQL 데이터베이스), HTTP/REST 클라이언트 라이브러리, 특정 클라우드 및 BaaS 클라이언트, GPS와 같은 바로 임베디드 디바이스에 접속 가능한 컴포넌트, 블루투스 시스템 등.
이와 같은 모든 기능들이 바로 사용 가능한 컴포넌트 형태로 제공됩니다. 그리고 지원하는 플랫폼에서 모두 동일한
방법으로 활용할 수 있습니다. 개발자들은 제공되는 기능들과 데이터 연결 기능을 활용해 단 하나의 소스코드 작성만으로 다양한 애플리케이션을 완성할 수 있습니다.
플랫폼별 API 호출
크로스-플랫폼 솔루션을 평가하는 개발자들이 우려를 표하는 한 가지는 이러한 솔루션들이 "최소 공통 분모"에 초점을 맞추고 마치 기능은 있지만 작동 방법은 파악할 수 없는 블랙 박스를 주는 것과 같다는 것입니다.
만약 어떤 기능이 제공되지 않는다면(그것이 지도 지원이든 인앱 광고이든) 관계없이 개발자들 대부분 해당 기능을 자신의 앱에 추가하지 못하게 됩니다. 하지만 파이어몽키는 이런 우려를 할 필요가 없습니다. 파이어몽키는 모든 기능을 갖춘 매우 강력한 라이브러리를 자체적으로 제공할 뿐만 아니라 필요에 따라 플랫폼에 대한 모든 액세스 권한을 제공합니다.
예를 들어 파이어몽키 프레임워크는 디바이스 이름, OS 버전을 빠르게 확인하기 위해 디바이스 정보 구성요소를 제공하지 않아, 안드로이드의 JNI 브릿지나 iOS의 오브젝티브 C 브릿지 모두를 통해 네이티브 플랫폼 API에 액세스 할 수 있습니다.
요약
- 고객들은 선호하는 디바이스에서 멋진 UI와 직관적인 UX까지 갖춘 앱을 사용하고싶어 합니다.
- 별도의 UI를 구축하는 것은 여러 플랫폼용 애플리케이션 설계 과정에서 가장 지루하고 시간이 많이 소요되는
과정들 중 하나입니다. 다른 도구나 크로스-플랫폼 프레임워크들은 각 플랫폼마다 별도 개발을 해야해서,
너무 많은 중복 작업이 필요합니다 - 하지만 파이어몽키를 사용하는 C++빌더 개발자들은 그런 문제를 겪을
일이 전혀 없습니다. - FireUI 멀티-디바이스 디자이너를 사용하면 정말 쉽게 UI를 원하는대로 커스터마이징해 사용할 수 있습니다.
- C++빌더는 다양한 기능들이 이미 내장되어 있습니다. 바로 사용할 수 있는 컴포넌트 형태로 말이죠!
그리고 다양한 써드파티사들이 C++빌더를 지원해 정말 많은 기능을 여러분의 앱에 바로 적용할 수 있습니다. - C++빌더로 플랫폼별 API에 쉽게 액세스할 수 있습니다.
C++빌더 더 자세히 알아보기
- C++빌더란? http://devgear.co.kr/products/cbuilder/
- C++빌더 무료 평가판 다운로드 http://devgear.co.kr/products/
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) | 관리자 | 2021.01.19 | 20860 |
공지 | [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) | 관리자 | 2020.11.16 | 19616 |
공지 | [10.4 시드니] What's NEW! 신기능 자세히 보기 | 관리자 | 2020.05.27 | 21714 |
공지 | RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 | 관리자 | 2018.10.23 | 27400 |
공지 | [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] | 관리자 | 2017.02.06 | 28698 |
공지 | [전체 목록] 이 달의 기술자료 & 기술레터 | 관리자 | 2017.02.06 | 24020 |
공지 | RAD스튜디오(델파이, C++빌더) - 시작하기 [1] | 관리자 | 2015.06.30 | 44768 |
공지 | RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) | 험프리 | 2014.01.16 | 180242 |
8 |
이전 버전 C ++ 빌더 애플리케이션을 C ++ 빌더 10 시애틀로 마이그레이션
[1] ![]() | 김원경 | 2017.11.24 | 1682 |
7 | C++로 UI를 손쉽게 개발해봅시다! | 관리자 | 2020.04.07 | 1421 |
» | C++과 파이어몽키로 멋진 UI 완성하기 | 관리자 | 2018.05.21 | 1181 |
5 |
[스타터] C++빌더로 2D 게임을 완성해보세요 (소스코드 제공)
![]() | 관리자 | 2016.10.28 | 981 |
4 | C++빌더와 파이어몽키로 정말 멋진 UI 완성하기: 앱 템플릿 | 관리자 | 2018.06.20 | 816 |
3 | [마이그레이션] C++프로젝트 현대화하기 (다시보기-영문) | 관리자 | 2019.04.18 | 457 |
2 | [3분 완성] C++로 안드로이드&iOS 용 사진공유앱 완성하기 | 관리자 | 2019.08.14 | 415 |
1 | C++ 개발자를 위한 파이어닥(FireDAC) 시작하기 | 관리자 | 2020.01.14 | 354 |