B4x & Xamarin

Emme Developer

Well-Known Member
Licensed User
Longtime User
Good morning guys! Who uses Xamarin to develop iOS & Android applications? Like B4x, it compiles native applications. What do you think about it? Thanks
 

tufanv

Expert
Licensed User
Longtime User
It uses C while we use Basic. That's why I think they are 2 different products and can't be compared. If you are familiar with C you can test it yourself as it seems free.
 

moster67

Expert
Licensed User
Longtime User
Well, if you can master C#, then it is probably a great product, considering it is also free now. While the resulting apps are native, I think there is a "sort of" runtime-library which is included in the apps which create more overhead than B4X-products. One nice thing is that Xamarin seems to support 100% all available APIs and features of Android/iOS and is updated and available more or less the very same day the APIs are released. I don't know about third-party libs though. B4A has many wrappers available.

But at the end I think the target is different. B4X caters for users who are familiar and want to program in a VBBasic language and is very easy to use. If Xamarin (and Mono) got VB.net support, then Xamarin could become serious opponent to the B4X-family.

Finally but not least, the B4X-products have in my opinion unparalleled support which is not to underestimate...
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
The programming language is only one small difference. B4X is a RAD (rapid application development) tool and Xamarin is not.
Xamain.iOS and Xamarin.Android are more or less direct port of the native API. This means that they are completely different from each other, and are not simpler than using Java or Swift / Objective C.
Xamarin.Forms is cross platform but is limited and has many stability / performance issues.
 

jamesnz

Active Member
Licensed User
Longtime User
I initially started programming apps with a tool called appinventor, simple, fast but limited in terms of speed and configurability. From there I spent a year tinkering with B4A and then I spent 18 months on Xamarin.

There are some fundamental reasons why I'm back to B4A.

1/ I'm an individual developer who tinkers with ideas, I dont have 30 devs working for me.
In my mind simplicity isn't just nice , it's an absolute requirement. I want a reasonable level of customisation but I don't want to spend a day coding a user interface and paying mega dollars for libraries that lack support and are prone to breaking during the next update. I'm not a brilliant programmer, I just have ideas and I want tools that help them come to fruition.

2/With xamarin you have to choose very early on whether to build your app under xamarin forms or build for Xamarin.IOs or Xamarin.Android. Essentially with Xamarin.Forms you end up coding your user interface once in XAML, but this coding isn't very intuitive. You can't import android xml layout files like you can in B4A. It never looks quite the same on apple vs android and frankly it takes about 10x longer to make a simple interface than it does with b4x.You very quickly you realise the limitations of the UI and inevitably end up going back (which is timely) to coding 2 solutions . You can share quite a bit of code but you still need to know the intricacies of each platform and you end up with a generic app that is heavy(size), slow to initialise and very slow to debug.
OR
The other way is to use Xamarin for IOS and Xamarin for Android to essentially build 2 apps, this means you have to code 2 designer layouts in their native layout languages, you have to know all the tricks of both IOS and Android and whilst you can share some code modules it's never very pretty.

3/Xamarin might be free but most of the good libraries are not.
Libraries are often hundreds of dollars and work on one, sometimes 2 , rarely 3 platforms. The support ( considering you paid for libraries) is often lacking. the comments sections on the libraries are often filled with horror stories. Even common free libraries like google play services/maps/admob etc are prone to breakage for many months before a fix is issued.
It doesn't stop at libraries either. Their Cloud testing is expensive starting at $1000/year. Xamarin University is $80/month.

4/Xamarin android apps are large, hello world is 12mb. A simple app with a database and maps can weigh in at 60 megs. You can go to some work to reduce this by linking and removing assemblies that aren't in use, but it's still going to take time.

5/Xamarin and the Visual Studio IDE doesn't really allow real time code changes, B4x lets you CTRL-S and most of the time a restart isn't required, meanwhile Xamarin devs are waiting minutes to reinstall apps after fixing just 1 line of code. That really starts to add up !

6/ Support. considering the numbers of people using Xamarin and the associated cost the support is poor. There are hundreds of unanswered questions on the forums. There have been several instances (especially in 2015) of poorly tested updates causing major breakages to libraries, IDE's and updates.

So If I was building an app that was going to be updated every few days, that required automated testing processes across 2 or more platforms and I had a team of 30 programmers and predominantly was porting existing business logic from .Net, then sure, I'd use Xamarin. As a platform it has some cool features that are useful in the situations I've described but it has a steep learning curve, little support , is expensive and slow and in terms of converting ideas into apps you'll have a lot more hair on your head with B4x.
 
Top