6. Vários times de Dev.
Sem código compartilhado.
Inovação mais lenta.
3x mais caro.
7. Acesso limitado as APIs.
Funcionalidades limitadas.
Performance inferior.
8. Xamarin Cross-Platform Native
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Back End
- Camada lógica
- Acesso a dados
- Infraestrutura
- Componentes
Shared C# codebase • 100% acesso as APIs nativas
9. Xamarin apps nativos
Compilação nativa, performance nativa
Xamarin.iOS usa os recursos de compilação ahead-of-
time (AOT) para produzir o arquivo ARM binary para
Apple’s Store
Xamarin.Android usa a compilação just-in-time
(JIT) para os dispositivos Android.
10. Tudo que você faz com Objective-C, Swift, ou Java
pode ser feito com C# no Visual Studio com Xamarin.
12. ATENÇÃO
A seguir veremos uma Demo. Coisas ruins podem acontecer.
Por favor, não atirem coisas no apresentador
se tudo começar a falhar.
Se bugs acontecerem, vocês ouvirão:
“Estou usando software em versão Beta.”.
Any Xamarin developers here? C#?
{INTRO}
I’m Steve Hall, Director of Enterprise Mobility
I’ve worked in mobile for over 20 years, helping customers with their mobile apps, mobile strategy and architecture.
[CLICK]
With the acquisition of Xamarin, Microsoft can help you build beautiful native apps
Help you build, test, distribute and give you app analytics
And how Microsoft‘s cloud can enrich those applications and provide more powerful apps that are delightful to use.
Let‘s talk about building apps first.
So, while this approach can give you a great app experience, you end up with 3 TEAMS, BUILDING 3 APPLICATIONS
…At the end of the day, using the hybrid approach, your app cannot do many of the things that make apps fun to use.
Let’s look at an example of hybrid vs native [NEXT]
So real kind of high level, how do we do it? This is the kind of the 1 minute pitch on the Xamarin platform. So the way we do it with Xamarin is developers can split their app into these 2 distinct pieces. So what you’re seeing on the slide, this is the UI layer- this is the stuff that customers are going to see. Developers with the Xamarin traditional approach, they tailor the UI to each platform. As you’re seeing, we’ve got an iOS UI, an Android UI and Windows UI. And this is a completely native UI.
Then we’ve got the back-end component of the application. So, think of this as of all of the things you don’t see in that app. This is the business logic, this is the data access. This could be access in web services, accesses in the back-end, networking, all of those things. This is all shared and the key piece about this is for any given application, all of this shared stuff is typically about 75% of code in the app. That’s a huge number. So with Xamarin, developers are building everything. The whole app, that’s the UI at the top, the back- end. They’re doing all of this in C# and .NET using all the base class libraries and the great tools that they’re used to. So that’s Visual Studio- developers love Visual Studio. It’s a great IDE, things like ReSharper, but the difference with Xamarin and any other approach out there is that developers are going to get access to 100%- and that is every single one of the native APIs from each device. So that’s the APIs from Apple, Google and Microsoft.What we’re bringing to the table on the UI layer, we’re bringing great design tools. So we have an ability to bring a story board to iOS to drag and drag UI controls onto the application. So you can drag in a button, a picklist, a slider- we have all of the native controls accessed to them. All of the variables, the features, the configurations for all of those right from the IDE, right inside Visual Studio. The same thing holds for Android as well. So you don’t need to build your user interface in code as it where, you get to build the UI get to using the same experience you would have if you were to use Xcode for example on iOS (same experience). So what we do is provide developers with access to Xamarin University. Xamarin University will take them end to end from learning all of the UI guidelines on Android, the UI guidelines on iOS and help them get up to speed quickly in terms of how to build UIs for each of those platforms.
We’ve had customers who’ve been through Xamarin University within a month. The key with this is developers having a knowledge of an object or language. We see good success with developers who are from a Java background, and they move over to C#. But that same thing goes for Objective-C developers as well because there is a lot of learning that these developers have gone through to learn a language like Objective-C, Java, or C#. So as long as they come from that background, that’s easier. Of course, if they’re more used to HTML5 in JavaScript, that’s going to be a little bit harder for those developers. But again, we’ve got that great live training and interaction that they van go through. And we even include C# training in Xamarin University. So if someone brand new starts with C#, then they’ll learn the mobile side of it as well.
There’s 2 approaches what you’re seeing on the slide, that’s Xamarin’s traditional approach to cross-platform native. Where you’ve got the shared backend and you’re tailoring for each UI. You would do this approach when you’re wanting that high fidelity, animations, very unique things to each platform. Xamarin.Forms those is the way in which you can elevate your code reuse to that +90% level, and that’s where you’re writing you’re UI code only once. That’s a really easy place for developers to get started because they’re not having to learn the uniqueness of each of the APIs for each platform. Xamarin.Forms takes care of that so they learn the XAML ,etc that they were able to take that XAML and convert that into the native button on aneroid, the native button on iOS, etc.
[Just to add to that, it’s not like it’s one or the other. If you’re developing your application leveraging Forms but you find that there is something specific to that device that I still need to do, so for example, like segmentation button only exists on the iOS platforms. So if there is something you need to do around the segmentation around that particular platform, then you can still write in C# the device specific UI within that Xamarin.Forms framework. So, it’s very flexible in that approach.]
Mobile is transformative because mobile apps are context-aware – and context-aware apps require full access to native device capabilities
Mobile users - consumers and employees alike - are more likely to abandon apps that show poor performance or non-standard UI, navigation and controls because it slows them down and forces them to re-learn things they already know
Xamarin takes .NET to the next level and extends it to iOS and Android
Xamarin apps are 100% C# and 100% of Android + iOS platform APIs are exposed
With Xamarin, everything you can do with Objective-C or Java, you can do with .NET
Xamarin apps are 100% native apps, indistinguishable from platform-native apps created with Android Studio, Eclipse or Xcode
Xamarin also includes powerful iOS and Android UI designers that enable you to create beautiful user experiences for Windows, iOS and Android in a visual designer with drag-and-drop simplicity
Xamarin enables developers to use the same languages, libraries, and tools for all major mobile platforms, unlocking the extraordinary productivity of .NET for any iOS and Android while using existing skills and enabling effortless sharing of code among platforms
With Xamarin, you can build native apps once and run them everywhere – giving developers the most productive and powerful platform for creating native cross-platform applications
The cross-platform native approach combines the benefits of both worlds - you get the native user experience for each individual platform, and you also eliminate rework and increase organizational innovation and responsiveness by delivering more apps faster
To sum up, anything a developer could do in the other languages the native languages, Objective-C, Swift, or Java, can 100% be done with Xamarin. It’s really important this fact because we’ve had customers who’ve told us, “well we’ve looked at Xamarin but we though we’d have to learn Objective-C to deliver a really great application.” That’s not the case.
And also going back to that tweet that Satya said, “Any developer, any device.” So we’ve obviously got Visual Studio now with Xamarin on PC, Xamarin Studio for Mac.
How many have had to write code in front of people?
{do demo}
I know…that was a very simple app. Today, we are not really doing a code deep-dive. I want to talk about how you can develop apps faster with better quality.
You see, the more we can automate, the more time developers can spend on coding and creating cool apps.
So real kind of high level, how do we do it? This is the kind of the 1 minute pitch on the Xamarin platform. So the way we do it with Xamarin is developers can split their app into these 2 distinct pieces. So what you’re seeing on the slide, this is the UI layer- this is the stuff that customers are going to see. Developers with the Xamarin traditional approach, they tailor the UI to each platform. As you’re seeing, we’ve got an iOS UI, an Android UI and Windows UI. And this is a completely native UI.
Then we’ve got the back-end component of the application. So, think of this as of all of the things you don’t see in that app. This is the business logic, this is the data access. This could be access in web services, accesses in the back-end, networking, all of those things. This is all shared and the key piece about this is for any given application, all of this shared stuff is typically about 75% of code in the app. That’s a huge number. So with Xamarin, developers are building everything. The whole app, that’s the UI at the top, the back- end. They’re doing all of this in C# and .NET using all the base class libraries and the great tools that they’re used to. So that’s Visual Studio- developers love Visual Studio. It’s a great IDE, things like ReSharper, but the difference with Xamarin and any other approach out there is that developers are going to get access to 100%- and that is every single one of the native APIs from each device. So that’s the APIs from Apple, Google and Microsoft.What we’re bringing to the table on the UI layer, we’re bringing great design tools. So we have an ability to bring a story board to iOS to drag and drag UI controls onto the application. So you can drag in a button, a picklist, a slider- we have all of the native controls accessed to them. All of the variables, the features, the configurations for all of those right from the IDE, right inside Visual Studio. The same thing holds for Android as well. So you don’t need to build your user interface in code as it where, you get to build the UI get to using the same experience you would have if you were to use Xcode for example on iOS (same experience). So what we do is provide developers with access to Xamarin University. Xamarin University will take them end to end from learning all of the UI guidelines on Android, the UI guidelines on iOS and help them get up to speed quickly in terms of how to build UIs for each of those platforms.
We’ve had customers who’ve been through Xamarin University within a month. The key with this is developers having a knowledge of an object or language. We see good success with developers who are from a Java background, and they move over to C#. But that same thing goes for Objective-C developers as well because there is a lot of learning that these developers have gone through to learn a language like Objective-C, Java, or C#. So as long as they come from that background, that’s easier. Of course, if they’re more used to HTML5 in JavaScript, that’s going to be a little bit harder for those developers. But again, we’ve got that great live training and interaction that they van go through. And we even include C# training in Xamarin University. So if someone brand new starts with C#, then they’ll learn the mobile side of it as well.
There’s 2 approaches what you’re seeing on the slide, that’s Xamarin’s traditional approach to cross-platform native. Where you’ve got the shared backend and you’re tailoring for each UI. You would do this approach when you’re wanting that high fidelity, animations, very unique things to each platform. Xamarin.Forms those is the way in which you can elevate your code reuse to that +90% level, and that’s where you’re writing you’re UI code only once. That’s a really easy place for developers to get started because they’re not having to learn the uniqueness of each of the APIs for each platform. Xamarin.Forms takes care of that so they learn the XAML ,etc that they were able to take that XAML and convert that into the native button on aneroid, the native button on iOS, etc.
[Just to add to that, it’s not like it’s one or the other. If you’re developing your application leveraging Forms but you find that there is something specific to that device that I still need to do, so for example, like segmentation button only exists on the iOS platforms. So if there is something you need to do around the segmentation around that particular platform, then you can still write in C# the device specific UI within that Xamarin.Forms framework. So, it’s very flexible in that approach.]
XAMARIN TEST CLOUD HELPS REDUCE THE CONCERN OF LAUNCHING AN APP
(PHARMACY STORY)