Find Jobs
Hire Freelancers

Build an iOS SDK that wraps an existing REST API(repost)

$500-800 USD

Cancelado
Publicado hace alrededor de 13 años

$500-800 USD

Pagado a la entrega
This project is to build an iOS SDK that wraps the Kontagent REST API. For API details, please see [login to view URL] **NOTE: Bidders that include implemented OCUnit tests for the example header below will be given strong preference. The client itself doesn't have to be implemented (in other words, the tests can fail). The intent is to show how they will be structured and implemented. ** The SDK should have the following features - * API calls are handled in a background thread managed by the SDK to avoid impacting the performance of the main thread of the application. * When the network is reachable, API calls are queued to an in-memory queue (to be called Online Queue throughout the rest of this document). Can be as simple as the queue described here ([login to view URL]) and then pushed the REST API. * When network is unreachable, the API calls will be queued to an on-device SQLite database (to be called Offline Queue throughout the rest of this document). * Users of SDK should not see a difference when online vs. offline. * The first time the SDK is used for a given app on a given device, the application should generate a GUID. (See [login to view URL] for one way to do this.) Then whenever the REST API requires a userid (usually called 's'), pass the generated GUID. * Compiles to a single static library file (kontagent.a) with a header file (kontagent.h). The library must be a fat file that will work on device and in simulator. * Must rely only on iOS SDK frameworks. No 3rd party dependencies. * Must work be tested on iOS 3 or greater. * Simple way switch between Test and Live servers and API secret without recompiling static library. * Code must have full tests using OCUnit framework. * API calls should have a simple and advance form. Simple form takes required parameters, advanced form allows setting of optional parameters. When there are more than 1 optional parameters, then use an NSDictionary as the final argument. * Good coding standards including Don't Repeat Yourself applied to code. ## Deliverables API Header Examples (rest to be determined by the developer) @interface Kontagent : NSObject /* Lifecycle Events */ // Add to applicationDidFinishLoading // This is where the thread is started. Notice the use of class methods // The first time this is run, the GUID should be generated. // Check for network reachability. // If reachable, check to see if there are offline events queued and push them into the in memory queue. // If not reachable, setup SDK to log events offline. + (void) startSession: (NSString *)apiKey; //This alternative form allows a user to set the 'u' or 'su' params on the request. + (void) startSession:(NSString *)apiKey withParams:(NSDictionary *)params; // If OnlineQueue has items, push to OfflineQueue. // Intended to be used in either the applicationDidEnterBackground or applicationDidTerminate lifecycle events. + (void) pauseSession: (NSString *)apiKey; // If OfflineQueue has items and network is reachable, convert OfflineQueue to OnlineQueue. // Otherwise, keep pushing calls to OfflineQueue. // Intended to be used for the applicationDidEnterForeground lifecycle event. + (void) resumeSession: (NSString *)apiKey; /* REST wrapped methods */ // Basic Custom Action [evt] + (void) customAction:(NSString *)name; // Advanced Custom Action [evt] + (void) customAction:(NSString *)name withParams:(NSDictionary *)params; @end
ID del proyecto: 3193573

Información sobre el proyecto

Proyecto remoto
Activo hace 13 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos

Sobre este cliente

Bandera de UNITED STATES
United States
5,0
5
Forma de pago verificada
Miembro desde mar 30, 2005

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.