Xamarin now free in Visual Studio, and Xamarin SDK being open-sourced
arstechnica.com
arstechnica.com
I've been working professionally with Xamarin for the past month, honestly I'm shocked how half-baked Xamarin Studio is, both in terms of stability and features. (Since we develop for iOS, we use Macs and VS is not an option).
Of course now that Microsoft has stepped in all the way, things may turn around, but my feeling is that the best window of opportunity for JetBrains would be to provide compelling Xamarin tooling on non-Windows platforms. That's the weak spot of their mammoth competitor as far as C# goes
https://forums.xamarin.com/discussion/62250/vote-for-project...
https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FRIDER-...
We don't do it that frequently, maybe two to four times a year. And, when we do, you can be the problem was well researched and we simply ran into a wall. Between the time it takes for them to get back to you and some of the answers that come back, well, it's less than ideal. This is harsh, but sometimes I think "you might as well have asked me to re-install Windows to fix the problem".
What ends-up happening is that we will generally google the heck out of the problem, post it on SO and experiment and sometimes figure it out. In other cases you just give up and live with the issues.
On the developer side MS has far better support and the community of developers using their tools is much larger, which means you have a higher probability of finding one or more answers to your problem.
Still. Love JetBrains tools. I just wish they'd take support seriously.
Here's the instructions btw. https://developer.xamarin.com/guides/ios/getting_started/ins...
VS + MacVM = how iOS dev should be ;)
The VM? A coworker had no problems installing OS X in VMWare for his pet project, less than a day.
Visual Studio? This is Microsoft that we're talking about. I haven't done this or seen anyone do it, but I've read articles and it seems as though it has the usual straightforward qualities.
The three major factors I would rank the IDEA over VS.
1. Extensibility, its more likely to support X language
2. Crossplatform, it actually runs on my platform
3. Its UI doesn't change drastically every few years. This is such an underrated thing IMO. Neither VS or IDEA are pretty IDEs, they both are actually butt ugly. They don't need to be. But VS goes thru so many visual changes and reorganizations, its the same reason why I don't use Office. I'm not sure many ppl view this as a bad thing however. I often find MS fans loving to brag about how "modern" their software always looks, even if it still looks just as shitty as the old one lol.
They have apparently built a lot of the "big" VS in C#, and they have apparently architected VS Code with a C# runtime on top of Electron to make it easier to port big pieces of VS into VS Code.
Today they announced a preview of their upcoming C/C++ extension (https://blogs.msdn.microsoft.com/vcblog/2016/03/31/cc-extens...) and they say their Python tools for VS are coming to VS Code this year.
And VS Code "runs on my platform(s)".
The more developers they convert to VS Code, which is a lot deeper than just an editor for C# and Typescript, the more influence they will have on development patterns on all platforms. This seems like a bigger push than just "make Windows the best platform for developing for all platforms". They're attempting to get devs who continue working on Mac and Linux to switch to their dev tools.
In addition, you can see a reference counter above your classes that offer a quick jump to where your class is being referenced from. It is majorly helpful.
The down side is when Visual Studio breaks. Sometimes, it caches files, causing strange functionality. There is this thing called MsBuild that can break your package management. It defaults to an auto-merge, which is the worst possible thing to do to your team mates.
I don't find VS ugly at all, but I guess beauty is in the eye of the beholder.
(How much would i pay for a carefully maintained subscription of Office 97? Well, not that much, but that is more than i paid for office software since)
The ribbon makes it seem easy to surface features that would otherwise be hidden deep in menus and sub menus.
Of course, UI design is difficult just as doing any work for consumption by others is difficult especially when there is no complete spec. I am not a UI designer but even I can make a UI that I will think is good enough. However, making a UI for others is tough.
Maybe it is just my luck but project managers or owners have always been hesitant to support UI changes. Maybe I've just been lucky to have good managers but I can't recall a single time I've had to make a UI change that wasn't driven by what I thought was a valid business need.
Also maybe why I'm not employed now :P
I remember that C# version had totally different project settings window as if created by someone else than the rest of VS. But I haven't used it for some time so maybe it is already fixed.
I can remember several instances where developers were nicely screwed by policy and strategy changes, products languages and tools got canceled.
I find that the best strategy for someone that doesn't want to depend on Microsoft's moods is to not use their tools, or at least stick to the ones that have a long history and won't be messed up by strategy changes - that doesn't include C# or .NET
You're welcome to other reasons to avoid C# and .NET, but worrying about their longevity doesn't look like a rational reason.
C# and .NET will endure in one form or another, but all these transformations waste developers' time and make their skills obsolete. No thanks, I'd rather learn something and use it more than a couple of years without having it change under me for no good reason.
My point was that it doesn't matter if c# or .net continue to exist or not, all it matters for me is whether one can count on one's skills being still valuable. My Visual C++, WinAPI (bit WinRT is replacing it) skills are still fine, my C# & .net framework that I learned back in 2006 are nearly useless, because a lot of stuff changed.
Why do companies expect developers to always gobble up whatever they throw over the wall and say "thank you sir, may I have more sir?", as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?
More importantly, why do devs like investing in such ephemeral knowledge?
> "as if it's our duty to relearn how to do X for the Nth time, this time with bells and whistles?"
There are a few areas of computing that are fairly stable, if stability of knowledge is your priority, you should seek one of those out.
But in many other areas of computing, our discipline is young and rapidly evolving. Some of that evolution is being driven by a corporate need to sell the next version. But plenty is driven by the rapid evolution in languages and paradigms. And why is that? Because we all know that programming can still be (much) easier, more reliable, more predictable, cheaper, and more fun. This is why many devs, myself included, like investing in "ephemeral" knowledge.
Honestly, I understand that the decay of hard-earned skills is distressing for many people. Not all fields have this characteristic. But in our field, it just comes with the territory.
I don't mind at all when a language is evolving, that's indeed to be expected and manageable, because one can leverage existing knowledge and augment it. But a lot of change is either driven by corporate interests as you mentioned or by fashion and is disruptive, as in replace X with Y. And it's not clear how Y is more robust or faster, usually it's a mixed bag of pluses and minuses.
And Windows Forms still works on the new platforms ( except mobile), so it's not like it broke functionality.
VB 6 Applications still work and that IS a long time ago...
https://channel9.msdn.com/coding4fun/blog/Visual-Studio-2013...
Q: Who can use Visual Studio Community? A: Here’s how individual developers can use Visual Studio Community:
Any individual developer can use Visual Studio Community to create their own free or paid apps.
Here’s how Visual Studio Community can be used in organizations:
An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.
For all other usage scenarios: In non-enterprise organizations, up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with >250 PCs or > $1MM in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above.
The value of a developer's machine is pretty much a rounding error to Microsoft. The value of a developer's output (production and DR instances of server products/Azure services) is immense to Microsoft.
They already have the desktop market and it is pennies compared to the income they make from enterprise clients.
I bet if anyone showed up with a huge bag of cash, they would sell.
Btw. even Office uses non-native UI controls since the very beginning of Office programs around 1990. You can see this if you open Word 6 in Win95 (or later), the controls and even child-window theme looks like Win3.1. Office 97 had a very visible non-standard window theme with the application title in italic font (no other Win95 app looks like that). The menu bar of Office 1997 and later looks non-standard as well. Office 2007 and later draw a custom drawn ribbon area over the Win32 menu. With COM you can integrate a Word/Excel/etc document area in your sample Win32 application and you can watch how the traditional nativ menu bar is overdrawn by a ribbon area if you click inside the document area.
(What is it with MS changing the UI with every OS/Office release? Worse than even OS X, and barely better than the plethora of Linux look-and-feels. And yes, I did object to flat tool bar buttons back in the day, too.)
I was really hoping I would be able to develop on Linux. Visual Studio is nice (my favorite IDE actually), but I'm willing to put up with lesser IDEs if it means I don't have to use Windows.
Check out the recent news - Microsoft is making Windows a lot more attractive to developers even those with Linux background.
I spent the last ~12 months doing C++ with Clang on Linux and porting that to windows was a lot less painful than I though it would be, even Visual C++ required maybe a day of work to get working - the biggest issue being Nuget and their Angle Packages are only available for sandboxed Windows apps - it took two hours to configure projects and fix stuff that made VC++ choke. This was a template using C++14 project btw. so I'm impressed.
And they now support using Clang as a front-end to VS code generator backend - no MinGW or Cygwin. Sadly the compiler crashed when I tried that and I still haven't gotten around to sending them the bug with repro - need to try with Update 2 first.
And on top of all this they just announced they will implement linux kernel interfaces in windows and add support for running ELF binaries - and they will port apt-get with cannonical - basically you can get Ubuntu packages to run natively on windows kernel - without recompiling or nothing.
Huge props to Microsoft !
I am impressed by what Microsoft is doing, and I'm willing to use Azure and other MS tech at some point, but only if I can get away with not having to deal with Windows for anything but a small build slave server for Windows Phone and Windows builds, just like I currently do with a Mac Mini.
Actually that's exactly what it does. What were your pain points?
(Besides "it's proprietary").
On top of that I will add "It's propietary". Because it is. It's a security risk, it means I have to buy it and I have to manage every license I buy. No need for the Stallman pasta here to express clear reasons why it is unacceptable for me and many others.
Other reasons:
- Bloated by default. Comes with many things I do not need, and some I outright despise.
- Resource hungry. It's gotten much, much better with the last few versions, but I can take my Linux set-up to a lowly Chromebook, a discardable netbook or a cheap SoC like the RPi and barely notice a difference for most of what I do. I cannot do that with Windows.
- Not POSIX. I could switch to OS X or BSD tomorrow and barely notice the difference for most of my computing. Not on Windows.
- Carries a particular culture of everything having to be done on the GUI. And what a bad GUI it is.
- Security wise it's terrible, you can't simply brush off the threat of malware as I do on Linux.
- No first class package management. The App Store is a joke.
- It is a completely different system from what I run or would run on my servers anyway.
I could go on but I think it's enough to justify why Windows is not a good option for me (me, as in, me, not someone who's really happy now with Windows).
IMHO every GUI (Win, Mac, Gnome, KDE etc.) is bad compared to any decent CLI, if you are trying to complete non-trivial tasks. The real problem is, on Windows you don't have a simple way to switch from doing things in the GUI to doing them on command line. You can, but it's sort of second-class citizen.
> you can't simply brush off the threat of malware as I do on Linux
Uhm, as a former Linux-only user (for about 2 years, circa 2011-2012) I would advise you not to brush it off completely.
I would be curious to know what % of security flaws are discovered because exploited vs as a result of a code review.
I use OS X mostly because of the UNIX underpinnings. I could not care less for Linux of the desktop, despite having used it since 1997 (and having a history with UNIX going back to Sun OS and HP-UX).
If Windows gets good enough with its basic unix userland support, and has a decent shell, I'll be very tempted to try it.
After all, any actual deployment etc, I do on Linux servers and VMs (vagrant etc) -- no reason to pollute one's base desktop system with development libs and setups.
Go with Linux if you want to build on something that is not built on sand, greed and damned lies.
I haven't actually dug in to see where all the memory is going precisely, but my email/web workflow (Firefox+Thunderbird) has been the same for about ten years now, so it's interesting that it continues to bump up against memory limits no matter how much memory I have. But, Windows on the same system has similar memory issues when working on the same tasks; so it is not immune, but I don't think it is notably worse than Linux.
swapoff -a -v
echo 3 > /proc/sys/vm/drop_caches
I recommend `htop` to check out your memory usage after that.You can also tweak the vm.swapiness variable to change Linux's behavior there. I personally just turn swap off on all my systems as soon as I set them up.
(If you're looking at Microsoft's Task Manager, make sure you're seeing the amount of memory in "available", that's what counts. "Free" is kind of a useless measure in Vista+.)
Architecturally, it's quite worse than just putting lipstick on a pig - they're bolting a racehorse on top of their pig.
If you look at things just right and ignore the pig, you can pretend you're galloping around on an able horse. but, inevitably, both you and the horse will have to deal with the fact that there's a pig bolted to the undercarriage.
Linux doesn't need to be put inside another OS to be any more relevant or useful.
I think, if it could talk, Linux would tell Windows: "Sit down - I got this."
Instructions are included in the MonoDevelop repository, and they could not be simpler:
https://www.packtpub.com/packt/offers/free-learning
Or you could take it directly from here if you are one of my HN friends, this is a temporary link http://victorantos.com/IOS_DEVELOPMENT_WITH_XAMARIN_COOKBOOK...
We have some more details on our blog: https://blog.xamarin.com/xamarin-for-all/
- Having an open source alternative like this will be a blow to Phonegap's/Apache Cordova's use for new apps.
- The change in Mono's licensing means Unity may finally upgrade to a newer version of Mono.
- Let's not forget Microsoft now owns RoboVM. I wonder what this event implies for it.
The edge that cordova/phonegap/ionic will retain is the HTML and CSS part. As well as, at least for a little while, a more robust plugin ecosystem. Though that second one will change VERY rapidly.
The other developers on my team are very much frontend & CSS types.
I would be too much of a bottleneck if I were the only developer able to write the code for the app.
If xamarin were free when I started, I may have given it more time in evaluation, but at the end of the day, I think that the choice would have remained ionic.
Even react-native isn't ready yet if you're a windows based shop. But maybe that's come along in the last couple months too.
Don't forget, Facebook's annual developer conference F8 is coming up next (April 12th 2016). They will surely have some new announcements in a few weeks.
Getting native performance would be a big differentiator. Hopefully, Ionic/Angular 2.0 will go a long way to improving performance.
For as far as I trace the code, the only part I can't really optimize is the db open commands
For the most part it's pretty slick, but I can still feel it. It could be faster.
That was never an issue other than Unity's unwillingness to pay to the company that helped them gain market share.
Before Unity added PC support and Mono into their engine they were yet another company trying to sell a game's engine.
Taking into account developer salaries, how much money have they already invested into IL2CPP vs paying for new licenses?
Unity was going to go C++ back in the day when Flash/Non-AOT code was being blocked in iOS 3.3.1. [1] I actually wish pure C++ was an option for Unity. Being C++ at build allows Unity to control it's destiny a little more and I am sure the 3.3.1 thing with Apple influenced that.
[1] http://blogs.unity3d.com/2010/07/02/unity-and-ios-4-0-update...
HTML+CSS means we don't have to retrain our web developers but can still produce work for our clients that meets their needs.
Personally, I'd like to go more native and xamarin could enable that, but in consideration for the team holistically, HTML&CSS&js was the way to go.
Really? Do you think Zuckerberg is now shaking in his boots thinking Facebook will have to pull out of React Native?
> - Let's not forget Microsoft now owns RoboVM. I wonder what this event implies for it.
Thank you for noting this. It is potentially interesting to Clojurians since Clojure targets the JVM (would be cool if Clojure could be used for cross platform native app development with RoboVM, as an alternative to a convoluted mess of trying to use ClojureScript with React Native).
It's likely that Unity hasn't done any of these things because they need support. This might help, but I'd be unsurprised if the Unity situation stayed the same as it has been for the last few years.
edit: Thank you for all your answers!
Business-wise: The answer is Azure. While Microsoft wants you to run Windows, they care even more that you're running in their cloud.
The lock in here is a very hard to resist value proposition. I started using Azure because they gave hundreds of dollars a month for free (for I think 3 years). I then started to use their services because it's just simpler. Core made that decision even easier for me. I originally started using Core because my thinking was "if i'm on linux, I can always move to AWS, linux is pretty competitive everywhere", then I needed a solution that had a market place offer (which is not free) or an azure service offer (which is free). I decided to choose the azure solution, but I designed my software with an interface so in theory i could replace the implementation if I ever needed to move to AWS. However, i'm now starting to realize that while I've always tried to choose solutions so I can easily move, it's becoming increasingly more difficult. In 3 years I may have the capability to move, but i'm now becoming aware that it might not be practical to move. They got me.
This is truly an amazing feat. Imagine the cultural headwinds these guys were up against. They also won over the Microsoft Board of Directors to eject Steve Ballmer (finally). Hats off to Scott, Scott, Damien et al for staying the course and pulling off a coup.
For the front end, this probably won't have much effect. Developers go where the users are and there's very little excitement around Windows applications (win32 or universal). If keeping developers happy was all that important, then Linux would be the dominant desktop OS.
> Microsoft has lost in server space against Linux. Developers developing any server software switch to either Linux or OSX. They want to prevent this switch.
1) Use developer tools as onramps to Azure. Same reason Amazon made Lumberyard free. Yes, developers can opt for other clouds, but the effort required to do so will often seem more costly than it's worth.
2) Specifically for Xamarin, if you've already built your iOS and Android app in .NET, in Visual Studio, and there's little more than a recompile between you and a Windows Mobile version, why not do that too?
In a similar vein, Satya Nadella's new "vision" expressed in yesterday's keynote, aka the future of chat bots with their AI / personal agents (channeling some of the original General Magic vision of 25 years ago), strikes me as more attainable for "developers developers developers" v.s. the marketing messages / PR spin coming from IBM on the Watson AI.
> I'm learning React Native, MS is giving me pause to look at Xamarin.
Likewise. Let's see what Facebook has to say at F8 starting April 12th. The competition is great. We are in a much better place today v.s. 20 years ago when Microsoft was a monopoly and expending time and money trying to kill Netscape and battle Sun's lawyers over Java.
worked in the past, they hope it will work now.
The fact that ubuntu laid in bed with them is extremely scary.
You can develop Linux or Mac but you're not going to get the same quality tooling (hello Universal Windows App Model).
They're effectively following a freemium model, get as many developers onto the MS platform then direct them to Azure.
In my opinion the stategy is not to swallow Linux but rather to push .NET. On premise Servers are becoming less relevant Linux or Windows won't make much difference in the future. What will make a difference is what the cloud will support and provide.
Adapting to the market flow to stay relevant, that's all.
I always wonder about how companies with such resources manage to make so little use of the advantages they develop. For instance: why wasn't Watson running every callcenter on the planet 5 years ago ?
Right now there is little in Watson's tech that can't be duplicated by 10 other firms and give it another year or 5 and every startup can do it. It's too late. How can management of such behemoths as IBM let those things happen.
Not that Microsoft did better with Windows Speech Server, and Google and Facebook, well they're not even trying.
The new gen devs simply refused to buy into their old school closed shop practices.
evolve or die.
Seriously, do people even think before posting EEE on every Microsoft open source release? How exactly does that work?
If anyone from MS is listening:
All you need to do to potentially convert me from a Mac user is to address some of the privacy/security and "user exploitation" concerns around Windows 10.
When I heard that Windows 10 would serve ads to users, just hearing that blacklisted it for me. Anything that serves ads is a low-end bargain-basement crap product, period. You are pegging your entire ecosystem as discount bin trash with those moves. I don't mind paying for good stuff, but I won't even use that kind of crap for free. Apple would never serve me ads on my login screen.
I'm also very concerned about the total lack of user control over telemetry and phone-home features in Windows. Mac also has this problem, but less. You could leapfrog Mac by making this stuff visible and configurable to the user in an easy way via some kind of control panel. There is an opportunity to do better than Apple here.
It's not that I would turn it all off. I'm not a total paranoid in that respect. But I want to see what it is, what it is doing, and have the ability to control my privacy/security "envelope." Obviously if I am doing anything security critical like... oh... I dunno... developing software to be distributed to millions of endpoint devices... then I care a lot about security. Security is not just for huge "enterprise" customers.
(Privacy equals security equals privacy, since privacy invasion exposes information that can be used to violate security.)
Honestly, the fact of the matter is that Microsoft has a significantly weaker reputation for security and privacy than Apple. That makes me more concerned about MS software phoning home than Apple software. This is a major problem and you have to do something about it, and in the 21st century that means actually fixing the problem rather than relying on PR to con people into thinking you've fixed the problem.
The sorts of power users you are trying to convert with all this dev outreach stuff are not morons and they will see through any shallow commitment to security or privacy instantly. Pure PR plays in these areas will make you look worse, not better.
That is all.
Why? Some suspect a government push behind the scenes, but personally I think the answer is simpler and more economic: that data is extremely valuable to advertisers and advertisers are willing to pay a lot for ultra-fine-grained targeting services. Sure governments can piggy-back on all this to implement panopticon type surveillance, but the primary driver is demand for user data in the private sector.
The new business model of the tech industry is: give away free stuff and use it to productize the user. Maybe MS is extending this model to developers. (Facebook too with things like wit.ai.)
OSS can't compete. The problem with the OSS ecosystem is this: a product that works is only 10% done. The other 90% is making it work well and making it easy to use. It's not done until I can use it in minutes, not hours or days, and that takes a lot of painful work.
An example hit home for me today:
Today I was evaluating Microsoft LUIS and wit.ai and I realized that for simpler use cases a lot of what they do could be done with OSS like the Stanford Parser. The problem is that to make those work I'd spend at least a few days just getting that ball of twine up and running, let alone figuring out how to represent my app's intents and entities and such and actually get to something useful. But with LUIS or wit.ai I can do it in minutes to hours and have a ready to go app.
It's incredible. I can get natural language command and control in minutes!. The catch? Facebook or Microsoft get to mine every single bit of data I send and get a strong degree of lock-in.
There are OSS alternatives but they'd take days, weeks, or months to integrate... therefore they do not exist.
I would reconsider Xamarin if the docs improved greatly. Maybe with MS involvement this will finally happen?
MS at this point would be better served by integrating React and React-Native in Visual Studio 2015 and Community. I know they recently came out with support for VS Code, but that's a different beast if you are a traditional C#/.Net/VS guy. From my experience with both, React is a pleasure to use, while Xamarin often had me cursing my decision to use the platform.
Overall, I've really enjoyed Xamarin. Development is quick and easy, you can use a lot of NuGet packages, and if you think C# first, platform specific second, it's easy to port code between platforms.
My guess it's just that things are moving so damn fast in that space that it's impossible to keep up with the churn.
Sorry I just don't see it like that.
It annoys me to no end that I have to log in to Visual Studio as well (even Community) for it to even open a project, and I wish both Microsoft and Xamarin were more respectful of our privacy.
And that software is not really free, it comes with a nice lock-in in the form of .NET and C#, two technologies under Microsoft's control. After MS has a track record of at least ten years of doing this open source stuff they will get a break.
This thread is proof that for many getting stuff for free is enough to forget a long corporate history and throw their caution to the wind.
Also give the developer an option to make the source code publicly available. How great would that be!
Having said that, if you really feel that Visual Studio is disrespectful of your privacy, you shouldn't be compromising on that and simply not use the application. I don't understand people who whine about services while they are enjoying them for free.
It's always the same people you never hear complaining about having to create an Apple account to use their developer tools.
Because once there was a destinction between their program and my data.
It's not hard to understand. Just because you call something a service doesn't make it valuable to your customers. In fact, it could very easily be a burden on them.
Why would I still need an OS X machine for iOS development though? If MS could eliminate whatever that last link in the chain is, I'd have to give going into mobile development some serious reconsideration.
Announced today however, is the ability to remote the simulator to a Windows machine. That probably means you can just buy a mac mini and stick it in a closet, potentially sharing it between multiple devs.
They are THE WORST. Why do people support Apple?
Remember when they said everything had to be written in Objective-C?
Gah.
Words cannot express how big this is for the .NET community.
edit: typo
You can buy both it and Enterprise online. Not sure why Xamarin says to contact them for a quote, except that Xamarin's sales people really like to talk to people.
React Native has a different philosophy -- it intentionally abstracts away the platform APIs entirely, and unless you're writing a native plugin you're only able to access a React-centric API. This is a lot more ambitious and leads to a great developer experience when it works. Some people however feel that it's a misguided effort and that you can't expect to write fluid mobile applications without interacting with the platform primitives directly. The jury is still out on how well it will scale and there definitely still are pain points with both the developer experience and app performance, but many people including myself have written production apps in it and in my opinion it largely delivers on its promise.
It was actually very common that if I didn't know how to do something I'd look it up for iOS on Stack Overflow, because it was almost certainly answered there, then look up the corresponding Xamarin object/function names.
Xamarin Forms however is a framework that performs abstraction, in a similar vein as React Native. Xamarin Forms is built upon the Xamarin API.
I would not mind switching the Android Java side -- to Xamarin, but will I still be able to have a portion of my app in React Native? Are there any open source examples that use Xamarin and React-native?
http://blog.metaobject.com/2015/04/reactnative-isn.html
Xamarin is much closer to native. In particular, unless you choose to use Xamarin Forms, you'll be using each platform's native UI APIs, so your UI will be indistinguishable from an app written in the platform's native language. Also, whereas React Native for iOS is restricted to using the JavaScriptCore interpreter (not even the JIT compiler), the Xamarin toolchain AOT-compiles .NET IL to native code.
This is great news! For those that aren't familiar...
(edit: previous comment mentioned AOT, actually mkbundle doesn't support this in a single step, you still need to manually AOT the assemblies inside your executable and ship them side-by-side)
Visual Studio is slow and doesn't work near as well as Xamarin Studio for many core development tasks. Not to mention, it's completely hamstrung by its dependency on a Mac build host. VS integration needs to step up, dramatically.
Perhaps I missed something that could increase my productivity... Would you care to tell what features make VS so powerful for you?
Visual Studio Code is a very lightweight semi-open source IDE for writing code, and not much else.
Looking at http://www.monodevelop.com/download/ though, does that mean that you can't write android/ios apps while on linux? What's the reasoning behind that?
Edit: Never mind; tvOS support has been in preview since October. I wonder why it isn't in the stable release yet, but I guess it's just a low priority.
i was kinda always turned off, that xamarin treated linux as a second class citizen
Like, shitting-their-pants worried.
The work has been started - it's just a matter of time.
It seems to be the way they are going. Then every MS product will become a Universal App and Microsoft can deliver their software anywhere the UWP/UAP is available.
Now if MS could do the same thing they did with Ubuntu and add native support for OSX, I'd be in heaven.
how much 'write-once-run-everywhere' is available in xamarin vs react-native?
I've long avoided .net and c# but now I'm getting interested because these things are becoming open source.
I've made stuff in Xamarin before, and it was a pretty smooth experience, except for needing to have separate UI code for each platform. The language and syntax never got in the way, it was more just having to look up the corresponding UI elements (especially Android, where I have less experience) and get those working from time to time. As such, I could generally code like a fiend and get tons accomplished in a short period of time.
That being said, I really, really like how most of the React Native code is the same, and it's quite possible I'll get to that point with React Native also.
Have you tried using Realm for the local storage?
https://realm.io/docs/react-native/latest/
It worked really well for us and removed the need for Redux.
That's what you SHOULD be doing. Trying to force the same UI on platforms with different paradigms and look and feel is a recipe for a shitty, shitty app.
This would explain the message I got on my Macbook the other day.
Sadly Xamarin isn't supported for F#, so it's still basically useless to me.
Xamarin the framework and the editor are not the same thing.
And I find it ironic that official support for the framework is limited to C# only just as Windows Phone was.
Apparently no one wants first class mobile support to exist for any .Net languages other than C#.