better content presentation

26
BetterContent for a developer’s well being Benny Weingarten-Gabbay @gardenofwine

Upload: gardenofwine

Post on 14-Jul-2015

52 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Better content presentation

BetterContent

for a developer’s well being

Benny Weingarten-Gabbay

@gardenofwine

Page 2: Better content presentation

Once upon a time,

there was an app

Home Screen

Title:“RECENT ACTIVITY”

Page 3: Better content presentation

One day, the PM said,

“Lets change the title”

Home Screen

Title:“ALL YOUR RECENT ITEMS”

Page 4: Better content presentation

Inefficiency

Developer

Product ManagerMarketing Manager

Legal Advisor

UX specialist Designer

Page 5: Better content presentation

Better Efficiency

Developer

Product ManagerMarketing Manager

Legal Advisor

UX specialist Designer

Page 6: Better content presentation

Side note: Content Management

Desirable features:

● Central document for all content

● Easy localization

● Change app content on the fly

Reality:

● Not easy

● Mostly obtrusive

● Incomplete

Page 7: Better content presentation

Side note: Content Management

Page 9: Better content presentation

Spark Inspector

Page 10: Better content presentation

Optimizely

Page 11: Better content presentation

Enter: BetterContent

Buy

now!

Buy

now!Immediately,

at runtime

Page 12: Better content presentation

Requirements

● Publicly accessible

● Easy development

● Easy installation

● Easy configuration

Page 13: Better content presentation

Enter: BetterContent

Buy

now!

Buy

now!

Page 14: Better content presentation

Enter: BetterContent

Buy

now!

Buy

now!

Page 15: Better content presentation

Free Hosting Services

heroku labs:enable websockets

Page 16: Better content presentation

Native packaging

VS

Page 17: Better content presentation

Websocket Implementation

VS

Page 18: Better content presentation

Tool Architecture

Buy

now!

Buy

or

rent!

Native app

Server

web client

Page 19: Better content presentation

Native Architecture

● Hook for app start

● A repeating NSTimer scanner

Page 20: Better content presentation

Native Architecture

NSDictionary

“0x7cea4590”

“0x7a0b9cf0”

“0x79e7bd70”

“0x79ea0d90”

Page 21: Better content presentation

Native Architecture@implementation UILabel (BTCLabel)

- (void)btcIsSerializable{}

- (NSString *)btcClass{

return @"label";

}

- (NSDictionary *)btcAttributes{

return @{@"text": self.btcSafeText,

@"font" : @{@"pointSize" : @(self.font.pointSize)

@"color" : [self btcHexColor]}};

}

- (void)updateWithComponent:(BTCComponent *)newComponent{

self.text = [newComponent.attributes objectForKey:@"text"];

}

Page 22: Better content presentation

Server Architecture

● Node.js, gulp

● based on heroku-examples/node-ws-test

● Simple, fragile websocket protocol

● Mostly a data pipe between Native App

and web app.

Page 23: Better content presentation

Web Client Architecture

● Still work in progress

● One big js file

● Separate component for each native class

● Currently only supports label editing

Page 24: Better content presentation

The Future

● Heroku templates

● iOS Framework in addition to pod

● Android support

● Additional components support

● Additional attributes support

● Multiple user support

● Native API for app control over

functionality

Page 25: Better content presentation

The Holy Grail

Automatic content management

support

1. Use BetterContent to scrape content

2. Build a document with all apps content

3. Native app uses said document for content

4. Said document is editable from the server

Page 26: Better content presentation

BetterContent

https://github.com/gardenofwine/better-content-

server

Benny Weingarten-Gabbay

@gardenofwine