sky dark android .net mono xamarin.ios xamarin.android

android - dark sky api



¿Mono para iOS/Android abierto o cerrado? ¿Pagado o gratis? (5)

Estoy intentando aprender más sobre el desarrollo de dispositivos móviles / tabletas y, como desarrollador de .NET, naturalmente me siento atraído por Mono. Pero estoy confundido, pensé que Mono era libre y de código abierto; sin embargo, todas las señales parecen apuntar a que Mono es una oferta de "pago para jugar" (https://store.xamarin.com/).

¿Puede alguien ayudarme, por favor, a entender cuál es la respuesta correcta?

¡Gracias!

Mate


Como desarrollador de .Net desde hace mucho tiempo (a partir de la versión 1.0), puedo decirle que si usted no es un aficionado, todo el dinero que gaste en MonoTouch y MonoDroid pagará enormes dividendos en el muy corto plazo.

Existe ciertamente una curva de aprendizaje para la interfaz de usuario y el entorno de control de terceros no es tan robusto como lo es para las plataformas Windows, sino la capacidad de programar contra el marco .Net (incluso si el lenguaje es C #) Es una ventaja indescriptible y vale la pena cada centavo gastado con Xamarin.

Pudimos portar una aplicación VB.Net de 500,000 líneas escrita para el sistema operativo Tablet y PocketPC en el iPad en menos de 3 meses, incluido el soporte de base de datos local, interacción de servicios web, etc. Y debería llevarnos menos de un mes más crear La interfaz de usuario para Android ahora que tenemos una capa de servicios comunes. En ese momento, tendremos una aplicación que tendrá una funcionalidad similar en iOS, Android, escritorio de Windows, tableta de Windows y teléfono de Windows. Ciertamente no puedo hacer eso con las decenas de miles de dólares que gasto por año en el ecosistema de Microsoft.


Ha pasado un tiempo desde que se hicieron estas preguntas por primera vez, pero encontré una opción de código completamente abierto llamada Monocross http://monocross.net/

No lo he usado, así que no sé lo bueno que es.


Mono en sí es gratis. Eso no significa que todo lo escrito con mono sea gratis. Como es el caso de mono para Android. Alguien se tomó el tiempo para escribir un software que haga funcionar el mono con Android. El hecho de que esté escrito en mono no significa que tengan que compartirlo gratis. Lo único que tendrían que compartir es cualquier cambio realizado en mono . El hecho de que Android sea gratuito y abierto, no significa que no pueda hacer aplicaciones y requiera que las personas las compren para poder usarlas.


Publicación anterior, pero la respuesta de poupou necesita alguna aclaración e información adicional.

En primer lugar, desde la publicación de Poupou, Xamarin ha agregado una nueva licencia Community Edition a toda la pila Mono / Android / iOS que permite la distribución de código cerrado de aplicaciones, pero esta licencia está restringida a la magnitud de los binarios. En la práctica, incluso algunas aplicaciones de Hello World superan los límites de tamaño binario de la edición comunitaria, por lo que, en mi opinión, no es una opción real según ninguna definición práctica.

Dicho esto, las bibliotecas de tiempo de ejecución y de ejecución de Mono se licencian bajo la licencia LGPL. Esto dificulta el lanzamiento de software de código cerrado en una tienda de aplicaciones que utiliza el tiempo de ejecución mono sin comprar una licencia comercial de Xamarin, pero no es imposible. Una opción que la LGPL permite, según mi entendimiento, es proporcionar los archivos de objeto para su aplicación. Esto permitiría a un usuario volver a vincular los archivos de objeto de su aplicación a una versión diferente del tiempo de ejecución mono y luego instalar esa aplicación vinculada en su dispositivo. Todavía tendrían acceso a los archivos de objetos, pero aún así podría mantener su fuente cerrada si lo desea. No soy abogado, pero creo que puede cobrar por estos archivos de objetos y distribuirlos solo a pedido.

Si desea lanzar una aplicación de código abierto utilizando mono, estaría bien posicionado para hacerlo porque, por supuesto, puede liberar no solo el código objeto sino la fuente completa de su aplicación, permitiendo a los usuarios volver a vincular mono a su propia versión de Aplicación, y cumpliendo así los requisitos de la LGPL.

Ahora, aquí está el problema. Si bien lo que dije anteriormente es cierto, SOLO se aplica al core mono runtime. Eso es porque el motor de ejecución mono tiene una licencia de código abierto. Es posible que se sorprenda al saber que ninguno de los BINDINGS específicos de la plataforma, que son las bibliotecas y las herramientas de desarrollo que proporciona Xamarin para conectar su código mono .net a, por ejemplo, las bibliotecas UI / system de la plataforma de Android y iOS, son de código abierto. en absoluto. Entonces, Mono para Android y MonoTouch (y monomac?) No son libres como en la libertad de expresión ni libres como en la cerveza gratis. Ambos son productos 100% comerciales. Ahora, me dicen que puede solicitar una licencia de código abierto compatible de forma privada, pero su proyecto de código abierto debe ser preaprobado, lo que significa que no podrá aprovechar la opción de código de objeto para un proyecto de código cerrado, y yo No sé qué tipo de restricciones aplicaría Xamarin a dicha licencia (sospecho que restricciones similares a la edición comunitaria).

EDITAR: Corrección a lo anterior: Xamarin no le otorgará una licencia de código abierto compatible para un proyecto de código abierto. En su lugar, le darán (como el desarrollador que desea lanzar una compilación de una aplicación de código abierto en una de las tiendas de aplicaciones), una licencia completa gratuita de Xamarin si pueden verificar que su aplicación es legítimamente de código abierto. Esta sigue siendo la licencia comercial (para un desarrollador), y no es una licencia de código abierto compatible, por lo que esta licencia no se aplica a ningún otro desarrollador que descargue el código para su proyecto y lo genere. Deberán comprar su propia licencia de Xamarin para publicar su versión de la aplicación de código abierto.

Lo que esto significa es que, la única forma de aprovechar la opción de código de objeto LGPL para la distribución de código cerrado (o, de hecho, para lanzar una aplicación de código abierto compatible con LGPL sin el permiso de Xamarin), deberá escribir toda su propia plataforma. enlaces para que su aplicación pueda interactuar con el sistema o la interfaz de usuario de cualquier manera significativa. Koushik Dutta, de ClockworkMod, originalmente comenzó un proyecto de este tipo, al menos para los enlaces de Android, antes del lanzamiento de Mamarón para Android de Xamarin. Abandonó el proyecto después del lanzamiento de Xamarin, pero el código todavía está disponible aquí: https://github.com/koush/androidmono

Si uno creara un conjunto de enlaces de Android / iOS para Mono y los liberara bajo una licencia de código abierto permisiva como MIT / X11, entonces las aplicaciones podrían omitir Xamarin y liberar aplicaciones bajo la opción de archivo de objeto para el cumplimiento de LGPL (o simplemente liberar el código). , si es una aplicación de código abierto).

Yendo un paso GIGANTE: si nos fijamos en el desglose de las licencias de mono mono, notará que solo el tiempo de ejecución de mono mono y sus bibliotecas tienen licencia LGPL. Casi todas las bibliotecas de clases ya están utilizando una licencia permisiva como MIT / X11 o alguna otra forma de Apache o MS-PL. Eso significa que si, hipotéticamente, además de crear algunos enlaces de código abierto permisivos para Android / iOS, alguien comenzaría desde cero y reescribiría las bibliotecas principales de tiempo de ejecución y de tiempo de ejecución mono (todas las partes de mono de LGPL) usando un sistema más permisivo. licencia, entonces esa versión hipotética de mono (yo lo llamo "MonoLibre" cuando sueño con eso) podría incrustarse en una aplicación de código cerrado, de forma gratuita, sin liberar archivos de objetos, abrir su fuente, pagarle a Xamarin o tener que pida permiso a Xamarin para distribuir su aplicación de código abierto. Xamarin podría seguir vendiendo el tiempo de ejecución mono "comercializado", pero MonoLibre podría seguir utilizando todas las bibliotecas de clase e incluso el mismo compilador.


Actualización (2016/03/31)

Respuesta de historia

Primero aclaremos el caso Mono :-)

