SlideShare une entreprise Scribd logo
1  sur  49
Kryssplatform mobilutvikling
        Med .Net og Mono
Agenda
•   Intro, hvorfor kryssplatform
•   Intro til .Net og Mono (veldig kort!)
•   CrossBox v1
•   Pause – vi deler ut en billett til TDC
•   Patterns og arbeidsmåter som hjelper oss
•   CrossBox v2
•   Oppsummering (og litt mer kode hvis tid)
Kort om Capgemini
• Internasjonalt konsulenthus
  – 112.000 ansatte (!)
  – Ca 750 i Norge
  – Ca 60 i Trondheim
• Leverer Consulting, Teknologi og Outsourcing
• Fokus på et sterkt fagmiljø
  – Gode fagfolk
  – Gode muligheter for faglig utvikling
Rune da?
• Spesialist på .Net
• Veldig interessert i mobile løsninger

• Har fått en relativt «fri» stilling i Capgemini
   – Bruker mye tid på ny teknologi
   – Forskning, prøve ut nye metoder
   – Målet er å bygge kompetanse på kommende
     teknologi
Kryssplatform?
Kryssplatform?
• Gjenbruke mest mulig kode på tvers av
  platformene
  – Dekker ikke alle platformer, fokuserer på de store
     • iOS, Android og Windows Phone
  – Ikke Symbian, Blackberry eller Bada
     • For små eller døende...
Kryssplatform?
• Hvilke valg har vi?
  – Native kode fungerer ikke
     • Objective C, Java, .Net
  – HTML5 og Javascript
     • Fungerer, men hvor godt?
     • Facebook! HTML5 stinker...
  – Mono og .Net
     • Gir native apper
     • Kodes i C# mot .Net framework
Kryssplatform?
• Hvorfor .Net og Mono i stedet for «vanlig»
  native?
  – Nok å kunne ett språk, C#
     • I stedet for ObjectiveC, Java og C#
  – Lett å gjenbruke kode
  – Billigere
  – Lettere å teste
Noen ulemper
• Må sikte på felles egenskaper
  – Egenskaper som bare finnes på en platform kan
    ikke støttes (uten videre)
  – F.eks. tiles på WP7
  – Eksotisk Android-hardware
  – iPhone addons
• Du trenger to maskiner / to OS
  – PC / Windows for WP7 / Android
  – Mac for iOS / Android
Eksempler
• Kolumbus Sanntid
Eksempler
• Bussøyet!
Kryssplatform ala Rune
• Vi må først velge platform vi sikter på
  – Typisk:
     • iOS / iPhone
     • Android-telefoner
     • Windows Phone 7 (7.5)
  – Kanskje:
     • iPad
     • Android tablets
     • Windows 8 / Metro
Kryssplatform ala Rune
• Starter med .Net, C#
  – Starter med kode kompilert mot desktop .Net
     • Skrive testbar kode
     • Enhetstester
  – Implementerer så på WP7 siden det er lettest
     • GUI for WP7
  – Så bruker vi Mono!
     • Først Android siden den kjører på PC/Windows
Kryssplatform ala Rune
• Til slutt MonoTouch
  – iOS. Krever en Mac så vi må bytte...


• Andre versjoner
  – Metro / Windows 8?
     • Kan bruke C# og .Net
  – iPad og Android tablets
     • MonoTouch og Mono for Android
CrossBox!
... men den kommer vi tilbake til
Intro til



... tidenes korteste ...
.Net
• .Net er et rammeverk og en platform
• Kjører i en virtuell maskin
  – Common Language Runtime (CLR)
  – Standardisert og åpen spesifikasjon
• Støtter mange språk
  – C#, VB.Net, F#, C++, osv.
• Svært stort og rikt rammeverk
  – Veldig mye funksjonalitet innebygd
C#
• Et typesikkert og objektorientert språk
• Inspirert av C++ og Java
  – Men rikere samtidig som det er enklere
• LINQ
  – Language integrated query
  – Async
• Åpen spesifikasjon
Intro til Mono
... veldig kjapp denne også ...
Mono
• Mono er en open source implementasjon av
  .Net-rammeverket
• Kjører på Linux, Mac, Windows
  – iOS, Android
  – Diverse rare platformer: Wii, PS3, Amiga OS, +++
• Ganske kompatibel, men ikke 100%
• MonoDevelop er en open source editor som
  kjører på Mono
Mono for Android
• Kjører på Android i parallell med Java-VM’en
• Nesten komplett versjon av Mono
  – Støtter avanserte features som Reflection og
    kodegenerering
• Kan bruke Java-klasser og dele ut
  komponenter med Java
MonoTouch (iOS)
• Kompilerer C# til native kode
  – Noen begrensninger
  – Ikke kodegenerering
  – Svakheter i generics
• Kan kalle ObjC-biblioteker og native kode
Windows Phone 7
• Kjører en nedskalert versjon av Silverlight
• Bare asynkrone versjoner av API
  – Gir mer responsive applikasjoner
• Mangler noen av funksjonene i .Net
  framework
• Begrensninger i reflection
Kryssplatform .Net
• Må se på hvilke platformer man vil støtte
  – Gå for et minste felles multiplum
• Starte på WP7 og unngå kodegenerering
  – 99% sikker at koden kjører på alle platformer
• Bør unngå GUI-komponenter i koden
• Abstrahere trådhåndtering dersom det er
  nødvendig
KODE!

        ... endelig ...
(men ikke gjør dette hjemme)
Hvordan lagde vi appen?
• Bruker DropNet for integrasjon mot DropBox
  – Kjører på alle tre platformene
  – Må registrere app key hos DropBox
• DropNet dekker ikke GUI for autentisering
  – Vise webside med riktig URL
  – Tre forskjellige måter å gjøre dette på
  – Lager et interface som beskriver operasjonen
  – Implementerer på hver plattform
Programmere mot interface
• Dette er lurt!
• Interface gir operasjonene
  – Men vi bryr oss ikke om hvordan de fungerer
  – Gjør ingen ting at utførelsen er forskjellig
• Muliggjør mer gjenbruk
Svakhetene med løsningen
• Ikke testet
• For lite gjenbruk av kode
• Er vi sikre på at oppførselen er lik på alle
  platformer?
• Dårlig skille mellom GUI og
  «forretningslogikk»
PAUSE!
 hvem blir med på TDC?
Svakhetene med løsningen
• Ikke testet
• For lite gjenbruk av kode
• Er vi sikre på at oppførselen er lik på alle
  platformer?
• Dårlig skille mellom GUI og
  «forretningslogikk»
Mål for versjon 2
•   Enhetstester av all funksjonalitet
•   Gjenbruke all forretningslogikk
•   Native GUI for hver platform
•   Tydelig skille mellom presentasjon og modell
Noen verktøy
• MVVM – patternet
• Enhetstester, NUnit
• MVVM – bibliotek, MVVMCross
MVVM
• Model View ViewModel
  – (verdens mest krøkkete navn!)
  – Baserer seg på MVC
• Skiller mellom
  – Model – dataene som skal presenteres
  – View – presentasjonen av dataene
  – ViewModel – En logisk modell av view som
    beskriver oppførsel
MVVM
• ViewModel skal
  – Være testbar
  – Beskrive all oppførsel
  – Være gjenbrukbar
  – Innkapsle data
  – Ikke ha knytninger til presentasjon
  – Varsle om endringer
MVVM
• View skal
  – Bare bry seg om presentasjon
  – Være platformspesifikk
  – Knyttes mot en ViewModel
  – Helst ikke ha kode som beskriver oppførsel
     • Men det er lov å synde :-)
MVVM
• Model skal
  – Beskrive data
  – Være enkel
  – Ikke beskrive oppførsel
MVVM
• I tillegg trenger vi
   – Services
      • IDropBoxClient er et eksempel
   – Converters
      • Konverterer f.eks. en boolean til et Visibility-objekt
   – Infrastructure
      • Oppsett av applikasjon
      • Navigasjon
      • Osv.
Hvor brukes MVVM?
•   WPF
•   Silverlight
•   Windows Phone
•   Windows 8 / WinRT
•   Web / HTML5
    – Knockout.js, KendoUI
• MVVMCross
    – iOS, Android
MVVMCross
• Kryss-platform MVVM-bibliotek
  – Open source
• Kjører på
  – WP7
  – MonoTouch
  – Mono for Android
  – WinRT
  – Desktop (for testing)
MVVMCross
• Gjør det mulig med MVVM på platformene
  den støtter
• Noen begrensninger
  – Litt umoden
  – Litt tungvint på iOS
  – Trenger kanskje litt tilpasninger
(veldig kort om)   Enhetstesting
• Bruker Nunit
• Tester oppførsel for ViewModels
• Lager Mock-objekter for tjenester
  – IDropBoxClient
