ID.nl logo
Zo kun je programmeren in Python - Deel 10
© PXimport
Huis

Zo kun je programmeren in Python - Deel 10

Tot nu toe leerden we je programmeren, maar we leerden je geen programma schrijven. Het verschil? Programmeren doe je voor jezelf; een programma schrijven voor iemand anders. Je wilt dat een gebruiker eenvoudig een programma kan oproepen met opties, een mooi resultaat te zien krijgt en ook hulp kan opvragen als hij niet weet hoe hij jouw programma moet gebruiken. Dat alles zien we in deze laatste les van Python.

In deze tiende les ronden we stilaan af. Tot nu toe leerde je allerlei aspecten van Python kennen en die brengen we in deze les allemaal samen. Op het einde van deze les heb je een programma dat je op de opdrachtregel kunt uitvoeren, dat argumenten afhandelt, foutmeldingen geeft en tekst in kleur toont.

Argumenten op de opdrachtregel

In les 3 al leerde je om invoer van de gebruiker te vragen met de functie input. En hoewel we ons programma daar in Thonny uitvoerden, vertelden we daar ook al dat je het programma in Windows, Linux of macOS ook op de opdrachtregel kunt uitvoeren met:

python3 naamvanprogramma.py

Maar van programma’s op de opdrachtregel verwachten we dat je er ook argumenten aan kunt doorgeven, zoals DIR /s in Windows of ls -R in Linux en macOS. Hoe zorgen we dat onze eigen programma’s dat ook kunnen? Daar heeft Python gelukkig een oplossing voor met de module argparse in de standaardbibliotheek. In deze les schrijven we een programma dat de module palindroom uit les 6 gebruikt om van woorden te controleren of ze een palindroom zijn, en dat programma gaan we enkele argumenten geven.

Argumenten toevoegen

Als eerste willen we dat het programma ons vertelt of een woord dat we als argument aan het programma doorgeven een palindroom is. Dat ziet er zo uit:

from argparse import ArgumentParser

from palindroom import is_palindroom

parser = ArgumentParser(description='Bepaal of een woord een palindroom is.')

parser.add_argument("-w", "--woord", required=True, help="Het woord waarvan je wilt controleren of het een palindroom is")

args = parser.parse_args()

resultaat = is_palindroom(args.woord)

if resultaat:

print("Het woord '{}' is een palindroom.".format(args.woord))

else:

print("Het woord '{}' is geen palindroom.".format(args.woord))

Je ziet dat met argparse werken niet zo moeilijk is. Je maakt eerst een ArgumentParser-object aan met de beschrijving van je programma. Daarna voeg je een argument toe (in ons geval in een korte versie -w en een lange versie --woord) en lees je met parser.parse_args() de argumenten uit die de gebruiker op de opdrachtregel ingegeven heeft. De inhoud van het argument --woord vind je dan in de variabele args.woord.

Heel wat functionaliteit

Voer het programma nu eens uit:

$ python3 palindroomchecker.py -w parterretrap

Het woord 'parterretrap' is een palindroom.

$ python3 palindroomchecker.py -w parterretrak

Het woord 'parterretrak' is geen palindroom.

Merk op: we krijgen heel wat functionaliteit ‘gratis’ omdat argparse die voor ons uitvoert. Zo krijg je een foutmelding als je na -w geen woord opgeeft of als je het programma zonder het argument -w uitvoert (omdat we het argument toegevoegd hebben met required=True). En we krijgen ook het argument --help er gratis bij. Als je dit opgeeft, toont het programma de beschrijving van je programma en van alle argumenten die je gedefinieerd hebt:

$ python3 palindroomchecker.py -w

usage: palindroomchecker.py [-h] -w WOORD

palindroomchecker.py: error: argument -w/--woord: expected one argument

$ python3 palindroomchecker.py

usage: palindroomchecker.py [-h] -w WOORD

palindroomchecker.py: error: the following arguments are required: -w/--woord

$ python3 palindroomchecker.py --help

usage: palindroomchecker.py [-h] -w WOORD

Bepaal of een woord een palindroom is.

optional arguments:

-h, --help

-w WOORD, --woord WOORD

Het woord waarvan je wilt controleren of het een

palindroom is

Argumenten die elkaar uitsluiten

We willen het programma nu uitbreiden zodat je de palindroomtest ook één voor één kunt uitvoeren op alle regels in een tekstbestand. Daarvoor voegen we het argument -b toe. Maar het heeft geen zin om zowel -w als -b tegelijk op te geven, dus we moeten kunnen aangeven dat beide argumenten elkaar uitsluiten. Ook dat kan eenvoudig met argparse:

