TechEd 2014 : All sessions in one page

This is a summary of all recordings of the TechEd 2014 Europe recordings. This information can be found on http://channel9.msdn.com/Events/TechEd/Europe/2014 but I like it just in a long list.

DAY 1

Join us for the TechEd opening Keynote with Microsoft’s Jason Zander, Corporate Vice President, Microsoft Azure and Joe Belfiore, Corporate Vice President of PC, Tablet and Phone, Operating Systems Group. View the live stream on the Channel 9 home page.

DAY 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DAY 3

 

  • 0

 

 

 

 

 

 

 

 

 

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DAY 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Advertenties

Mobile cross-platform development – Visual Studio en Xamarin

Eerste spreker: Gijs de Jong (Technical Evangelist Manager Microsoft Nederland)

Mobile apps is momenteel de grootste technische markt. Er wordt verwacht dat er 26+ miljard devices in 2020 zullen zijn (volgens Gartner).

De verwachting is ook dat de huidige on-premise apps binnen 5 jaar voornamelijk mobiel zijn en in de cloud leven (en terugval van on-premise van 90% naar pakweg 40%).

En enterprise apps versterken dit effect: nog meer vraag naar multi-platform apps.

Dit kan zowel via native apps als via native apps. Microsoft steunt twee initiatieven: Xamarin voor Native applicaties en Apache Cordova voor web apps. Vandaag duiken we in Xamarin.

We krijgen presentaties van Mike James @MicJames6 van Xamarin @XamarinHQ en Maarten Sikkema en Vincent Hoogendoorn van Macaw.

Mike heeft voor Xamarin gekozen wat:

  • Productieve omgeving
  • Gedeelte code voor meerdere platformen (cross-platform)
  • Goede performance, altijd

Xamarin is gebaseerd op C#, een prima taal voor Windows ontwikkeling en nu dus ook voor Mobiele apps. Xamarin is gebaseerd op technieken van 12 jaar oud, namelijk Mono en dit is van Linux ook naar Android naar Ios gebracht. Zijn noemen dat ‘embrace en extend .Net’.

WIN_20141104_141343

Voorheen had je een silo aanpak: drie apps, voor iedere platform een eigen app (ios, android, windows). Dus Apart bouwen in XCode, Eclipse en Visual Studio.

Voorbeeld van Rdio wordt aangehaald. In 12 weken is hun IOS en hun Android app omgebouwd met Xamarin.

Een andere oplossing is de black box oplossing: write once, run anywhere aanpak. Maar dit betekent dat je dan de gezamenlijke doorsnede aan functionaliteit neemt die overal past. Maar je offert bepaalde functionaliteit op.

Xamarin wilt code delen, native en met volledige toegang tot OS functionaliteit. Dit kan tot 75% hergebruik leiden. Er blijft altijd eea. Over wat niet herbruikbaar is. Denk aan wrappers rond logica van het ois (bv. sensors).

Alles wat je in Objective C, Swift of Java kunt doen, kan ook in Xamarin. En zo draait C# op 2.6 miljard apparaten. Het draait zelfs op een RaspberryPi.

Xamarin werkt als volgt:

  • C# + .Net runtime
  • Native UI
  • Native performance

Xamaring valt uiteen in drie producten:

  • Xamarin Platform (IOS, Android, Mac)
  • Xamarin Test Clouds
  • Xamarin Insight

Demo volgt: van het platform.

Lol: iets meer klasse aan wat benamingen geven door de uitspraak: Nuget -> nugé; PCL -> pickels.

IOS gaat overigens in januari al alleen nog maar 64bits apps toelaten in de store. Kies dus voor een Unified app want die kan dit aan.

En met Xamarin hoef je jezelf als IOS ontwikkelaar niet meet druk te maken over Outlets en Actions. Het click event op een button heeft nu direct een delegate. Klaar met een dubbelclick op de knop in de designer.

Voor Xamarin Native kan je de Android resource folder hergebruiken. Hier zitten je forms en je resources (plaatjes, etc) in.

Leuke presentatie 🙂 Nu even koffie drinken.

