Cross-platform data-driven applications with React Native and GraphQL: Principles and practices - Gonçalo Maria Nunes Andrade Lobo dos Santos (2017)
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.