parser = ArgumentParser(description='Bepaal of een woord een palindroom is.')

bron = parser.add_mutually_exclusive_group(required=True)

bron.add_argument("-w", "--woord", help="Het woord waarvan je wilt controleren of het een palindroom is")

bron.add_argument("-b", "--bestand", help="Het bestand met woorden waarvan je wilt controleren of ze een palindroom zijn")

args = parser.parse_args()

Met parser.add_mutually_exclusive_group maken we een groep argumenten aan die elkaar uitsluiten. Met required=True van die methode zegen we dat de gebruiker exact een van de argumenten uit de groep moet gebruiken. Daarna voegen we onze argumenten aan die groep toe in plaats van aan het object parser.

Als we nu de controle of een woord een palindroom is en het tonen van het resultaat afsplitsen in een afzonderlijke functie toon_resultaat (dat laten we als oefening over aan jou), kunnen we beide gevallen van invoer (een woord op de opdrachtregel of woorden in een bestand waarvan je de naam op de opdrachtregel doorgeeft) eenvoudig afhandelen:

if args.woord:

toon_resultaat(args.woord)

else:

with open(args.bestand, 'rt') as bestand:

for regel in bestand:

toon_resultaat(regel.strip())

Probeer dit maar eens uit. Je zult zien dat je programma een foutmelding geeft als je geen of juist allebei de argumenten opgeeft.

In kleur

Je kunt ook kleuren toevoegen aan de uitvoer van je programma. Daarvoor gebruiken we het pakket colorama, dat je eerst nog met pip3 (zie de vorige les) dient te installeren omdat het niet tot de standaardbibliotheek van Python behoort. We importeren enkele functies uit de module en initialiseren daarna colorama:

from colorama import init, Fore, Back, Style

init()

Daarna kun je spelen met de voorgrondkleur, achtergrondkleur en helderheid van de tekst:

print(Fore.RED + 'Rode tekst...')

print(Back.GREEN + '... met een groene achtergrond.')

print(Style.RESET_ALL + Fore.RED + Style.DIM + 'Dof...')

print(Fore.GREEN + Style.BRIGHT + '... of juist helder.')

print(Style.RESET_ALL)

print('En nu weer normaal!')

Op het einde van je programma voeg je het best altijd deze regel toe:

deinit()

Die reset de uitvoer, zodat de opdrachtregel na het uitvoeren van je programma niet plots helemaal in het rood is omdat je de voorgrondkleur bent vergeten terug te zetten!

Optionele argumenten

Die kleuren gaan we in onze palindroomchecker alleen gebruiken als je een optioneel argument --kleur aan je programma doorgeeft. Zo’n optioneel argument voegen we als volgt toe:

parser.add_argument("-k", "--kleur", action="store_true", help="Toon het gevraagde woord in kleur")

In ons programma kunnen we dan op de aanwezigheid van het optionele argument testen met if args.kleur:. Het if-else-blok uit ons originele programma vervangen we dan door de volgende geneste structuur:

if resultaat:

if args.kleur:

palindroom = Fore.GREEN + Style.BRIGHT + args.woord + Style.RESET_ALL

else:

palindroom = args.woord

print("Het woord '{}' is een palindroom.".format(palindroom))

else:

if args.kleur:

geen_palindroom = Fore.RED + Style.DIM + args.woord + Style.RESET_ALL

else:

geen_palindroom = args.woord

print("Het woord '{}' is geen palindroom.".format(geen_palindroom))

Fouten afhandelen

Als je nu in ons programma dat het argument -b voor een bestand ondersteunt een bestandsnaam doorgeeft die niet ondersteund is, breekt ons programma af met de volgende foutmelding en dan de bestandsnaam:

FileNotFoundError: [Errno 2] No such file or directory:

Bovendien krijg je ook de regel code te zien waarin het fout loopt. Voor een gebruiker die niets van Python kent, is dat nogal intimiderend. We gaan dus met een try-catch-blok die exception afhandelen (zie les 5) en een gebruiksvriendelijkere foutmelding tonen.

Voor we dat doen, moet je nog iets weten. Windows, Linux en macOS kennen drie ‘virtuele bestanden’ die belangrijk zijn op de opdrachtregel: stdin (de invoer van het toetsenbord), stdout (de normale uitvoer van het programma) en stderr (de foutenuitvoer van het programma). Standaard tonen we met print de uitvoer op stdout, maar met file=sys.stderr leiden we de foutenuitvoer om naar stderr. Dat ziet er dan als volgt uit (vergeet niet de regel import sys in het begin van je programma):

