Dog years to human years explained via @ http://www.liveinfographic.com/ roosterapp, October 26, 2019 at 12:54AM
seen from Malaysia

seen from France

seen from United States
seen from United States
seen from United States
seen from Malaysia
seen from China

seen from Spain
seen from United States
seen from T1
seen from United States

seen from France
seen from China

seen from United States

seen from Singapore

seen from United States
seen from United States

seen from United Kingdom

seen from Brunei
seen from United States
Dog years to human years explained via @ http://www.liveinfographic.com/ roosterapp, October 26, 2019 at 12:54AM
Custom Interval for Repeating UILocalNotificaitions
While developing the Rooster App, I discovered that Apple's UILocalNotification only allows you to repeat notifications with the standard NSCalendar measurements including weekly, daily, or secondly. The current framework doesn't allow much customization. :(
The Objective
I needed a rooster to crow repeatedly at sunrise - at least enough times to wake up the heavy sleepers. The sound file is 3 seconds long, so every second wouldn't cut it.
The Solution
Thus, I scheduled cascading UILocalNotifications. (With success!) The logic is admittedly simple. The fireDate of the second notification is set to (x) seconds after the first. The third notification, (x) seconds after that, etc...
For this example, the sound file is 3 seconds long and we separate each notification 10 seconds apart for a total of 35 notifications.
- (void) scheduleNotificationsForDate: (NSDate *)date { // cancel all other notifications to avoid conflicts (optional) [[UIApplication sharedApplication] cancelAllLocalNotifications]; // create an array to store all the unique notification objects NSMutableArray *notifications = [NSMutableArray array]; // start the loop for (int i = 0;i < 35; i++) { // create a NEW, unique notification object UILocalNotification *notification = [[UILocalNotification alloc]init]; // this sets the first alarm for the original date arg [notification setFireDate:date]; // Add 10 seconds for every, next alarm date = [NSDate dateWithTimeInterval:10 sinceDate:date]; // set up the notification info. // Note: #define these as constants for efficiency [notification setAlertAction:@"Wake up."]; [notification setAlertBody:@"Welcome to the new day!"]; [notification setSoundName:@"rooster.m4a"]; [[UIApplication sharedApplication] scheduleLocalNotification:notification]; [notifications addObject:notification]; } NSLog(@"%i Notifications Scheduled!", notifications.count); }
So how does it work?
When the user sets the alarm through the UI, we set the initial alarm with the correct NSDate like usual. Then, we run the for-loop which instantiates a new localnotification (with the progressing interval date), and stores it into the array. (This way each object is created and 'unique' from the others.)
What About NSDictionary?
You can also store multiple alarms into a NSDictionary if you need to name and call specific alarm objects.
There's got to be a maximum...
I believe you're able to schedule a maximum of 64 local notifications. So if you have a short sound file, create a new, 30-second max file of the sound repeating itself.
First Morning With Rooster
Last night, after a battle with UILocalNotification, I pushed a demo build of Rooster to my iPhone. Worked like planned. Hit the button and left it on my bedside.
At 6:08am, in South San Francisco, CA, the Rooster woke me up.
Unfortunately, I didn't stay awake due to the lack of sleep. But alike an actual Rooster, I crowed regardless.
Our Unorthodox Workflow & Break #1
One odd convention of this project: We only work on it when all creators are present or working on it simultaneously. We'll commit to this workflow for the beginning at least. This keeps everyone at the same dedication level whether they're marketing, business dev, developer.
Since the Rooster App birthed as a moonlit project, we'll treat it as such - until we pivot into a more active workflow.
No, this is not ideal, but it tests a few key things about the team before everyone gets all gung-ho and we start passing out t-shirts. (which would be awesome...)
We're testing:
If all members are equally dedicated.
Can we work together and build something? (Chemistry...)
Also, doing it this way prevents any creator (especially the higher-appraised developer) from fostering any early resentment against the other creators. Considering that development takes a lot more time in this infant stage, we're going to keep everyone's dedication level.
Until we reconvene later this week. Cheers!
Cock-a-doodle-do
the rooster
What is the Rooster App?
An iPhone app that wakes you up when the sunrises in your location. Super simple, mindlessly easy!
Now living life as a free-flowing, creative weirdo doesn't have to be so hard :) . No longer do you need to sleep next to a large open window nor do you have to buy one of those ridiculously priced wake-lights.
Roosters op Smartphone
22 augustus 11:19 |Roosterinformatie en absentie van docenten is voor studenten van het domein Economie & Management binnenkort te raadplegen via de mobiele telefoon. Met de HvApp heeft de HvA de primeur van Nederland.
‘Informatie wordt steeds vaker opgevraagd via de mobiele telefoon,’ zegt Maarten Noom, projectmanager bij de afdeling Informatie Voorziening (IV). ‘Daar spelen we nu op in met een app voor de iPhone, iPad en toestellen met het besturingssysteem Android. We zijn de eerste hogeschool in Nederland die informatie op deze manier aanbiedt.’
Vooralsnog kunnen studenten in de app alleen roosterinformatie en absenten opvragen. Maar binnen een paar jaar moeten studenten ook cijfers kunnen opvragen en zich kunnen inschrijven voor tentamens.‘Uiteindelijk moet het hele intranet toegankelijk zijn, maar voordat dit is gebeurd zijn we wel vier jaar verder. We moeten immers goed nadenken over de beveiliging en het onderhoud in de toekomst.’
Arthur van Alten, student technische informatica en werknemer van de afdeling IV, bouwde een belangrijk gedeelte van de app en de mobiele website. Onder de vlag van Noom studeerde hij af op de app en de ontwikkeling van de mobiele website voor het intranet. ‘Het vernieuwende van het werk van Arthur is dat hij een infrastructuur heeft gemaakt waardoor de gebruiker kan communiceren met verschillende databases. Bij andere hogescholen, en ook wel bij de HvA, werd telkens één app per database gemaakt.’
Dankzij het werk van Van Alten hoeft er dus ook maar een keer een app gemaakt te worden. Met een druk op de knop kan immers een nieuwe database, bijvoorbeeld die met cijferlijsten, worden toegevoegd aan de app. Daarin verschilt de app van apps die al binnen andere domeinen gebruikt worden. Uit onderzoek van student bedrijfskundige informatica, die eveneens afstudeert op het onderwerp, blijkt zelfs dat de HvA met het programmaatje voor loopt op de andere hogescholen in Nederland.
Hoewel de app zo goed als gebruiksklaar is, wordt het programmaatje de komende maand nog aan een uitgebreide test onderworpen. Naar verwachting is de HvApp voor iPhone en iPad dan in oktober te downloaden. Daarna volgt de app voor Android-toestellen. Studenten met een BlackBerry zullen het met een mobiele website moeten doen.