Hi, Thanks for your feedback! I have presented the proposal, and now I have to wait for a response. I want to let you know that I have already replaced the code for an English version. You can see it: https://github.com/MarcosPividori/Yesod-server-for-GCM I hope it will be more useful now! Thanks, Marcos
2013/5/4 Kristopher Micinski <krismicin...@gmail.com> > Marcos, > > Great to see you've revised a copy of this. I've often felt that push > communication to devices has a very continuation-y flavor, and I think > having something in a web framework to express this would be great. > > It looks like a large part of your time may be spent developing demo > apps, which is too bad, since ideally (for a Haskell project) you'd > want to spend as much time as possible writing in Haskell :-). > Perhaps you could write a fleshed out demo app for one environment > (iOS, Android, etc..) and then shallower examples for the rest. (In > theory of course, you don't even need to write sample apps for most > platforms, since the push API should be an abstraction layer above > that...). > > Should this project make it through to be one of Haskell's GSOC > projects, I'd be happy to chat with you about your development. > > Kris > > On Thu, May 2, 2013 at 8:53 PM, Marcos Pividori > <marcospivid...@gmail.com> wrote: > > Greetings, > > > > I am a Computer Science student from Argentina. I am interested in > working > > this summer in a project related to Haskell for the Google Summer of > Code. I > > have been discussing my idea with Michael Snoyman in order to have a > clearer > > idea. Now, I would like to know the community interest in this project. > > > > I want to develop a server-side library in Haskell for sending push > > notifications to devices running different OS, such as Android, iOS, > Windows > > Phone, BlackBerry, and so on. > > > > To pass a subject, I have recently worked with Yesod (a Web Framework > based > > in Haskell) developing a server to comunicate with Android-powered > devices > > through Google Cloud Messaging. (It is available: > > https://github.com/MarcosPividori/Yesod-server-for-GCM – It is a Spanish > > commented version because it was a project for my University, I will > replace > > it for an English version in the next weeks) > > > > To develop this project, I have read a lot about this service and Yesod > > libraries, and I developed two programs, a server written in Haskell and > an > > Android application for mobile phones. Also, I developed an EDSL to write > > programs which exchange information with the devices. > > > > I would be really grateful if you could give me your opinion about this > > project and the proposal. I want some feedback in order to know if this > > would be a useful tool and what you would like to get out of it. > > > > Communicating with mobile devices > > > > > > Abstract > > > > The aim of this project is to develop a server-side library in Haskell > for > > sending push notifications to devices running different OS, such as > Android, > > iOS, Windows Phone, BlackBerry, and so on. > > > > The fact is that every company is developing Push Notification services, > and > > these are very similar. Then, I want to find the fundamental concepts to > > construct a library which enable to configure the options for the > different > > services and send messages easily. > > > > When I say they are very similar, I refer to the fact that they all are > > asynchronous, best-effort services that offers third-party developers a > > channel to send data to apps from a cloud service in a power-efficient > > manner. The most popular are: > > > > - Google Cloud Messaging (Android) > > > > - Apple Push Notification Service (iPhone / iPad) > > > > - Microsoft Push Notification Service (Windows Phone) > > > > - BlackBerry Push Service (BlackBerry) > > > > - Windows Push Notification Services (Windows 8) > > > > - etc. > > > > Once we have this libraries, I will investigate the possibility of > mainting > > a "back and forth" communication between a server and mobile devices and > I > > will develop a library to handle this. > > > > > > Motivation and expected benefits > > > > I think this idea would be very useful because it will allow all Haskell > > developers to open to a new world of mobile devices and to build useful > > programs/services that interact with them. > > > > Pushing data to smartphones provides users with instant access to desired > > updates as they happen, such as news and weather, sports scores, stock > > prices and other time-sensitive content. The push services provide an > > efficient way to quickly push timely information updates to many > smartphones > > at once, in a centrally managed and controlled manner. > > > > Generally, you can also be very selective in who you send information to, > > including individual customers or many customers (multicast). > > > > This services minimizes the impact on the smartphones battery life. > Instead > > of actively checking for new data, the applications can remain closed. > Once > > the data is delivered, the application can be launched in the background > to > > process it as needed. > > > > This processes offer an alternative to other less efficient methods, > such as > > polling, where a device regularly polls an application server to see if > new > > content is available. > > > > The main differences between the services, refer to details as: the maxim > > payload length, the quality of service, queueing the messages or not, and > > the time limit for this, the way the messages are handled in the devices, > > etc. > > > > As all the libraries to access to these services are developed in Java, I > > thought that it would be a good idea to offer an option to Haskell > > programmers. Taking advantage of the similarity of these services, I > could > > develop a very adaptable library which fits the necessities for each one > and > > at the same time offer an abstraction to the user. > > > > > > Deliverables. > > > > > > * An API library to build and send messages including: > > > > - GCM and a demo Android app. > > > > - APN and a demo iOS app. > > > > - Microsoft Push Notification Service (Windows Phone) and a demo app. > > > > - Documentation for all the code developed. Including the > explantation on > > how to use the server > > > > library and how to try the demo apps. > > > > > > > > * A library to handle a "back and forth" comunication between a server > and > > mobile devices. Tools to mantain a state of the connection and manage > with a > > lot of devices at the same time. A Yesod app example of the use of this > > library and a demo app for each OS (Android, iOS, Windows Phone, etc) to > > manage this communication. > > > > > > > > * Optionally: > > > > - an API for communication through BlackBerry Push Service > (BlackBerry). > > > > - an API for communication through Windows Push Notification Services > > (Windows 8). > > > > > > > > Technical Considerations > > > > In the developing of the APIs for the communication through Push > > Notifications, I will aim to develop a good abstraction and find the > > properties in common between the differents services in order to > develope an > > customizable tool but at the same time with a common structure. > > > > I want to let the user build messages and send these in a simple way > > following each protocol. Also, I will abstract the process of registering > > the devices in the server and let the user manage the different > > registrations behind a similar abstraccion. > > > > To develop a “back and forth” comunication between a server and mobile > > devices, I will investigate the different possibilities of maintaining a > > state of the connection. It could be through the use of cookies stored by > > the clients or maintaining some extra information in the server which > would > > enable it to identify the different connections and provide the > appropiate > > services. > > > > > > _______________________________________________ > > Haskell-Cafe mailing list > > Haskell-Cafe@haskell.org > > http://www.haskell.org/mailman/listinfo/haskell-cafe > > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe