저는 15 년 전 Java가 아직 초기 단계에 있고 이런 종류의 앱을 구축 할 준비가되지 않은 데스크톱 앱으로 시작하여 시스템을 구축했습니다. 나는 C ++에서 코어가 필요하다는 것을 알고 크기가 지정된 유형 (예 : int 또는 long 대신 int32)을 사용하는 것을 포함하여 처음부터 크로스 플랫폼이되도록 설계하여 Mac, Windows 및 UNIX (Linux 이전 버전)에서 실행할 수 있음 일).
좋은 크로스 플랫폼 UI 환경을 찾으려고 시도했을 때 XVT를 포함하여 몇 가지가있었습니다. 나는 XVT에 대한 교육을 받았고 실제 앱을 구축하기 시작했을 때 플랫폼에서 깨끗하고 자연스러운 모양과 느낌을 만들 수 없다는 것을 깨달았습니다 (Mac에서 시작). 그래서 그 아이디어를 포기하고 휴대용 코어 위에 기본 Mac (PowerPlant) UI를 만들었습니다.
몇 년 후, 우리는 Windows (MFC의 UI)로 옮겼습니다. 두 번째로 UI를 구축하는 것이 더 빨랐고, Mac과 Windows UI를 동시에 병렬로 유지 한 다음 Windows로 넘어갔습니다. 코어는 나중에 다양한 유닉스와 리눅스로 옮겨서 서버 기반 계산을 실행할 수있게되었습니다. 코어는 64 비트를 지원할 때 약간의 조정으로 포트가 잘 작동했습니다.
이제는 Mac을 사용하기 시작했고 Mac으로 돌아올 수 있기를 원하지만 앱의 크기와 복잡성 때문에 어려운 선택입니다. 이 앱의 상당 부분이 데스크탑 앱인 것이 여전히 합리적입니다. CAD 환경과 같습니다. 그러나 플랫폼 별 C / C ++ 언어로 UI를 다시 작성하고 MFC 기반 UI를 계속 유지하는 대신 전체 스택을 Java로 다시 작성하여 여러 플랫폼에서 실행할 수 있도록하는 경향이 있습니다.
C ++과 같이 Java 이외의 코어를 실행해야하는 이유가 여전히있을 수 있습니다. 그러나 초기 성능 테스트를 실행하여 실제로 필요한지 확인하고 싶습니다. 그리고 UI를 웹 서비스로 구축하고 웹 서비스를 통해 코어에 연결할 수 있는지 확인하기 위해 UI를주의 깊게 살펴볼 수 있으므로 데스크톱 응용 프로그램, 모바일 응용 프로그램, 웹 응용 프로그램 등 다양한 클라이언트를 가질 수 있습니다. C 또는 C ++로 조각이 필요한 경우 Java 계층으로 작성할 수 있습니까? 아니면 웹 서비스로?
또 다른 고려 사항-앱이 얼마나 오래 지속됩니까? 얼마나 복잡해 질까요? 이것에 대한 아이디어가 있다면, 사용중인 UI 라이브러리의 가능한 수명과 시간이 지남에 따라 사람들이 라이브러리를 유지하도록 도울 수있는 능력을 고려하십시오. 지금 생각하기는 어렵지만 생각할 가치가 있습니다.
-알렉스