Mobile First Cloud First

A blog by Geert van der Cruijsen on Software Development, Cloud, DevOps & Apps

Month: April 2016

Xamarin Evolve Day 1 Recap

At the moment of writing i’m still at Xamarin Evolve. Yesterday was the first day of the conference where all the new goodies were announced. Time for a quick recap of what was announced and the sessions i followed.

The day started with a so called “mini-hack” at 6.15 in the morning. There are several mini-hacks at evolve most of them require you to do some basic exercise with a specific technology or tool such as Hockeyapp, MS Cognitive services, Bitwise etc. This one was a bit different. Craig Dunn organised a 5k run at 6.15 in the morning with a bunch of Xamarinians. I joined together with my Colleague Roy and other Dutchguy Marco Kuiper. It was a great run and really gave a boost of energy to start the day. After that it was time to get breakfast and head to the keynote.

Keynote: Nat took the stage and told everyone about some things that happened since the Microsoft takeover. Interest in Xamarin increased by 3x since the announcement of the Microsoft merge. Great times to be a Xamarin developer! After Nat, Miguel took the stage to show us the new stuff.

Miguel showed us the dark theme for Xamarin studio for us young hackers. (felt me feel young again) I  really like using the dark theme in Visual studio and now we also can in Xamarin Studio. Xamarin also included a lot of Roslyn features to improve code quality and to help you build beautiful code.

Xamarin also announced that they are open sourcing all the SDK’s and they will be located at open.xamarin.com. In the first few hours there were already pull requests which i think is pretty cool.

Miguel invited Nina Vyedin on stage to talk about the Xamarin forms previewer. Nina explained that XAML officially stands for Xamarin And Microsoft Love and after that she showed us how the Xamarin forms previewer works. I think this was THE feature where a lot of people were waiting for.

Miguel took over again after Nina and showed us his new baby the Xamarin Workbooks. i have to say i really love the workbooks and have played with it after they were released at BUILD. Workbooks are a great tool to teach people new features in Xamarin or C# in general. Workbooks are basically MarkDown files that contain text and also pieces of code. these pieces of code can be ran onto a simulator in real time. There are several sample workbooks which can be found here: https://github.com/xamarin/Workbooks

Xamarin Evolve 2016 pre-conference write up

Xamarin Evolve 2016 is about halfway now for the 600 people who attended the 2 days of training so time for me to do a quick write up on the last 2 days.

When Nat Friedman did the opening keynote he said: “This will be the best conference we ever did.. and with we i mean Microsoft” until now Xamarin/Microsoft is delivering.

 

 

Before Xamarin Evolve started we arrived in Orlando FL on Saturday. After having a great steak at Mortens on Saturday night we went to visit Kennedy Space Center on sunday before the training and conference kicked off. It was a great day with nice weather and really awesome things to see.

13103266_1152228171488906_8531731149448128603_n13082499_1152228194822237_9223364263606609861_n

13096075_1152228331488890_8129698238633410606_n

on the way back we had an Uber driver who was retired but was actually an engineer on the space shuttles for 30 years. He had some great stories from all the launches he had witnessed and cool stuff he worked on.

So back to Xamarin Evolve:

I joined the 2 day intermediate training and thought it was pretty good. I knew most of the stuff already since i’ve been working with Xamarin for several years now but it was good to do the training since my colleague Roy Cornelissen and i are in the process of becoming certified Xamarin trainers so we can deliver in person Xamarin training in the Netherlands or Europe. It was a good learning experience on how training like this works and we had really good trainers with Andrew Ditmer and Rob Ringham

Here are some of the topics we followed during the intermediate track:

Async / Await

We started off with some deep dive on async and await. I believe this is a crucial part of knowledge to “build better apps” which was the Andrew and Rob’s slogan for the training. In my role as technical architect and consultant i’ve lead several teams of junior developers and using async and await is something a lot of people are doing wrong. The main reason why people use it incorrectly is because it seems so easy while before async/await was announced doing multi threading was quite a burden.  It’s really important for a developer to know what happens behind this syntactic sugar of async await and during this training Andrew and Rob told the class all about it.

Cross Platform Design

One of my favorite parts of doing software development is design patterns. During the second part of the training we looked at patterns on how to share code between several platforms and we mainly looked at 3 patterns: The Factory pattern, the service locator pattern and my favourite Dependency injection. although this seems basic for me it wasn’t that much for most people in the class. Setting up your software architecture to use dependency injection is really important to make testable maintainable code. Lot’s of people don’t like this kind of work but shaving yaks as it is called is one of my favourite things

shavethatyak

Testing

After we had set up a good testable software architecture it was time to talk testing. we started of with basic unit testing (which in my opinion should be part of any basic programming track) but i was baffled by the amount of people not doing any unit tests in our class.  We talked about AAA (Arrange, Act, Assert) and quickly moved to Xamarin UI tests and test cloud.

The testing subject concluded the first day and we continued the 2nd day of training on tuesday:

Securing local data

Security, a topic not that many people had to many knowledge about. We talked about the Xamarin.Auth library which can really help you with securing and encrypting local data. Of course this library is open source and located on github: https://github.com/xamarin/Xamarin.Auth

my Xpirit colleague Roy actually found a bug in Xamarin.Auth about a year ago and the cool thing of Evolve is that all the Xamarin guys are actually here on Evolve as well. so our trainers send a message to the guy who maintained Xamarin.Auth and he came to our classroom to talk about the bug and the pull request Roy made to get it fixed.

Oauth

After securing local data we continued the training with using Oauth which is a topic that a lot of apps will use. not that many people had to much knowledge about it because this is set up once most of the time and people don’t really understand what is going on. The Xamarin.Auth library can help you with OAuth as well and although we didn’t cover it you could also use the Microsoft ADAL library for doing Oauth.

