Межплатформенный Objective C / Разработка C++

Одним из решений является использование Object.entries () в сочетании с Array.find () , как в следующем примере:

const input = {
  "barID1": {
    "address": "4 East Terrace, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
    "description": "description text",
    "imgURLs": [ "Https:url1",  "https:url2", "https:url3" ],
    "lat": -34.810585,
    "lon": 138.616739,
    "name": "Africola",
    "phone": "(08) 8223 3885",
    "status": "active",
    "venueImgURL": "https:url"
  },
  "barID2": {
    "address": "138/140 Gouger St, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
     "description": "description text",
    "imgURLs": [ "Https:url1",  "https:url2", "https:url3" ],
    "lat": -34.848082,
    "lon": 138.599813,
    "name": "Disco Mexico Taqueria",
    "phone": "0416 855 108",
    "status": "active",
    "venueImgURL": "https:url"
  }
};

let [key, val] = Object.entries(input).find(
    ([k, v]) => v.name === "Africola"
);

console.log("key is :", key);
console.log("value is :", val);

8
задан Kezzer 14 May 2009 в 14:32
поделиться

5 ответов

Вы можете посмотреть Qt . Я успешно использовал его в проектах Windows, Linux и Mac OSX.

9
ответ дан 5 December 2019 в 06:38
поделиться

Я работаю в компании-разработчике программного обеспечения, которая производит программное обеспечение для Mac OS X и Windows с использованием C ++, MFC и Objective-C.

Да, это определенно возможно.

Вы, вероятно, будет лучше всего, если вы разработаете «ядро» приложения на C ++. В приложении MVC частью C ++ будет модель и, возможно, контроллеры. Для кода, который взаимодействует с графическим интерфейсом пользователя и другими интерфейсами, специфичными для ОС, вы должны использовать собственные API: Objective-C в Mac OS X и C # в Windows XP.

В Mac хорошо то, что вы можете компилировать C ++ и Objective-C вместе. У вас даже может быть Objective-C ++, где C ++ и Objective-C скомпилированы в одном модуле компиляции. К сожалению, вы не можете сделать это с помощью C # (есть нечто, называемое Managed C ++, которое представляет собой другое чудовище).

Я бы избегал кроссплатформенных фреймворков, таких как Qt и wxWidgets. Оба они позволяют разрабатывать кроссплатформенные приложения, но внешний вид таких приложений не соответствует требованиям. Я больше знаком с wxWidgets, его дизайн в значительной степени ориентирован на парадигму разработки приложений Windows MFC.

Редактировать 14 мая 2009 г., 9:44 EST: Если Qt теперь позволяет true ] внешний вид родной платформы, это может быть хорошим вариантом. Я не рассматривал последние предложения, поэтому вы можете взглянуть на этот фреймворк, прежде чем создавать свою собственную. Это решение должно быть принято после изучения результатов приложений и того, насколько хорошо вы знакомы с парадигмами проектирования, которые требуются Qt.

но внешний вид таких приложений ниже среднего. Я больше знаком с wxWidgets, его дизайн в значительной степени ориентирован на парадигму разработки приложений Windows MFC.

Редактировать 14 мая 2009 г., 9:44 EST: Если Qt теперь позволяет true ] внешний вид родной платформы, это может быть хорошим вариантом. Я не рассматривал последние предложения, поэтому вы можете взглянуть на этот фреймворк, прежде чем создавать свою собственную. Это решение должно быть принято после изучения результатов приложений и того, насколько хорошо вы знакомы с парадигмами проектирования, которые требуются Qt.

но внешний вид таких приложений ниже среднего. Я больше знаком с wxWidgets, его дизайн в значительной степени ориентирован на парадигму разработки приложений Windows MFC.

Редактировать 14 мая 2009 г., 9:44 EST: Если Qt теперь позволяет true ] внешний вид родной платформы, это может быть хорошим вариантом. Я не рассматривал последние предложения, поэтому вы можете взглянуть на этот фреймворк, прежде чем создавать свою собственную. Это решение должно быть принято после изучения результатов приложений и того, насколько хорошо вы знакомы с парадигмами проектирования, которые требуются Qt.

Если Qt теперь позволяет истинный внешний вид собственной платформы, это может быть хорошим вариантом. Я не рассматривал последние предложения, поэтому вы можете взглянуть на этот фреймворк, прежде чем создавать свою собственную. Это решение должно быть принято после изучения результатов приложений и того, насколько хорошо вы знакомы с парадигмами проектирования, которые требуются Qt.

Если Qt теперь позволяет истинный внешний вид собственной платформы, это может быть хорошим вариантом. Я не рассматривал последние предложения, поэтому вы можете взглянуть на этот фреймворк, прежде чем создавать свою собственную. Это решение должно быть принято после изучения результатов приложений и того, насколько хорошо вы знакомы с парадигмами проектирования, которые требуются Qt.

