Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Frontend controlled by the backend.

Frontend controlled by the backend.

The process of releasing a new version of a mobile application to your customers is aways hard, painful and sometimes slow. A/B tests became hard to do, changing a feature, or even changing a copy requires your customers updating the app, slowing the possibility of fast iterations and feedback. What if it didn't need to be this way, what if you could let this logic be on the backend. We did this and wanted to share with you our thoughts about it.

Thales Machado

October 20, 2017
Tweet

More Decks by Thales Machado

Other Decks in Technology

Transcript

  1. Acquisition On Nubank = 24 to 37 screens (and some

    with more than one state) INTRODUCTION Nubank Acquisition
  2. Acquisition Features • CPF • Password • Account created warning

    • RG • RG issuer • Marital Status • Cell phone number • Location Permission Warning • CEP • Address • Neighborhood • City • State • Camera Permission Warning • Docs Front • Docs Back • Selfie • Income • Limit range • Due day • PIN • Summary • Signature • Terms n Conditions • Date of birth
  3. Acquisition Features CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth WHAT DO THEY HAVE IN COMMON?
  4. Acquisition Features CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth THEY ARE SIMPLE QUESTION AND ANSWER SCREENS
  5. Acquisition Features CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth DO WE NEED THAT MANY?
  6. Acquisition Features CPF Password RG CEP Address City State Camera

    Permission Warning Docs Front Docs Back Selfie Limit range Due day PIN Terms n Conditions Date of birth DO WE NEED THAT MANY?
  7. Acquisition Features CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth HOW CAN THE APP DECIDE?
  8. Acquisition Features CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth CHANGES ALWAYS REQUIRE A NEW VERSION + PEOPLE UPDATING THE APP
  9. Acquisition Desired Solution The backend can know all this information

    • Easy to add, change or remove one STEP in the flow • Easy to do A/B testing • Centralized logic • Changes do not need to depend on customers updating the app
  10. Don't get set into one form, adapt it and build

    your own, and let it grow, BE LIKE WATER - Bruce Lee
  11. Navigational flow • A flow is divided in chunks, which

    is a set of steps • A flow is non linear, that is, it can have bifurcations • A flow should follow a communication protocol in order to navigate
  12. Backwards Compatibility C E D F G A B new

    step type
 (unsupported by client) step type
 supported by client supports destination
 step? yes! no
  13. Acquisition Steps Steps • Represent a single piece of information

    on the flow • Can be a question or an announcement • Can generate an answer • Is the base of all the flow • Is represented as a JSON document
  14. Acquisition Steps CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth Text Inputs
  15. Acquisition Steps Text Inputs • Need to conform to different

    masks: • Phone • CEP • CPF • Date of Birth • etc… • Can have more than one per Screen • Complex validation
  16. Acquisition Steps CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth Read Only
  17. Acquisition Steps Read Only • Do not generate an answer

    • Normally used as warnings • Can be used to establish decision points (flow bifurcation)
  18. Acquisition Steps CPF Password Account created warning RG RG issuer

    Marital Status Cell phone number Location Permission Warning CEP Address Neighborhood City State Camera Permission Warning Docs Front Docs Back Selfie Income Limit range Due day PIN Summary Signature Terms n Conditions Date of birth Multiple Choice
  19. Acquisition Steps Multiple Choice • Can be restricted into one

    or more selections • A cell click can redirect • Can be shown as a list or a matrix (e.g due day)
  20. Acquisition Steps Steps • Represent a single piece of information

    on the flow • Can be a question or an announcement • Can generate an answer • Is the base of all the flow • Is represented as a JSON document • Can have it’s text fully customizable inside a guideline
  21. Acquisition Numl • Some are base tags, which define the

    base color, font and size for that text • The others define the emphasis they will act upon Separated into a semantical meaning <h1> <h2> <h6> <label> <p> <small> ColorEmphasis FontEmphasis StyleEmphasis <i> <em> <b> <span> <strong> <a>