Spanish Posibilidades de desarrollo

malarcon

Member
Hola a todos!!
Estoy descubriendo esta herramienta y me parece super interesante y quisiera opiniones sinceras sobre lo que se puede hacer y lo que no.
En mi empresa nos dedicamos a desarrollar sistemas a medida en la nube, CRM, ERP´s, Gestión de documentos, etc.
Usamos las siguientes tecnologías, por ejemplo, Php, Javascript, HTML; CSS, Bases de datos (MySQL, MSSQL, SQLite, etc).
Ahora; si bien con Javascript y algunos frameworks permiten hacer de todo; estamos buscando una herramienta que nos permita acelerar el desarrollo de aplicaciones.
Entonces listo mis principales dudas:
1 - Veo que se pueden desarrollar webapps: En que compila R4X? Java? Que requisitos tienen que tener el servidor donde se aloje? Normalmente usaos CENTOS
2- Dada nuestra experiencia en tecnologías web; permite B4X extender o personalizar código Php, Javascript?
3- Creo que con esta herramienta podemos ampliar nuestros sistemas. Si desarrollamos un CRM basado en web, con el mismo desarrollo/código puedo generar una app mobile y llegado el caso para escritorio (nuestro target de clientes por lo general no pide desktop, pero está bueno tener la opción)
4- La interfaz gráfica es super importante para lograr una buena experiencia de usuario. R4X es flexible en ese sentido? Puedo integrar librerias externas para los themes? Bootstrap por ejemplo? o hay que limitarse a lo que traiga B4X y editar desde ahi?
5- Como se comporta B4X con bases de datos grandes? Es decir con 1000 tablas, tablas con 500mil registros o más.

Aguardos sus respuestas :)

Gracias por leer hasta acá :)
 

TILogistic

Expert
Licensed User
Longtime User
Comentarios simples:


1.- Java para Linux, Windows, etc.
2.- Javascript si, PHP no (ver link anterior)
3.- Solo Web (Puede usar WEBVIEW para Mobile o Desktop)
4- Si (Bootstrap , JqueryUI, etc)
5- Se comporta excelente (ver Jetty)

Si desarrollamos un CRM basado en web, con el mismo desarrollo/código puedo generar una app mobile y llegado el caso para escritorio
En cuanto al desarrollo de app multiplataforma debo aclarar que el código que generes para web solo lo puedes re-utilizar con Webview.

demos:

Puedes revisar BANano y ABMMaterial.


Saludos.
 
Last edited:

malarcon

Member
Comentarios simples:


1.- Java para Linux, Windows, etc.
2.- Javascript si, PHP no (ver link anterior)
3.- Solo Web (Puede usar WEBVIEW para Mobile o Desktop)
4- Si (Bootstrap , JqueryUI, etc)
5- Se comporta excelente (ver Jetty)


En cuanto al desarrollo de app multiplataforma debo aclarar que el código que generes para web solo lo puedes re-utilizar con Webview.

demos:

Puedes revisar BANano y ABMMaterial.


Saludos.
Comentarios simples:


1.- Java para Linux, Windows, etc.
2.- Javascript si, PHP no (ver link anterior)
3.- Solo Web (Puede usar WEBVIEW para Mobile o Desktop)
4- Si (Bootstrap , JqueryUI, etc)
5- Se comporta excelente (ver Jetty)


En cuanto al desarrollo de app multiplataforma debo aclarar que el código que generes para web solo lo puedes re-utilizar con Webview.

demos:

Puedes revisar BANano y ABMMaterial.


Saludos.



------------------------
Muchas gracias por la respuesta!
Veo que la comunidad es grande y hay tanta info que no se por donde empezar jaja.
Unas consultas más:
1- Vi que hay un "b4XLauncher" que te permite elegir que tipo de proyecto iniciar, pero la descarga es fuera de la web de b4x. Como funciona? tengo que tener descargados individualmente los software y launcher solo me permite elegir con cual iniciar? es Así? O simplemente descargo cada software por separado (B4A, B4j, B4i, B4r) y abro el que necesite?
2- Cuál sería el proceso básico de desarrollo (además de estudiar el software a fondo :p)? Por lo general en los RAD´s se inicia eligiendo la conexión, la DB, luego te genera los CRUDS, luego la parte de edición/estética y toda la lógica de negocio extra que se necesite agregar. B4X funciona parecido?
3- Para iniciar a aprender creando un proyecto de una app para web tipo CRM, por dónde empiezo? Tutorial o material de aprendizaje que me puedas indicar por favor.
4- Tengo en puerta un proyecto para llevar control de cosechas en el campo donde no hay buena conexión a internet y debe cumplir lo siguiente:
a- Se debe poder tomar datos de código de barra con una pistola /scanner lector de códigos. Esto abre un formulario de carga según el ID extraído de la lectura del código de barras.​
b- Se debe poder conectar una balanza/báscula para poder pesar los productos cosechados. El peso registrado se debe cargar automáticamente en un campo de un formulario​
c- Todo se debe guardar localmente en SQLITE por ejemplo y una vez que se tenga señal de conexión, poder guardar esa información automáticamente en la nube​
Creo que con B4X podría hacer esto sin problemas no?