if args.woord:

toon_resultaat(args.woord)

else:

try:

with open(args.bestand, 'rt') as bestand:

for regel in bestand:

toon_resultaat(regel.strip())

except FileNotFoundError as fout:

print('Bestand {} niet gevonden'.format(fout.filename), file=sys.stderr)

We proberen hier dus het bestand te openen. Als dat niet lukt, vangen we een exception FileNotFoundError af. Merk op: met except FileNotFoundError as fout: kennen we de exception toe aan de variabele fout, zodat we nuttige informatie uit dit object kunnen opvragen. In dit geval is dat de bestandsnaam waarover het gaat (fout.filename). Die tonen we in de foutmelding aan de gebruiker, zodat die kan nakijken waarom het bestand niet bestaat.

De meldingen die we op stderr tonen, verschijnen overigens gewoon in de opdrachtregel zoals andere tekst die je met print toont. Maar het verschil is belangrijk. Zo kunnen andere programma’s bijvoorbeeld je foutmeldingen op stderr er uitfilteren.

Samenvatting

In deze les heb je geleerd hoe je een volledig Python-script ontwikkelt dat je op de opdrachtregel kunt uitvoeren. Je kunt argumenten afhandelen en foutmeldingen geven en je weet hoe je van kleur gebruik kunt maken in je programma. Daarmee sluiten we deze lessenreeks af. Je bent nu klaar om je eigen Python-programma’s te schrijven!

Opdracht

Voeg een optioneel argument ‘stil’ aan je programma toe dat alleen uitvoer geeft als het gevraagde woord een palindroom is, zodat je snel palindromen in grote bestanden kunt vinden.

Uitwerking

Het optionele argument voeg je eenvoudig als volgt toe: parser.add_argument("-s", "--stil", action="store_true", help="Toon het gevraagde woord als het een palindroom is; toon niets als het geen palindroom is.") Daarna definiëren we de functie toon_resultaat als volgt: def toon_resultaat(woord): resultaat = is_palindroom(woord) if resultaat: if args.stil: print(woord) else: print("Het woord '{}' is een palindroom.".format(woord)) else: if not args.stil: print("Het woord '{}' is geen palindroom.".format(woord)) In deze functie controleren we achtereenvolgens of het woord en palindroom is en of de gebruiker het optionele argument ‘stil’ heeft ingevoerd. Als we een palindroom hebben en het programma werkt stil, tonen we alleen het palindroom. Als we een palindroom hebben en het programma werkt niet stil, vertellen we in een hele zin dat het om een palindroom gaat. Als we geen palindroom hebben en het programma werkt stil, tonen we niets. En als we geen palindroom hebben en het programma werkt niet stil, vertellen we in een hele zin dat het niet om een palindroom gaat.

Cheatsheet

Stderr: de foutenuitvoer van een programma Stdout: de normale uitvoer van een programma

▼ Volgende artikel
Android-smartphone zónder Google? Zo doe je dat
© ltyuan - stock.adobe.com
Huis

Android-smartphone zónder Google? Zo doe je dat

Op een smartphone met Android wordt standaard alles aan je Google-account gekoppeld. Daardoor weet het bedrijf heel wat over jou en niet iedereen voelt zich daar goed bij. Gelukkig zijn er ook manieren om Android te gebruiken zonder dat je Google volledige inzicht in je digitale leven geeft, bijvoorbeeld met de alternatieve firmware LineageOS met microG.

In dit artikel laten we zien hoe je een Android-smartphone in kunt stellen zonder gebruik te maken van Google:

• Installeer LineageOS for microG • Configureer microG • Zorg ervoor dat je pushnotificaties kunt ontvangen • Installeer Local GSM Location zodat apps locatiegegevens kunnen opvragen • Installeer apps via F-Droid en Aurora Store

Mag het iets minder rigoureus? Lees dan: Ontsnap aan Googles ecosysteem

Wanneer je een Android-smartphone of -tablet installeert, is aanmelden met een Google-account een van de eerste dingen die je doet. Vanaf dat moment zijn alle Google-apps zoals Gmail, Google Maps, Chrome, Google Calendar en Google Play op je apparaat aan je account gekoppeld. Handig … maar zo krijgt Google wel heel veel controle over je digitale leven.

In principe kun je op je Android-apparaat gewoon geen Google-account aanmaken en alternatieve apps installeren. Maar omdat het hele besturingssysteem rond Google-componenten is gebouwd, is dat knap lastig. Dan installeer je beter een alternatieve Android-firmware die geen koppeling met het Google-ecosysteem heeft ingebouwd. In dit artikel doen we dat met LineageOS en microG, en hebben we het ook over enkele andere mogelijkheden.