11
ответ дан 5 December 2019 в 06:38
поделиться

Я использую общую библиотеку, написанную на C или C ++, со всеми основными функциями вашего приложения.

Допустим, вы создаете пасьянс. Таким образом, у вас будут базовые классы в чистой библиотеке C ++ (в основном независимой от платформы).

  • CoreSolitaire

Затем у вас будут отдельные проекты пользовательского интерфейса, по одному для каждой платформы, на которой вы хотите развернуть свой пасьянс:

  • iSolitaire ( Objective-C, на основе какао MultiTouch для iPhoneOS)
  • MacSolitaire (Objective-C, на основе какао для Mac OS X)
  • WinSolitaire (на основе C ++, Win32 или C # для платформ Windows)
  • GSolitaire (C ++, GNome / GTK для linux / unix)

Это больше работы, но, на мой взгляд, конечный продукт определенно лучше, чем тот, который вы могли бы получить, используя независимый от платформы набор виджетов, например QT или WxWidgets .

4
ответ дан 5 December 2019 в 06:38
поделиться

Есть ли у кого-нибудь опыт работы в разработка еще для нескольких платформ разрешить приложениям запускаться изначально без ВМ?

Немного. Убедитесь, что вы обернули весь код, специфичный для платформы. Таким образом, ваше основное приложение или библиотека не должны ссылаться на код конкретной платформы. Это должно значительно упростить перенос на другую платформу.

0
ответ дан 5 December 2019 в 06:38
поделиться

Жизнеспособна ли работа на C ++ в Mac OS X? Очевидно, они ориентированы на Objective-C, но есть такая же поддержка C ++.

Да, есть.

С C ++ в OS X можно делать практически все, что угодно, - все, что вы могли бы сделать с C ++ в Linux, например. Есть поддержка компилятора GCC C ++, библиотек C ++ и т. Д. Xcode обеспечивает поддержку работы с C ++.

Вы даже можете смешивать C ++ с Objective-C с Objective-C ++ (обратите внимание, однако, что это не переносимо для работы с графическим интерфейсом пользователя).

Что насчет кроссплатформенной разработки в этих языки? Я бы использовал что-то вроде ускорения и какую-нибудь библиотеку пользовательского интерфейса.

Я считаю, что лучше всего QT .

Это стабильная кроссплатформенная библиотека C ++ (Windows, OSX, Linux и др.), Существует уже более десяти лет, хорошо поддерживается, на нем написано множество коммерческих приложений (Skype, Adobe Photoshop Album) и с его помощью написано множество материалов с открытым исходным кодом (рабочий стол KDE для начинающих). Помимо графического интерфейса, он предоставляет гораздо больше (классы контейнеров, xml, возможность подключения к базе данных и т. Д.).

Вы можете бесплатно разрабатывать приложения с открытым исходным кодом и проприетарные (закрытые) приложения с последней версией QT, а библиотека была недавно куплена от NOKIA, огромной многонациональной компании, так что она никуда не денется.

Помимо библиотеки, QT также поставляется с IDE и Visual Forms Designer (все бесплатно).

Другой кроссплатформенный графический интерфейс библиотеки для C ++ также существуют для OS X ( wxWidgets , gtkmm и др.).

Adobe Photoshop Album) и множество материалов с открытым исходным кодом, написанных с его помощью (рабочий стол KDE для начинающих). Помимо графического интерфейса, он предоставляет гораздо больше (классы контейнеров, xml, возможность подключения к базе данных и т. Д.).

Вы можете бесплатно разрабатывать приложения с открытым исходным кодом и проприетарные (закрытые) приложения с последней версией QT, а библиотека была недавно куплена от NOKIA, огромной многонациональной компании, так что она никуда не денется.

Помимо библиотеки, QT также поставляется с IDE и Visual Forms Designer (все бесплатно).

Другой кроссплатформенный графический интерфейс библиотеки для C ++ также существуют для OS X ( wxWidgets , gtkmm и др.).

Adobe Photoshop Album) и множество материалов с открытым исходным кодом, написанных с его помощью (рабочий стол KDE для начинающих). Помимо графического интерфейса, он предоставляет гораздо больше (классы контейнеров, xml, возможность подключения к базе данных и т. Д.).

Вы можете бесплатно разрабатывать приложения с открытым исходным кодом и проприетарные (закрытые) приложения с последней версией QT, а библиотека была недавно куплена от NOKIA, огромной многонациональной компании, так что она никуда не денется.

Помимо библиотеки, QT также поставляется с IDE и Visual Forms Designer (все бесплатно).

Другой кроссплатформенный графический интерфейс библиотеки для C ++ также существуют для OS X ( wxWidgets , gtkmm и др.).

1
ответ дан 5 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: