Xamarin med Visual Studio for Mac er utmerekde verktøy for utvikling av Apper - være seg iOS eller Android baserte. Det elegante med Xamarin er at du kan benytte programmeringsspråket C# til all koding, og du slipper dermed å lære X-Code for iOS eller Java for Android. Koden kompileres inn til "native" kode for Android og iOS slik at resultatet blir en optimalisert kode.
Selv om programmeringsspråket er likt for både iOS og Android, så vil det likevel i en del tilfeller være ting som må gjøres spesielt for den enkelte plattformen. F.eks. så er konfigurasjon av iOS og Android gjort på hver sin måte - dette er f.eks. hvor man navngir "pakken", tildeling av versjonsnummer, og mye annet. For iOS gjør du normalt dette i en fil som heter info.plist, mens for Android kan man gjøre mye av dette ved å høyreklikke på Android-solution og så velge "Options" menyen. For Android vil den informasjonen som legges inn i her bli lagret i en fil som heter AndroidManifest.xml. Enkelte ganger må denne filen redigeres manuelt, og det kan da være greit å vite hvor denne er lagret - [Solution Name]>[App Name]>Properties>AndroidManifest.xml
Jeg kom nylig over et problem hvor det ikke var mulig å debugge Android-versjonen av appen ved bruk av en USB-tilkoblet ekstern Android-telefon. Alt bygde fint, og opplastingen til den eksterne telefonen virket å gå helt smertefritt, men så stoppet plutselig Visual Studio - og det var ikke mulig å kjøre debug-versjonen på den tilknyttede Android-telefonen. Etter masse Googling så viste det seg at dette kan være et problem i Visual Studio 2019, og "løsningen", før Microsoft kommer ut med en mer permanent løsning, er rett å slett å endre "package name" i manifest-filen. Det jeg da gjorde var å åpne AndroidMaifest.xml, fant linjen med navnet package="no.xxxx.app" og endret dette til package="no.xxxx.app2" - og voilà, plutselig fungerte debugging på ekstern Android-telefon igjen,.
André Vold
Her er en rask liten BLOGGER BIO for å fortelle litt om min bakgrunn - og hvorfor jeg valgte programmering som fagfelt.