Garbage collection and Memory management

The last topic was all about garbage collection (Rob’s favourite topic). When you are building apps and are not focussing on memory management or have no clue on how to do it  this will eventually bite you in the back so it was essential for the training. We talked about all the pitfalls and tips and tricks for doing memory management in both iOS and Android.

This rounded up the training. most of these topics can be found as tracks in Xamarin University so if you have an account there you can do these courses as well.

After the training the Darwin lounge was opened and Xamarin showed again how to throw a great party. On monday evening we already had a great party at La layettes and this time there was great food and drinks  throughout the darwin lounge and sponsor stands.

There was some local craft beer tasting, Artisan chocolate tasting. build your own tacos, paella and other great food. I had the chance to talk to a lot of Xamarin people, some Dutch people i met and my former Avanade Colleagues who i’ve bumped into.

ChBP_l1W4AE2wk-.jpg-large

After having some great talks and beers it was time to go to bed because this morning at 6.15 we had to go for the Xamarin Evolve 5k minihack organised by Craig Dunn.

there was quite a lot of people there at 6.15 and it was a great run. Thanks Craig!

 

In about 45 minutes the keynote is starting so now it’s time for me to grab some breakfast and head to the keynote. For news about the keynote watch the live stream of follow my twitter updates.

New Challenge, New Adventure: Joined Xpirit

Last week was my first week at my new job at Xpirit. I joined Xpirit on april 1st to become a Lead Consultant focussing on Mobile technology. Xpirit is a new company that started about 1.5 years ago by a small group of rockstars from the Dutch .Net community such as Marcel de Vries (CTO Xpirit), Alex Thissen (Lead Consultant Cloud), Roy Cornelissen (Lead Consultant Mobility) and  Pascal Greuter (Managing Director & Sales). In the past 1.5 years even more rockstars joined such as Rene van Osnabrugge (Lead Consultant ALM) and my former Avanade colleague Jesse Houwing (Lead Consultant ALM). Xpirit has knowledge on the full Microsoft development stack and has 3 main focus areas: Cloud, ALM & Mobile.

Avanade Xpirit

I was asked to join Xpirit a few months back and I was honoured to be be chosen to work with these great guys and to help grow this company into becoming even more of an authority in the Cloud, ALM & Mobile space.  It was hard for me to leave Avanade though, a company where i started 8.5 years ago as a junior consultant working mostly on web technology in Asp.Net & C#. At Avanade i was able to grow my career and switch to Mobile application development as this emerged over the last years up to becoming the Mobile capability lead at Avanade Netherlands which was my final role before I left. I’m really thankful to Avanade of all the opportunities they gave me to grow as a consultant, developer but also as a person.

A special shoutout to a couple of guys at Avanade who i’ve worked with for a long time at Avanade and made my stay there really awesome. Tijmen van de Kamp, my manager and my peers: Sander Schutten, Rob Bakkers, Christiaan Veeningen & Albert Sluijter

The time to join Xpirit seems perfect looking at all the new announcements regarding Xamarin joining Microsoft (Everyone get’s a Xamarin) and all the momentum around Mobile technology and Xamarin in specific. Together with Roy Cornelissen i’ll helping our customers with everything related to Mobile technology such as Xamarin but also mobile devops & mobile ALM.

The first week was awesome and besides meeting all my colleagues (easier with 12 colleagues in our technical team  compared to 350 of Avanade in the Netherlands 😉 ) i’ve already met new exiting clients and prospects so i’m really exited about my future at Xpirit.

I’m also really exited about all the things Xpirit does for the developer community and am really glad i can be a part of this such as speaking at events, meetups, writing blogposts or publishing articles.  Regarding articles: check out the Xpirit magazine that was just released. You can download a PDF or order a free hardcopy to read at home. This magazine doesn’t contain an article by my hand yet since it was already finished before i joined but i hope to be part of the next one coming in a couple of months.

Xpirit magazine

By the way, Xpirit is still looking for other rockstars from the Microsoft community to join Xpirit. Are you an authority in Cloud, ALM or Mobile reach out to me so i can get you into contact with the right persons.

Geert

Improved Hockeyapp publishing from VSTS for Windows 10 UWP apps

In my last blogposts that  showed a tutorial on how to do automated builds in VSTS and continuous deployments to Hockeyapp. For UWP the support wasn’t that good and we couldn’t use the Hockeyapp Build steps from VSTS because Hockeyapp could not handle zip files containing the files from your app package such as the appx or appxbundle file, the powershell install script etc. I made a workaround using powershell but that is not needed anymore because the Hockeyapp team made some changes to the Hockeyapp build step.

This has changed last week although it wasn’t announced anywhere. I asked the question on the Hockeyapp slack group when the Hockeyapp team would implement this feature and they told me they just did it before the Microsoft Build conference started.

So if you’ve used my Powershell script before to publish your app to Hockeyapp you can now change it back to the  Hockeyapp build step and leave the rest of the steps the same. the zip file should contain all your files from the AppPackages folder. I’ve also updated the tutorial post for anyone who’s using it in the future to use the correct way right away.

image_thumb62.png

Hockey app UWP deployment

If there is an .appxsym file in the zip file as well the symbols will also be used within Hockeyapp.

I’m really glad that UWP apps are on the same level of maturity again as Android and iOS apps are regarding Continuous deployments in Hockeyapp.

The Hockeyapp team also announced in the public Hockeyapp Slack group that they are working with the Windows product team to improve installation of apps so more to come in the future. I can’t wait!

Happy Coding!

Geert van der Cruijsen