Xamarin.iOS controle en toegang camera

move-to-ios-icon

Wanneer je een app ontwikkeld en je wilt hierin bijvoorbeeld gebruik maken van een bepaalde privacy gevoelige data bronnen (camera, microfoon, gallery, contacts etc.) Dan moet je hier de gebruiker om toestemming voor vragen, in dit stukje laat ik zien hoe je de camera toegang kunt controleren van de app, en hoe je bij de eerste keer opstarten van de app de gebruiker om toestemming kunt vragen om de camera te gebruiken. Let op wanneer er gebruik wordt gemaakt van asynchrone code, dat je wel wacht op de gebruikers interactie op de vragen. Bijvoorbeeld: await cameraAccess();

        public async Task cameraAccess()
        {
            // Ophalen camera toegangs status
            AVAuthorizationStatus authStatus = AVCaptureDevice.GetAuthorizationStatus(AVMediaType.Video);

            if (authStatus == AVAuthorizationStatus.Authorized)
            {
                // Ja we hebben toegang tot de camera
                return true;
            }
            else if (authStatus == AVAuthorizationStatus.Denied)
            {
                // Nee camera toegang stat uit
                return false;
            }
            else if (authStatus == AVAuthorizationStatus.Restricted)
            {
                // restricted, gebeurt normaal gesproken niet
                return false;
            }
            else if (authStatus == AVAuthorizationStatus.NotDetermined)
            {
                // Niet bekend, waarschijnlijk eerste keer dat de app gestart wordt
                bool CamresultData = await AVCaptureDevice.RequestAccessForMediaTypeAsync(AVMediaType.Video);
                return CamresultData;
            }
            else
            {
                return false;
            }
        }

Xamarin Forms / iOS / Appsize

xamarin-logo

Apple hanteert in de app store een limiet van 100 megabyte voor apps zodat ze downloadbaar blijven via lte/3g (mobiele netwerken) . Ook wordt de app size groter wanneer deze geüpload/ingediend wordt in de app store, bijvoorbeeld een app binary van 53 megabyte kan bijvoorbeeld 110 megabyte worden. Dit komt omdat de binary’s aangepast worden voor specifieke platformen. Maar door middel van wijzigingen in de linker en builder kun je de app size reduceren zodat hij na upload in de app store ook onder de 100 megabyte blijft. Mijn app ging van 53 megabyte naar 20 megabyte.

Aanpassingen die ik hiervoor gedaan heb zijn:

  • iOS build generally, General, linker behavior op: link SDK assemblies only
  • iOS build generally, Advanced, generic value type sharing: ja

Optioneel kun je nog builden voor een specifieke platform architectuur, dit raad echter af omdat dit app compatibiliteit niet ten goede komt.

postvak-in-debugachtergrondonderzoek-nl-outlook_2postvak-in-debugachtergrondonderzoek-nl-outlook