Toga는 BeeWare의 Python 네이티브, OS 네이티브 GUI 툴킷입니다.

왜 토가인가?

Toga는 세계 최초의 위젯 툴킷이 아니며, 수십 가지의 다른 옵션이 있습니다. 그렇다면 왜 새로운 것을 만들까요?

테마가 아닌 기본 위젯

Toga는 테마가 아닌 기본 시스템 위젯을 사용합니다. Toga 앱이 실행되는 것을 보면 이 실행되는 것을 보면 단순히 네이티브 앱처럼 보이는 것이 아니라 네이티브 앱입니다. 일반적인 위젯 세트 위에 운영 체제에서 영감을 얻은 테마를 적용하는 것은 위젯 세트 위에 테마를 적용하는 것은 개발자가 크로스 플랫폼 목표를 달성하는 쉬운 방법이지만 최종 사용자는 혼란을 겪게 됩니다.

테마 위젯 세트를 사용하여 구축된 앱은 쉽게 찾을 수 있습니다. 다른 앱과 다르게 작동하는 앱을 쉽게 찾을 수 있습니다. 위젯 이 제대로 보이지 않거나 macOS 앱의 창에 메뉴 표시줄이 있는 경우 앱의 창에 메뉴 막대가 있습니다. 테마는 상당히 비슷할 수 있지만 항상 분명한 징후가 있습니다.

게다가 기본 위젯은 테마가 있는 일반 위젯보다 항상 더 빠릅니다. 위젯보다 항상 빠릅니다. 결국, 드로잉 엔진 위에 겹겹이 쌓아 올린 위젯이 아니라 튜닝되고 최적화된 네이티브 시스템 기능을 사용하고 있는 것이지 일반 위젯이 아닙니다. 또한 네이티브 플랫폼의 모든 접근성 어포던스를 접근성 어포던스(예: 스크린 리더 지원 및 적응형 글꼴 크기.

광범위한 개념 추상화

하지만 네이티브 앱처럼 보이는 것만으로는 충분하지 않습니다. *네이티브 앱처럼 느껴져야 합니다.

'파일' 메뉴 아래의 '종료' 옵션은 Windows 앱을 작성하는 경우 적절하지만 Windows 앱을 작성하는 경우에는 적절하지만, OS X를 사용하는 경우에는 완전히 부적절합니다. 종료 옵션은 애플리케이션 메뉴 아래에 있어야 합니다.

게다가 - 개발자가 왜 종료 옵션의 위치를 코딩해야 하는 이유는 무엇일까요? 세상의 모든 앱에는 종료 옵션이 있어야 하는데 왜 위젯 툴킷은 종료 옵션을 미리 설치되어 있지 않나요? 종료 옵션을 제공하지 않는 이유는 무엇인가요?

Toga는 100% 네이티브 시스템 위젯을 사용하지만 그렇다고 해서 Toga가 시스템 위젯의 래퍼에 불과하다는 뜻은 아닙니다. Toga는 가능한 한 GUI 구성의 기반이 되는 광범위한 개념을 추상화하고 앱을 구성하고 이를 위한 API를 구축합니다. 따라서 모든 Toga 앱에는 기본 메뉴 옵션이 있습니다. 종료, 정보 등 모든 앱에서 기대할 수 있는 메뉴 옵션의 기본 세트를 기본 앱에서 볼 수 있는 위치에 있습니다.

위젯의 경우 추상화가 간단할 때도 있습니다. 어떤 플랫폼을 사용하든 버튼은 버튼일 뿐이니까요. 하지만 다른 위젯은 문자 그대로 노출되지 않을 수도 있습니다. 토가 API가 목표로 하는 것 노출하고자 하는 것은 문자 그대로의 위젯 세트가 아닙니다.

파이썬 네이티브

대부분의 위젯 툴킷은 C 또는 C++ 레이어로 시작하며, 그 후 다른 언어로 다른 언어로 래핑됩니다. 그 결과, 결국 C 또는 API를 갖게 됩니다.

Toga는 처음부터 파이썬 네이티브 위젯으로 설계되었습니다. 툴킷으로 설계되었습니다. 즉, API가 제너레이터나 컨텍스트 관리자와 같은 언어 수준의 기능을 제너레이터 및 컨텍스트 관리자와 같은 언어 수준의 기능을 활용할 수 있습니다. 라이브러리 래퍼가 할 수 없는 방식으로(적어도 쉽게는) 활용할 수 있습니다.

토가는 파이썬 3에서 실행됩니다. 파이썬 2에서는 실행되지 않습니다.

pip 설치 및 그 이상

Toga는 핍 설치 한 번으로 간편하게 사용할 수 있는 것을 목표로 합니다. 따라서 C 확장을 컴파일할 필요가 없습니다. 바이너리 지원 라이브러리를 설치할 필요도 없습니다. 바이너리 지원 라이브러리를 설치할 필요가 없습니다. 시스템 경로를 변경할 필요도 없고 환경 변수를 변경할 필요가 없습니다. 그냥 설치하고, 가져온 다음 코드 작성(또는 실행하기만 하면 됩니다.

모바일 수용

10년 전만 해도 크로스 플랫폼 위젯 툴킷이라는 것은 Windows, OS X, Linux에서 사용 가능했습니다. 오늘날 모바일 컴퓨팅은 훨씬 더 중요해졌습니다. 하지만 그럼에도 불구하고 모바일 플랫폼에서 파이썬 프로그래밍을 위한 모바일 플랫폼에서 파이썬 프로그래밍을 위한 좋은 옵션이 많지 않으며, 크로스 플랫폼 모바일 코딩은 여전히 어렵습니다. Toga는 이를 바로잡는 것을 목표로 합니다.

How to help

So, why is it called "Toga"?

로마에 가면 로마인들처럼 행동하세요. 로마인은 무엇을 입을까요? 토가!