Caelinoti, een vliegende start

Door vistu op dinsdag 27 maart 2012 21:19 - Reacties (7)
Categorie: -, Views: 4.251

Allereerst welkom op mijn blog. Ik begin met de disclaimer dat dit mijn eerste blogposting is en ik werkelijk nog geen enkel idee heb in hoeverre ik actief zal bloggen, nog los van het feit in hoeverre de blogs waardevol zullen zijn.

Als iOS developer - heerlijke bijbaan voor een student ! - word je af en toe haast gedwongen oplossingen van derden te gebruiken. Zo hebben wij een app in beheer waarin intensief gebruik gemaakt wordt van push notificaties. Om deze notificaties te kunnen versturen zijn er verschillende mogelijkheden. Zoals zo vaak eindig je dan met twee keuzes: zelf ontwikkelen of uitbesteden.
In eerste instantie is er besloten uit te besteden en zijn wij uitgekomen bij Urban Airship, een push notificatie provider met een iOS framework en een eenvoudig te gebruiken API. Een aantrekkelijke oplossing, maar naarmate er meer gebruikers bijkomen en er meer notificaties verzonden worden, ook steeds duurder.

Uiteindelijk is er de keuze gemaakt om over te stappen naar een goedkoper alternatief; in de baas zijn tijd ontwikkelen was nog steeds geen optie. Gelukkig had ik zelf nog wat tijd over, in een aantal dagen heb ik een alternatief in elkaar gezet met de voordelen van Urban Airship, maar zonder de kosten ;).

Dit alternatief - Cealinoti genaamd - is afgelopen week in twee van onze apps gelanceerd, waarbij het een succes lijkt te zijn. Tot dusverre zijn er 230.978 notificaties de deur uitgegaan en dat gaat eigenlijk prima. Het geheel draait van twee gemirrorde VPS'en, die het vooralsnog prima weten te handelen.
Nu is het een kwestie van blijven groeien en ondertussen wat rondkijken. Zo moet ik besluiten of ik alles (of een deel) van de code open source wil maken, en of ik hiermee meer wil. Mijn voorkeur gaat er op het moment naar uit om in elk geval de iOS library zelf open source te maken en de backend dicht te laten. Zo moet het voor mij mogelijk zijn om enerzijds te leren van de feedback op mijn code (en misschien anderen te helpen) en anderzijds behoud ik de optie om er in de toekomst meer mee te doen.
Wat denken jullie daarvan?

Verder ben ik eigenlijk - schaamteloze plug, ik weet het - op zoek naar iOS developers die momenteel gebruik maken van een service als Urban Airship, maar eigenlijk een gratis alternatief willen gebruiken. Laat in dat geval een reactie achter ;).

Volgende: OTA, GIT en Hudson 03-'12 OTA, GIT en Hudson

Reacties


Door Tweakers user Paul - K, dinsdag 27 maart 2012 21:46

Dat zijn aardig wat notificaties, nu maak je me wel nieuwschierig om welke app dit gaat :p

Door Tweakers user vistu, dinsdag 27 maart 2012 21:48

Paul - K schreef op dinsdag 27 maart 2012 @ 21:46:
Dat zijn aardig wat notificaties, nu maak je me wel nieuwschierig om welke app dit gaat :p
Dat begrijp ik, maar ik wil dat liever niet bekend maken. Overigens tellen badge updates ook als notificaties, door die regelmatig te updaten verstuur je al snel een groot aantal notificaties.

[Reactie gewijzigd op dinsdag 27 maart 2012 21:49]


Door Tweakers user YopY, dinsdag 27 maart 2012 22:59

Op zich is er weinig open source te maken - in mijn ervaring - in push notification servers, aangezien het overgrote deel specifiek voor de applicatie is. Waarschijnlijk kun je wel generieke servers maken die bijvoorbeeld naar RSS feeds luisteren, maar de rest...

Mede push notification server / iOS programmeur hier. Welke technologiestack heb je voor de PNS gebruikt? Toch geen saai PHP/MySQL/cronjob geval hoop ik? :p

Door Tweakers user i-chat, dinsdag 27 maart 2012 23:45