1 Android Open Source Project

Voordat we naar die alternatieven kijken, moeten we het even hebben over hoe die mogelijk zijn als Google-diensten zo nauw met Android verweven zijn. De basis van Android bestaat uit het Android Open Source Project (AOSP). Dit is een volwaardig mobiel besturingssysteem waarvan de broncode beschikbaar is onder een opensource-licentie. Fabrikanten van Android-apparaten voegen hier drivers aan toe om Android op hun hardware te laten werken, en vaak nog eigen aanpassingen. Andere belangrijke componenten die we in een Android-systeem verwachten, zoals Google Play Services, zijn niet opensource. Wanneer je een Android-telefoon koopt, staat daarop dus een besturingssysteem dat door de fabrikant is gecreëerd op basis van AOSP, Google Play Services en eigen aanpassingen.

LineageOS is een project dat de broncode van AOSP neemt en daar extra functionaliteit aan toevoegt, vaak met de focus op aanpasbaarheid, beveiliging en privacy. De nieuwste versie is LineageOS 21, gebaseerd op Android 14. Het biedt voor zo’n tweehonderd apparaten installeerbare images met de drivers van de fabrikanten ingebouwd. Staat je toestel niet in de lijst met apparaten, dan kun je LineageOS helaas niet installeren. De apps van Google zijn (net zoals Google Play Services) hierin niet opgenomen, omdat de licentie dat niet toestaat. Die kun je wel achteraf installeren, waarna je je met een Google-account kunt aanmelden en LineageOS zoals de standaard Android-versie op je telefoon is te gebruiken.

LineageOS ondersteunt zo’n tweehonderd apparaten.

2 MicroG

Nu zou je denken dat je zonder de apps van Google wel verder kunt, maar dat is helaas niet het geval. Google heeft gaandeweg meer en meer functionaliteit van AOSP naar Google Play Services en andere propriëtaire componenten verplaatst. Die vereisen een Google-account of tracken je op een andere manier. En heel wat Android-apps maken van deze propriëtaire componenten gebruik. Als je die apps op LineageOS zonder Google-apps installeert, dan zouden die in het beste geval maar deels werken en in het slechtste geval starten ze niet eens op.

Het project microG biedt hier een oplossing voor. Dit is een opensource-project dat allerlei propriëtaire Android-componenten van Google her-implementeert. Zo biedt GmsCore een alternatieve implementatie voor Google Play Services. Ook Google Cloud Messaging (voor pushnotificaties) en geolocalisatie zijn op deze manier mogelijk. De versies van microG kun je dan op bijvoorbeeld LineageOS gebruiken, waardoor allerlei Android-apps toch weer werken zonder dat je een Google-account of Google-apps nodig hebt.

Het microG-project her-implementeert een deel van Google Play Services.

3 LineageOS met microG

Helaas kun je microG niet zomaar op LineageOS installeren. MicroG werkt namelijk alleen op een Android-versie met ‘signature spoofing’. Die truc zorgt ervoor dat de componenten van microG zich als Google Play Services kunnen voordoen, waardoor apps er mee samenwerken zonder dat ze weten dat het niet om een officiële Google-dienst gaat. Maar de ontwikkelaars van LineageOS hebben om diverse redenen besloten om signature spoofing niet op te nemen.

Er zijn manieren om een al geïnstalleerd Android-systeem te patchen zodat het signature spoofing ondersteunt. MicroG biedt ook zijn eigen versie van LineageOS aan: LineageOS for microG. Die versie heeft een minimale vorm van signature spoofing ingebouwd die alleen geprivilegieerde systeem-apps toelaat om de spoofing-permissie te gebruiken en alleen na toestemming van de gebruiker. LineageOS for microG ondersteunt exact dezelfde apparaten als LineageOS en verspreidt twee keer per maand over-the-air-updates.

LineageOS for microG biedt een opensource Android-versie zonder Google-apps.

Alternatieven voor LineageOS/microG

/e/OS Zo is /e/OS op dezelfde combinatie van LineageOS met microG gebaseerd, maar voegt daar nog een privacygerichte standaardconfiguratie aan toe. Je kunt /e/OS zelf installeren op een ondersteunde telefoon, of een telefoon bij Murena kopen met /e/OS voorgeïnstalleerd. De /e/ Foundation, die /e/OS ontwikkelt, sponsort sinds 2020 de ontwikkeling van microG.   Calyxos Ook Calyxos richt zich op privacybewuste gebruikers. Het heeft microG aan boord en komt met toepassingen zoals de chat-app Signal en Organic Maps, dat kaarten van OpenStreetMap gebruikt. Het ondersteunt wel minder telefoons dan de eerdergenoemde oplossingen, voornamelijk Pixel-telefoons van Google.

