Despark: Building Awesome Apps by Svetoslav Velichkov

Post on 28-Jul-2015

190 views 0 download

Tags:

Transcript of Despark: Building Awesome Apps by Svetoslav Velichkov

BUILDING AWESOME APPS2015

SVETOSLAV VELICHKOV (totally an iOS nerd)

WHERE IS THIS PRESENTATION GOING TO TAKE US?

What defines an awesome app? How do we make one?

Reaction and Flow Smoothness and Resilience Emotion

WHAT IS AN AWESOME APP?

FLOW

REACTIVE

SMOOTH

RESILIENT

EMOTIVE

HOW DO WE GO ABOUT MAKING AWESOME APPS?

STEP 1: GET STUFF OUT OF THE WAY

NECESSARY MINUTIAE

Rest networking JSON parsing/serialisation Secure data/credentials storage Data caching/local storage Data marshalling/testable application architecture Collection layout Form layout Rich text layout and editing

THEY MATTER BUT THEY ALSO DON’T

DON’T OVERTHINK IT

OF NETWORK STACKS AND 9 MILLION BICYCLES IN BEIJING

AND SUDDENLY AFNETWORKING

CHOOSE SOMETHING, STICK WITH IT, SEE WHERE IT HURTS, REPEAT

AVERSE REACTIVECOCOA

DON’T SHY AWAY FROM APPLE’S NEW STUFF (because Apple’s gonna’ Apple)

Adaptive User Interfaces AutoLayout PDF Image Resources App Extensions CloudKit

Networking -- AFNetworking https://github.com/AFNetworking/AFNetworking -- Alamofire https://github.com/Alamofire/Alamofire -- CocoaSPDY https://github.com/twitter/CocoaSPDY

JSON parsing/serialization -- Mantle (-> NSObject) https://github.com/Mantle/Mantle -- Groot (-> NSManagedObject)https://github.com/gonzalezreal/Groot

Local storage -- MagicalRecord https://github.com/magicalpanda/MagicalRecord -- Parse https://www.parse.com/

Form layout -- Form https://github.com/hyperoslo/Form

Data marshalling/testable application architecture -- ReactiveCocoa https://github.com/ReactiveCocoa/ReactiveCocoa

General UI layout -- ComponentKit http://componentkit.org/ -- Masonry https://github.com/Masonry/Masonry

STEP 2: PLAN FOR FLOW AND REACTIVITY

“YOU DESIGN THE IN-BETWEENS”~‟Sam Smart Guy”

STATES & TRANSITIONS

COMPONENTKIT (or React Native, if you are adventurous)

STEP 3: TWEAK SMOOTHNESS AND RESILIENCE

TAKEAWAYS SO FAR

• Spend as little as possible on stuff your user doesn’t see. • Figure out your UI and data flows, before you write a line

of code • Tweak the app to remove any friction

STEP 4: FINALLY, YOU ARE FREE TO GET CLEVER

QUESTIONS?