YopY schreef op dinsdag 27 maart 2012 @ 22:59:
Op zich is er weinig open source te maken - in mijn ervaring - in push notification servers, aangezien het overgrote deel specifiek voor de applicatie is. Waarschijnlijk kun je wel generieke servers maken die bijvoorbeeld naar RSS feeds luisteren, maar de rest...

Mede push notification server / iOS programmeur hier. Welke technologiestack heb je voor de PNS gebruikt? Toch geen saai PHP/MySQL/cronjob geval hoop ik? :p
met je php verhaal geef ik je gelijk maar wat wil je dan, nodejs? of is dat ook (nog niets) ... ik ben niet zo van het programmeren (echt helemaal niet dus) maar de achterliggende technieken vind altijd wel heel interessant... ik ben dus wel benieuwd waar je nu naar zou moeten kijken..

Door Tweakers user vistu, woensdag 28 maart 2012 10:46

YopY schreef op dinsdag 27 maart 2012 @ 22:59:
Op zich is er weinig open source te maken - in mijn ervaring - in push notification servers, aangezien het overgrote deel specifiek voor de applicatie is. Waarschijnlijk kun je wel generieke servers maken die bijvoorbeeld naar RSS feeds luisteren, maar de rest...

Mede push notification server / iOS programmeur hier. Welke technologiestack heb je voor de PNS gebruikt? Toch geen saai PHP/MySQL/cronjob geval hoop ik? :p
Aan de server kant is er niet heel veel open source te maken inderdaad. De static library die ik heb geschreven om eenvoudig gebruik te kunnen maken van deze service zou wel een kandidaat kunnen zijn. Op zich geen gigantische code base, maar geeft wel inzicht in hoe gebruik te maken van blocks, het asynchroon binnenhalen van data en het verwerken en gebruiken van JSON data.
In die static library heb ik tot dusver de meeste tijd gestoken, server side is het helaas een saaie PHP/MySQL oplossing. Door een bepaalde url aan te roepen (natuurlijk met credentials) is het mogelijk om vanuit andere applicaties pushberichten te versturen. Dat is het generieke gedeelte. Daar heb ik dan nog een laag naast gebouwd die de daadwerkelijk interessante informatie binnentrekt en op gezette tijden (voila, de cron ;) ) contact zoekt met de PNS dienst.
Uiteindelijk is het doel aan de PNS kant een daemon op te zetten die opdrachten - het versturen van push berichten - aanneemt en verdeelt over verschillende nodes. Uiteraard toekomstmuziek, maar op die manier beter te schalen en wat spannender ;).

Uitgangspunt bij de library was zo eenvoudig mogelijk te gebruiken:

code:
1
2
3
//Init CaeliNoti
    [[CNMain shared] prepareCNWithAccountID:Account_ID];
    [[CNMain shared] registerForRemoteNotifactionTypes:UIRemoteNotificationTypeAlert];

[Reactie gewijzigd op woensdag 28 maart 2012 10:53]


Door Tweakers user Satch, woensdag 28 maart 2012 15:42

Om even in de gaan op de niet-technische kant: Je schrijft dat het ontwikkelen in de baas z'n tijd niet kon, dus dat je daarom dit zelf in je eigen tijd hebt ontwikkeld. Mijn tip: Maak duidelijke afspraken bij wie de rechten liggen van de software die je hebt gemaakt! Want je bespaart je baas als ik het goed lees nu een hoop geld, maar krijgt er zelf niks meer voor terug. Laat je dus niet afschepen! Leuk om te lezen trouwens zoiets over het achter de schermen van iOS. :)

Door Tweakers user vistu, woensdag 28 maart 2012 16:16

Satch schreef op woensdag 28 maart 2012 @ 15:42:
Om even in de gaan op de niet-technische kant: Je schrijft dat het ontwikkelen in de baas z'n tijd niet kon, dus dat je daarom dit zelf in je eigen tijd hebt ontwikkeld. Mijn tip: Maak duidelijke afspraken bij wie de rechten liggen van de software die je hebt gemaakt! Want je bespaart je baas als ik het goed lees nu een hoop geld, maar krijgt er zelf niks meer voor terug. Laat je dus niet afschepen! Leuk om te lezen trouwens zoiets over het achter de schermen van iOS. :)
Dat is een goed punt ja, bedankt! Binnenkort zeker over hebben :)

Reageren is niet meer mogelijk