iOS Simulator Tips & Tricks

Deze snelle tip laat je kennismaken met enkele van de krachtige functies die beschikbaar zijn voor het testen en debuggen van apps met Xcode en de iOS-simulator.


Tip 1: ga overal naartoe met aangepaste coördinaten

Jarenlang worstelden ontwikkelaars met het debuggen van op CoreLocation gebaseerde applicaties in de simulator vanwege een gebrek aan ingebouwde Simulator-ondersteuning voor aangepaste coördinaten. Hoewel projecten zoals FTLocationSimulator een grote hulp waren, bleven velen van ons nog steeds jaloers op Android-ontwikkelaars die de locatie van de Android-simulator eenvoudig konden instellen met behulp van de gebundelde DDMS-tools.

Gelukkig zijn die dagen van stille jalouzie al een tijdje weg. Met de release van Xcode 4.2 waren iOS-ontwikkelaars in staat om een ​​standaardapparaatlocatie voor een aantal wereldwijde steden te simuleren. Deze aanpak bestaat nog steeds en kan worden gedaan door "Schema bewerken" te selecteren:

En vervolgens naar het tabblad "Opties" van het pop-upvenster te gaan:

Recente versies van de iOS Simulator hebben het echter nog eenvoudiger gemaakt om de gesimuleerde locatie te wijzigen, en je kunt dit nu tijdens run-time doen..

Nadat je de Simulator hebt gestart, selecteer je Foutopsporing> Locatie zal de volgende menu-opties produceren:

Zoals u kunt zien, kunt u nu eenvoudig uw eigen coördinaten instellen met behulp van de optie "Aangepaste locatie":

Dit vereist natuurlijk dat u de exacte coördinaten van de locatie die u wilt simuleren kent en niet alleen het straatadres. Het proces van het genereren van breedtegraad- en lengtegraadcoördinaten vanaf een adres wordt geocodering genoemd en er zijn een aantal gratis websites en iOS-apps die voor u coördinaten vanaf een straatadres genereren. De gratis iOS-app Geocode Something en de website geocoder.us zijn beide het vermelden waard, en deze geocodermashup is een snelle en gemakkelijke manier om coördinaten rechtstreeks uit Google Maps te halen.

De simulator wordt ook geleverd met een aantal vooraf gedefinieerde locaties en paden die u kunt gebruiken voor het testen van uw eigen toepassingen. Een korte beschrijving van elk wordt hieronder gegeven.

Apple hoofdkantoor

Als u "Apple" selecteert in het menu Locatie, stelt u de huidige locatie in op Apple HQ op 1 Infinite Loop, Cupertino, CA. Voor gebruikers van vroege versies van Xcode, zul je dit herkennen als de enige locatie die oorspronkelijk door de Simulator werd ondersteund.

Stadsfietsrit

Als u de optie "Stadsfietsrit" selecteert, begint het CoreLocation-raamwerk met het genereren van coördinaten die een vooraf ingesteld pad volgen dat zich dicht bij het hoofdkwartier van Apple bevindt. De fietsoptie zorgt ervoor dat er updates plaatsvinden met een snelheid van ongeveer 5 - 7 meter per seconde.

City Run

De optie "City Run" is net als de "City Bicycle Ride" -instelling, met de uitzondering dat updates plaatsvinden met een volgsnelheid van ongeveer 3 - 4 meter per seconde.

Freeway Drive

De optie "Freeway Drive" verschilt van de vorige twee in zowel het gevolgde pad als de snelheid in meters per seconde. Het pad beweegt langs de Junipero Serra Freeway net ten noorden van Apple HQ en de snelheid lijkt over het algemeen tussen de 20 - 35 meter per seconde te zijn.

Apple Stores

In theorie zou deze optie coördinaten moeten genereren die gekoppeld zijn aan Apple Store-locaties. Met de iOS 6.0-simulator en Xcode 4.5 lijkt deze optie echter slecht te zijn verbroken. In mijn ervaring met het testen van dit, lijken de coördinaten altijd rond ongeveer 33.7718 N, 112.9031 W te beginnen en vervolgens geleidelijk aan te nemen in zowel de Noord- als de West-lezingen, waarbij de huidige locatie op een diagoaal pad naar nergens wordt verplaatst. Ik heb dit als een foutenrapport bij Apple ingediend, dus als anderen hetzelfde probleem ervaren, zal dit hopelijk snel worden opgelost!

Omdat de Apple Maps-app in de simulator kan worden uitgevoerd, is het eenvoudig om een ​​van de bovenstaande opties uit te proberen. Start gewoon de iOS Simulator zoals je normaal zou doen, stel je gesimuleerde locatie in en start dan de Kaarten-applicatie.

Met de iOS 6 SDK kunt u nu toepassingen uitvoeren die Kaarten rechtstreeks in de simulator gebruiken!


Tip # 2: Bend Time met Slow Motion

Een andere leuke functie van de iOS Simulator is de mogelijkheid om animaties in slow motion te plaatsen met de Foutopsporing> Slow-animaties schakelen menu-optie.

