//

Continu syncen met database

Continu syncen met database discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Goede morgen, Voor een Home Automation App die ik aan het maken ben heb ik een Ipad tegen de muur hangen. Deze staat continu aan ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 13-11-15, 12:00
Bbuster Bbuster is offline
• iOS 8.0.2
• 9.0.1
• Besturingssysteem: Windows
 
Geregistreerd: Mar 2014
Berichten: 13
Standaard Continu syncen met database

Goede morgen,

Voor een Home Automation App die ik aan het maken ben heb ik een Ipad tegen de muur hangen. Deze staat continu aan en alleen op mijn app.

De app moet continu verbinden met mijn mysql database. Dit doe ik via een php pagina. Elke seconde laad ik gegevens via de php pagina op en aan de hand van de waardes laat ik de app dingen regelen.

Nu is alleen het probleem dat de Ipad niet voldoende bij laadt. Ik heb hem fulltime aan de lader hangen in een dock, maar nog steeds loopt de Ipad sneller leeg dan dat hij bijgeladen wordt.

Als maatregel heb ik al gemaakt als er lange tijd geen beweging is het scherm naar zo donker mogelijk gaat, maar dan nog laadt hij op een hele nacht (+/- 12 uur) maar 15% / 20% bij

Ik zie in de XCode debugger ook dat het laden van de data ervoor zorgt dat hij een extreem hoog energie verbruik heeft.

De data die via php wordt ingeladen is een klein JSON gecodeerd array en de data die de Ipad moet laden is 0,6kb/s en versturen is 0.5kb/s

Is dit op een andere manier op te lossen?

Alvast vriendelijk bedankt!
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 14-11-15, 10:31
rsluman's schermafbeelding
rsluman rsluman is offline
• iOS 7.0.4
• 7.0.4
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2008
Berichten: 5
Standaard

Welke manier gebruik je om (in je app) te wachten totdat er een seconde is verstreken?

Een goede (energie-zuinige) manier is een NSTimer-object dat je maakt met bijvoorbeeld NSTimer(scheduledTimerWithTimeInterval) in Swift of [NSTimer scheduledTimerWithTimeInterval] in Objective C.

Je stelt de wachttijd in op één seconde en na die seconde wordt je code (die de data inlaadt) dan uitgevoerd. Je kunt ook opgegeven dat dit moet worden herhaald.

Succes!
  #3  
Oud 17-11-15, 15:18
bitsflew bitsflew is offline
• iOS 4.3.5
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jul 2008
Berichten: 3
Stuur een bericht via Instant Messenger naar bitsflew
Standaard

Je app moet wel heel veel CPU tijd verbranden als de iPad sneller ontlaadt dan oplaadt!
Kan de gebruikte lader wel de maximale laadstroom van de iPad leveren?

Of is het toch de gebruikte methode?

Zoals rsluman schrijft is NSTimer een mogelijke oplossing.

Maar in dit specieke geval zou ik kiezen voor een aparte thread om de server te pollen.

Voorbeeld (quick en dirty) code:

Simple server polling
  #4  
Oud 19-11-15, 19:51
Bbuster Bbuster is offline
• iOS 8.0.2
• 9.0.1
• Besturingssysteem: Windows
 
Geregistreerd: Mar 2014
Berichten: 13
Standaard

Bedankt voor de antwoorden!

@ bitsflew:
Ik heb jouw code geprobeerd, maar nog steeds is Energy Impact High of Very High. Verder zit er behalve een analoge klok nog niets in de app ingebouwd. Als ik hem uitvoer zonder url connectie is de Energy Impact zero.
  #5  
Oud 19-11-15, 23:57
bitsflew bitsflew is offline
• iOS 4.3.5
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jul 2008
Berichten: 3
Stuur een bericht via Instant Messenger naar bitsflew
Standaard

Heb het zelf even geprobeerd (iPad Air)

Met een 32KB json response is de CPU usage < 1%

Energy impact wisselt tussen Very High en High (Average = High)

Desondanks (scherm op 50%) stijgt het accu percentage terwijl de app loopt.

Probleem zit 'm dus niet in de networking/JSON parsing code!

Kun je niet wat meer code posten?
  #6  
Oud 21-11-15, 13:25
Bbuster Bbuster is offline
• iOS 8.0.2
• 9.0.1
• Besturingssysteem: Windows
 
Geregistreerd: Mar 2014
Berichten: 13
Standaard

Bedankt, maar zoals je zelf aangeeft is de energy impact toch ook high of very high?

CPU gebruik blijft bij mij ook laag (+/- 1%). Hoe kan de energie impact alsnog zo hoog zijn met een databestandje van minder dan 50kb?

Thnx!
  #7  
Oud 25-11-15, 16:34
wubbe wubbe is offline
• iOS 5.0
• 5.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Oct 2008
Locatie: Haarlem
Berichten: 348
Standaard

De echte oplossing is natuurlijk: Niet pollen
Je wilt dat de iPad alleen tot actie komt als er iets gewijzigd is.

Er zijn hiervoor diverse mogelijkheden. Google eens op 'serverside push' en 'long pollilng'. Dat is de echte oplossing.

Maar... ik heb ooit ook een App gemaakt waarbij het niet anders kon dan pollen, en die ging toch wel een tijdje mee. Die App polde iedere seconde en daardoor ging de iPhone niet echt dramatisch snel leeg.

(je kunt natuurlijk ook de batterijconditie opvragen en aan de hand daarvan het pol-interval aanpassen)
__________________
Leon
[iPhone- en Java ontwikkelaar]
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Mailbox niet continu beschikbaar met ios 7 Lenne iPhone algemeen 2 02-10-13 14:35
Agenda app met database sync kevinnn Ontwikkelen voor iOS 1 10-07-13 11:19
Database app met Scan barcode Jurry80 iPhone Apps 2 22-05-10 01:53
Verbinding maken met MySQL-database BadSide Ontwikkelen voor iOS 2 09-02-09 15:50

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 00:51.