GrapheneOS GrapheneOS richt zich op hetzelfde publiek, maar doet dat zonder microG. In plaats daarvan kun je Google Play Services in een afgescheiden sandbox draaien voor de apps die dat nodig hebben. Het besturingssysteem ondersteunt alleen tien Google Pixel-apparaten.

Met /e/OS heb je een Android-systeem zonder Google en een privacygerichte standaardconfiguratie.

Klinkt het als te veel moeite?

De keuze in Android-smartphones is reuze

4 Installeren

De installatie van LineageOS for microG gebeurt exact hetzelfde als bij LineageOS: zoek je toestel op in de lijst met ondersteunde apparaten van de LineageOS Wiki en volg daar de installatiegids. Het enige verschil is dat je de installatiebestanden voor je apparaat niet van de website van LineageOS downloadt, maar van de downloadpagina voor LineageOS for microG. Voor de Fairphone 5 vind je die bijvoorbeeld in de map FP5.

Installeer eerst Android Debug Bridge en fastboot en volg op die pagina ook de instructies om de usb-foutopsporingsmodus op je Android-apparaat in te stellen. Daarna dien je op sommige apparaten de bootloader te ontgrendelen, zodat je alternatieve firmware kunt installeren. De instructies hangen van je apparaat af. Op sommige apparaten moet je ook nog extra partities flashen met fastboot. Let op dat je de downloadbestanden van LineageOS for microG flasht en niet degene waarnaar in de installatie-instructies van LineageOS wordt verwezen.

Daarna flash je het herstelbestand van LineageOS for microG en start je het apparaat in herstelmodus. Voer dan een factory reset uit. Nu kun je eindelijk het zip-bestand met het rootbestandssysteem van LineageOS for microG naar je telefoon flashen met de opdracht adb vanaf je computer. De stap om een Google Apps-add-on te installeren sla je over, want we willen Google juist vermijden. Herstart daarna je telefoon, waarna je in LineageOS for microG opstart.

Volg heel nauwgezet alle waarschuwingen en tips in de installatie-instructies van LineageOS.

5 Configureren

Na de eerste keer opstarten, word je verwelkomd door de configuratiewizard, waarin je onder andere je wifi-netwerk instelt. Maar in tegenstelling tot een normale Android-installatie krijg je nu niet de vraag om een Google-account in te voeren. Wanneer de initiële configuratie van LineageOS is voltooid, open je de app microG Settings. Klik dan op Self-Check. Uiteindelijk moet de hele lijst met controles aangevinkt zijn. Je moet hiervoor diverse permissies aan de app toekennen, zodat microG zijn werk kan doen.

Keer terug naar het hoofdvenster van microG Settings. Hier staan allerlei functies standaard uitgeschakeld en het is aan jou om te kiezen welke je inschakelt. Zo kun je hier een Google-account toevoegen, maar dat doen we in het kader van dit artikel juist niet. Exposure Notifications kun je niet hier inschakelen; daarvoor dien je een app te installeren die deze API gebruikt. Google SafetyNet kun je hier wel inschakelen. Sommige apps vereisen deze functie om te controleren of je Android-apparaat wel veilig is. Mocht je zo’n app gebruiken, schakel die functie dan hier in.

Geef microG alle permissies die het nodig heeft om zijn taken uit te voeren.

6 Pushnotificaties

Als je nu apps zou installeren, zou je merken dat je geen pushnotificaties krijgt. Veel apps, onder meer WhatsApp en Slack, maken hiervoor immers gebruik van Google Cloud Messaging. MicroG implementeert dit ook, maar heeft dit standaard uitgeschakeld. Om pushnotificaties naar je apparaat te kunnen sturen, moet Google je apparaat ook kunnen identificeren aan de hand van een uniek apparaat-ID. Ga daarvoor in microG Settings naar Google device registration en schakel Register device in. Standaard (in het profiel Native) genereert microG nu een ID waaruit Google je apparaattype en softwareversie kan afleiden, maar niet het serienummer. Het profiel Real geeft ook het eigenlijke serienummer aan Google door. Er zijn ook profielen om je voor een Google Nexus 5X of Motorola Moto G uit te geven, voor als je zo weinig mogelijk informatie wilt prijsgeven. Als je een Google-account hebt toegevoegd, wordt dit overigens ook bij je apparaatregistratie aan Google doorgegeven.

