2010-01-27 22 views
21

Estoy planeando desarrollarme en sistemas Symbian pero no estoy familiarizado con él. Sé (podría ser) que la forma más popular de desarrollar en Symbian es Symbian C++, y también escuché de Qt. ¿Cual es la diferencia entre ellos? Si quiero que mi aplicación se ejecute en la mayoría de los sistemas Symbian, ¿qué debo elegir? ¿Alguien puede darme algunos consejos generales?Qt o Symbian C++?

Gracias ~

Respuesta

33

Symbian C++ es el dialecto de C++ en la que el sistema operativo está escrito, todo el camino desde el núcleo hasta el marco de la aplicación. Se diferencia del C++ estándar en varias formas, algunas de las cuales se enumeran a continuación:

  • No se usan excepciones; Symbian usa su propio método de desenrollado de pila llamado 'hojas'. La razón principal de esto es que el estándar de C++ aún estaba en desarrollo cuando se creó Symbian, y las excepciones no estaban ampliamente respaldadas por los compiladores en ese momento.
  • Debido a la falta de soporte para las excepciones, la administración de la memoria asignada dinámicamente usa un mecanismo propietario denominado la pila de limpieza.
  • Aunque un puerto de la STL está ahora disponible para Symbian, este es un desarrollo reciente, por lo que el sistema operativo tiene sus propias clases de utilidad para cadenas, matrices, etc. hashes

En conjunto, estos pueden hacer que el aprendizaje Symbian C++ es bastante difícil, incluso para los programadores con experiencia en C++. La pila de limpieza y las clases de cadenas (conocidas como descriptores) en particular, se considera que agregan bastante sobrecarga al desarrollo de Symbian C++.

Al igual que con cualquier sistema operativo, además de necesitar conocer el idioma nativo, también necesita conocer las bibliotecas que son relevantes para su área de desarrollo. Symbian tiene un conjunto muy rico de bibliotecas que cubren grandes cantidades de funcionalidad (subprocesamiento, IPC, gráficos, multimedia, redes, ubicación, mensajería, PIM, telefonía, etc.). Una vez que te acostumbras a los modismos de Symbian C++, estas bibliotecas son generalmente muy poderosas y ofrecer un conjunto de características al menos igual a otras plataformas. Una excepción notable es la biblioteca de UI, conocida como Avkon, que ahora está bastante anticuada en comparación con los marcos correspondientes en otras plataformas.

Qt tiene como objetivo abordar algunos de los problemas enumerados anteriormente que tienden a poner a las personas fuera del desarrollo nativo en el sistema operativo Symbian. Específicamente, permite un estilo mucho más moderno de programación C++ e incluye un conjunto muy avanzado de bibliotecas de gráficos/UI. Hoy, Qt is available for installation en los dispositivos Symbian más recientes. De cara al futuro, constituirá la base de un marco de aplicación completamente nuevo, que se introducirá en la versión S^4 de the platform (se espera que esté en dispositivos que se envíen a partir de 2011).

Una cosa que debo señalar es que, en este punto, Qt no cubre todas las funciones de las bibliotecas nativas. De la lista anterior, aunque Qt ofrece abstracciones de hilos, IPC, gráficos, multimedia y redes, sus bibliotecas principales no incluyen ubicación, mensajería o funcionalidad PIM. Entonces, aunque puede usar Qt para escribir (por ejemplo) un cliente FTP, un programa de dibujo o un reproductor multimedia, no puede usarlo para escribir un cliente de mensajería. Como Qt es C++, puede puede mezclarlo con Symbian C++ nativo (bajando a las API de la plataforma para acceder a la mensajería, por ejemplo), pero esto es algo complejo.

Esta brecha de funcionalidad está siendo abordada por un proyecto llamado Qt Mobility, que introducirá las bibliotecas Qt que cubren áreas como ubicación, mensajería y PIM.

En resumen, si es nuevo en Symbian, Qt es el entorno de desarrollo de aplicaciones para aprender, y hacerlo tiene la ventaja adicional de que también puede desarrollar aplicaciones Qt en otras plataformas (ya que es un conjunto de herramientas multiplataforma) .

+0

Muchas gracias ~ ¿Qué hay de Java ME en Symbian? –

+0

Mi respuesta se concentró en las opciones de desarrollo nativas de C++, pero Symbian también admite muchos otros tiempos de ejecución. Además de Java ME, también puedes desarrollar en Flash, Python, WRT, .NET (con bibliotecas propietarias), ... la lista continúa ... –

+0

Muchas gracias –

7

Ir para Qt. Será la dirección hacia donde se dirige todo Nokia. Además, su programa probablemente también se ejecutará en Maemo/Meego.

0

La respuesta es un poco tarde, pero aquí es de Symbian C++ en el desarrollador wiki de Nokia:

Symbian C++, el marco de programación nativo para Symbian, es un variante idiomática de C++ optimizado para dispositivos con poca memoria. Mientras Qt es ahora el marco nativo recomendado para crear aplicaciones Symbian, seguimos brindando acceso a las herramientas para trabajar con Symbian C++. Este soporte continuo le permite mantener aplicaciones heredadas y migrarlas a las últimas versiones de la plataforma Symbian.

Parece que ahora se prefiere Qt, y los proyectos nuevos deben usar Qt.