Gracias nuevamente!! En un principio iré preguntando de todo jaja pero mientras vaya aprendiendo iré colaborando con experiencia :)
 

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas!
Una simple puntualización.
Para el desarrollo en otras plataformas, siempre puedes crearte una API de acceso para las apps (es lo que yo hago).
Un saludo.
 

josejad

Expert
Licensed User
Longtime User
Hola malarcon:

A ver hasta donde llego...

1 - Veo que se pueden desarrollar webapps: En que compila R4X? Java? Que requisitos tienen que tener el servidor donde se aloje? Normalmente usaos CENTOS
Como supongo que ya habrás visto, B4X (no R4X) está compuesto por:
- B4A, desarrollas para Android
- B4I, desarrollas para iOS
- B4X, desarrollas para Arduino, ESP8266...
- B4J, desarrollas para plataformas windows, linux, mac, raspberry... Con este IDE puedes crear aplicaciones de servidor, y en principio sería lo que necesitarías.

Con B4X solemos referirnos a soluciones que son multiplataforma, es decir, por ejemplo librerías que funcionan en Android, iOS y en B4J (normalmente no en B4R), o al lenguaje de programación que usamos, que aunque se parece mucho no es exactamente Basic.

Con B4J, para hacer webapps, tendrías que hacerlo desde cero prácticamente, pero hay un par de frameworks muy potentes desarrollados por alwaysbusy, que son ABMaterial y BANANO.

Con ABMaterial, programas todo en B4X, y al final generas un archivo java (.jar) que puedes ejecutar en cualquier servidor (windows o linux, como CENTOS).
Sin embargo, con Banano, cuando compilas, la salida crea HTML, javascript y archivos CSS.
Puedes ver la respuesta de su creador en este post a una duda de una compañera.

2- Dada nuestra experiencia en tecnologías web; permite B4X extender o personalizar código Php, Javascript?
Esto no sé si lo entiendo bien, pero en principio te diría que no.
Algo que sí podrías hacer es acceder desde APPs nativas en Android o iOS a vuestras apps a través de una API, o directamente a vuestra base de datos e implementar la lógica en la propia APP.

3- Creo que con esta herramienta podemos ampliar nuestros sistemas. Si desarrollamos un CRM basado en web, con el mismo desarrollo/código puedo generar una app mobile y llegado el caso para escritorio (nuestro target de clientes por lo general no pide desktop, pero está bueno tener la opción)
Te diría lo mismo que en el caso anterior. Aunque puedes ejecutar una web dentro de una app con una webview, no es lo más adecuado. Lo mejor es usas controles nativos (listviews, etc...) para mostrar la información y acceder a ella a través de una API de vuestra web.
4- La interfaz gráfica es super importante para lograr una buena experiencia de usuario. R4X es flexible en ese sentido? Puedo integrar librerias externas para los themes? Bootstrap por ejemplo? o hay que limitarse a lo que traiga B4X y editar desde ahi?
Es flexible, aunque hasta donde yo conozco no puedes integrar librerías para los temas. Puedes crear con el diseñador el layout que quieras e ir viendo en el móvil cómo te va quedando. Una vez hecha por ejemplo en B4A, sólo tienes que copiar y pegar esos layouts en B4I o en B4J.
Puedes ver buenos ejemplos de algunos compañeros del foro. Por ejemplo, si buscas post del usuario ramezaniabbas puedes ver los diseños que realiza, que a veces comparte el tutorial de cómo los hace, otras sube el código, y otras lo vende por un módico precio.

5- Como se comporta B4X con bases de datos grandes? Es decir con 1000 tablas, tablas con 500mil registros o más.
Bien, no hay ningún problema. Hay una librería que es jRDC2 muy potente, y puedes ver ejemplos con LazyLoading de grandes cantidades de datos.

Después verás que el foro es MUY activo, hay muchísimos ejemplos, y todas las dudas se suelen responder.

Por último, te pongo un post de alguien que también preguntaba por la plataforma.

Espero que te sea de utilidad. Un saludo,
 
Last edited:

josejad

Expert
Licensed User
Longtime User
Por cierto, se me olvidaba este post, en el que un usuario muestra sus creaciones con BANANO

 