Daarna is Maarten Sikkema aan de beurt. Hij demonstreert de WP Poollie app. Deze is gebouwd vanuit een Research clubje om te bekijken hoe je met echte load om kunt gaan. Deze app is gebouwd op basis van Xamarin en Azure. Gewoon om te leren, ter promotie en als show case.

En de app moest in tien weken gebouwd worden. En in de tussentijd was er een coming soon pagina live.

De concurrentie was voornamelijk web-based. En Er was één niet-gratis app (alleen ios en android).

Zelfs deze simpele app had al snel een heleboel requirements. Zo gebruikte de app SignalR voor live berichten tijdens de wedstrijd.

WIN_20141104_150525

De apps voelde native aan omdat ze ook native zijn. En het gebruikersgemak is belangrijk voor de acceptatie door gebruikers. En de ontwikkelomgeving was ook productief.

Ze gebruikten een Quick-Cross MVVM project voor een snelle ontwikkeling.

quickcross

De navigatie en interactie is echt een punt van aandacht. Ze kozen voor de ‘hamburger’ aanpak van data tonen. De IOS heeft geen appbar aan de onderkant. Dit moest dus bovenaan opgelost worden.

En ze hebben een speciale navigator klasse gebouwd voor de overgang naar andere schermen of het tonen van dialogen. Ze hadden drie native Xamarin apps gebouwd dus de afzonderlijke schermen moesten er even aan gekoppeld worden en ze waren klaar.

Op Windows Phone was het mogelijk om de panorama view te verdelen over meerdere view. Gewoon door de navigator voor Windows Phone net even te manipuleren

Toen de eerste app in de IOS store werd gezet zat er al een bug is. Gelukkig werd de app in de store geplaatst met bug zodat ze al direct een update konden doorvoeren zonder de certificatie te verstoren. En de app werd van een review voorzien in de iphoneclub.nl en de androidworld.nl sites. Daarna waren er 5000 gebruikers van de app met 2500 concurrent. Dit zijn 200.00 screen vieuws per uur. Dit betekende 100+ web api requests per seconde. En met Azure konden we de schaalbaarheid snel opvoeren. De kosten gaan als een hockeystick omhoog.

Performance is belangrijk. De startup delays is erg belangrijk om te fixen. De app wordt maar even gebruikt. Kill die startup dus wan dit wordt steeds zichtbaar voor gebruikers, voelbaar in wachten! Optimaliseer de flow en doe niet te veel aan mapping:

  • Minimaal data in de local store plaatsen
  • Op de achtergrond data ophalen
  • Async is lastig. ConfigureAwait(false) helpt je voor non-ui code. Dit kan twee seconden schelen? Er zaten 300 awaits in de share code.
  • Sqllite.net/iqueriable werd vervangen door joson/ienumerable

Daarna werd Notificatie getoond. Er werd een simple type gestuurd. Azure hielp ons met het vertalen van de simpele notificatie naar de drie afzondelijke platformen.

Notificatie is niet eenvoudig. Het verdelen van de notificaties over groepen is een klusje om uit te zoeken. De notificatie voor Android is overigens wat trager, erg opvallend.

Xamarin geeft ons grip en vrijheid. Grip want we kunnen altijd terugvallen op native oplossingen. En we hebben vrijheid omdat we vrij kunnen combineren met de verschillende technieken en bibliotheken.

Uiteindelijk waren er 47000 gebruikers waarvan er 25000 per dag terugkwamen. Er was 90% code gedeeld.

Er is ook een user group: Dutch Mobile .NET Developers Group. Volgende week is er een meetup in Hilversum op de 11e.

Ook dit was een leerzame presentatie, dankjewel.

Daarna is een presentatie over Xamarin Forms gegeven. Dit geeft de mogelijkheid om voor IOS, Android en Windows de schermen gelijk te trekken met slechts 1 declaratie. Dit gebeurt in een XAML taal. Dus naast een gedeelde C# backend is er nu ook een gedeelde UI beschrijving.

En het bevat ook animaties, navigatie, messaging center en two-way binding. Er zijn momenteel 40+ visuele componenten beschikbaar. Deze worden op pages geplaatst met layouts.

