Download - 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
, 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
¿Para qué sirve?Sincronización de datosNotificaciones PUSHGestión de In-App PurchasesGestión de PassbookGestión de NewstandAnalíticas y loggingConfiguración remota
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
Rack::ScaffoldGET /:resourcesPOST /:resourcesGET /:resources/:idPUT /:resources/:idDELETE /:resources/:idGET /:resources/:id/:association si hay relaciones
AFIncrementalStorePromete mucho pero AFNetworking es más seguro.
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
Rack::PushNotificationPUT /push_notification/devices/:tokenDELETE /push_notification/devices/:tokenGET /push_notification/devices/?GET /push_notification/devices/:token/?
HoustonPOST /push_notification/messageCommand-Line Interface
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
Gestión de In-App PurchasesEn el backend
: Ruby Gem for In-App Purchase Receipt VerificationRack::InAppPurchaseVenice
En iOS: The Essential StoreKit CompanionCargo Bay
Rack::InAppPurchasePOST /in_app_purchase/receipts/verifyGET /in_app_purchase/products/identifiersGET /in_app_purchase/receipts/
VeniceCommand-Line Interface
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]);}];
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]];
// ...}
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]);}];
Gestión de PassbookEn el backend
: Generate and Preview Passbook PassesRack::PassbookDubai
En iOS: A delightful iOS and OS X networking framework.AFNetworking
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/
DubaiCommand-Line Interface
Gestión de NewsstandEn el backend
: Automatically generate webservice endpoints forNewsstandRack::Newsstand
En iOS: A delightful iOS and OS X networking framework.AFNetworking
Rack::NewsstandGET /newsstand/issuesGET /newsstand/issues/:namePOST /newsstand/issues
Analíticas y loggingEn el backend
: Log metrics from HTTP request parametersaccording to l2met conventionsRack::HTTPLogger
En iOS: Extensible Remote LoggingAntenna
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
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
THE ENDBY Javier Moreno / javimoreno.me