tastejs / PropertyCross

Helping developers select a framework for cross-platform mobile development.
propertycross.com
591 stars 215 forks source link

Add a implementation to make use of Xamarin.Forms #282

Open matthewdunsdon opened 10 years ago

matthewdunsdon commented 10 years ago

In the blog post Announcing Xamarin 3, it discusses Xamarin.Forms.

Xamarin.Forms is a new library that enables you to build native UIs for iOS, Android and Windows Phone from a single, shared C# codebase. It provides more than 40 cross-platform controls and layouts which are mapped to native controls at runtime, which means that your user interfaces are fully native. Delivered as a portable class library, Xamarin.Forms makes it easy to mix and match your shared UI code with the platform-specific user interface APIs Xamarin has always given you. Learn more about Xamarin.Forms.

This blog post mentions two code sharing methods which may be worth exploring:

Shared Projects

Shared Projects provide a simple, clean approach to code sharing for cross-platform application developers. Xamarin developers can now use Shared Projects to share code across iOS, Android, and Windows in either Xamarin Studio or Visual Studio.

Portable Class Libraries

Portable Class Libraries are libraries that are consumable across a diverse range of .NET platforms. Xamarin 3 can both produce and consume PCLs from both Xamarin Studio and Visual Studio.

All this being said, I wonder if we will get improved code sharing by using Xamarin.Forms.

matthewdunsdon commented 10 years ago

If we were to do this, then it could involve an update to the existing Xamarin implementation.

The alternative could be to introduce a separate Xamarin.Forms implementation, since there may be a significant amount of new code to be written.

Is there a preference for which approach should be taken?

ColinEberhardt commented 10 years ago

If Xamarin.Forms works for PropertyCross (and I'd be surprised if it didn't as it is a pretty simple app), I'd update the existing app to use this new framework.

Each PropertyCross implementation should show what we believe to be the most effective way of using each framework.

ChristopherM1 commented 9 years ago

As a professional developer new to mobile, I'm evaluating whether or not to choose Xamarin as my main development platform. With Xamarin v.2, the amount of cross-platform code in the PropertyCross app is just ~30%. For me, that would make Xamarin not worth considering. But with Xamarin.Forms in Xamarin v3, that number could go way up. Without a re-tooling of the PropertyCross app to leverage Xamarin.Forms, the new amount of shared code is impossible to determine here.

With Xamarin appearing to be the # 1 cross-platform platform on the market today, that would appear to seriously undermine PropertyCross' goal of making it easier to assess which cross-platform product to use. For me, this would thus seem to make this the # 1 enhancement to fix. Do you have bandwidth to update PropertyCross so it continues to benefit us fully in 2015? Perhaps evangelists or developers at Xamarin could be called in to help their own cause by updating the code? Could the PropertyCross administrators reach out to Xamarin (and other companies) to get that rolling? That could help to make this project semi self-maintaining.

rodrigoratan commented 8 years ago

Both Xamarin Classic (as in this implementation) and Xamarin Forms are good alternatives and should be treated as different implementations

Xamarin Forms aims to maximize app sharing code including the UI code, for Property Cross (simple UI) it's very suitable but for some more complex layouts should consider Xamarin Classic (separate iOS and Android plus Windows).

By the way, Along with iOS and Android, Xamarin Forms also includes support for Windows Phone 8, Windows 8.1 and UWP (Universal Windows Platform, from Windows 10 and beyond)

rodrigoratan commented 8 years ago

http://blog.galasoft.ch/posts/2014/10/my-xamarinevolve-talk-is-online-for-your-viewing-pleasure/ This talk shows how to add support to Xamarin Forms while also making individual iOS and Android classic Xamarin apps sharing the same viewmodels, models, dataservices, etc using MVVMLight