Spanish [NEWBY] Un roadmap 2026 B4X

Dr_JU

Member
Buenas noches, me presento:

Soy Jonathan, tengo 40, ciudad de Villa Mercedes, Provincia de San Luis, Argentina 🇦🇷

Me acabo de unir a la comunidad, para aprender a programar en B4X.

Mi BG/Stack informático y tecnológico:
  • C++ | F# | VBA & BASIC | VB | C# | PL/PgSQL | SQL
  • Hasta 4° Año de Ingeniería Mecatrónica (eran 6).
  • Electronica: Diseño PCB, PLC, ESP32, STM32, Arduino. [por eso C++]
  • IoT (Domótica), redes, Data Science, ML, IA, Energías renovables.
  • Electricidad: Hogareña e Industrial [hasta media tension y subestaciones].
  • Automatización industrial.
  • Diseño 3D (Rhino + Grasshopper, por eso VB y C#.
  • Impresión 3D (Filamentos).
  • Trabajo mucho con Supabase, por eso PL/PgSQL | SQL.
  • Mucha ofimática, por eso VBA & BASIC.
  • Y trabajé muchos años programando con F# (incluso hoy, pero la mayoría de las cosas es para servidor, consola, servicios y backend).
El tema es que tengo varios proyectos propios, que requieren Multi/Cros plataforma (no web), aunque todos convergen a lo mismo (soluciones para los usuarios).

Pero .NET es un ecosistema dormido en sus laureles, todo tiene un enfoque WEB-DEV, el problema de los versionados, la liturgia de los patrones y demás vicios de la industria, y bla bla bla bla.

Como así también que el mundo del software y hardware cambio mucho con los Data Driven Manged Systems y la incorporación de IA, sumado al lanzamiento de Windows Bloatware. Así que hoy en día me es indispensable poder desarrollar para Linux, Android, iOS, Raspberry Pi, Arduino, ESP32, STM32, etc. Pero de manera segura, eficaz, eficiente y bonita.

Buscando y buscando, me encontré con B4X y... Sinceramente me atrajo más que Kotlin MP, Flutter y demás. Por eso es que (aparte de la documentación oficial), que más me recomiendan (aparte practicar y errar), estilo roadmap, porque no se que tan actualizada y completa está la documentación (Ahí leia que Pages tiene problemas al rotar pantalla), por eso pregunto por esa "lectura complementaria".

Desde ya muchas gracias, y espero sus respuestas.
 

josejad

Expert
Licensed User
Longtime User
Hola Jonathan, lo primero de todo, bienvenido!

La documentación está actualizada, no está quizás estructurada de una forma cómoda, pero hay un usuario que se encarga de actualizarla.
Aunque hayas leído que B4XPages tiene el "problema" de que no puede rotarse, si vas a programar en multiplataforma, te sugiero que lo uses.
Realmente el problema no es de B4XPages, sino del ciclo de vida de Android que es complejo para manejar la rotación. De hecho, si usas aplicaciones android, verás que últimamente la mayoría no rotan. De todas formas, siempre puedes añadir una actividad que rote dentro de una app B4XPages, así que no te preocupes.
Si nos dices con qué tipo de aplicación vas a empezar, podemos orientarte con qué ejemplos puedes mirar.

Saludos,
 

Dr_JU

Member
Hola Jonathan, lo primero de todo, bienvenido!

La documentación está actualizada, no está quizás estructurada de una forma cómoda, pero hay un usuario que se encarga de actualizarla.
Aunque hayas leído que B4XPages tiene el "problema" de que no puede rotarse, si vas a programar en multiplataforma, te sugiero que lo uses.
Realmente el problema no es de B4XPages, sino del ciclo de vida de Android que es complejo para manejar la rotación. De hecho, si usas aplicaciones android, verás que últimamente la mayoría no rotan. De todas formas, siempre puedes añadir una actividad que rote dentro de una app B4XPages, así que no te preocupes.
Si nos dices con qué tipo de aplicación vas a empezar, podemos orientarte con qué ejemplos puedes mirar.

Saludos,
Estuve leyendo el foro, más allá de la documentación, así me voy dando una idea de cómo encarar el/los proyectos.

Igualmente... Más allá de que muchos proyectos "convergan" en uno. Siempre me gusta tener todo separado (aunque el core, bl, etc. sea el mismo).

Porque muchas veces aparecen bugs/hacks propios del OS, Dispositivo, etc. Entonces eso me permite dar una respuesta rápida sin tanto problema en la compatibilidad, sumado a que cada dispositivo y OS, tiene una manera diferente programarse.

También está el tema de Buenas Prácticas, ya que cada lenguaje/framework tiene sus maneras de lidiar con los tipos de datos, arrays, listas, etc.

Por ende, ej: en VBA conviene usar diccionario en vez de arrays, en BASIC conviene listas, etc.

Igualmente... Siquiera tengo noción (todavía no llego) a como testear en B4X, porque estoy más acostumbrado a F# (ahí todo es más fácil, exceptuando el ecosistema .NET).

Muchas gracias por tu aporte.
 

Dr_JU

Member
Hi Jonathan

It's always good to have a project in mnd when starting to use a new tool.
Maybe rewrite something you have done before and see the differences in code etc.

Regards

John.
Exactly! I have a project to do (Animal Control, AK; Animalia), to help people and municipality, so they improve the quality and response time of the different services (castration appointmentals, stray animals, lost/founds, free vaccinations, etc).

As well as to teach issues related to data science, ML, IA, real-time driven decisions.

{On user side} It uses GPS, PINs (pet types & sex) + user info, reader (QR, PDF417, Barcode), NFC, Bluetooth laser printers, schedulers (alarms & calendar), photos/pictures, etc.

{On Gov-employees side} it use dashboard, tables, maps, etc.
 

fabian

Member
Licensed User
Longtime User
Hola Luis , bienvenido a b4x . Creo que ademas de la documentaciòn , lo mejor es ir probando con pequeños proyectos e ir consultando aquì que te van a responder siempre . Si tu intencion es hacer poyectos multiplataforma esta es una gran opcion . B4x para tablets y desktops win,linux y osx es ideal , solo vas a tener que copiar y pegar los designs graficos entre un ide y otro y hacer algunas cositas programaticamente . Saludos
 

MrKim

Well-Known Member
Licensed User
Longtime User
Welcome aboard! Don't worry about the up to date docs issue. The best thing about B4x is the fantastic support you will find here. Rarely can you not get your questions answered within a day. Usually hours. But most of the time you will find what you need just by looking. You will find working examples for most anything you want to do here. The only caveat I have is watch the dates. Some of the older posts may no longer be relevant.
I am not exactly sure what you mean by "Even though many projects "converge" into one," if your intention is to have the same code work in Android/Iphone/Windows you do want to use B4X pages. You can later merge pages in to one app if you like.

Regarding " best practices , since each language/framework has its own way of handling data types, arrays, lists, etc." that is the beauty of B4x. There really are very few differences. Done properly these things are all handled very well by the compiler. Maps lists and arrays are all very fast.

The only thing I really miss are local static variables. If you need to maintain a value in a sub you must use a variable that is Class_global.

Tip: I have found the easiest way to work is to develop in B4J and then get it working in B4A/B4i.

The differences you handle with #If compiler variables. IE:
#If B4A
#Else If B4i
#Else If B4J
#End If
 

Dr_JU

Member
Welcome aboard! Don't worry about the up to date docs issue. The best thing about B4x is the fantastic support you will find here. Rarely can you not get your questions answered within a day. Usually hours. But most of the time you will find what you need just by looking. You will find working examples for most anything you want to do here. The only caveat I have is watch the dates. Some of the older posts may no longer be relevant.
I am not exactly sure what you mean by "Even though many projects "converge" into one," if your intention is to have the same code work in Android/Iphone/Windows you do want to use B4X pages. You can later merge pages in to one app if you like.

Regarding " best practices , since each language/framework has its own way of handling data types, arrays, lists, etc." that is the beauty of B4x. There really are very few differences. Done properly these things are all handled very well by the compiler. Maps lists and arrays are all very fast.

The only thing I really miss are local static variables. If you need to maintain a value in a sub you must use a variable that is Class_global.

Tip: I have found the easiest way to work is to develop in B4J and then get it working in B4A/B4i.

The differences you handle with #If compiler variables. IE:
#If B4A
#Else If B4i
#Else If B4J
#End If

Let's see... What I want to say || mean with; "Even though many projects "converge" into one" it's:

A B4J kiosk running on Raspberry OS (Raspberry Pi 4/5 in situ) to manage home automation. This kiosk (in turn) connects (BT, Wifi, I2C, Etc) to various devices (Arduinos, ESP32, STM32, custom PCBs) running B4R that control the different systems. Then, using B4A: apps for end users, technicians, system administrators, management, etc. (to separate responsibilities & optimization).

Alongside this, desktop programs/apps (Linux and Windows) with office-suite support, dashboards, and other features that connect remotely to the Raspberry Pis (as nodes) for maintenance, updates, telemetry, administration, etc. (to handle IoT security on Linux rather than trying to do it directly on the PCBs).

Also, technical applications: B4J on Raspberry OS and B4R for PCBs. ETC. Your owns devices for metrics (And what this implies at the level of knowledge).

This approach lets me teach "Technology” (I'm studying to be a teacher) in a complementary way, since a fully automated house with its own software and hardware, as well as AC and DC electricity, electronics (digital, analogic) etc., provides a complete learning environment.

Imagine this project; a fully automated rural school: with a greenhouse, self-sustaining, energy-producing, with all its telemetry, administration, management, data science, power handling, intelligent controls, surveys, security, etc.

The possibilities are limitless! Many areas of science and education could be taught practically (including social sciences such as ethics, politics, economy, climate, bio & natural cicles & ecosystems, etc. Even music).

Each child could not only explore but also develop their potential in their area of interest; they would understand and apply what was learned in the classroom, and it would encourage curiosity, critical thinking, and research and evaluation skills.

Not to mention that it would promote interoperability between the knowledge and interests of the students themselves.

I know it sounds utopian, but someone has to do it, and maybe next year I'll have that chance.

That’s why I say that although each project may be different (with a different focus), they all converge into one, because symbiotically and synergistically… “they all end up converging.” At the end of the day, all the parts (and the whole) have to work!

So, perhaps the only thing “common” (to the software/code itself) would be the connection to the server(s) and databases (local/lan/cloud).

I don't mention MAC and iOS because (due to the costs associated with devices and software) it's too far off for now.
------------
That's why I'm interested on B4X, because has the same "runtime & syntax" in almost every device, it's not hard to "bind" native & between platforms, has a live & updated community, it's always evolving, it's "easy to read & understand", it has a pro & optimized language "almost" native (where almost = imperceptible), and the best of all (this is personal) ... IT HAS PROGRAMMERS PROGRAMMING PROPERLY, AND NOT THE EMPTY LITURGIES OF THE CODING INDUSTRY.

In essence... it has everything .NET promised and none of its vices. (Thanx Erel).
 

Dr_JU

Member
Hola Luis , bienvenido a b4x . Creo que ademas de la documentaciòn , lo mejor es ir probando con pequeños proyectos e ir consultando aquì que te van a responder siempre . Si tu intencion es hacer poyectos multiplataforma esta es una gran opcion . B4x para tablets y desktops win,linux y osx es ideal , solo vas a tener que copiar y pegar los designs graficos entre un ide y otro y hacer algunas cositas programaticamente . Saludos
Soy Jony 🤣🤣🤣
 
Top