TILogistic

Expert
Licensed User
Longtime User
Viendo tu modelo de negocio, te recomendaría lo siguiente:

React


Flutter

Saludos.
 

malarcon

Member
Viendo tu modelo de negocio, te recomendaría lo siguiente:

React


Flutter

Saludos.
@oparra Gracias por tu respuesta!
Dices que es mejor ir por esos Frameworks/librerias ? Con R4X no podré lograr algo como lo que necesito?
 

malarcon

Member
como hobby B4J y B4R, quizás sirvan, o uno que otro a desarrollado algun producto profesional, Pero no, yo no volveré a intentar usarlos. Prefiero Phyton, Boostramp, Javascrip and PhP, y en electrónica directamente con Microchip y Nordicsemiconductor.

Lo que si B4I y B4A ha echo las cosas simples para integrar con IoT y mobile apps en mi caso, pero aun asi le falta esa parte de integración de pago (tu como experto seguro se te será simple) en mi caso moviebdo todo a websoluciones.(mucho mas simple de integrar con stripe por ejemplo)
Aunque siempre voy 2 ó 3 versiones atrás hasta ver que ya se solucionado las fallas en cada actualización de B4I o B4A :)

Nota: Mi opinión va como un freelancer que hace negocios y no como hobby.

Nota2: En el foro siempre encontrarás ayuda, respuestas y soluciones a preguntas.


@f0raster0 muchas gracias por tu respuesta!! Por qué dices que "no volverías a intentar usarlos?"
Hace un par de dias que vengo estudiando R4X. Calculo que si cumpliría con mis necesidades pero no de la forma que haría una tecnología mas "de raiz" como le llamo yo, como bien dijiste ir por tecnologías "base". De todas formas veo que la comunidad de R4X es grande y comparte mucho que es lo importante. Hasta ahora obtuve respuestas sinceras de usuarios que reconocen los pros y contras. Gracias nuevamente!
 

TILogistic

Expert
Licensed User
Longtime User
------------------------
Muchas gracias por la respuesta!
Veo que la comunidad es grande y hay tanta info que no se por donde empezar jaja.
Unas consultas más:
1- Vi que hay un "b4XLauncher" que te permite elegir que tipo de proyecto iniciar, pero la descarga es fuera de la web de b4x. Como funciona? tengo que tener descargados individualmente los software y launcher solo me permite elegir con cual iniciar? es Así? O simplemente descargo cada software por separado (B4A, B4j, B4i, B4r) y abro el que necesite?
2- Cuál sería el proceso básico de desarrollo (además de estudiar el software a fondo :p)? Por lo general en los RAD´s se inicia eligiendo la conexión, la DB, luego te genera los CRUDS, luego la parte de edición/estética y toda la lógica de negocio extra que se necesite agregar. B4X funciona parecido?
3- Para iniciar a aprender creando un proyecto de una app para web tipo CRM, por dónde empiezo? Tutorial o material de aprendizaje que me puedas indicar por favor.
4- Tengo en puerta un proyecto para llevar control de cosechas en el campo donde no hay buena conexión a internet y debe cumplir lo siguiente:
a- Se debe poder tomar datos de código de barra con una pistola /scanner lector de códigos. Esto abre un formulario de carga según el ID extraído de la lectura del código de barras.​
b- Se debe poder conectar una balanza/báscula para poder pesar los productos cosechados. El peso registrado se debe cargar automáticamente en un campo de un formulario​
c- Todo se debe guardar localmente en SQLITE por ejemplo y una vez que se tenga señal de conexión, poder guardar esa información automáticamente en la nube​
Creo que con B4X podría hacer esto sin problemas no?

Gracias nuevamente!! En un principio iré preguntando de todo jaja pero mientras vaya aprendiendo iré colaborando con experiencia :)

revisa esto:



busqueda;
 
Last edited:

TILogistic

Expert
Licensed User
Longtime User
@oparra Gracias por tu respuesta!
Dices que es mejor ir por esos Frameworks/librerias ? Con R4X no podré lograr algo como lo que necesito?

mi sugerencia fue si tu modelo de negocios es software factory en donde tus clientes tienen conocimientos de informática y de los lenguajes utilizados en el mercado, te encontraras con ciertas preguntas que no podrás responder, no quiero decir que B4X no cumple lo requisitos actuales del mercado, pero su masificación en el mercado de desarrollo software no es muy conocido.

Ahora bien si tu modelo de negocio es Saas en la nube en donde tus clientes utilizan tu software (movil y web), es muy buena herramienta para desarrollo rápido y de curva de aprendizaje baja, y de resultados muy buenos.

