You want to develop a mobile web app. You app needs to connect to a Grails backend. You don't know where to start? This session is tailored for you: live coding will show you where to start from scaffolding a web application with modern HTML5 Front End, using OAuth2 to authenticate and authorize to packaging your app into a native shell.
Corinne Krych | |
Consultant freelance depuis … quand on aime, on ne compte pas! Et pour sur, je ne m'éloigne jamais trop du code. | |
Curieuse et trendy (développeur au féminin), le mobile c'est mon nouveau terrain de jeu. Mobile web app, Hybrid et plus récemment des applications natives. Depuis Mai, j'ai rejoins Red Hat (et Sébastien) au sein de l'équipe AeroGear. Polyglot par essence, une forte addiction au clean code, je m'amuse en mon temps libre (et avec mes copains geeks) à torturer les langages de la JVM pour définir le DSL le plus lean. Par dessus tout, j'aime partager, échanger. C'est dans cet esprit que je suis co-fondateur du RivieraGUG, membre actif du JSSophia. N’hésitez pas à venir chatter avec moi @corinnekrych | |
----- | |
Dev for over 15 years (when you like it you don't really count), I never go too far from coding. | |
Open minded and curious, I like to try new stuff; Those days, mobile is my new playground. Mobile web app, Hybrid and more recently native apps. Since May, I've joined Read Hat and work wit |
NSData *imageData = UIImageJPEGRepresentation(self.imageView.image, 0.2); | |
AGFileDataPart *dataPart2 = [[AGFileDataPart alloc] initWithFileData:imageData | |
name:@"image" | |
fileName:@"image.jpeg" mimeType:@"image/jpeg"]; | |
AGFileDataPart *dataPart1 = [[AGFileDataPart alloc] initWithFileData:[NSKeyedArchiver archivedDataWithRootObject:@{@"title":@"ttt"}] name:@"image" fileName:@"image.jpeg" mimeType:@"image/jpeg"]; | |
// set up payload | |
NSDictionary *dict = @{@"data1:": dataPart1, @"data2:": dataPart2, @"uploadType":@"multipart"}; | |
[pipe save:dict success:^(id responseObject) { | |
NSLog(@"Successfully uploaded!"); |
POST /drive/v2/files?access_token=ya29.1.AADtN_VVzuthY6mCLmK8vNTnhS_7lwMOnT0R8MMrwTRSck2MVURZuIGGQVz6mUmbvZQwbQ HTTP/1.1 | |
Host: www.googleapis.com | |
Accept-Encoding: gzip, deflate | |
Accept: */* | |
Content-Length: 0 | |
Connection: keep-alive | |
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, ja;q=0.7, nl;q=0.6, it;q=0.5 | |
User-Agent: Shoot/1.0 (iPad; iOS 7.0.4; Scale/2.00) | |
----- | |
POST /drive/v2/files HTTP/1.1 |
NSString* readGoogleDriveURL2 = @"https://www.googleapis.com/drive/v2/files"; | |
NSString *url = [NSString stringWithFormat:@"%@?access_token=%@", readGoogleDriveURL2, object]; | |
AFHTTPClient* restClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:readGoogleDriveURL2]]; | |
[restClient postPath:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { | |
NSLog(@"Invoking successblock for List Google DRIVE...."); | |
With over 15 years of experience in development, Corinne is addicted to code and can’t go very far from it. She traveled from C++ to Java, J2EE and naturally made her path to mobile apps by joining Red Hat AeroGear team. Being an Agile coach and practitioner, she thinks code is craft and collaboration is key to success. Chatting about the latest tech trends on twitter (@corinnekrych): female geek – what do you expect? – she’s always curious to discover languages and frameworks.
Type: Tools in Action
Abstract:
- (void)uploadImage:(UIImage*)image | |
{ | |
NSData *imageData = UIImageJPEGRepresentation(image, 0.6); | |
// 1 | |
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; | |
config.HTTPMaximumConnectionsPerHost = 1; | |
[config setHTTPAdditionalHeaders:@{@"Authorization": [Dropbox apiAuthorizationHeader]}]; | |
// 2 |
Following yesterday discussion:
http://oksoclap.com/p/iOS_Meeting_(Security)
and minute:
http://transcripts.jboss.org/meeting/irc.freenode.org/aerogear/2013/aerogear.2013-10-08-13.55.html
and after some research, I think:
- we don't have much to do iOS Data Protection (passcode activated). Don't need to write a wrapper on that.
Small gist to discuss SQLite options. The example is extracted from AeroDoc where we have a list of My Leads which are locally saved.
From github, fmdb is well maintained.
The code trial is available from AGIOS-25.read.write.with.fmdb branch in my AeroDoc-ios repo.
// Get path from bundle doc space
Last AeroGear release (1.2.0) main focus is on push notifications. (TODO link to Matzew's blog.) Push notifications are heavily used in today mobile apps. They become key features, changing the UX in a push-notification-enabled application. Notifications' role is to wake up applications to provide updates, and that simple feature brings thousands of business use cases.
However, with the broad variety of proprietary Push notification solutions: APNS (Apple Push Notification Service), GCM (Google Cloud Messaging), AMD (Amazon Device Messaging), WNS (Window Push Notification Service) even the web push is on its way with SimplePush notification for Firefox OS, it mays quickly sound like cacophony to a developer willing to target multiple market places. Here comes Unified Push Server, a solution to treat push notifications in cross platform approach. Push in the Open.
A picture is worth