• Kjører på desktop
• Tester ikke UI og platformspesifikk kode
  – Det er mulig, men vi har ikke tid i dag :-)
KODE!

           ... igjen ...
(og denne gangen blir det bedre)
Oppsummering
• Vi har laget en kryss-platform DropBox-klient
  – Bruker .Net og Mono
  – DropNet for integrasjon mot DropBox
  – Egen interface for å abstrahere vekk
    implementasjon
  – Enhetstester
  – MVVM-patternet
  – MVVMCross
Ressurser
• Last ned koden på GitHub:
  – https://github.com/runegri/CrossBox
• Test MVVMCross:
  – https://github.com/slodge/MvvmCross
• NUnit:
  – http://www.nunit.org/
• Intro til MVVM fra StackOverflow:
  – bit.ly/8EVvwN
Ta kontakt!
• Twitter: @runegri
• GitHub: https://github.com/runegri/
• Epost:
  – rag@rag.no
  – rune-andreas.grimstad@capgemini.com
• Presentasjonen kommer på SlideShare

Contenu connexe

Similaire à Kryssplatform mobilutvikling

Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
Vet du hva DNX innebærer for deg som .NET-utvikler?
Vet du hva DNX innebærer for deg som .NET-utvikler?Vet du hva DNX innebærer for deg som .NET-utvikler?
Vet du hva DNX innebærer for deg som .NET-utvikler?Joar Øyen
 
Slik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSlik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSimen Sommerfeldt
 
Rwd seminar 2013
Rwd seminar 2013Rwd seminar 2013
Rwd seminar 2013CoreTrek
 
Phonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklerePhonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklereAnders Brenna
 
Intro til windows 8
Intro til windows 8Intro til windows 8
Intro til windows 8goeran
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPOle Kristian Mørch-Storstein
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksisHåvard Wigtil
 
GoOpen 2010: Lars Åge Kamfjord
GoOpen 2010: Lars Åge KamfjordGoOpen 2010: Lars Åge Kamfjord
GoOpen 2010: Lars Åge KamfjordFriprogsenteret
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOpsAudunSolemdal
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattformHåvard Wigtil
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattformHåvard Wigtil
 
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformHåvard Wigtil
 
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrPresentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrFrontkom
 
Presentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and SolrPresentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and SolrHenrik Akselsen
 
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016Geodata AS
 

Similaire à Kryssplatform mobilutvikling (20)

Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
Vet du hva DNX innebærer for deg som .NET-utvikler?
Vet du hva DNX innebærer for deg som .NET-utvikler?Vet du hva DNX innebærer for deg som .NET-utvikler?
Vet du hva DNX innebærer for deg som .NET-utvikler?
 
Slik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSlik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node red
 
Rwd seminar 2013
Rwd seminar 2013Rwd seminar 2013
Rwd seminar 2013
 
Phonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklerePhonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklere
 
Tcd 2014 tirsdag_05 mintra_mobile_enheter
Tcd 2014 tirsdag_05 mintra_mobile_enheterTcd 2014 tirsdag_05 mintra_mobile_enheter
Tcd 2014 tirsdag_05 mintra_mobile_enheter
 
Intro til windows 8
Intro til windows 8Intro til windows 8
Intro til windows 8
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
GoOpen 2010: Lars Åge Kamfjord
GoOpen 2010: Lars Åge KamfjordGoOpen 2010: Lars Åge Kamfjord
GoOpen 2010: Lars Åge Kamfjord
 
Hvordan lage apper
Hvordan lage apperHvordan lage apper
Hvordan lage apper
 
Aws på kartet - 2
Aws på kartet - 2Aws på kartet - 2
Aws på kartet - 2
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
Hele butikken i skyen
Hele butikken i skyenHele butikken i skyen
Hele butikken i skyen
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattform
 
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrPresentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
 
Presentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and SolrPresentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and Solr
 
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
 

