helios y su integración en ios

25
Helios y su integración en iOS ¿Es una persona o una legión? @mattt Created by / Javier Moreno @jmoreno

Upload: javier-moreno

Post on 10-May-2015

447 views

Category:

Technology


2 download

DESCRIPTION

Presentación sobre el framework Helios, los módulos que lo componen y las librerías con las que puede integrarse en desarrollos iOS.

TRANSCRIPT

Page 1: Helios y su integración en iOS

Heliosy su integración en iOS

¿Es   una persona o una legión?@matttCreated by / Javier Moreno @jmoreno

Page 2: Helios y su integración en iOS

, an extensible   mobilebackend framework

helios open-source

si, si, pero... ¿qué es?

Aplicación Ruby construida sobre .Compuesto por varias aplicaciones Ruby hechas con Sinatra.Con una pequeña interfaz de administración web.

Rack

Page 3: Helios y su integración en iOS

¿Para qué sirve?Sincronización de datosNotificaciones PUSHGestión de In-App PurchasesGestión de PassbookGestión de NewstandAnalíticas y loggingConfiguración remota

Page 4: Helios y su integración en iOS

Sincronización de datosEn el backend

: Automatically generate RESTful CRUD servicesRack::Scaffold

En iOS: Core Data Persistence with AFNetworking,

Done Right... my ass!: A delightful iOS and OS X networking framework.

AFIncrementalStore

AFNetworking

Page 5: Helios y su integración en iOS

Rack::ScaffoldGET /:resourcesPOST /:resourcesGET /:resources/:idPUT /:resources/:idDELETE /:resources/:idGET /:resources/:id/:association si hay relaciones

Page 6: Helios y su integración en iOS

AFIncrementalStorePromete mucho pero AFNetworking es más seguro.

Page 7: Helios y su integración en iOS

Notificaciones PUSHEn el backend

: A Rack-mountable webservice for managingpush notifications

: Apple Push Notifications; No Dirigible Required

Rack::PushNotification

Houston

En iOS: Push Notification Registration for iOSOrbiter

Page 8: Helios y su integración en iOS

Rack::PushNotificationPUT /push_notification/devices/:tokenDELETE /push_notification/devices/:tokenGET /push_notification/devices/?GET /push_notification/devices/:token/?

Page 9: Helios y su integración en iOS

HoustonPOST /push_notification/messageCommand-Line Interface

Page 10: Helios y su integración en iOS

OrbiterIntegración con Helios

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ NSURL *serverURL = [NSURL URLWithString:@"http://demo.helios.javimoreno.me/devices/"]; Orbiter *orbiter = [[Orbiter alloc] initWithBaseURL:serverURL credential:nil]; [orbiter registerDeviceToken:deviceToken withAlias:nil success:̂(id responseObject) { NSLog(@"Registration Success: %@", responseObject); } failure:̂(NSError *error) { NSLog(@"Registration Error: %@", error); }];}

También con Parse y Urban Airship

Page 11: Helios y su integración en iOS

Gestión de In-App PurchasesEn el backend

: Ruby Gem for In-App Purchase Receipt VerificationRack::InAppPurchaseVenice

En iOS: The Essential StoreKit CompanionCargo Bay

Page 12: Helios y su integración en iOS

Rack::InAppPurchasePOST /in_app_purchase/receipts/verifyGET /in_app_purchase/products/identifiersGET /in_app_purchase/receipts/

Page 13: Helios y su integración en iOS

VeniceCommand-Line Interface

Page 14: Helios y su integración en iOS

Cargo BayLista de productos disponibles:

NSURL *url = [NSURL URLWithString:@"http://demo.helios.javimoreno.me/in_app_purchase/products/identifiers/"NSURLRequest *request = [NSURLRequest requestWithURL:url];[[CargoBay sharedManager] productsWithRequest:request success:̂(NSArray *products, NSArray *invalidIdentifiers) { NSLog(@"Products: %@", products); NSLog(@"Invalid Identifiers: %@", invalidIdentifiers); _productsArray = [NSMutableArray arrayWithArray:products]; [self.tableView reloadData];} failure:̂(NSError *error) { NSLog(@"Error: %@", [error description]);}];

Page 15: Helios y su integración en iOS

Cargo BaySeguimiento de los pagos:

- (void)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options { [[CargoBay sharedManager] setPaymentQueueUpdatedTransactionsBlock:̂(SKPaymentQueue *queue, NSArray *transactions) { NSLog(@"Updated Transactions: %@", transactions); }];

[[SKPaymentQueue defaultQueue] addTransactionObserver:[CargoBay sharedManager]];

// ...}

Page 16: Helios y su integración en iOS

Cargo BayVerificación de la compra:

[[CargoBay sharedManager] verifyTransaction:transaction password:nil success:̂(NSDictionary *receipt) { NSLog(@"Receipt: %@", receipt);} failure:̂(NSError *error) { NSLog(@"Error %d (%@)", [error code], [error localizedDescription]);}];

Page 17: Helios y su integración en iOS

Gestión de PassbookEn el backend

: Generate and Preview Passbook PassesRack::PassbookDubai

En iOS: A delightful iOS and OS X networking framework.AFNetworking

Page 18: Helios y su integración en iOS

Rack::PassbookGET /passbook/passes/:passTypeIdentifier/:serialNumberGET /passbook/devices/:deviceLibraryIdentifier/registrations/:passTypeIdentifier[?passesUpdatedSince=tag]POST/passbook/devices/:deviceLibraryIdentifier/registrations/:passTypeIdentifier/:serialNumberDELETE/passbook/devices/:deviceLibraryIdentifier/registrations/:passTypeIdentifier/:serialNumberGET /passbook/passes/

Page 19: Helios y su integración en iOS

DubaiCommand-Line Interface

Page 20: Helios y su integración en iOS

Gestión de NewsstandEn el backend

: Automatically generate webservice endpoints forNewsstandRack::Newsstand

En iOS: A delightful iOS and OS X networking framework.AFNetworking

Page 21: Helios y su integración en iOS

Rack::NewsstandGET /newsstand/issuesGET /newsstand/issues/:namePOST /newsstand/issues

Page 22: Helios y su integración en iOS

Analíticas y loggingEn el backend

: Log metrics from HTTP request parametersaccording to l2met conventionsRack::HTTPLogger

En iOS: Extensible Remote LoggingAntenna

Page 23: Helios y su integración en iOS

Configuración remotaEn el backend

: Serve property list or JSONconfiguration filesRack::RemoteConfiguration

En iOS: Remote Configuration for iOS

: Multivariate & A/B Testing for iOS and MacGround ControlSkyLab

Page 24: Helios y su integración en iOS

Anexos: world-class command line utilities for iOS development: a hybrid approach to real-time cloud applications

: The easiest way to get started with PostgreSQL on theMac

: A Polyglot Database Client for Mac OS X: a journal of the overlooked bits in Objective-C and Cocoa: Searchable full-text transcripts of WWDC sessions

NomadRocketPostgresApp

InductionNSHipsterASCIIwwdc

Page 25: Helios y su integración en iOS

THE ENDBY Javier Moreno / javimoreno.me