Dit kan erg handig zijn wanneer u een aangepaste UIKit-animatie probeert te maken en ervoor moet zorgen dat elk frame er precies goed uitziet.

Misschien is een meer praktisch gebruik van deze functie het vertragen van de animaties die optreden bij het draaien van het apparaat om de oriëntatie-wijzigingsanimaties op te poetsen (zie Sessie 517 van WWDC 2012 voor meer informatie over hoe u oriëntatie-animaties kunt poetsen).


Tip # 3: Dynamisch kleurenweergave

De debug menu-optie biedt ook de ongelooflijk nuttige mogelijkheid om weergaven in realtime te kleuren:

U kunt deze opties gebruiken om gemengde lagen, gekopieerde afbeeldingen, niet-uitgelijnde afbeeldingen en weergaven die buiten beeld zijn weergegeven, visueel te identificeren.

Dit is een handige functie voor het debuggen van uw eigen toepassingen en het kan ook inzichtelijk zijn voor het onderzoeken van de standaardtoepassingen op de Simulator. De volgende schermafbeelding toont de Maps-app en de Passbook-app met de optie "Gemengde kleuren gemengd" geselecteerd:


Tip # 4: Hardware / software-evenementen simuleren

Hoewel niets de ervaring van het testen van applicaties op echte hardware zal vervangen, heeft de simulator de afgelopen jaren een lange weg afgelegd met real-world event-emulatie. Sommige gebeurtenissen, zoals het schakelen tussen een statusbalk "in gesprek" of het genereren van geheugenwaarschuwingen, zijn waarschijnlijk gemakkelijker te debuggen in de simulator dan met een echt apparaat.


GESIMULEERD SLOTSCHERM

Een blik op de Hardware menu onthult de volgende event-opties:

  • Draai naar links
  • Draai naar rechts
  • Schud het gebaar
  • Home-knop Druk op
  • Scherm vergrendelen Druk op
  • Simuleer geheugenwaarschuwing
  • Schakel de statusbalk in gesprek in
  • Simuleer hardwaretoetsenbord
  • TV uit

De meeste hiervan spreken voor zich, maar enkele verdienen nadere toelichting.

De "Simuleer hardwaretoetsenbord" -optie is voornamelijk bedoeld voor het debuggen van iPad-applicaties waarbij de gebruiker waarschijnlijk een fysiek toetsenbord heeft aangesloten via Bluetooth of de dockconnector. Testen met de hardware-toetsenbordoptie zou een belangrijk onderdeel van de bètatest van een iPad-app moeten zijn.

Met de optie "TV Out" kunt u VGA / HDMI-verbindingen simuleren door een nieuw venster te maken met een resolutie van slechts 640x480 of zo hoog als 1920x1080 (dus 1080p).


Tip # 5: Simulatorfoto's toevoegen

De eenvoudigste manier om foto's aan de iOS Simulator toe te voegen, is door ze gewoon individueel vanuit het OS X Finder-venster naar het Simulator-venster te slepen en neer te zetten..

Als u echter veel verschillende foto's voor testen moet toevoegen, wordt dit proces snel inefficiënt. Wanneer u veel afbeeldingen tegelijkertijd moet toevoegen, kunt u overwegen een eenvoudige iOS-toepassing te schrijven die door uw lijst met foto's kan bladeren en elke afbeelding aan de fotobibliotheek kan toevoegen met de UIImageWriteToSavedPhotosAlbum functie. Bekijk stap 6 in mijn Build a Photo App met GPUImage-zelfstudie om te zien hoe dit is gebeurd.

Een andere benadering zou zijn om de beeldbestanden rechtstreeks aan het Simulator-bestandssysteem toe te voegen, maar de stappen om dit te bereiken lijken te veranderen met elke nieuwe versie van iOS. Het bouwen van een eigen importeur kan op de lange termijn een betrouwbaardere aanpak zijn (weet u van een betere manier om dit te bereiken? Laat hieronder een reactie achter!).


Bonus: download de 5.0 / 5.1 Simulators

Voor mijn eigen iOS-applicaties probeer ik altijd te implementeren voor zowel de huidige versie van iOS als één eerdere versie. Standaard bevat Xcode echter alleen een simulator voor de huidige iOS-versie. Gelukkig is er een eenvoudige methode om de Simulator ook voor de vorige versie van iOS te krijgen.

Open Xcode en selecteer Xcode> Voorkeuren op de menubalk en ga vervolgens naar het tabblad "Downloads". Vanaf hier heeft u de mogelijkheid om eerdere iOS-simulators te installeren, evenals het pakket met opdrachtregelhulpmiddelen. Ik raad aan om alle drie de getoonde opties te installeren:

Nadat de installatie is voltooid, kunt u de iOS-simulators 5.0 / 5.1 selecteren bij het bouwen en uitvoeren van uw toepassingen.


Hoe gebruik je de simulator?

Welke tips of trucs heb je om met de iOS Simulator te werken? Laat uw feedback achter in de comments hieronder!