Het viewmodel gebruik was heel prettig. Dit maakt het gebruik van andere MVVM oplossingen minder nodig.

En er werd een demo gegeven om Xamarin Forms van texttospeach te voorzien. Dit is typisch van het platform afhankelijk. En via een dependency injecty wordt de eigen platform implementatie van iedere platform toegevoegd (in dit geval IOS).

Xamarin Test Cloud geeft de mogelijkheid om apps op meerdere toestellen te testen. Met Test Cloud kun je de app testen op honderden toestellen. Agents gaan op de knoppen drukken via scripts. Want als je 75% marktaandeel wilt, dan moet je op 134 toestellen testern. En bij 90% op 288.

En met Test Cloud maak je eerst een UI test aan om lokaal te testen. Daarna zet je de test door naar het cloud testing lab. De apk en het script wordt dan op honderden toestellen gezet. Overigens kan dit ook met echte native apps. En we kunnen bijna alles simuleren wat ook gebruikers kunnen. Wat betreft rotatie. Vroeger werden er echt honderden toestellen fysiek gedraaid via motoren. Cool!

Test Cloud kan ook echt geïntegreerd worden in continuous delivery tezamen met versiebeheer.

In de demo werd op 49 toestellen getest. Er waren ook schermafdrukken voorafgaande aan foutmeldingen op de toestellen. In de nieuwe versie komt er zelfs een filmpje beschikbaar. Bij foutmeldingen is er een log en er is een stacktrace beschikbaar.

Het is een apart product en de maandelijkse kosten zijn 1000 dollar voor 200 testuren. Dit is een heel aardig getal. De moeite waard om uit te proberen dus.

Er is ook een Xamarin Profiler voor IOS, Android, Xamarin Forms, Windows en Mac. Er is een overzicht van geheugengebruik, sampling, memory snapshots, calltree en gewoon gratis. Deze werkt alleen met Xamarin apps.

En dan Xamarin Insights voor real-time monitoring en analytics op de clients (met alle crashes, ook op email). We weten het aantal concurrent gebruikers.

Ook kan je events zien. Zo meet je het gebruik van je app (wanneer starten, stoppen, navigatie, welke data getoond, etc.). Let wel op privacy van de gebruiker. Hier is ook regelgeving voor. Voorlopig is het nog gratis.

En dan is de Xamarin Android Player. Dit is een alternatief voor de gewone google emulator (geen 2,5 minuut maar 17 seconden opstarttijd). Draait zowel op IOS als op Windows met hardware acceleratie. Let er op dat deze VM niet in een andere VM kan draaien. Deze is nog in Preview.

Wil je meer weten? Ga dan naar de Xamarin University. Er is een 30 dagen trial versie en MSDN gebruikers kunnen 90 dagen oefenen met Xamarin.

Xamarin voor Windows is nu nog gebaseerd op Silverlight apps. Dit kan in de toekomst overgaan tot universal apps. Dit is momenteel nog niet het geval.

Wearables ondersteuning is ook mogelijk. Denk aan de watches en de Google Glass.

Er is gevraagd of Roslynn de Xamarin mono compiler gaat vervangen. Xamarin heeft de compilers vergeleken en vind de compiler nog te traag. Roslynn is gloedje nieuw en Mono is 12 jaar oud. Dit kan in de toekomst nog veranderen 🙂

De roadmap van Xamarin Forms wordt door drie medewerkers gebouwd. De huidige roadmap is om bugs te fixen op de huidige oplevering (waar al enkele jaren aan gewerkt is). Ook een enkelvoudige visuele designer is niet iets wat direct geleverd gaat worden. Na de bugfixes gaan ze weer vooruit kijken. Het is wel iets waar ze hard aan (gaan) werken. Xamarin wilt niks beloven, anders krijgen ze ontwikkelaars met hooivorken achter zich aan als ze een datum noemen en niet halen 😉

Intellisense is één punt wat ze willen fixen. Workaround is het hacken van de UI in WPF pagina’s in Visual Studio.

Game development kan via de niet-officieel ondersteunde unreal engine. En er is een opensource project rond MonoGames.