TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Some thoughts after (almost) a year of real Xamarin use

191 点作者 xngzng大约 10 年前

17 条评论

ParanoidShroom大约 10 年前
I&#x27;ve been using Xamarin forms a lot now. They are miles from being as good as native development. Soooo many bugs in xamarin itself. When using Xamarin forms, you will not provide as good of product as you would native. There are also very little controls. Xaml works, but is really slow. And the layout is SOOO inefficient ! But the problem is even greater, you can&#x27;t merge Android and iOS layout passes. On one platform, measuring is really fast and the other really slow ... Xamarin forms can&#x27;t compensate and give native performance to this. They don&#x27;t even have listview recycling ... One developer even said &quot;RelativeLayout is probably best for you here and can do this&quot; to the question what the fastest layout is. For Android, this is the WORST layout possible.<p>Anyway, you will spend a LOT of time fixing Xamarin bugs and developer their controls.<p>However, I LOVED .net functions, especially LINQ !<p>Anyway, development was really slow and performance is no were near to native.<p>So if you want to deliver a simple app to a client and be cross platform, then sure. But don&#x27;t try to maintain that app, you will regret it.<p>I&#x27;m afraid the whole Xamarin thing won&#x27;t solve &quot;cross-platform&quot; which isn&#x27;t a real problem but sure. Its just another horse that Microsoft is betting on.<p>Oh and for the people that will have to do it anyway. Use Resharper ! Xaml IntelliSense !!! It will help you a lot.<p>I&#x27;m sorry I&#x27;m so negative, but it was genuinely the worst development I had.
评论 #9322702 未加载
评论 #9322059 未加载
评论 #9322375 未加载
评论 #9322153 未加载
Avalaxy大约 10 年前
My experience with Xamarin:<p>I&#x27;ve been working for half a year with Xamarin Forms. I Think using Xamarin is the way to go, there is no need to re-code something for 3 different platforms when you can just have a shared codebase. Tools like Cordova and Phonegap don&#x27;t work. They produce a very crappy experience that doesn&#x27;t use the native OS functions, doesn&#x27;t look and feel native, feels slow and has many bugs (for example they can&#x27;t use the hardware back button).<p>So Xamarin can create real native apps, which is a HUGE advantage over Cordova&#x2F;Phonegap&#x2F;others, but there are also serious downsides:<p>1) It&#x27;s BUGGY. Many components have bugs, and the code often behaves in very very weird ways (I had exceptions not being caught by catch blocks for example), many debugger functions don&#x27;t work properly with mono (like locals) and very, very often exceptions are thrown without ANY indication what caused them or where they occurred exactly.<p>2) You a limited in the features you can use because it&#x27;s a wrapper (as mentioned in OPs post).<p>3) Documentation sucks and is very limited. It&#x27;s getting better (mostly because of StackOverflow), but it&#x27;s still not sufficient.<p>4) It has XAML which is very nice combined with MVVM, but the XAML implementation sucks. It doesn&#x27;t have intellisense and it&#x27;s just generally very awkward.<p>I don&#x27;t think the &#x27;big cost&#x27; is a valid argument against Xamarin. If you can develop 1 app for $40k where you would normally have to develop 2 or 3 apps for $30k each, that&#x27;s a BIG win and Xamarin&#x27;s costs are negligible.
评论 #9322803 未加载
评论 #9322406 未加载
评论 #9321975 未加载
评论 #9321894 未加载
评论 #9322810 未加载
评论 #9322714 未加载
评论 #9322781 未加载
mark9white大约 10 年前
Having been building a decent size app (tens of thousands of lines) in Xamarin this really reflects our experience. One particular point is that the memory management is fairly complex under the covers with bridged objects and multiple memory management mechanisms working in parallel, this occasionally rears its head.<p>Another important point is they do provide a single automation test framework that targets both platforms.<p>If I was starting the app again I&#x27;d be very conflicted whether to use Xamarin vs native, though ReactNative looks very interesting too and doesn&#x27;t have the complexity of running the full .net stack.
评论 #9321393 未加载
forcer大约 10 年前
Great article, we have a similar story but only used Xamarin for 1 iOS app. If I had option to go back I would not chose Xa marin, we would have used native. Main reason being that we now need to add 3 SDKs to our app and none of them are supported in Xamarin, it seems it will be cheaper and more predictable to rewrite to native than implementing SDKs. Porting libraries to Xamarin is possible in theory but in practice major effort and hard to do without access to library code.
评论 #9321791 未加载
评论 #9321462 未加载
评论 #9321691 未加载
评论 #9321555 未加载
tluyben2大约 10 年前
We tried mostly anything (and not only tried; we used for production work because clients wanted us to) and, outside native, Xamarin really is the best thing we worked with so far. For it&#x27;s downsides, the upsides are too good to not take advantage off. Some cons I recognize but the case everyone keeps mentioning that you get into issue when you really want to do complex native platform stuff with animations etc I haven&#x27;t encountered. Nor is integrating SDK&#x27;s an issue. It&#x27;s just something you plan in your project; it&#x27;s a one-off. We integrated very large SDKs for hardware products and the hardware vendors, when something goes wrong, always blame the wrapper and it has 0 times been the wrapper; most of the times a bug or undocumented feature by the SDK creator. The wrapper is so thin and the mapping is so clear that it&#x27;s actually never an issue.
评论 #9321983 未加载
miguelrochefort大约 10 年前
Most people don&#x27;t realize how convenient it is to build and maintain your entire codebase (iOS, Android, Windows Phone, Windows 8, web client, web server) all in one place (Visual Studio), mostly using C# and Typescript. Just have a Windows VM on your Mac. It truly is the best of both worlds.
评论 #9321899 未加载
alimoeeny大约 10 年前
Now that we are at it, if you have experience &#x2F; recommendations on developing for multiple mobile platforms please share it here.<p>As far as I understand it, if you are big and have the resources, your best bet is still to develop separate native apps for each platform.<p>Right?
评论 #9321441 未加载
评论 #9321580 未加载
评论 #9322548 未加载
评论 #9321429 未加载
评论 #9322686 未加载
michah大约 10 年前
I have worked with various cross platform tools for a few years now and in the end all of them came to the same conclusion:<p>Its faster and easier to get a prototype or very simple (non-polished) app working that does not rely on specific api&#x27;s to the mobile too much. So basically you will manage to get 80% done more quickly with the cross platform tool.<p>However the last 20% are the very tricky part. There might be some strange bugs appearing from the cross platform tool that are hard to solve or just simply wanting to achieve a very polished app with smooth transition and the latest &#x27;native&#x27; UI components and UI paradigms (e.g. Android Lollipop).<p>I also had a few major bugs coming from the interface between the native SDK and the cross platform framework. One example was that suddenly the phone fonts for some Asian languages were not displayed anymore. These problems often happened when there were some SDK changes on Android or iOS and the cross platform framework had to catch up with these changes.<p>Compared to native developments its also way harder to find good libraries and solve bugs (e.g. via stack overflow) because there are just way less people developing with these cross platform tools.<p>Since last year I stopped all cross platform developments and are now developing for iOS and Android natively and I realised that I am actually developing IN SUM faster natively then before with the cross platform tools. Main reason for this is that I have a huge focus on polished and high performing UI&#x27;s and in the past I wasted a huge amount of hours just to fight the weaknesses of the cross platform tools.<p>So my recommendation for all who want to develop polished and professional iOS and Android Apps is now to go the native route from the beginning. Its better to try and save time by shifting some code to the server side (if you have a mobile app that extends a web app) and by developing a great abstract documentation&#x2F;specification that can then be quickly implemented in the respective native language.
lordnacho大约 10 年前
I built the same app using Android and iOS, but considered Xamarin at one point. I&#x27;m still considering it.<p>When I was deciding, I had a look at the Xamarin docs, and it seemed to reference the underlying native idioms quite often. I figured that I&#x27;d end up spending the same amount of time learning Xamarin as iOS, so what&#x27;s the point?<p>In the end, I found the backend logic was pretty easy to write in Android or iOS. They&#x27;re both OO languages, and once you&#x27;ve figured out the model it&#x27;s not going to be hard to port. After all the phones all have similar hardware, and there&#x27;s got to be some way to do the same thing.<p>The problem is the UI. I found it was a massive pain to learn two ways to lay out stuff. Android seems to encourage you to layout things in group containers (horizontal&#x2F;vertical) that have an internal logic of their own. iOS seems to have a thing for constraints. Neither is very obvious, and they are not that easy to port from one to the other. They also each have somewhat different aesthetics (this friggin changes every time there&#x27;s an update), which means you need slightly different designs (no hardware back button? no built in check box?). After grappling with this for ages, I ended up doing webviews with responsive pages. Makes the thing look like a web page, but a simple one that works like an app and can also be tested on a desktop browser.
评论 #9322760 未加载
declan大约 10 年前
Has anyone had the opportunity to compare Xamarin with Corona SDK?<p>Corona SDK is free and builds to Android&#x2F;Windows&#x2F;iOS with cross-platform wrappers available for what Corona has chosen to wrap, which can be different for each platform.<p>You don&#x27;t get access to native UI elements. Instead, Corona offers OpenGL-based replacements (which may or may not be sufficient). You can also pay for Corona Enterprise and write your own platform-specific wrappers around native objects.
评论 #9323692 未加载
themothaship大约 10 年前
<a href="http:&#x2F;&#x2F;forums.xamarin.com&#x2F;discussion&#x2F;comment&#x2F;30355" rel="nofollow">http:&#x2F;&#x2F;forums.xamarin.com&#x2F;discussion&#x2F;comment&#x2F;30355</a><p>This to me sums up my experience with Xamarin. It has A LOT of potential, and I did generally enjoy working with it. However, the amount of small issues I dealt with that were never solved (and still haven&#x27;t been solved 2 years later) are what drove me away. That and the cost...
insaneirish大约 10 年前
&gt; but 1000$ developer&#x2F;year is not exactly cheap.<p>That is incredibly cheap. It&#x27;s the sort of cheap that&#x27;s so cheap you wonder what the catch is.<p>Assuming a perfectly spherical developer, you&#x27;re at $100,000&#x2F;year. You&#x27;re using Xamarin because it makes that developer more efficient because (1) you&#x27;ve determined C# is an easier language to maintain and&#x2F;or (2) cross compatibility is worth something. If this developer is just 1% more efficient, you&#x27;ve paid for your Xamarin license. If he&#x27;s not 1% more efficient, why are you even using Xamarin in the first place?
评论 #9323138 未加载
BuckRogers大约 10 年前
I&#x27;ve been using Kivy. But decided if I did native, I&#x27;d only support iOS. Mostly because I don&#x27;t want to go down the rabbit hole of having to support some random Android device.<p>So I&#x27;m looking at learning more about Swift and that ecosystem someday. I don&#x27;t know C# but I certainly see Xamarin as an upgraded version of Kivy.. obviously going from a free platform to a paid one. It&#x27;s something I&#x27;ve keeping my eye on for quite some time.<p>If I ever find Kivy and the native iOS development combo to not meet my needs, Xamarin is the next stop for me.
评论 #9323283 未加载
DenisM大约 10 年前
Can anyone comment on Xamarin learning curve? If I have experience in both iOS and c#, how much time does it take to get up to speed with Xamarin?
评论 #9321833 未加载
评论 #9323548 未加载
评论 #9322384 未加载
aliakhtar大约 10 年前
If anyone here has tried out Titanium by Appcelerator, I&#x27;d very much like to know how your experience was. I&#x27;ve heard conflicting reports on how native it actually is. This article says it uses HTML5 &#x2F; web views, but I&#x27;ve heard that it uses native widgets, and is pretty close to native. Any ideas?<p>And, do most of the things listed here apply to it as well?
评论 #9333075 未加载
golergka大约 10 年前
Is it possible to do logic code in Xamarin and develop UI natively for each platform?
评论 #9322715 未加载
评论 #9322393 未加载
评论 #9322373 未加载
curiously大约 10 年前
can you develop iOS apps in a windows environment without any mac machine? is there a cloud build service for mac that you can integrate?
评论 #9322728 未加载
评论 #9322391 未加载