Creating mobile apps, sooner or later you'll have to make the right choice of framework to develop a cross-platform application. Both native and HTML5, as well as hybrid frameworks have their pros and cons.
Obviously, native apps give perfect looks and perfect performance, therefore perfect user experience. All device capabilities can be used to the full.
You can, of course, design apps with amazing UI using HTML5 frameworks as well. HTML5 is in no way worse than native controls when it comes to UI and performance, so this framework could be your final solution for creating cross-platform applications running on Android, iOS, Windows Phone, and Blackberry.
But take a moment and think this through.
It's hardly a write-once-run-anywhere app unless you are fine with it looking identical on all mobile platforms. You'll have to include branching in your code if your app has to be platform specific. Your UI may be split into different layers, but individual HTML5 code for each platform is needed anyway.
The situation is quite the same with hybrid apps. Unless you are happy with your application looking exactly the same on all mobile platforms, you’ll need to develop platform specific code.
This is where Xamarin development comes into play. You might have to repeat your UI work, but developing with Xamarin you are able to create native apps subscribing to native UI controls and paradigms and share business code logic simultaneously. Xamarin developers use XCode (and storyboards) to write great native XML for Android UI, XAML for Windows Phone UI, and iOS UI. If you choose HTML5 or hybrid framework, using Xamarin you are developing platform specific UI without any branching logic. What you get as a result is a completely native app with all its merits, as if you had written it in Java, C# or Objective-C. Xamarin is your win-win solution.