O Parse, provedor MBaaS (Mobile Backend como um serviço) anunciou recentemente duas novas adições à plataforma, um serviço de relatório de falhas (crash reporting service) e suporte para armazenamento de dados localmente (local datastore) no iOS.
Como um provedor de serviços de backend para aplicativos móveis, o Parse visa simplificar o desenvolvimento dessas aplicações automatizando a criação dos aspectos do lado do servidor e por sua vez, permitindo que os desenvolvedores se concentrem na aparência visual e experiência do usuário em suas aplicações. Os desenvolvedores que usam a plataforma Parse ganham acesso a um backend escalável com suporte a armazenamento local, autenticação (incluindo login social), ambiente para execução de código customizável na nuvem (usando JavaScript), tarefas agendas do lado do servidor, um serviço de notificação push e um dashboard analítico.
Agora desenvolvedores podem utilizar a plataforma do Parse para fazer o monitoramento de falhas em suas aplicações. Essa adição será bem vinda aos desenvolvedores, que anteriormente tinham que administrar e pagar por ferramentas adicionais para gerar relatórios de falhas como o Crashalytics, Crittercism e TestFlight. Como mencionado nas ferramentas acima, o Crash Reporting Service do Parse fornece um dashboard com suporte para agregar falhas similares, rastreamento de falhas através de versões e rastreamento de stack simbólico.
Os desenvolvedores podem facilmente integrar o crash reporting dentro das aplicações chamando o método apropriado na plataforma específica do Parse SDK. No iOS os desenvolvedores fazem a seguinte chamada na classe AppDelegate:
[ParseCrashReporting enable];
No Android os desenvolvedores devem adicionar a seguinte chamada no método onCreate da classe Application:
ParseCrashReporting.enable(this);
Além do crash reporting o Parse também anunciou o local data storage no iOS (anteriormente disponível somente no Android). Com o armazenamento de dados local os desenvolvedores podem fazer cache dos dados da aplicação no dispositivo do cliente e sincronizá-los mais tarde. Isso resolve um problema comum encontrado pelos desenvolvedores de aplicativos móveis, a falta de uma conexão de internet confiável, que frequentemente resulta na experiência frustrante do usuário.
A API do Parse para armazenamento de dados local usa o conceito de fixar para identificar resultados de consultas que devem ser mantidos offline, no local datastore. Objetos fixados são automaticamente atualizados quando futuras chamadas save, update ou delete são feitas. O seguinte trecho de código ilustra uma consulta ao backend e subsequentemente uma consulta no local datastore para os resultados em cache:
PFQuery *query = [PFQuery queryWithClassName:@"Feed"]; // Pin PFQuery resultado NSArray *objects = [query findObjects]; // Online PFQuery resultado [PFObject pinAllObjectsInBackground:objects]; ... // Consulta o Local Datastore [query fromLocalDatastore]; [query whereKey:@"starred" equalTo:@YES]; [[query findInBackground] continueWithBlock:^id(BFTask *task) { // Update the UI }]];
Além de respostas da API de armazenamento em cache, o local datastore pode ser editado com as mudanças dos itens sendo sincronizados sempre que uma conexão com a internet estiver disponível. O seguinte código ilustra a API do local datastore retornando e atualizando um objeto em cache:
feedItem.starred = YES; // Sem conexão com a internet [feedItem saveEventually]; ... PFQuery *query = [PFQuery queryWithClassName:@"Feed"]; [query fromLocalDatastore]; [query whereKey:@"starred" equalTo:@YES]; [[query findInBackground] continueWithBlock:^id(BFTask *task) { // "feedItem" PFObject será retornado em uma lista de resultados }]
Os desenvolvedores que desejam testar a plataforma Parse podem utilizar o seu plano grátis, que permite até 30 requisições por segundo, 20GB de armazenamento e 2TB de transferência de dados por mês. Planos pagos estão disponíveis a partir de 100 dólares, iniciando com 100 dólares por mês e que vão a até 3700 dólares por mês, com aumento de requisições, armazenamento de dados e limites de transferência a cada incremento. Informações completas sobre preços estão disponíveis na página de planos do Parse.