Xamarin cross platform


Published on

This presentation walk trough Xamarin, MVVMCross and Cross Platform Mobile development

Published in: Technology
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Presentation styles, interaction styles and software stacks.Devices have different screen sizes, input modes and hardware capabilities.New devices and OS versions are introduced multiple times per year.Network connectivity and power levels fluctuate widely in typical usage scenarios.New consumer applications regularly extend and revise the standards for Good mobile applications.
  • HTML5 is like a car without a dashboard. Debugging, editing, profiling and instrumentation tools are missingYSlow
  • C# + XAMLC# + XMLC# + XIBHighlight that thru PCL (Portable Class Libraries) you can also re-used binary-compiled .DLLs between the three platforms rather than just C# code.
  • A cross platform framework for efficientlydevelop C# apps built on top of:Silverlight for WP7, WP8Mono for Android (or Xamarin.Android)MonoTouch for iOS (or Xamarin.iOS)WinRTXAML framework for Windows 8 Store AppsWPFMono for Mac (or Xamarin.Mac)Native, Cross-Platform, Portable, Reusable C#Currently version 3 includes:Support for Xamarin.Mac and Xamarin.AndroidEasy to use MVVM Cross plugins used by non-MVVMCross and non-MVVM codeHigh quality documentationEnable other MVVM platforms to use the MVVMCross data-binding layersMVVMCross APIs cleaner, simpler, easier to use and extend
  • Linux Kernel which is the base of the operating systemOn top of that we have the Android SDK which uses the Dalvik VM (is the process virtual machine) in Google Android OS and it is the software that runs the apps on Android Devices being a integral part of AndroidThe application is on top of the Android FrameworkMost part of the time is about Activities (90% or more), an Android Application is basically a collection of Activities, services, content providers and broadcast receiverActivities in adroid are equivalents to screens, these activites may be used by other applications using Intents as having the need of do something (take a picture, make a call) and Activities are activated by intentsServices, just like Windows Services that can run in the background Content Providers, able to fetch date or provide date to and from applicationBroadcast Receiver, parts of the App that are listening to the Android OS to events that are happening
  • iOS SDK at the bottomMono -> Open Source implementation of .NET FrameworkOn top we have the Xamarin.iOS which allow us to develop for iOS using C#, and there are some bindings of C# classes that exists in Xamarin iOS to the iOS SDKWhat makes Xamarin.iOS possible is that we can interop between C# to Objective C because Objective C is based off C and compatible with C by using platform invokeIf we develop an application in C# to run in iOS, it has to reference the MonoTouch.Dll which will have the wrapping to the iOS SDK and by using a special build configuration with the Mono Compiler we will get a native app in an ARM asembly
  • And mobile is not just phones
  • Leverage the tools, frameworks and APIs you need to build apps for any device. Combine HTML5, native or hybrid apps with rich device features and your enterprise data to create engaging mobile apps.Devices:Acer Iconia and new ARM Intel Processor 1,280 x 768 píxeles (WXGA)Proporción 16:10Procesador Atom Clover Trail Z27602GB RAMAlmacenamientointerno de 32 o 64GBResponsive web design (RWD) is a web design approach aimed at crafting sites to provide an optimal viewing experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of devices (from mobile phones to desktop computer monitors).A site designed with RWD[1][4] adapts the layout to the viewing environment by using fluid, proportion-based grids,[5] flexible images,[6][7][8][9] and CSS3media queries, an extension of the @media rule.The fluid grid concept calls for page element sizing to be in relative units like percentages, rather than absolute units like pixels or points.[5]Flexible images are also sized in relative units, so as to prevent them from displaying outside their containing element.[6]Media queries allow the page to use different CSS style rules based on characteristics of the device the site is being displayed on, most commonly the width of the browser.Server-side components (RESS) in conjunction with client-side ones such as media queries can produce faster-loading sites for access over cellular networks and also deliver richer functionality/usability avoiding some of the pitfalls of device-side-only solutions.[13]Connected:Open API (often referred to as OpenAPI new technology) is a word used to describe sets of technologies that enable websites to interact with each other by using REST, SOAP, JavaScript and other web technologies. While its possibilities aren't limited to web-based applications, it's becoming an increasing trend in so-called Web 2.0 applications. Telemetry:Analyze and Improve Cycle - http://msdn.microsoft.com/en-us/library/windows/apps/hh967787.aspx The chart and info displayed on the Usage page show how your customers are using your app.AnalyticsAnalytics refers to the data we collect directly from the Windows Store, such as app listing views, downloads, and customer ratings and reviews. We collect this info on an ongoing basis, analyze and summarize it, and provide reports in your Windows Store Dashboard. Analytic data collection happens automatically and you can't disable it.TelemetryTelemetry refers to the data we collect about your app when it's running on customers' computers. If you enable this feature in your Windows Store developer account, your app will automatically send info back to Microsoft about how often it has been launched, how long it has been running, and whether it has experienced an error such as crashing or encountering a JavaScript exception. We collect this info for each app, analyze and summarize it, and provide reports in your Dashboard. You can choose to enable or disable telemetry data collection at any time.Responding to user ratings and reviewsHere are some actions you may wish to consider, based on the ratings and reviews you're seeing.If you notice many reviews that suggest a new or changed feature, or complain about a problem, consider releasing a new version that addresses the specific feedback. (Be sure to update your app's description to indicate that the issue has been fixed.)If the average rating is high, but your number of downloads is low, you might want to look for ways to expose your app to more people, since it's been well-received by users who have tried it out. App adoptions rateApp Downloads history The Downloads by age group chart shows the age and gender of the people who have downloaded your app. This demographic data comes from the info that customers have entered with their Microsoft accounts.Downloads by marketThe Downloads by market chart shows where customers are downloading your app. This info is interpreted from the IP address of the user.Tracking app sales – Financial Info per AppCompare recent ratings and downloads.Review and analyze customer feedback.Identify and fix app crashesUpdate your screenshots, artwork, and graphics.Explore the trends for apps throughout the Store.Change your business model.Add a languageLyfeCicle of the apps - Those of us involved in mobile apps development are facing new challenges and new pressures we have not seen before. Time-to-market is a serious issue, which can make or break a business. Our competitors evolve just as quickly as we do, and staying ahead has created a new arms race.Let's take this opportunity to automate all those parts of the lifecycle that can be automated: moving the code to the test environments, to the staging environment and to the app stores. Set up the infrastructure so that continuous integration requires no manual involvement and continuous delivery happens continuously. Build out the automated test suite so failed tickets are automatically delivered into the developer's inbox.By adding automation to every aspect of the mobile apps development process we can shorten time frame, increase quality and address the needs of the business without compromise.
  • Pending to addAPIs Support Emulators SupportSupport
  • Xamarin was founded in 2011 by Nat Friedman and Miguel de Icaza, technology veterans with a successful track record in enterprise software. The company employs a passionate team of 70 highly skilled software engineers, has a robust training and developer cer- tification program, and world-class support and documentation. Xamarin’s worldwide partner network is comprised of over 50 global system integrators, national and regional consulting companies, and digital agencies who have deep experience building enterprise and consumer apps with Xamarin. Fulfilling the promise of cross-platform mobile development without compromises, Xamarin’s breakthrough products have attracted a community of over 350,000 developers. Xamarin today has over 17,000 paying customers, including Microsoft, Kimberly-Clark, Clear Channel, Schindler, McKesson, Bosch, Halliburton, Cognizant, GitHub, Rdio, and WebMD. Xamarin is a San Francisco, California based software company created in May 2011.[2] The company was created by the engineers that created Mono,[3]MonoTouch and Mono for Android which are cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications (often called Microsoft .NET).In June 2000, Microsoft first announced their .NET Framework.[4]Miguel de Icaza of Ximian began investigating whether a Linux version was feasible.[5] The Mono open source project was launched on July 19, 2001. Ximian was bought by Novell on August 4, 2003.After the acquisition of Novell by Attachmate in April 2011, Attachmate announced hundreds of layoffs for the Novell workforce, including Mono developers,[6] putting the future of Mono in question.[7][8]On May 16, 2011, Miguel De Icaza announced on his blog that Mono would be developed and supported by Xamarin, which planned to release a new suite of mobile products. According to De Icaza, at least part of the original Mono team had moved to the new company.[9]After this announcement, the future of the project was questioned, since MonoTouch and Mono for Android would now be in direct competition with the existing commercial offerings owned by Attachmate, and considering that the Xamarin team would have difficulty proving that they had not used technologies previously developed when they were employed by Novell for the same work.[10][11]In July 2011, however, Novell, now a subsidiary of Attachmate, and Xamarin announced that Novell had granted a perpetual license for Mono, MonoTouch and Mono for Android to Xamarin, which formally and legally took official stewardship of the project.[12][13]In December 2012, Xamarin released Xamarin.Mac,[14] a plugin for the existing MonoDevelopIntegrated development environment (IDE), allowing developers to build C#-based applications for the Apple OS X operating system and package them for publishing via the Apple App Store.In February 2013, Xamarin announced the release of Xamarin 2.0.[15] The release included two main components: Xamarin Studio, which bundled Xamarin's previous, separate iOS, Android and Apple OS X development tools into a single application;[16] and integration with Visual Studio, Microsoft's IDE for the .NET Framework, allowing Visual Studio to be used for creating applications for iOS and Android, as well as for Windows.
  • Requires Pair with Xamarin.iOS Build Host
  • Xamarin cross platform

    1. 1. gcasuso@Microsoft.com
    2. 2. Mobile Cross Platform Development Mobile Landscape: Web, Hybrid and Native Cross-Platform Architectures Xamarin Overview and Architecture MVVMCross General Android client and iOS client Architectures
    3. 3. device browser app Web App device Hybrid App wrapper app wrapper API Native App device app Web App Hybrid App Native App Use of device specific features and sensors Portability across platforms Performance & Native Experience Updatability
    4. 4. Input Distribution Channels Output Key Players Mobile Browser HTML, CSS, JavaScript WWW Web Document Safari – Chrome – Mozila Web Wrapper HTML, CSS, JavaScript App Store Hybrid Package PhoneGap Web-to-native converter Javascript App Store Native Package Titanium Native JavaScript API HTML, CSS, JavaScript App Store Native Package BB , w8 Native C# App Store Native Package Xamarin
    5. 5. Mobile Browser Web Wrapper Web-to-native converter Native JavaScript API
    6. 6. Top 5 supported features GeolocationAPI, offline web application support, WebStorage, CSS3 Selectors and 2D animations are the top five supported features. A responsive web application developed using HTML5, CSS3, and JavaScript could be viewed on phone browser, To support a variety of device sizes while keeping a single code base, a website should use responsive web development technologies like CSS3 or frameworks like Bootstrap or Foundation.
    7. 7. For run-of-the-mill business applications, hybrid app provides necessary functionality and performance most of the time. A hybrid mobile app is build using HTML5, CSS3, JavaScript, PhoneGap and it runs on iOS, Android, Windows Phone and Black Berry. Hybrid app is 'hybrid' because it uses HTML 5 & CSS3 for mobile UI and JavaScript to communicate with device SDK. Hybrid app = Single Page Application Hybrid mobile app is basically a single page application (or SPA). SPA is a web application that lives within a single HTML page.
    8. 8. C# + XIB C# + XML C# + XAML Native UI Native UI Native UI Optional Remote Services (ASP.NET WebAPI or any server technology)
    9. 9. What is Xamarin? Extension to Visual Studio • iOS, Android apps entirely within Visual Studio • Compiles .NET/C# code to native platforms • Visual Studio ALM and IDE capabilities fully available Build apps faster • Leverage skills • Reuse code and binaries with flexibility • Fully native user interfaces
    10. 10. Microsoft and Xamarin Partner Globally With Xamarin, developers combine all of the productivity benefits of C#, Visual Studio 2013 and Windows Azure with the flexibility to quickly build for multiple device targets.” S. Somasegar, Corporate Vice President, Microsoft Technical collaboration for superior developer experience Exclusive MSDN offers that accelerate the transition to mobile development
    11. 11. MVVM Implementation for multiple platforms Native, Cross- Platform, Portable, Reus able C#
    12. 12. • Single Mono for Android • Simple – it Works • Good separation of UI from “Model” code But • No testing • Portability by cut/paste
    13. 13. • PCL code • Data binding in UI • XML got bigger • Code overall increased in size
    14. 14. • Cross Platform • 100% shared application logic • 100% shared test harness
    15. 15. Package .app .apk .xap Typeof(Screen) Controller Activity Page Typeof(Control) View Widget Control UI Files (xml) .xib .axml .xaml Default UI Pattern MVC MVC MVVM
    16. 16. http://www.visionmobile.com/blog/2014/02/developer-economics-q1-2014/ http://www.slideshare.net/slideshow/embed_code/15621659 https://github.com/MvvmCross/MvvmCross https://github.com/MvvmCross/MvvmCross/wiki/MvvmCross-Tutorials http://xamarin.com/evolve/2013#session-dnoeeoarfj Xamarin http://xamarin.com/msdn-exclusive Channel 9 Video Series: http://channel9.msdn.com/Shows/Visual-Studio- Toolbox/Cross-Platform-Development-With-Xamarin
    17. 17. http://infopedia/docstore/pages/kcdoc.aspx?k=KC02-23-21345 https://microsoft.sharepoint.com/teams/modernapps/Offerings/_layouts/15/start.asp x#/MobileWorkforce/Forms/AllItems.aspx?RootFolder=%2fteams%2fmodernapps%2f Offerings%2fMobileWorkforce%2fDemo&FolderCTID=0x012000390A00701058EB4EB 572AC108FED089C