Please use this identifier to cite or link to this item:
https://hdl.handle.net/10216/107219| Author(s): | Gonçalo Maria Nunes Andrade Lobo dos Santos |
| Title: | Cross-platform data-driven applications with React Native and GraphQL: Principles and practices |
| Issue Date: | 2017-07-14 |
| Abstract: | The current state of mobile development often demands that a certain compliance with different operating systems and smartphones is met. The most typical approach to solve this problem consists in a singular native development for each platform, mainly one for Android and other for iOS (both current market leaders in operating systems for mobile devices). This process turns out to be awfully time-consuming and more expensive as it requires developers to have expertise in two different sets of knowledge. In order to answer this problem several cross-platform approaches were attempted but few are able to provide a fluid and native feeling as result applications. The main objective of this thesis dwells in a development study performed on one of the newest cross-platform approaches, React Native, which allows concurrently creation of iOS and Android applications by compiling code written in JavaScript and by using the same UI components from each system (providing a more native feeling). Another key objective for this thesis doesn't rely on the front-end aspect of application development but on the data fetching and manipulation. Most web services are built around REST and its strict specifications in order to enable a proper interoperability between systems. With that in concern Facebook announces GraphQL, a query language suitable for APIs, allowing developers to define their data using a fully-fledged type system, forming a schema that is self-documenting and giving clients full control over the data they request. Practices and patterns for application development while using previously mentioned tools were extracted and are presented along side with a thorough analysis of their inherent principles. |
| Description: | O estado atual do desenvolvimento de software para telemóveis requer frequentemente que exista conformidade entre diferentes sistemas operativos e dispositivos. Para alcançar esse objetivo tipicamente opta-se por levar a cabo o desenvolvimento nativo de diferentes aplicações em que cada uma é orientada para uma única plataforma. Este processo de desenvolvimento revela-se demorado e caro pois exige que os programadores de uma empresa tenham conhecimento mais alargado e que sejam polivalentes em várias linguagens. Ao longo da última década foram emergindo técnicas de desenvolvimento multi-plataforma mas poucas são capazes de atingir a fluidez e a sensação de utilização que as aplicações nativas trazem. Esta tese tem como objetivo levar a cabo um estudo focado numa das mais recentes abordagens de desenvolvimento multi-plataforma, React Native, que permite a criação em simultâneo de aplicações iOS e Android compilando código escrito em JavaScript e fazendo uso dos mesmos componentes nativos de cada sistema (proporcionando assim uma experiência mais nativa aos utilizadores). Outro objetivo desta dissertação desvia-se do desenvolvimento de aplicações para o lado do cliente e dá ênfase em aspetos relacionados com a busca e manipulação de dados. A maioria dos serviços web são construídos seguindo REST. Esta abstração está normalmente associada a especificações rigorosas que permitem que haja interoperabilidade adequada entre sistemas. Numa tentativa de simplificar as normas atuais surge GraphQL, uma linguagem para interrogar APIs, que permite que os programadores definam os dados e os tipos de objetos de um sistema permitindo ao mesmo tempo que o cliente tenha a liberdade de solicitar exatamente os dados que necessita. Boas práticas e padrões de desenvolvimento de aplicações usando React Native e GraphQL foram extraídos e são apresentados juntamente de uma análise cuidada dos seus princípios fundamentais como tecnologias. |
| Subject: | Engenharia electrotécnica, electrónica e informática Electrical engineering, Electronic engineering, Information engineering |
| Scientific areas: | Ciências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática Engineering and technology::Electrical engineering, Electronic engineering, Information engineering |
| DOI: | 10.34626/w3pp-tm33 |
| TID identifier: | 201798069 |
| URI: | https://hdl.handle.net/10216/107219 |
| Document Type: | Dissertação |
| Rights: | openAccess |
| Appears in Collections: | FEUP - Dissertação |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 211502.pdf | Cross-platform data-driven applications with React Native and GraphQL: Principles and practices | 1.45 MB | Adobe PDF | ![]() View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