Mono es gratis como en la libertad de expresión , no cerveza gratis . Puede obtenerlo gratis (es decir, sin pagar) ya que está disponible bajo licencias de código abierto que lo permiten. Pero también podría pagarlo (por ejemplo, la gente pagó algunas versiones de Mono en los días de Novell). Además, algunas personas no pueden usar Mono bajo las licencias gratuitas de código abierto (por ejemplo, como un motor de juego donde la fuente no está disponible ...). En tales casos, se necesita una licencia comercial de los titulares de los derechos de autor.

Mono para Android es un producto comercial basado en Mono y vendido por Xamarin (quien tiene los derechos de licencia de Mono). Reutiliza mucho de lo que Mono ha logrado y también trae muchas más funciones para permitir a los desarrolladores de .NET usar sus habilidades en las plataformas Android.

Finalmente, las versiones de evaluación de Mono para Android son gratuitas y completamente funcionales cuando se usan con el emulador de Android (no con dispositivos). Así que aún puedes probar, aprender y disfrutar de Mono y Mono para Android sin pagar un centavo a Xamarin :-)

nota: lo mismo se aplica a MonoTouch, que le permite crear aplicaciones para iPhone / iPad (iOS) basadas en .NET desde una computadora Mac OSX.

Descargo de responsabilidad: trabajo para Xamarin