Kryssplatform mobilutvikling

  • 1. Kryssplatform mobilutvikling Med .Net og Mono
  • 2. Agenda • Intro, hvorfor kryssplatform • Intro til .Net og Mono (veldig kort!) • CrossBox v1 • Pause – vi deler ut en billett til TDC • Patterns og arbeidsmåter som hjelper oss • CrossBox v2 • Oppsummering (og litt mer kode hvis tid)
  • 3. Kort om Capgemini • Internasjonalt konsulenthus – 112.000 ansatte (!) – Ca 750 i Norge – Ca 60 i Trondheim • Leverer Consulting, Teknologi og Outsourcing • Fokus på et sterkt fagmiljø – Gode fagfolk – Gode muligheter for faglig utvikling
  • 4. Rune da? • Spesialist på .Net • Veldig interessert i mobile løsninger • Har fått en relativt «fri» stilling i Capgemini – Bruker mye tid på ny teknologi – Forskning, prøve ut nye metoder – Målet er å bygge kompetanse på kommende teknologi
  • 6. Kryssplatform? • Gjenbruke mest mulig kode på tvers av platformene – Dekker ikke alle platformer, fokuserer på de store • iOS, Android og Windows Phone – Ikke Symbian, Blackberry eller Bada • For små eller døende...
  • 7. Kryssplatform? • Hvilke valg har vi? – Native kode fungerer ikke • Objective C, Java, .Net – HTML5 og Javascript • Fungerer, men hvor godt? • Facebook! HTML5 stinker... – Mono og .Net • Gir native apper • Kodes i C# mot .Net framework
  • 8. Kryssplatform? • Hvorfor .Net og Mono i stedet for «vanlig» native? – Nok å kunne ett språk, C# • I stedet for ObjectiveC, Java og C# – Lett å gjenbruke kode – Billigere – Lettere å teste
  • 9. Noen ulemper • Må sikte på felles egenskaper – Egenskaper som bare finnes på en platform kan ikke støttes (uten videre) – F.eks. tiles på WP7 – Eksotisk Android-hardware – iPhone addons • Du trenger to maskiner / to OS – PC / Windows for WP7 / Android – Mac for iOS / Android
  • 11.
  • 12.
  • 14.
  • 15.
  • 16. Kryssplatform ala Rune • Vi må først velge platform vi sikter på – Typisk: • iOS / iPhone • Android-telefoner • Windows Phone 7 (7.5) – Kanskje: • iPad • Android tablets • Windows 8 / Metro
  • 17. Kryssplatform ala Rune • Starter med .Net, C# – Starter med kode kompilert mot desktop .Net • Skrive testbar kode • Enhetstester – Implementerer så på WP7 siden det er lettest • GUI for WP7 – Så bruker vi Mono! • Først Android siden den kjører på PC/Windows
  • 18. Kryssplatform ala Rune • Til slutt MonoTouch – iOS. Krever en Mac så vi må bytte... • Andre versjoner – Metro / Windows 8? • Kan bruke C# og .Net – iPad og Android tablets • MonoTouch og Mono for Android
  • 19. CrossBox! ... men den kommer vi tilbake til
  • 20. Intro til ... tidenes korteste ...
  • 21. .Net • .Net er et rammeverk og en platform • Kjører i en virtuell maskin – Common Language Runtime (CLR) – Standardisert og åpen spesifikasjon • Støtter mange språk – C#, VB.Net, F#, C++, osv. • Svært stort og rikt rammeverk – Veldig mye funksjonalitet innebygd
  • 22. C# • Et typesikkert og objektorientert språk • Inspirert av C++ og Java – Men rikere samtidig som det er enklere • LINQ – Language integrated query – Async • Åpen spesifikasjon
  • 23. Intro til Mono ... veldig kjapp denne også ...
  • 24. Mono • Mono er en open source implementasjon av .Net-rammeverket • Kjører på Linux, Mac, Windows – iOS, Android – Diverse rare platformer: Wii, PS3, Amiga OS, +++ • Ganske kompatibel, men ikke 100% • MonoDevelop er en open source editor som kjører på Mono
  • 25. Mono for Android • Kjører på Android i parallell med Java-VM’en • Nesten komplett versjon av Mono – Støtter avanserte features som Reflection og kodegenerering • Kan bruke Java-klasser og dele ut komponenter med Java
  • 26. MonoTouch (iOS) • Kompilerer C# til native kode – Noen begrensninger – Ikke kodegenerering – Svakheter i generics • Kan kalle ObjC-biblioteker og native kode
  • 27. Windows Phone 7 • Kjører en nedskalert versjon av Silverlight • Bare asynkrone versjoner av API – Gir mer responsive applikasjoner • Mangler noen av funksjonene i .Net framework • Begrensninger i reflection
  • 28. Kryssplatform .Net • Må se på hvilke platformer man vil støtte – Gå for et minste felles multiplum • Starte på WP7 og unngå kodegenerering – 99% sikker at koden kjører på alle platformer • Bør unngå GUI-komponenter i koden • Abstrahere trådhåndtering dersom det er nødvendig
  • 29. KODE! ... endelig ... (men ikke gjør dette hjemme)
  • 30. Hvordan lagde vi appen? • Bruker DropNet for integrasjon mot DropBox – Kjører på alle tre platformene – Må registrere app key hos DropBox • DropNet dekker ikke GUI for autentisering – Vise webside med riktig URL – Tre forskjellige måter å gjøre dette på – Lager et interface som beskriver operasjonen – Implementerer på hver plattform
  • 31. Programmere mot interface • Dette er lurt! • Interface gir operasjonene – Men vi bryr oss ikke om hvordan de fungerer – Gjør ingen ting at utførelsen er forskjellig • Muliggjør mer gjenbruk
  • 32. Svakhetene med løsningen • Ikke testet • For lite gjenbruk av kode • Er vi sikre på at oppførselen er lik på alle platformer? • Dårlig skille mellom GUI og «forretningslogikk»
  • 33. PAUSE! hvem blir med på TDC?
  • 34. Svakhetene med løsningen • Ikke testet • For lite gjenbruk av kode • Er vi sikre på at oppførselen er lik på alle platformer? • Dårlig skille mellom GUI og «forretningslogikk»
  • 35. Mål for versjon 2 • Enhetstester av all funksjonalitet • Gjenbruke all forretningslogikk • Native GUI for hver platform • Tydelig skille mellom presentasjon og modell
  • 36. Noen verktøy • MVVM – patternet • Enhetstester, NUnit • MVVM – bibliotek, MVVMCross
  • 37. MVVM • Model View ViewModel – (verdens mest krøkkete navn!) – Baserer seg på MVC • Skiller mellom – Model – dataene som skal presenteres – View – presentasjonen av dataene – ViewModel – En logisk modell av view som beskriver oppførsel
  • 38. MVVM • ViewModel skal – Være testbar – Beskrive all oppførsel – Være gjenbrukbar – Innkapsle data – Ikke ha knytninger til presentasjon – Varsle om endringer
  • 39. MVVM • View skal – Bare bry seg om presentasjon – Være platformspesifikk – Knyttes mot en ViewModel – Helst ikke ha kode som beskriver oppførsel • Men det er lov å synde :-)
  • 40. MVVM • Model skal – Beskrive data – Være enkel – Ikke beskrive oppførsel
  • 41. MVVM • I tillegg trenger vi – Services • IDropBoxClient er et eksempel – Converters • Konverterer f.eks. en boolean til et Visibility-objekt – Infrastructure • Oppsett av applikasjon • Navigasjon • Osv.
  • 42. Hvor brukes MVVM? • WPF • Silverlight • Windows Phone • Windows 8 / WinRT • Web / HTML5 – Knockout.js, KendoUI • MVVMCross – iOS, Android
  • 43. MVVMCross • Kryss-platform MVVM-bibliotek – Open source • Kjører på – WP7 – MonoTouch – Mono for Android – WinRT – Desktop (for testing)
  • 44. MVVMCross • Gjør det mulig med MVVM på platformene den støtter • Noen begrensninger – Litt umoden – Litt tungvint på iOS – Trenger kanskje litt tilpasninger
  • 45. (veldig kort om) Enhetstesting • Bruker Nunit • Tester oppførsel for ViewModels • Lager Mock-objekter for tjenester – IDropBoxClient • Kjører på desktop • Tester ikke UI og platformspesifikk kode – Det er mulig, men vi har ikke tid i dag :-)
  • 46. KODE! ... igjen ... (og denne gangen blir det bedre)
  • 47. Oppsummering • Vi har laget en kryss-platform DropBox-klient – Bruker .Net og Mono – DropNet for integrasjon mot DropBox – Egen interface for å abstrahere vekk implementasjon – Enhetstester – MVVM-patternet – MVVMCross
  • 48. Ressurser • Last ned koden på GitHub: – https://github.com/runegri/CrossBox • Test MVVMCross: – https://github.com/slodge/MvvmCross • NUnit: – http://www.nunit.org/ • Intro til MVVM fra StackOverflow: – bit.ly/8EVvwN
  • 49. Ta kontakt! • Twitter: @runegri • GitHub: https://github.com/runegri/ • Epost: – rag@rag.no – rune-andreas.grimstad@capgemini.com • Presentasjonen kommer på SlideShare