Thanks for the welcome. I'm still undecided if I go for B4 or jump straight to Java. B4 should be easier, but Java is more widespread and potentially more powerful (though I heard you can use Java and ObjC code in B4). My problem is that currently I have no feeling for where the strengths and limitations of B4 are - which is something you need to know when you make a decision.
Hi Markus - I've been using B4X (mainly B4A, but also some B4J & B4R) for almost 10 years & while I initially started with B4A as part of my first foray into mobile app development, I now find I almost exclusively use Android Studio (Kotlin) & Xcode (Swift) for new development. I even used Unity for one of my apps. I started using Xcode before Erel brought out B4i & when B4i did become available I had learned enough (Obj-C at the time) such that it didn't really make sense to switch.
The main reason I've moved away from B4A is because I've found its lack of native support for Android SDKs to be very limiting in some cases. This is something I've commented on a few times over the years as it can be very frustrating to get halfway through a project only to find that some functionality you need isn't available. Maybe the apps I develop are atypical or something, but in the end I found it happening more often than not. To give you a couple of examples:
* Early on in the process of developing my first app (a game), I wanted to take advantage of Google Play Games Services for leaderboards, achievements, etc... At that time, one of the B4X community members had written a library with limited support for GPGS - but enough for me to do what I wanted. When I wanted to take that further & add multiplayer, there was nothing available. It did get implemented in a later update to the GPGS library, however that library hasn't been updated for a long time since then & I would guess is now almost non-functioning at any useful level.
* I also have several projects that use Firebase Firestore. There was briefly a B4A library available for Firestore, however it no longer exists.
There are ways around this - like writing your own libraries (I've dabbled, but never really got far) or using JavaObject to directly access SDK functions - but neither of these options is a "quick answer" (especially for a complex SDK), so for me it was a better use of my time to just teach myself Swift & Kotlin & then have access to all the functionality available on Android & iOS platforms straight out of the box. If you're still in the undecided stage, I'd advise you to think about what functionality you're going to need in your apps & then search the forums to see if you're going to be able to achieve what you want with what's available. Erel is always adding new features & functionality to the range of B4X tools, but not everyone's priorities & wish lists are the same - so that one functionality you need might prove to be elusive.
I'd have to say that one area B4A really beat AS hands down in the early days was in putting layouts together, but the later versions of AS are much easier to use & I don't really see that B4A advantage any more. Same with Xcode (although Interface Builder is still pretty crap) & now you have SwiftUI as an option too.
Don't get me wrong - I think B4X tools are great in certain circumstances (I love B4R for my ESP8266 projects), but like many situations you need to pick the best tool to suit your needs. I mean you wouldn't use a shifter (adjustable wrench) to undo the wheel nuts on your car, would you?
- Colin.