Take Your Team Mobile with Xamarin
Introduction Enterprises no longer question if they should go mobile, but are figuring out how to implement a successful mobile strategy, and in particular how to go from no mobile proficiency in-house to skilled experts. Rather than staff separate, platform-specific teams, Gartner predicts that enterprises will adopt solutions that enable them to, deploy existing, skilled staff on mobile projects, as well as by integration. Using C#, for example, allows for easy reuse of.net libraries and interfaces. 1 There are several advantages to this approach, as outlined in the Buy or Build Your Mobile Team guide. Xamarin is the only solution that enables enterprises to use existing skills, teams, tools, and code to build native apps that deliver the performance and user experience employees and customers expect. 01
Overview This guide includes recommendations for building an effective mobile development team quickly, including an onboarding approach that takes team dynamics, individual skills, and internal processes into account. To go mobile with Xamarin, you need to: </> Analyze existing code and apps (if any) Analyze your existing team s skills Follow the proposed training plans that match your team s skills and expertise 02
Analyze existing code For teams with existing C# code If your team has significant C# code in legacy web or desktop applications, you can use Xamarin s.net mobility scanner at http://scan.xamarin.com to evaluate how much code can be reused in a mobile app. This will help you plan for your mobile projects more efficiently. 100% 100% 100% 86% Calls Platform-specific method name Namespace Suggestions Compatibility 18 bool Type.IsAssignableForm (Type) System 14 int Thread.ManagedThreadId { get; } System.Threading 14 int Thread.ManagedThreadId { get; } System.Threading 10 Type[] Type.GetGenericArguments () System 6 Type[] Type.GetInterfaces () System 03
For teams with mobile apps in platformspecific languages Your team may have existing mobile apps written in platform-specific languages, for example, an ios app written in Objective-C. In this scenario, the best way forward is to develop the Android version of the app in C# using Xamarin. Once you have the Android version in C#, you also have 80% (or more) of the Xamarin.iOS version created thanks to shared code across device platforms. You can then quickly replace the Objective-C ios app with a C#, Xamarin.iOS version. This works the same way for teams with an existing Java app: build the ios app in C#, then replace the Java app with a Xamarin.Android app. Over time, you can retrain your Objective-C and Java developers on C#, building a development team capable of reusing over 80% code across platforms, eliminating code redundancy and generating fewer bugs. 80% Xamarin.iOS C# It is important to recognize that you can also leverage your prior investments in User Interface design, third party libraries, and even platform-specific code. Our automatic binding generators enable you to continue to use existing custom controls, frameworks, and other compiled code from your previous apps. Additionally, because Xamarin uses the native layout file formats for each platform, you can keep your ios storyboards, xibs, Android XML layout files, and other native resource files. 04
Analyze current team skill set Before embarking on a training program, you should assess your current team s skill set to understand individual and group strengths and knowledge gaps. This Mobile Development Skill Assessment survey has sample questions that can help you assess this concern. When sending your survey, emphasize that the results will be used to create customized training plans and that responses should be as honest as possible. 05
Sample Survey: Mobile Development Skill Assessment We are currently assessing our existing mobile development skills as we develop our mobile strategy. Based on your answers, we will create a strategic training program to ensure you get the education and tools you need. Rank your proficiency in the following areas (1 = no experience, 5 = experience building multiple production apps) 1 2 3 4 5 1. C# and.net Framework 2. Xamarin Platform (Xamarin Studio or Visual Studio integration) If you rank yourself 2 or higher: Xamarin.iOS Xamarin.Android Xamarin.Forms 3. ios: Objective-C or Swift 4. Android: Java 5. Other Mobile Frameworks 6. Have you published any mobile apps? If yes, please give a brief description of the app (use case, platforms, and languages) 06
Training plan Create individual learning plans with Xamarin University Once you have an understanding of each team member s skill set, you can create customized learning plans. Xamarin University s comprehensive curriculum meets the needs of developers at all levels, offering courses from introductory C# to advanced specializations, platform-specific topics, enterprise security, and more. Xamarin University is taught online (with classroom training coming soon) by mobile experts and is offered across all timezones. In addition to small, hands-on classes, Xamarin University subscriptions also include office hours, allowing students to schedule one-on-one time with instructors. Xamarin University is the only way to earn Xamarin Certified Mobile Developer status, which many enterprises are now requiring to enforce high standards for their development organizations. Sample Training Plans Based on each individual s assessed skill level, team members should be grouped in categories based on their needs. C# Basic C#: Gain fundamental language and programming skills, as well as basic app structures and code sharing architectures. Platform-specific (ios/android/ Windows): Tackle advanced platform-specific APIs, concerns, and up-level functionality. Xamarin.Forms: Learn crossplatform, single UI app development reusing 90%+ of code across platforms. Advanced Techniques: Develop skills related to responsive apps such as efficient network calls, threading, async/await, etc. 07
Recommended courses Apps marked with an asterisk are required for Xamarin Mobile Developer Certification. Basic C# CSC101 CSC102 CSC103 CSC104 CSC105 CSC106 CSC107 CSC108 CSC109 Introduction to C# Branching and Looping Object-Oriented Programming Adding Behavior in Our Apps Shifting from Console to Mobile More About Classes and Methods Collections in C# Debugging and Exceptions Inheritance and Polymorphism 08
Building Xamarin.Forms Apps XAM101 ios101 AND101 XAM110 XAM120 XAM130 XAM140 XAM150 XAM160 XAM220 XAM300 XAM310 XAM311 XAM370 Orientation + Setup * Introduction to ios * Introduction to Android * Intro to Cross Platform Development * Intro to Xamarin.Forms * XAML in Xamarin.Forms Styles and Resources in Xamarin.Forms Cross Platform RESTful Web Services Data in Mobile * Publishing an Application * Advanced Cross-Platform development * Data Binding in Xamarin.Forms Using ListView in Xamarin.Forms Memory Management and Performance *
Building Xamarin.iOS Apps XAM101 ios101 ios102 ios110 ios115 XAM150 XAM160 ios210 ios211 XAM220 ios230 ios240 ios300 ios301 Orientation + Setup * Introduction to ios * Managing multiple screens Table Views in ios * Adding Behavior to Table Views Cross-Platform RESTful Web Services Data in Mobile * Background Tasks in ios * Background Transfers in ios Publishing an Application * Maps Touch AutoLayout and Constraints Adaptive UI design
Building Xamarin.Android Apps XAM101 AND101 AND102 AND103 AND110 AND115 XAM150 XAM160 AND210 XAM220 AND230 AND240 AND301 Orientation + Setup * Introduction to Android * Intents and Second Screens in Android Dealing with Fragmentation ListViews in Android * RecyclerView in Android Cross Platform RESTful Web Services Data in Mobile * RecyclerView in Android Publishing an Application * Maps Touch Adaptive design in Android 11
Building Xamarin.Android Apps XAM110 XAM300 XAM370 ENT410 Intro to Cross-Platform Development * Advanced Cross-Platform Development * Memory Management and Performance * Data Caching and Synchronization Quickly developing skilled mobile teams is imperative as enterprises adjust to the rapidly changing mobile landscape. Xamarin expedites your transition to mobile development by offering the tools and education necessary to create your mobile dream team. Xamarin University adds new classes regularly. Visit xamarin.com/university to see the latest course listing and to enroll your team today. 12
Expert help to go mobile even faster Xamarin Client Services gives your team access to our in-house mobile development experts to answer questions, provide guidance, offer code reviews, and engage in one-on-one sessions. Use the Xamarin team to jump start your mobile projects, especially in time-sensitive or highly complex scenarios. Contact hello@xamarin.com to learn more. Xamarin also has a global network of over 350 Consulting Partners with extensive mobile development expertise who can provide best practices and architecture guidance to accelerate your projects, as well as staff augmentation. To find a Xamarin Consulting Partner near you, please consult the Xamarin Consulting Partner Directory. 13
14