Forum Xamarin.Forms

Hello how is xamarin these days?

CptMcNuggetCptMcNugget PLMember ✭✭
edited September 2017 in Xamarin.Forms

I'm planning to start a new project. I have a design in photoshop and I need a good way to move this concept into a working prototype. I have a good C# and C++ background but also good HTML+CSS background(it's much easier to create good looking app with CSS). It seems like there are many weird workarounds to achieve a good looking interface: implement "custom renderers" whatever it is and it doesn't really appeal to me and I start to think that using something like React Native will allow me to achieve good looking UI without much hassle but I will have to deal with dependency and configution hell in JavaScript.

Do you have any experience in moving design from like Photoshop/Sketch to Xamarin.Forms? How does it look like? Is it complex thing to do? In WPF applications we have Blend and it significantly helps when you have a design and want to make the app from it :smile:

Also I'm a single developer so I need quick results. How does XAML styling compare to CSS-like styling in React Native? Are there many limitations?

React Native advantages:

  • CSS-like styling familiar for web developers (really easy to code designs)
  • Can be used in the Web as well (shared codebase or use something like ReactXP from Microsoft)
  • Kinda like Xamarin.Forms - single code - both platforms iOS/Android
  • Strong open-source community, many solutions for common problems like Status Bar transparency, video playing, vector icons, internationalization are already implemented by the community and it's free.

React Native disadvantages:

  • JavaScript development is a mess. Thousands of dependencies, using transcompilers like TypeScript, Babel. And intellisense still sucks if you count on that.
  • Reactive programming is weird (really...)
  • Many people use Redux and it's weird but there are other ways like ReSub from Microsoft or MobX for state management
  • JavaScript
  • JavaScript again (you have like 5-10 configuration files in your project directory - hello JavaScript tooling)

There are projects like Weex(Vue.js native from Alibaba) that look much simpler than React Native but still use JavaScript but are far far behind and I consider it limited.

Xamarin?

Well, help me here.

Xamarin is Microsoft, but explain to me why Skype which is also Microsoft uses ReactXP(React Native) and not Xamarin? microsoft.github.io/reactxp/blog/2017/04/27/building-skype-on-reactxp.html

Posts

  • MarkVincentMarkVincent PHMember ✭✭✭
    edited October 2017

    Hi, just to give you some information :)

    Based on this definition about ReactXP:

    "ReactXP is a new Library by Microsoft for building cross platform apps that run on iOS, Android, Windows, and the web. ... With React and React Native, your web app can share most its logic with your iOS and Android apps, but the view layer needs to be implemented separately for each platform."

    And here's Xamarin

    "Build & design a mobile app using Xamarin's cross-platform development software which simplifies mobile application creation."

    I haven't tried ReactXP yet but it seems like new library made by Microsoft while Xamarin is actual software development tool. We don't know yet but maybe there's a possibility in the future they would incorporate this 2. :)

    By the way, I would suggest, since you've wrote

    I have a good C# and C++ background but also good HTML+CSS background(it's much easier to create good looking app with CSS).

    If want to choose C#, use Xamarin. If you are want to C++, Visual Studio offers C++ Cross Platform Mobile Development too and you prefer "Write One, Run anywhere" approach, or hybrid cross platform mobile development using HTML, CSS and Javascript, try to use PhoneGap framework from Apache Cordova. :) All tools for development are available in Visual Studio. :)

    In Xamarin, If you're concern with design the most, yeah, you have to deal with "Custom Renderers" in Xamarin but it's the better way as far as I know in order to achieve certain design that you really want in each platform :)

  • CptMcNuggetCptMcNugget PLMember ✭✭

    Thanks for the answer, using C++ though would be an overkill unless I make a game engine or something, I would use NDK then or just Unity3D. But for normal apps it's 1000 times better to use something like React or C# with xamarin. Skype uses React instead of Xamarin and it's Microsoft's. Seems to work well. I'm just taking a look at Xamarin.Forms, will try to play with it a little and see how writing custom renderers goes and will decide between Xamarin and React.

Sign In or Register to comment.