Nadat je apparaat bij Google is geregistreerd, tik je op Cloud Messaging en vink je Receive push notifications aan. Zodra je apps installeert die van Google Cloud Messaging gebruikmaken, komen ze hier in de lijst te staan. Als je merkt dat je notificaties met vertraging aankomen, tik dan op de drie puntjes bovenaan rechts, dan op Advanced en pas de instellingen voor pushnotificaties per netwerk aan. Zet ze bijvoorbeeld op Ping interval: 60 seconds. Maar dit is alleen nodig als de netwerkkwaliteit laag is, de standaardwaarde Automatic zou op de meeste netwerken voldoende moeten zijn.

Dankzij microG kunnen je apps ook pushnotificaties ontvangen.

7 Locatiemodules

Diverse apps vragen je locatie op, bijvoorbeeld om een relevante selectie van nabije winkels of laadpalen te tonen. Maar als ze daarvoor altijd je gps gebruiken, belast dat de batterij van je telefoon te veel. Bovendien hoeft die locatie niet altijd zo precies te zijn als van je gps. Google heeft daarvoor de component Network Location Provider, die communiceert met servers van Google om bijvoorbeeld op basis van de zichtbare wifi-netwerken te bepalen waar je apparaat zich bevindt.

In de instellingen van microG kun je ook hiervoor een alternatief instellen. Tik daarvoor op Location modules. Standaard bood microG één geolocalisatiemodule die op basis van gsm-netwerken en wifi-toegangspunten in de buurt je locatie bepaalt: Mozilla Location Service. Helaas is die dienst inmiddels stopgezet. Je kunt wel de app Local GSM Location installeren en de locatiedienst die ze aanbiedt daarna hier inschakelen.

MicroG kan ook je locatie bepalen zonder servers van Google.

8 OpenCelliD gebruiken

Tik daarna op de module en dan op Configure. Geef de app toestemming om altijd toegang tot je locatie te krijgen en daarna om bestanden op te slaan. Maak nu een gratis OpenCelliD-account door op www.opencellid.org op Sign Up te klikken. Klik op de verificatielink en dan in het dashboard op Access Tokens. Je ziet daar één toegangstoken. Klik op Show Token en kopieer die.

Open dan op je telefoon weer de configuratie van de locatiemodule, tik linksboven op het menu en dan op Advanced Settings. Vul bij OpenCellID Access Token je token in. Keer terug, open Settings en vink bij Sources de optie OpenCellID aan. Keer weer terug, tik op Database / Create Database. De module downloadt nu de locatiedatabase naar je telefoon. Op een later moment kun je altijd op Update Database tikken om de database bij te werken.

Haal locatiedata uit de database van OpenCelliD.

Geen Google, wel Apple?

Met een iPhone heb je niets te maken met het Google-ecosysteem

9 Apps installeren met F-Droid

LineageOS for microG komt standaard met F-Droid, een appwinkel voor opensource-apps. Zo kun je hiermee de app Local GSM Location installeren, maar ook apps als Aegis Authenticator voor tweefactorauthenticatie, Joplin voor todo-lijstjes, Organic Maps voor offline navigatie, Syncthing voor synchronisatie van je bestanden, apps voor Home Assistant en openHAB, en nog veel meer. Voor veel propriëtaire Android-apps bestaan er opensource-alternatieven die je in F-Droid vindt. Ook apps updaten gebeurt in F-Droid. In de instellingen kun je zelfs automatische updates instellen.

Opvallend is dat F-Droid per app de zogenoemde anti-functies toont, bijvoorbeeld of de app gebruikmaakt van een propriëtaire back-end of je activiteiten aan de makers rapporteert. Ook de door de app gevraagde machtigingen toont F-Droid bij elke app. Zo kun je op basis van de anti-functies en machtigingen beslissen of je de app wel met deze functies wilt gebruiken of voldoende vertrouwt.

F-Droid toont bij elke app de ‘anti-functies’, functies die je misschien minder leuk vindt.

10 Apps installeren met Aurora Store

Op F-Droid vind je alleen opensource-apps. Voor apps als WhatsApp, Slack, Snapchat, Instagram, TikTok, Spotify en meer heb je een andere bron nodig. Maar zonder een Google-account kan dat niet met Google Play Store. Gelukkig bestaat er een alternatief: Aurora Store. Dit is een onofficiële opensource-client voor de Google Play Store. Je kunt hiermee dus apps op de Google Play Store zoeken, downloaden en updaten. Dat kan met een Google-account, maar ook anoniem. Aurora Store koppelt je dan aan een van de vele anonieme gebruikersaccounts. Soms lukt het aanmelden niet. Probeer het dan opnieuw, dan word je aan een willekeurig ander account gekoppeld.

