Como o SAP UI5/Open UI5 se compara ao JS Angular?
Aqui, em vez de desenhar uma tabela de comparação Ionic 2 vs. UI5, gostaria de destacar alguns pontos sobre Ionic 2 (Angular 2.0+) que o SAP deve considerar ao melhorar a estrutura do SAPUI5. Além disso, o UI5 está sendo desenvolvido como um framework de aplicativos empresariais com um conceito Fiori muito bem desenhado, enquanto o Ionic tem como alvo os aplicativos de consumo. Assim, uma comparação direta entre características não nos daria uma boa visão de onde o UI5 pode tirar positividade do Ionic.
Após desenvolver aplicações transacionais e analíticas para o mundo empresarial SAP, obter experiência no Ionic 2 foi uma mudança bem-vinda. Aqui, ao invés de desenhar uma tabela comparativa Ionic 2 vs. UI5, eu gostaria de trazer à tona alguns pontos sobre Ionic 2 (Angular 2.0+) que o SAP deveria considerar ao melhorar a estrutura do SAPUI5. Além disso, o UI5 está sendo desenvolvido como um framework de aplicativos empresariais com um conceito Fiori muito bem desenhado, enquanto o Ionic tem como alvo os aplicativos de consumo. Portanto, uma comparação directa entre funcionalidades não nos daria uma boa visão de onde o UI5 pode tirar vantagens do Ionic.
UI5 coloca uma forte ênfase na ligação de dados com a arquitectura MVC (Model, View & Controller). Sendo construído sobre a biblioteca jQuery, ele usa eventos DOM baseados em jQuery para conseguir a ligação de dados, enquanto Ionic é baseado em Angular, o que lhe permite usar APIs nativas diretamente. Não há métodos de interceptação que ele tenha que chamar e assim Angular é notificado para atualizar o DOM ao contrário do SAPUI5. Além disso, a Angular arquiteta blocos de construção como componentes, e cada um desses componentes tem seu próprio detector de mudanças. Além disso, em Angular, podemos executar a detecção de alterações apenas para as partes da aplicação que mudaram o seu estado. Isto torna a arquitetura central da estrutura muito mais eficiente. Com conceitos do Fiori 2.0 como o Layout Analítico de Página, a SAP deve olhar para o desempenho desses layouts e avaliar se eles podem realmente atingir o caráter dinâmico que ele visa sem incorporar as técnicas modernas como Web Component.
Estes componentes realmente abrilhantaram o futuro do desenvolvimento de aplicações Web e ionic os utiliza de forma muito eficaz para criar seus elementos. Enquanto no UI5 nós usamos a combinação de tags div, span etc. para criar um elemento complexo. O sap.m.List, ListItems, Carousel, etc. podem ser implementados eficazmente usando componentes web.
Aqui está como o List fica em UI5 vs. Ionic.
E como o Lists é um dos controles mais importantes em UI5 no mundo SAP, devemos dar uma olhada no scroll virtual a fim de aumentar ainda mais a sua performance. Se implementarmos List com paginação no UI5, ele renderiza a lista 0-20 itens no início. Ao rolar os itens renderizados são 0-40, 0-80 e assim por diante. Isto significa que se tivermos 100 itens em nossa lista, então mais de 100 elementos são adicionados ao DOM. Um Larger Dom irá definitivamente impactar o desempenho do aplicativo. No Ionic 2, os itens são adicionados como 0-20, 20-40, 40-60, 60-80, etc. Isto significa que em qualquer ponto apenas 20 elementos estão no DOM e isto aumenta consideravelmente a performance de uma grande lista de conjuntos de dados.
Finalmente, Typescript; todos nós sabemos como o JavaScript tem tendência a ser verboso, emaranhado ("spaghetti code"), e repetitivo em grandes quantidades. O SAPUI5 tem feito um excelente trabalho na implementação de programação orientada a objetos e outras convenções e diretrizes padrão no framework usando JavaScript. Seria muito mais simples implementá-las com o Typescript. O Typescript melhora a legibilidade e reforça os tipos de erros fortes. Assim, Typescript vai cuspir qualquer erro de compilação, ao contrário do JavaScript, que é uma linguagem interpretada. O suporte do Rich IDE com recursos de autocompletar e navegação por código. Tudo isso irá aumentar a velocidade de desenvolvimento.
Looks at the other side of the story, Ionic 2 ainda é novo e imaturo, mas tem imenso potencial para ser um framework go-to para todos os tipos de aplicações. Sim, mesmo para as aplicações de negócios. As características que funcionam para que o framework SAPUI5 se integre perfeitamente com a linha de negócio são layouts pré-construídos, integração de oData, modelos Smart (baseados em Metadata), biblioteca de gráficos, temas, diretrizes de design, etc. Todos eles reunidos em um único framework ajudam a fornecer aplicações coerentes e simples. Por exemplo, podemos ver os detalhes dos funcionários usando o Layout de Página de Objeto embutido e bem projetado e, portanto, não temos que nos preocupar com o aspecto e a sensação de cada elemento. A partir do Ionic, ele contém principalmente componentes básicos que são adequados para construir rapidamente o nível básico até o intermediário de aplicações. Se Ionic fornece poucos desses layouts embutidos (mesmo como uma estrutura para aplicações de consumo), ele ajudaria a construir aplicações comerciais simples e consistentes. Além disso, uma interface orientada a metadados é importante para construir aplicações empresariais. Ela simplesmente ajuda a equipe de TI a desenvolver e lançar seus aplicativos rapidamente.
Para concluir, o Ionic tem como alvo os aplicativos de consumo, por isso é importante que eles ofereçam o desempenho e a sensação de usar um iOS nativo ou Android ou qualquer outro aplicativo de plataforma. Este desempenho e sensação de um aplicativo nativo também deve ser trazido para o mundo empresarial. Se a UI5 tiver que fornecer alta qualidade transacional, analítica, especialmente os painéis analíticos em tempo real, ela precisa repensar sobre seus principais blocos. Os designs Fiori são conceitos bem pensados e a variedade de layouts pré-definidos oferecidos em uma única estrutura é tremenda. Nenhuma outra plataforma oferece isso. Portanto, ao invés de construir outro SDK para a plataforma nativa, se a SAP der um empurrão para o desempenho de sua estrutura UI5, ela faria maravilhas para sua plataforma Fiori.