Sounds like native is the way to go. Thanks for the time you've put into this email Greg
On Monday, 7 September 2015, Greg Keogh <[email protected]> wrote: > Folks, it's not Friday, so hang on to your hats and fascinators... > > I hope you'll agree that what the Xamarin Platform product attempts to > achieve is very ambitious and technically amazing. For 6 full working days > I have been learning and using Xamarin in anger to prove its primary claim > of writing, emulating and deploying an app on three platforms from a common > C# code base. This is part of an investigation into how to replace a > Silverlight 5 app. > > I'm going to summarise my experience in the hope it will help guide others > or possibly produce helpful advice. This post is not for young children or > people with heart conditions. > > If you have a $2500 iMac, Windows 8 or higher, $130 Parallels, a $125 > Apple developer account, a $1750 Xamarin licence for both platforms (look > for a small business discount) and the required mobile hardware > ($thousands), then you can start installing the several gigabytes of > dependent software on Mac and Windows. It took me about 12 hours to install > and configure all components to the point where I thought I could start > coding. I had initial terrible trouble activating all the licences on the > machines and software, and it was unclear which software or SDK components > needed to be installed where. > > There are many, many links in the chain of Xamarin development for > targeting 3 platforms: Windows, OS X, WinPhone 8 components, Android SDK, > Android Player, iOS Build Host, Parallels, VirtualBox, Xcode, Visual > Studio, and much more. As you start to develop you will find that every > single one of these links in the long chain will fuck up, all the fucking > time with incomprehensible errors that will utterly confound you. After > learning most of the quirks, timing, commands and options in failed build > attempts over 12 hours I managed to get the word "Hello" to display on the > Windows Phone emulator. Several later I stumbled upon the Android Player > and managed to see "Hello" in an emulator on OS X. The same iOS app was > unresponsive and after being stopped dead for almost 2 days, Xamarin > support found that the "busy indicator" control was transparently covering > the iPhone window, so a workaround finally got all 3 sanity test apps > running in three emulators after about three 14 hour working days. Xamarin > helped me with good online documentation and samples. > > I am now slowly developing a small realistic app with a login screen, 2 > pick list screens and a detail screen. I have it running on three emulators > and my real Nexus 5 phone, mostly. But here's the sobering news: I quite > seriously estimate that at least 60% of all time coding in Xamarin is spent > trying to get all the links in the chain to work, or searching the web for > answers to mind-boggling errors. I have read reports from other developers > with a similar experience, and possibly worst figures. While developing, > absolutely everything will blow up at any time: communication errors, > stalls, build errors, conflicts, lock-ups and incredible error messages. > > Here's an example: On Friday night I stopped coding while everything was > working acceptably well and I was testing on the Android Player. At 9am > this Monday morning I very carefully start it all up again and return to > where I think I was, but first I get weird compile errors, then it won't > deploy and all I see is a blinking cursor in VS2015. After several > desperate reboots, commands, reconnects and more useless web searching, > something came good (I have no damn idea what) and it started working at > around 10:15am. A little later the iOS simulator is miraculously working > OK. Then the Windows Phone test dies with "metadata file is invalid" in the > 2nd service call, which has never happened before and there are no clues > anywhere about what to do. This is all typical, it's SNAFU at almost all > times and quite often FUBAR. > > Writing Xamarin Forms in VS2015 is a poor experience compared to writing > WPF and Silverlight, as there is no intellisense in the XAML subset, which > is crippling on productivity. In fact the intellisense fights you and > continuous Ctrl+z is needed to keep backing out the crazy auto-completion. > Also, many familiar shortcut keys in VS2015 (Ctrl+Shift+Arrow for example) > are absorbed by OS X and you will find yourself flipping into weird Mac > modes. I'm sure there are ways around this, but I'm spreading myself really > thin to do more research. > So in summary, developing in the environment I have described is like > flying on an airline with a fleet of gigantic expensive all-purpose planes > that have pieces constantly falling off them in the air and everyone on > board is patching them up on-the-fly and improvising to keep them flying. > You may have unexpected stopovers for days while some incredible technical > glitch is fixed. You'll probably finish your journey eventually, but it's > an endurance test of funds, sanity and skill. I am actually wondering if it > would be quicker to learn to write iOS, Android and Windows mobile apps in > their native languages and kits instead of using Xamarin ... and it's > frightening that I would even consider such an alternative. Perhaps Xamarin > productivity will rise as I get used to the pain and quirks. And, I have > not even mentioned the learning curve or the struggle to get unified > behaviour. > > *Greg K* >