Net zoals in Google Play Store krijg je in Aurora Store apps te zien per categorie, inclusief lijstjes met de populairste apps of apps die voor jou zijn aangeraden. De mogelijkheden zijn minder uitgebreid dan met Google Play Store. Zo kun je geen betaalde apps downloaden of updaten. Bovendien werken heel wat in-app-functies van allerlei apps niet wanneer je Aurora Store anoniem gebruikt. Soms krijg je bepaalde apps ook niet te zien, omdat het anonieme account dat je op dat moment gebruikt van een bepaald land is waar de app niet is toegelaten. Tik in dat geval bovenaan rechts op het tandwiel, dan op Manage your account / Log uit en log weer in als Anoniem. Je krijgt dan een willekeurig ander anoniem account en kunt opnieuw proberen of je de gewenste app vindt.

Met Aurora Store download en update je anoniem apps uit de Google Play Store.

11 Alternatieven voor Google-apps

Nu je een Android-systeem zonder Google-account hebt, moet je uiteraard voor alle Google-apps nog alternatieven zoeken. Wil je onmiddellijk een heel ecosysteem, dan loont het de moeite om naar Proton te kijken. Je kunt gratis een account maken bij deze dienstenprovider die zich focust op privacy en geen toegang heeft tot je gegevens dankzij end-to-end encryptie. Voor wie meer opslag en mogelijkheden wil, biedt Proton ook betaalde abonnementen aan. De apps Proton Mail, Proton Calendar, Proton Drive, Proton VPN en Proton Pass zijn te vinden in F-Droid en Aurora Store.

Maar je hoeft jezelf niet aan één ecosysteem te verbinden. Je kunt perfect losse apps installeren (zoals de mail-app K-9 Mail) of met DAVx5 in combinatie met een CalDAV/CardDAV-server je agenda en contacten in de standaard-apps van LineageOS integreren. Als wachtwoordbeheerder kun je bijvoorbeeld de app van Bitwarden installeren, in combinatie met de server van Bitwarden of je eigen Vaultwarden-server. Voor tweefactorauthenticatie is Aegis Authenticator een goede keuze.

Als je gewend bent om je browsergeschiedenis en -tabs tussen verschillende apparaten te synchroniseren met Google Chrome, dan is er ook daarvoor een alternatief zonder Google-account. Mozilla biedt een vergelijkbare functie voor Firefox aan met Firefox Sync. Als je de Firefox-app op LineageOS installeert en een gratis Mozilla-account aanmaakt, kun je dus ook je tabs synchroniseren. Interessant om te weten is dat dit met end-to-end encryptie werkt. Mozilla krijgt dus niet te zien welke webpagina’s je bezoekt.

Proton biedt een heel ecosysteem aan van diensten met end-to-end encryptie.

Watch on YouTube
▼ Volgende artikel
SteelSeries Arctis Gamebuds - Supersnel én comfortabel
© SteelSeries
Huis

SteelSeries Arctis Gamebuds - Supersnel én comfortabel

Goede koptelefoons voor gaming kun je overal vinden, maar voor een fijn stel gaming-oordopjes moet je wat verder zoeken. Of moest, want met de SteelSeries Arctis Gamebuds is er een nieuwe ster aan het firmament. Met noise cancelling van de bovenste plank, een razendsnelle draadloze verbinding, een superhandige dongel én een lange batterijduur zijn de Arctis Gamebuds alles wat je nodig hebt voor je volgende gamesessie.

In samenwerking met SteelSeries

De Steelseries Arctis Gamebuds zijn oordopjes die speciaal gemaakt zijn voor gamers. Dat heeft vooral te maken met de snelle 2,4GHz-verbinding die wordt gelegd met je gaming device, maar er zijn meer handige functies en extra's die van de Gamebuds de ideale audio-metgezel maken tijdens het gamen. We duiken wat dieper in die verschillende opties en functies.

2,4GHz-verbinding

Draadloze oordopjes verbind je via bluetooth aan je andere apparaten. Althans, dat deed je vroeger. Het probleem met bluetooth is dat het niet altijd de meest stabiele verbinding biedt, en dat het bereik niet bijzonder groot is. Die problemen zijn met de Arctis Gamebuds voorgoed verleden tijd.

