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

Yosef - Open source lib for view creation

Yosef - Open source lib for view creation

Avatar for yasmin

yasmin

June 20, 2018

More Decks by yasmin

Other Decks in Programming

Transcript

  1. QUEM É YASMIN Android Developer • 21 anos • Graduada

    em análise e desenvolvimento de sistemas - Fiap • Gosta muitooo de história • Jogadora de Fifa
  2. SUMÁRIO • O que é Yosef? • A razão da

    lib ter sido criada • Estrutura da Yosef e seus componentes • O processo de criação de uma lib open source
  3. GERA VIEWS Uma lib open source multi plataforma que A

    partir de um protocolo json sem precisar de um novo APK na Play Store
  4. { "type": "elementGroup", "properties": [ { "name": "orientation", "type": "string",

    "value": "vertical" }, { "name": "backgroundColor", "type": "color", "value": "#5F5BFC" } ], "children": null }
  5. { "type": "elementGroup", "properties": [ { "name": "orientation", "type": "string",

    "value": "vertical" }, { "name": "backgroundColor", "type": "color", "value": "#5F5BFC" } ], "children": [ { "type": "text", "properties": [ { "name": "text", "type": "string", "value": "Talk de Android" } ] } ] } Talk de Android
  6. { "type": "text", "properties": [ { "name": "text", "type": "string",

    "value": "Talk de Android" }, { "name": "textColor", "type": "color", "value": "#FFFFFF" }, { "name": "textSize", "type": "dimen", "value": "35" }, { "name": "textStyle", "type": "string", "value": "bold" } ] Talk de Android
  7. FLUXO ADAPTÁVEL Caso decida ser mudado a interface do app,

    o front-end se adapta ao que for passado pelo back-end • Genérico o suficiente a mudanças • Se a experiência do usuário muda • Se a interface do aplicativo muda
  8. ATUALIZAÇÕES Atualizações de aplicativo que não dependem de uma nova

    APK na loja e nem de aprovações que possam ser demoradas para que suba uma nova versão do app
  9. ESTRUTURA DA YOSEF Components Properties Creator OnActionListener Custom Components Componentes

    de tela que vão ser gerados de acordo com o protocolo Yosef que foi passado para a lib. Eles devem possuir um tipo, conter uma lista de propriedades que serão aplicadas ao mesmo e também podem ter “filhos”. Cada componente conhece a lista de propriedades que podem serem aplicadas neles mesmos.
  10. Propriedades que podem ser aplicadas aos componentes ESTRUTURA DA YOSEF

    Components Properties Creator OnActionListener Custom Components
  11. ESTRUTURA DA YOSEF Components Properties Creator OnActionListener Custom Components A

    lib possui uma classe principal, a DynamicViewCreator, essa classe possui um Builder que é usado para o controle de quais componentes serão usados // a json string following the specification val json = readJson("assets/example.json") val creator = DynamicViewCreator.Builder() .build() // an ActionListener callback val actionListener : OnActionListener? = null val view = creator.createViewFromJson(context, json, actionListener)
  12. ESTRUTURA DA YOSEF Components Properties Creator OnActionListener Custom Components De

    que forma poderia ser recebida a informação de alguma ação nos componentes? Um listener que é passado no método que cria a view será o responsável por receber valores de ações que são feitas nos components
  13. A lib permite que custom Components possam ser adicionados no

    Builder do DynamicViewCreator ESTRUTURA DA YOSEF Components Properties Creator OnActionListener Custom Components
  14. O PROCESSO DE CRIAÇÃO DE UMA LIB OPEN SOURCE •

    Divulgação • Flexibilidade para quem consumir a lib • Separação de dependências • Qualidade