kryssplatform mobilutvikling i c# vha. xamarin.forms

36
ENABLING EFFICIENT HEALTHCARE Kryssplattform mobilutvikling vha. C# Runar Ovesen Hjerpbakk | Software Engineering Manager| [email protected] aka Xamarin er Awesome!

Upload: runar-ovesen-hjerpbakk

Post on 09-Aug-2015

211 views

Category:

Healthcare


2 download

TRANSCRIPT

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Kryssplattform mobilutvikling vha. C#

Runar Ovesen Hjerpbakk | Software Engineering Manager| [email protected]

aka Xamarin er Awesome!

E N A B L I N G E F F I C I E N T H E A L T H C A R E

DIPS? DIPS. Motivasjon Hvorfor C# og Xamarin? Konsepter DIRC (DIPS IRC)

Agenda

E N A B L I N G E F F I C I E N T H E A L T H C A R E

DIRC

E N A B L I N G E F F I C I E N T H E A L T H C A R E

A dedicated focus on enabling paperless hospitals since 1987

We develop and deliver one of the world’s most feature rich EPR-system

DIPS is used by 80% of Norwegian hospitals

The most important tool for 80 000 healthcare workers

Truly integrated eHealth-platform, delivered on time

Facts about DIPS

E N A B L I N G E F F I C I E N T H E A L T H C A R E

DIPS Arena

E N A B L I N G E F F I C I E N T H E A L T H C A R E

220 employees

Software Engineers Nurses Medical Doctors

Agile organization Low turnover and

high employee satisfaction Cross-functional teams

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Kontinuerlig vekst

1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 20130

50

100

150

200

250

300RevenueEmployeesProfit

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Smidig metodikk

Daily Standup Kontinuerlig integrasjon Automatisert testing Kodegjennomgang Parprogrammering Refactoring Interessanttimer Demonstrasjoner Retrospectives

E N A B L I N G E F F I C I E N T H E A L T H C A R E

2014: Administration of pharmaceuticals by means of smartphone

2015: Forenklet forordning av medikamenter ved bruk av erfaringsdata

2016: ???

HiST Bachelor

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Før var alt enkelt: DOS!

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Før var alt enkelt: Windows!

E N A B L I N G E F F I C I E N T H E A L T H C A R E

DIPS Mobile Platform 2007

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Dagens klientlandskap

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Ikke bare mobiler

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Andre forventninger fra brukerne

E N A B L I N G E F F I C I E N T H E A L T H C A R E

DIPS Mobile Platform 2014

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Native utvikling

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Hybrider

Omtrent umulig å få til native brukeropplevlse

Ytelsen!

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Xamarin redder oss!

Alt du kan gjøre i Objective-C, Swift eller Java, kan du gjøre i C# vha. Xamarin!

E N A B L I N G E F F I C I E N T H E A L T H C A R E

C# fordeler

«Ligner på Java, alt er bare bedre.»

«Visual Studio med ReSharperer verdens beste IDE»

- Runar Ovesen Hjerpbakk

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Async og Awaitprivate async Task SnapAndPostAsync (){    try {        Busy = true;        UpdateUIStatus ("Taking a picture");        var picker = new Xamarin.Media.MediaPicker ();        var mFile = await picker.TakePhotoAsync (new Xamarin.Media.StoreCameraMediaOptions ());        var tagsCtrl = new GetTagsUIViewController (mFile.GetStream ());

        // Call new iOS await API        await PresentViewControllerAsync (tagsCtrl, true);        UpdateUIStatus ("Submitting picture to server");

        await PostPicToServiceAsync (mFile.GetStream (), tagsCtrl.Tags);        UpdateUIStatus ("Success");    } catch (OperationCanceledException) {        UpdateUIStatus ("Canceled");    } finally {        Busy = false;    }}

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Xamarin.Forms

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Xamarin.Forms

E N A B L I N G E F F I C I E N T H E A L T H C A R E

E N A B L I N G E F F I C I E N T H E A L T H C A R E

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Xamarin Forms

E N A B L I N G E F F I C I E N T H E A L T H C A R E

MVC er ut, MVVM er inn

E N A B L I N G E F F I C I E N T H E A L T H C A R E

DIRC

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Felt for å skrive inn navn og knapp for å gå videre

Milestone 1: Påloggingskjerm

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Client.cs er kommunikasjonskanal mot serveren: http://tinyurl.com/kqdlnpm

Client avgir C#-eventer når hendelser skjer, f.eks. når en ny melding kommer inn

Serveren sender deg andres meldinger, men ikke de du skriver selv…

Milestone 2: n00b-chat

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Make it pretty! Bruk Custom Renderes for å få et fint

utseende på din plattform.

Milestone 3: Pro-chat

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Hva vi ikke har pratet om: Xamarin Insights

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Hva vi ikke har pratet om: Xamarin Profiler

E N A B L I N G E F F I C I E N T H E A L T H C A R E

Hva vi ikke har pratet om: Xamarin Test Cloud

E N A B L I N G E F F I C I E N T H E A L T H C A R E

C# er et fantastisk språk og kan brukes på «alle» plattformer vha. bla. Xamarin

Kan bruke Visual Studio eller Xamarin Studio Native Apps kan gi bedre brukeropplevelse og bedre

ytelse enn hybrider Xamarin.Forms er en enkel vei til kryssplattform Opp mot 90% kodedeling på tvers av plattformer 27,533 - 3. parts komponenter og biblioteker på NuGet

Oppsummering

E N A B L I N G E F F I C I E N T H E A L T H C A R E

@hjerpbakk

https://github.com/Sankra/DIRC

http://developer.xamarin.com/guides/cross-platform/xamarin-forms/

github.com/xamarin

Sommerjobber og faste stillinger for 2016 på dips.no

Spørsmål?