De Gamebuds verbind je namelijk via een 2,4GHz-verbinding met je gaming device. De 2,4GHz-band wordt gebruikt voor wifi en heeft een aantal voordelen ten opzichte van bluetooth. Ten eerste is het bereik veel groter, zodat je niet per se binnen een paar meter van je PlayStation, Xbox of pc hoeft te zitten. Ook gaat het signaal veel makkelijker door muren heen, dus even naar het toilet of de keuken lopen zonder de verbinding te verliezen is ook geen enkel probleem.

Daarnaast is een verbinding via de 2,4Hz-band tot wel zeven keer sneller dan een gewone bluetoothverbinding – onmisbaar tijdens het gamen.

©SteelSeries

Usb-c-nanodongel

Die verbinding leg je met de bijgeleverde usb-c-nanodongel. Dat is een kleine usb-c-stick die je in je gameconsole of computer steekt. De oortjes leggen meteen verbinding met de dongel, zonder dat je eerst een uitgebreide installatie hoeft te doorlopen.

De dongel ondersteunt alle bekende apparaten: of je nu gaat gamen op een PlayStation 5, Xbox, pc, Switch of tablet, binnen een paar tellen zijn je oortjes aangesloten. Gebruik je liever een 'gewone' usb-a-poort? Dat kan ook: er wordt een handige adapter meegeleverd.

Dat betekent overigens niet dat je altijd je dongel bij je moet hebben: de SteelSeries Arctis Gamebuds werken ook met een bluetoothverbinding. Als je even de deur uit moet, tik je simpelweg tegen de zijkant van je oordopjes en je maakt automatisch een bluetooth-verbinding met bijvoorbeeld je telefoon.

Accu en opladen

Bang dat je binnen de kortste keren met een lege batterij komt te zitten, hoef je ook niet te zijn. De accu in de Artcis Gamebuds gaan bij normaal gebruik tot wel tien uur achter elkaar mee voordat je ze weer moet opladen. Met de bijgeleverde case kun je ze bovendien nog drie keer opladen, zodat je ze in totaal veertig uur kunt gebruiken zonder dat je in de buurt van een stopcontact hoeft te zijn.

Het opladen zelf gaat bovendien razendsnel en gemakkelijk. Als je de usb-c-oplaadkabel gebruikt, heb je binnen een kwartier weer genoeg juice om drie uur verder te gamen. De oordopjes ondersteunen ook de meeste populaire draadloze laders, dus je hebt in principe helemaal geen kabel meer nodig.

©SteelSeries

Extra's

En dat is nog lang niet alles. De SteelSeries Arctis Gamebuds bieden een aantal extra opties die het gebruik nóg prettiger maken.

Zo is er actieve noise cancelling, die ervoor zorgt dat je geluiden van buitenaf bijna niet meer hoort. Je kunt er ook voor kiezen om die geluiden juist extra door te laten, zodat je precies weet wat zich in je omgeving afspeelt.

Je hoeft je ook niet druk te maken om de pasvorm. Voor de Gamebuds zijn maar liefst 62.000 oren geanalyseerd. Daar is de ideale pasvorm uitgekomen, die werkt voor praktisch elk oor. Bovendien worden er drie opzetstukjes meegeleverd: een voor kleine, een voor middelgrote, en een voor grotere gehoorgangen. Zo weet je zeker dat de oordopjes altijd goed passen. Een testperiode met de wereldberoemde gamer T1 heeft ervoor gezorgd dat de oortjes ook na lange tijd nog comfortabel blijven zitten.

Tel daarbij op de ingebouwde microfoon, zodat je zonder extra gear kunt audiobellen met je vrienden of tegenstanders, en IP55-waterbestendigheid, waardoor je zonder problemen door een regenbuitje kunt wandelen of jezelf in de gym in het zweet kunt werken, en je kunt gerust stellen dat de SteelSeries Arctis Gamebuds tot de meest complete oordopjes behoren die te vinden zijn.

Ontdek de SteelSeries Arctis Gamebuds

op Kieskeurig.nl

Conclusie

Wie op zoek is naar high-end gaming oordopjes hoeft eindelijk niet ver meer te zoeken. De SteelSeries Arctis Gamebuds bieden zowel comfort als kwaliteit. De draadloze 2,4GHz-verbinding is tot wel zeven keer sneller dan bluetooth, en met de bijgeleverde dongel verbind je ze in no-time met je gameconsole, pc of tablet. De accu die tot wel 10 uur meegaat (of 40 uur met de oplaadcase), de perfecte pasvorm en de uitgebreide noise cancelling maken van de SteelSeries Arctis Gamebuds de ideale gaming-oordopjes, op welk apparaat je ook speelt!