В качестве программиста я должен написать программу на C++ для преобразования аудиофайлов из / в различные форматы. Вероятно, это потребует создания простого графического интерфейса.
Будет ли большая работа по созданию отдельных графических интерфейсов для Mac и Windows с использованием Cocoa и WinForms вместо кросс-платформенного инструментария, такого как Qt или GTK?
(мне все равно придется поддерживать отдельную версию для Windows и версию для Mac)
Графический интерфейс пользователя, вероятно, будет очень простым и потребует только базовых функций.
Мне всегда казалось, что нативный графический интерфейс намного более интуитивно понятен, чем его кроссплатформенные собратья ...





Если у вас есть опыт, используйте собственные интерфейсы, это фактически удвоит работу, которую вы должны выполнять для пользовательского интерфейса, но, по моему опыту, не-родной пользовательский интерфейс немного сложнее, чем их собственные аналоги.
Да.
А если серьезно, это зависит от ваших целей. Я согласен с тем, что собственные библиотеки пользовательского интерфейса, приложив к ним кучу усилий, дадут значительно лучшие результаты, но для многих приложений достаточно простого пользовательского интерфейса и гораздо меньше усилий, если вы возьмете одну из существующих кроссплатформенных фреймворков. .
Может быть, начать с интерфейса командной строки и заставить функциональные возможности работать наиболее целесообразно для приложения для преобразования звука.
Вы смотрели wxWidgets? Кросс-платформенные встроенные элементы управления.
Я согласен с тем, что, если возможно, лучше всего использовать собственные интерфейсы. В последнее время я не использовал wxWidgets, и я слышал, что он прошел долгий путь, но когда это был wxWindows, мы создали с ним приложение, которое должно было быть построено в X / Motif. Когда мы закончили работу и выполнили его, заказчик сказал, что он недостаточно похож на X / Motif, и нам пришлось переделать весь интерфейс за наш счет ... Джоэл Спольски написал хорошую статью об этом, но я могу Заголовок не помню. Он сказал, IIRC, что проблема с Java и некоторым другим кроссплатформенным пользовательским интерфейсом заключалась в том, что «ваша собака лает на мое приложение» - это небольшие несоответствия, которые раздражают людей.
: -О. Кто в здравом уме хотел бы, чтобы их приложение выглядело как MOTIF!?!?!? Это вроде COBOL интерфейсных инструментов!
Для этого я скоро напишу свой собственный слой графического интерфейса кроссплатформенного приложения. В зависимости от сложности вашего приложения это может быть лишь небольшая часть того, что требуется для QT, GTK или FOX.
Причина в том, что мы видим тенденцию к тому, что производители платформ (в первую очередь Apple) пытаются спроектировать свою систему так, чтобы она выглядела уникальной. Это значительно усложняет постоянную синхронизацию QT, GTK, FOX и других инструментов платформы с последними виджетами.
Когда базовая техника становится все более и более одинаковой, у поставщиков ОС нет другого выбора, кроме как брендировать внешний вид платформы.
Кросс-платформенные инструменты, более или менее, все делают неверное предположение, что разница между платформами заключается в размещении кнопок и стилях виджетов. В некоторых случаях это может сойти с рук - приложение Qt будет чувствовать себя довольно родным как в Windows (где соглашения о пользовательском интерфейсе очень слабые), так и в Linux, особенно в среде KDE. В общем, вы можете относительно легко перемещаться между Linux и Windows; соглашения похожи, и сообщество Windows относится к ним небрежно.
Mac - самый сложный. Его пользовательский интерфейс построен на совершенно иной парадигме, чем Windows или большинство сред Linux.
Но в целом в нативном приложении легче говорить на родном языке платформы во многих отношениях, чем просто в стиле виджета.
wxWidgets использует стандартный синтаксис и препроцессор C++, что позволяет легко переходить с простого C или C++. И будет производить очень естественный вид там, где он появляется, будь то GTK, X11, MS-Windows или Mac.
Он зрел с 20 лет с момента выхода первого выпуска, имеет полную документацию с простой навигацией и поддерживается большим сообществом по всему миру. Кодируйте в своей любимой среде IDE или используйте известные Eclipse-IDE и wxFormBuilder в качестве дизайнера графического интерфейса. Библиотеку сборки wx и настройку IDE / Toolchain можно найти по этой ссылке: http://yasriady.blogspot.co.id/2016/01/raspberry-pi-toolchain.html
Разработайте свое приложение на рабочем столе Linux, а также предоставьте компилятор для Raspberry Pi2 (тестированное целевое приложение работает без сбоев на Raspbian Jessie) ............
Самая большая проблема в том, что на разных платформах разные правила размещения элементов управления. Конечно, кнопки выглядят родными, но если расположение неправильное, то общий интерфейс все равно будет отстой. (Пользователи OSX, как правило, наиболее разборчивы в этом отношении.)