Puedes buscar en el foro, hay algunos comentarios de miembros de situaciones que se han encontrado en la fabricación de software para empresas.

ejemplo:

Saludos.
 

josejad

Expert
Licensed User
Longtime User
 

josejad

Expert
Licensed User
Longtime User
Hola @malarcon :

No sé mi salté uno de tus post, o si lo has editado después, pero te comento algunas cosillas más a las que no veo respuestas.

1- Vi que hay un "b4XLauncher" que te permite elegir que tipo de proyecto iniciar, pero la descarga es fuera de la web de b4x. Como funciona? tengo que tener descargados individualmente los software y launcher solo me permite elegir con cual iniciar? es Así? O simplemente descargo cada software por separado (B4A, B4j, B4i, B4r) y abro el que necesite?
Es una herramienta que ha creado uno de los usuarios para que sea más cómodo arrancar uno u otro IDE, y tiene ya tiempo, no sé si sigue funcionando. Lo habitual es descargar cada IDE por separado y ejecutar el que necesites.

2- Cuál sería el proceso básico de desarrollo (además de estudiar el software a fondo :p)? Por lo general en los RAD´s se inicia eligiendo la conexión, la DB, luego te genera los CRUDS, luego la parte de edición/estética y toda la lógica de negocio extra que se necesite agregar. B4X funciona parecido?
Pues aquí creo que "cada maestrillo tiene su librillo". Puedes seguir perfectamente lo pasos que indicas.
- se inicia eligiendo la conexión: La forma recomendada de conectar a una base de datos es jRDC2. Es una aplicación servidor middleware desarrollada en B4J que hace de puente entre tu app y la base de datos. Necesita un VPS (ya tienes tu servidor Centos) y se conectaría a tu base de datos y tus clientes hacen las peticiones al servidor jRDC2.
- la DB: jRDC2 se puede conectar a cualquier DB que tenga un driver JDBC.
- luego te genera los CRUDS: jRDC2 tiene un fichero config en el que guardas todas tus consultas (es decir, no están en tu app cliente, lo que lo hace más seguro), a éstas les das un nombre (por ej: selectUsers) y la llamas desde tu app pasándole los parámetros que necesites.
- luego la parte de edición/estética y toda la lógica de negocio extra que se necesite agregar: para la parte estética, verás que cada plataforma tiene sus vistas propias (ver tabla), y que Erel ha hecho un gran trabajo haciendo una abstracción de las mismas con unas vistas genéricas que engloban a las específicas (XUI, B4XView, ...). Por lo que lo más adecuado es usar estas vistas genéricas para construir tu app, y no las específicas de cada plataforma. De esta manera, podrás compartir la mayor parte de tu código.

3- Para iniciar a aprender creando un proyecto de una app para web tipo CRM, por dónde empiezo? Tutorial o material de aprendizaje que me puedas indicar por favor.
Buf, esto ya es más difícil. Un CRM es algo tan genérico que me temo que no hay tutoriales específicos. Es mejor desglosar sus partes, e ir buscando soluciones. Si pones CRM en el buscador, verás que hay un par de ejemplos de usuarios que venden el código fuente de alguno, no sé si cumpliría con tus espectativas.

4- Tengo en puerta un proyecto para llevar control de cosechas en el campo donde no hay buena conexión a internet y debe cumplir lo siguiente:
a- Se debe poder tomar datos de código de barra con una pistola /scanner lector de códigos. Esto abre un formulario de carga según el ID extraído de la lectura del código de barras.
Lo puedes hacer perfectamente, tanto leer el código de barras con la cámara del móvil, como usar uno externo por BT

b- Se debe poder conectar una balanza/báscula para poder pesar los productos cosechados. El peso registrado se debe cargar automáticamente en un campo de un formulario
Pues depende de la interfaz que tenga la balanza, pero en el foro hay gente que se conecta a cosas muy extrañas, así que, habiendo un mínimo de información sobre el tipo de conexión y el formato en el que la balanza pasa los datos, seguro que en el foro te pueden ayudar.

c- Todo se debe guardar localmente en SQLITE por ejemplo y una vez que se tenga señal de conexión, poder guardar esa información automáticamente en la nube
Lo puedes hacer también perfectamente.

Por último, te recomendaría que si te decides a usar el producto, empieces ya directamente con B4XPages. Como podrás ver, Android tiene un ciclo de vida distinto a iOS.
Con B4XPages, Erel está haciendo que no tengas que preocuparte porque la app cambie de actividad, o haya un resume, etc... y que la mayoría del código se pueda compartir. Como inconveniente, la app debe tener una orientación fija (portrait o landscape).


saludos,
 
Top