Javascript Everywhere Building Cross-Platform Applications with Graphql, React, React Native, and Electron

Total Page:16

File Type:pdf, Size:1020Kb

Javascript Everywhere Building Cross-Platform Applications with Graphql, React, React Native, and Electron JavaScript Everywhere Building Cross-Platform Applications with GraphQL, React, React Native, and Electron Adam D. Scott Praise for JavaScript Everywhere JavaScript Everywhere is an incredible book that will give you everything you need to build applications with JavaScript on any platform. The title is the truth: JavaScript is everywhere, and this book performs the unique feat of putting everything in context for developers at all levels. Read this book then write code and make technology decisions with confidence. —Eve Porcello, Software Developer and Instructor at Moon Highway JavaScript Everywhere is the perfect companion for navigating the ever-changing modern JavaScript ecosystem. Adam teaches React, React Native, and GraphQL in a clear, approachable way so you can build robust web, mobile, and desktop applications. —Peggy Rayzis, Engineering Manager at Apollo GraphQL JavaScript Everywhere Building Cross-Platform Applications with GraphQL, React, React Native, and Electron Adam D. Scott Beijing Boston Farnham Sebastopol Tokyo JavaScript Everywhere by Adam D. Scott Copyright © 2020 Adam D. Scott. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or [email protected]. Acquisitions Editor: Jennifer Pollock Indexer: WordCo Indexing Services, Inc. Development Editor: Angela Rufino Interior Designer: David Futato Production Editor: Christopher Faucher Cover Designer: Karen Montgomery Copyeditor: Rachel Monaghan Illustrator: Rebecca Demarest Proofreader: Christina Edwards February 2020: First Edition Revision History for the First Edition 2020-02-06: First Release See http://oreilly.com/catalog/errata.csp?isbn=9781492046981 for release details. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. JavaScript Everywhere, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. The views expressed in this work are those of the author, and do not represent the publisher’s views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights. 978-1-492-04698-1 [LSI] For my dad, who both brought home my first hacked-together computer and proofread every paper that I wrote. I wouldn’t be here without you. You are missed. Table of Contents Foreword. xiii Preface. xv 1. Our Development Environment. 1 Your Text Editor 2 The Terminal 2 Using a Dedicated Terminal Application 2 Using VSCode 2 Navigating the Filesystem 2 Command-Line Tools and Homebrew (Mac Only) 3 Node.js and NPM 4 Installing Node.js and NPM for macOS 4 Installing Node.js and NPM for Windows 5 MongoDB 5 Installing and Running MongoDB for macOS 6 Installing and Running MongoDB for Windows 6 Git 6 Expo 7 Prettier 7 ESLint 8 Making Things Look Nice 8 Conclusion 8 2. API Introduction. 9 What We’re Building 9 How We’re Going to Build This 10 Getting Started 11 vii Conclusion 12 3. A Web Application with Node and Express. 13 Hello World 13 Nodemon 14 Extending Port Options 15 Conclusion 16 4. Our First GraphQL API. 17 Turning Our Server into an API (Sort Of) 17 GraphQL Basics 21 Schemas 21 Resolvers 23 Adapting Our API 23 Conclusion 30 5. Database. 31 Getting Started with MongoDB 32 Connecting MongoDB to Our Application 34 Reading and Writing Data from Our Application 37 Conclusion 44 6. CRUD Operations. 45 Separating Our GraphQL Schema and Resolvers 45 Writing Our GraphQL CRUD Schema 49 CRUD Resolvers 49 Date and Time 51 Conclusion 53 7. User Accounts and Authentication. 55 Application Authentication Flow 55 Encryption and Tokens 56 Encrypting Passwords 57 JSON Web Tokens 58 Integrating Authentication into Our API 59 User Schemas 59 Authentication Resolvers 61 Adding the User to the Resolver Context 64 Conclusion 67 8. User Actions. 69 Before We Get Started 69 viii | Table of Contents Attach a User to New Notes 70 User Permissions for Updates and Deletes 72 User Queries 73 Toggling Note Favorites 76 Nested Queries 80 Conclusion 82 9. Details. 83 Web Application and Express.js Best Practices 83 Express Helmet 83 Cross-Origin Resource Sharing 84 Pagination 84 Data Limitations 87 Other Considerations 88 Testing 88 Subscriptions 88 Apollo GraphQL Platform 88 Conclusion 89 10. Deploying Our API. 91 Hosting Our Database 91 Deploying Our Application 97 Project Setup 97 Deployment 99 Testing 100 Conclusion 100 11. User Interfaces and React. 101 JavaScript and UIs 102 Declarative Interfaces with JavaScript 103 Just Enough React 103 Conclusion 108 12. Building a Web Client with React. 109 What We’re Building 109 How We’re Going to Build This 110 Getting Started 110 Building Out the Web Application 112 Routing 114 Linking 117 UI Components 118 Conclusion 120 Table of Contents | ix 13. Styling an Application. 121 Creating a Layout Component 121 CSS 124 CSS-in-JS 124 Creating a Button Component 125 Adding Global Styles 127 Component Styles 129 Conclusion 132 14. Working with Apollo Client. 135 Setting Up Apollo Client 136 Querying an API 138 Some Style 146 Dynamic Queries 148 Pagination 150 Conclusion 152 15. Web Authentication and State. 153 Creating a Sign-up Form 153 React Forms and State 157 signUp Mutation 158 JSON Web Tokens and Local Storage 161 Redirects 162 Attaching Headers to Requests 162 Local State Management 163 Logging Out 166 Creating a Sign-In Form 168 Protected Routes 173 Conclusion 175 16. Create, Read, Update, and Delete Operations. 177 Creating New Notes 177 Reading User Notes 183 Updating Notes 186 Deleting Notes 193 Toggling Favorites 195 Conclusion 199 17. Deploying a Web Application. 201 Static Websites 201 Our Deployment Pipeline 203 Hosting Source Code with Git 203 x | Table of Contents Deploy with Netlify 205 Conclusion 206 18. Desktop Applications with Electron. 207 What We’re Building 207 How We’re Going To Build This 208 Getting Started 208 Our First Electron App 209 macOS Application Window Details 211 Developer Tools 211 The Electron API 213 Conclusion 213 19. Integrating an Existing Web Application with Electron. 215 Integrating Our Web Application 215 Warnings and Errors 216 Configuration 218 Content Security Policy 219 Conclusion 222 20. Electron Deployment. 223 Electron Builder 223 Configuring Electron Builder 224 Build for Our Current Platform 225 App Icons 225 Building for Multiple Platforms 226 Code Signing 226 Conclusion 227 21. Mobile Applications with React Native. 229 What We’re Building 230 How We’re Going To Build This 230 Getting Started 231 Conclusion 234 22. Mobile Application Shell. 235 React Native Building Blocks 235 Style and Styled Components 237 Styled Components 240 Routing 242 Tabbed Routing with React Navigation 242 Stack Navigation 245 Table of Contents | xi Adding Screen Titles 249 Icons 251 Conclusion 253 23. GraphQL and React Native. 255 Creating List and Scrollable Content Views 256 Making a List Routable 261 GraphQL with Apollo Client 263 Writing GraphQL Queries 264 Adding a Loading Indicator 269 Conclusion 271 24. Mobile Application Authentication. 273 Authentication Routing Flow 273 Creating a Sign-in Form 282 Authentication with GraphQL Mutations 287 Authenticated GraphQL Queries 289 Adding a Sign-up Form 293 Conclusion 299 25. Mobile Application Distribution. 301 app.json Configuration 301 Icons and App Loading Screens 303 App Icons 303 Splash Screens 304 Expo Publish 305 Creating Native Builds 306 iOS 307 Android 307 Distributing to App Stores 308 Conclusion 308 Afterword. 309 A. Running the API Locally. 311 B. Running the Web App Locally. 313 Index. 315 xii | Table of Contents Foreword In 1997 I was a junior in high school. A friend and I were goofing around with the web-connected computer in our school library when he showed me that you could click View → Source to see the underlying code of a web page. A few days later, another friend showed me how to publish my own HTML. My mind was blown. After that, I was hooked. I went around borrowing the bits of the websites I liked to construct my own Franken-site. I spent much of my free time at the pieced-together computer in my family’s dining room tinkering away. I even “wrote” (OK, copied and pasted) my first JavaScript, to implement hover styles on links, which was not yet doable with simple CSS. And in a turn of events that I’ve come to think of as a nerdy and wholesome version of the film Almost Famous, my homegrown music site gained reasonable popularity. Because of this, I received promotional CDs in the mail and was put on the guest list at concerts. More important to me, however, was that I was sharing my interests with other people around the world. I was a bored suburban teenager, in love with music, and was able to reach people I’d never meet. That was, and still is, such an empower‐ ing feeling. Today, we can build powerful applications using only web technologies, but it can be daunting to get started. APIs are an invisible background that serves up data.
Recommended publications
  • Domando Al Escritor, Edición 2018 En Formato
    Domando al Escritor LibreOffice™ Writer para escritores Edición 2018 Ricardo Gabriel "erla##o ¡No puedes pasar! https://elpinguinotolkiano.wordpress.com/ LibreOffice™ Writer o$rece% tanto al a&cionado como al pro$esional de las letras% una serie de (erramientas )ers*tiles + potentes que $acilitan el trabajo del escritor% automatizando las tareas m*s /di$íciles1 + dejando al a'tor con la única res3 ponsabilidad de escribir4 Di$erentes estilos de p*5ina% re$erencias cruzadas + biblio3 5r*&cas% opciones tipo5r*&cas a)anzadas% complejos diseños de te7to% tablas% $8rmulas matem*ticas% 5r*&cas9 todo esto + m*s puede ser realizado en LibreOffice™ Writer4 :o todo es per$ecto% tendremos problemas ,'e resol)er% por lo que en este libro tambi;n )er*s las limitaciones del pro5rama + c8mo superarlas4 El te7to (a sido or5anizado en la $orma de un /curso1 que% partiendo de lo m*s b*sico lle5a pro5resi)amente a mos3 trar todo lo ,'e este pro5rama tiene para o$recernos4 La presente edici8n se centra en la )ersi8n <4=% e7plicando sus numerosas no)edades e indicando ,'; nos traer* <4>4 ?arios capítulos ser*n dedicados a o$recer 'na introduc3 ci8n a otras componentes como Dra@% Aat( + B(art4 Domando al Escritor LibreOffice™ Writer para escritores Edición 2018 Ricardo Gabrie! " rla#so Cor,'e el pincel de $ormato no puede pasar D >E=F Ricardo Gabriel Berlasso Esta obra se distrib'+e ba-o licencia Breati)e Bommons Gtribuci8n3BompartirHgual I4E Hnternacional JBB "K3LG I4EM Jhttp://creativecommons.org/licenses/by-sa/4.0/M Atribución: Osted debe darle crédito
    [Show full text]
  • FONT GUIDE Workbook to Help You Find the Right One for Your Brand
    FONT GUIDE Workbook to help you find the right one for your brand. www.ottocreative.com.au Choosing the right font for your brand YOUR BRAND VALUES: How different font styles can be used to make up your brand: Logo Typeface: Is usually a bit more special and packed with your brands personality. This font should be used sparingly and kept for special occasions. Headings font: Logo Font This font will reflect the same brand values as your logo font - eg in this example both fonts are feminine and elegant. Headings Unlike your logo typeface, this font should be easier to read and look good a number of different sizes and thicknesses. Body copy Body font: The main rule here is that this font MUST be easy to read, both digitally and for print. If there is already alot going on in your logo and heading font, keep this style simple. Typefaces, common associations & popular font styles San Serif: Clean, Modern, Neutral Try these: Roboto, Open Sans, Lato, Montserrat, Raleway Serif: Classic, Traditional, reliable Try these: Playfair Display, Lora, Source Serif Pro, Prata, Gentium Basic Slab Serif: Youthful, modern, approachable Try these: Roboto Slab, Merriweather, Slabo 27px, Bitter, Arvo Script: Feminine, Romantic, Elegant Try these: Dancing Script, Pacifico, Satisfy, Courgette, Great Vibes Monotype:Simple, Technical, Futuristic Try these: Source Code Pro, Nanum Gothic Coding, Fira Mono, Cutive Mono Handwritten: Authentic, casual, creative Try these: Indie Flower, Shadows into light, Amatic SC, Caveat, Kalam Display: Playful, fun, personality galore Try these: Lobster, Abril Fatface, Luckiest Guy, Bangers, Monoton NOTE: Be careful when using handwritten and display fonts, as they can be hard to read.
    [Show full text]
  • Prototype and Script.Aculo.Us You Never Knew Javascript Could Do This!
    Prototype and script.aculo.us You Never Knew JavaScript Could Do This! Christophe Porteneuve The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Many of the designations used by manufacturers and sellers to distinguish their prod- ucts are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC. Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein. Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at http://www.pragprog.com Copyright © 2007 The Pragmatic Programmers LLC. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmit- ted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. Printed in the United States of America. ISBN-10: 1-934356-01-8 ISBN-13: 978-1-934356-01-2 To Élodie, my love, ever supportive. You’re my true home. Contents Preface 13 1 Introduction 15 1.1 It’s About Time ........................ 15 1.2 What’s in This Book, and How Is It Organized? .
    [Show full text]
  • A Web Desktop Or Webtop Is a Desktop Environment Embedded in a Web Browser Or Similar Client Application
    II BASIC THEORY II.1 What is Web Desktop? A web desktop or webtop is a desktop environment embedded in a web browser or similar client application. A webtop integrates web applications, web services, client-server applications, application servers, and applications on the local client into a desktop environment using the desktop metaphor. Web desktops provide an environment similar to that of Windows, Mac, or a graphical user interface on Unix and Linux systems. It is a virtual desktop running in a web browser. In a webtop the applications, data, files, configuration, settings, and access privileges reside remotely over the network. Much of the computing takes place remotely. The browser is primarily used for display and input purposes. II.2 History In the context of a web desktop, the term Webtop was first introduced by the Santa Cruz Operation (SCO) in 1994 for a web-based interface to their UNIX operating system. Andy Bovingdon and Ronald Joe Record, who both explored the concepts in different directions, are often credited as the inventors. II.3 About eyeOS eyeOS is an open source web desktop written in mainly PHP, XML, and JavaScript. It acts as a platform for web applications written using the eyeOS Toolkit. It includes a Desktop environment with 67 applications and system utilities. It is accessible by portable devices via internet. III.3 eyeOS Implementation III.3.1 Advantages of eyeOS • Convenience: A personalized desktop on every supported client device • Mobility: Access your desktop anywhere there is a supported client device • Session Management: Server-side session management allows roaming users to access restored sessions from anywhere III.3.2 Limitations Security: Due to the fact that all data is transferred over the internet, it might be possible for a hacker to intercept the connection and read data.
    [Show full text]
  • 264 Tugboat, Volume 37 (2016), No. 3 Typographers' Inn Peter Flynn
    264 TUGboat, Volume 37 (2016), No. 3 A Typographers’ Inn X LE TEX Peter Flynn Back at the ranch, we have been experimenting with X LE ATEX in our workflow, spurred on by two recent Dashing it off requests to use a specific set of OpenType fonts for A I recently put up a new version of Formatting Infor- some GNU/Linux documentation. X LE TEX offers A mation (http://latex.silmaril.ie), and in the two major improvements on pdfLTEX: the use of section on punctuation I described the difference be- OpenType and TrueType fonts, and the handling of tween hyphens, en rules, em rules, and minus signs. UTF-8 multibyte characters. In particular I explained how to type a spaced Font packages. You can’t easily use the font pack- dash — like that, using ‘dash~---Ђlike’ to put a A ages you use with pdfLTEX because the default font tie before the dash and a normal space afterwards, encoding is EU1 in the fontspec package which is key so that if the dash occurred near a line-break, it to using OTF/TTF fonts, rather than the T1 or OT1 would never end up at the start of a line, only at A conventionally used in pdfLTEX. But late last year the end. I somehow managed to imply that a spaced Herbert Voß kindly posted a list of the OTF/TTF dash was preferable to an unspaced one (probably fonts distributed with TEX Live which have packages because it’s my personal preference, but certainly A of their own for use with X LE TEX [6].
    [Show full text]
  • Installation Guide Brightware 8.1.4
    Brightware™ Installation Guide Version 8.1.4 Trademark, Copyright, and Patent Acknowledgements edocs is a trademark of edocs, Inc. Brightware is a registered trademark of edocs, Inc. Brightware Contact Center Suite, Answer, Concierge, and Converse are trademarks of edocs, Inc. Adobe and Acrobat are registered trademarks of Adobe Systems Incorporated Internet Explorer, Microsoft Data Access Components Software Development Kit, Microsoft Management Console, Microsoft Virtual Machine, Personal Web Server, SQL Server, SQL 2000, Windows, and Word are registered trademarks of Microsoft Corporation Java, JavaScript, Solaris, and JRE are trademarks of Sun Microsystems, Inc. Linux is a registered trademark of Linus Torvalds Netscape Navigator is a registered trademark of Netscape Communications Corporation Oracle is a registered trademark of Oracle Corporation Red Hat is a registered trademark of Red Hat, Inc. Visual C++ is a trademark of Microsoft Corporation WebLogic Server is a trademark of BEA Systems, Inc. WebSphere is a registered trademark of International Business Machines Corporation. This document, as well as the software described in it, is delivered under license and may be used or copied only in accordance with the terms of such license. The content in this document is delivered for informational use only, is believed accurate at time of publication, is subject to change without notice, and should not be construed as a commitment by edocs, Inc. edocs, Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in this document. The User of the edocs applications is subject to the terms and conditions of all license agreements signed by the licensee of this application.
    [Show full text]
  • Osf Global Services
    romanian software outsourcing index 2013 Catalogue of Romanian Software Outsourcing Companies CONTENT 3 Forward 4 ANIS Overview: Priorities, objectives, projects 5 Outsourcing in Romania - A Plea for the Romanian Software Development and Services Delivery Excellence 7 Geo-distribution of the Romanian IT&C industry 9 Software Outsourcing Company Profiles Forward The vision ANIS is embracing is that of a strong IT sector, leading technolgical innovation while at the same time supporting the growth of the whole economy. We are aiming to promote Romania internationally as a leader for software development, as well as a high-end software and IT services provider. With IT exports lead by sofware outsourcing companies and R&D centers, our advocacy efforts go in assisting these companies in growing their business and expanding their potential, as we are looking forward to a high-value added services and product-based software industry. Andrei Pitis President of ANIS Romania has been a leading player in the software development space and has been ranked at the top of IT outsourcing service providers in the global market by all the major consulting firms since 2005. Outstanding technical skills and a passion for engineering marked in people's genes, a culture of open communication, strong work ethics, great language skills and one of the best developed Internet infrastructures in the world helped Romania become one of the most attractive destinations for the IT outsourcing and software development businesses. More and more software companies develop and grow in Romania for its renowned global delivery service centers and R&D potential. The country's competitiveness has raised awareness not only among European clients, for whom the advantage of operating under the Sorin Gavanescu ANIS Vicepresident - Outsourcing European Union umbrella brings obvious business advantages, but also among more distant markets, such as the US, Canada, Australia and countries in the Middle East who also invested heavily in software outsourcing projects in Romania.
    [Show full text]
  • Javafx in Action by Simon Morris
    Covers JavaFX v1.2 IN ACTION Simon Morris SAMPLE CHAPTER MANNING JavaFX in Action by Simon Morris Chapter 1 Copyright 2010 Manning Publications brief contents 1 ■ Welcome to the future: introducing JavaFX 1 2 ■ JavaFX Script data and variables 15 3 ■ JavaFX Scriptcode and structure 46 4 ■ Swing by numbers 79 5 ■ Behind the scene graph 106 6 ■ Moving pictures 132 7 ■ Controls,charts, and storage 165 8 ■ Web services with style 202 9 ■ From app to applet 230 10 ■ Clever graphics and smart phones 270 11 ■ Best of both worlds: using JavaFX from Java 300 appendix A ■ Getting started 315 appendix B ■ JavaFX Script: a quick reference 323 appendix C ■ Not familiar with Java? 343 appendix D ■ JavaFX and the Java platform 350 vii Welcome to the future: introducing JavaFX This chapter covers ■ Reviewing the history of the internet-based application ■ Asking what promise DSLs hold for UIs ■ Looking at JavaFX Script examples ■ Comparing JavaFX to its main rivals “If the only tool you have is a hammer, you tend to see every problem as a nail,” American psychologist Abraham Maslow once observed. Language advocacy is a popular pastime with many programmers, but what many fail to realize is that programming languages are like tools: each is good at some things and next to useless at others. Java, inspired as it was by prior art like C and Smalltalk, sports a solid general-purpose syntax that gets the job done with the minimum of fuss in the majority of cases. Unfortunately, there will always be those areas that, by their very nature, demand something a little more specialized.
    [Show full text]
  • Difference Between Web Application and Desktop Application
    Difference Between Web Application And Desktop Application Audacious Erwin emceed no fakir refluxes designedly after Jakob tweezes advantageously, quite impromptu. Christiano usually surrender inquisitorially or localizes protectingly when sparry Gian debases maximally and brokenly. Ware poetize demurely while bookmaking Warden zigzagging pressingly or prescribe estimably. Mobile version comes with software does pexels desktop computer is difference between the project types will need some instances Senior at Wellesley College studying Media Arts and Sciences. Having a web application that write code between? These expectations of the application that do not they willbe described in each other users became the difference between web apps is. But desktop applications are different user interaction with varying configurations, please enter your company fails, please post or visible change much just like facebook. Technocrat holdings pty ltd a web app as a slow or web developer at webfitters, multiple millions of. Facebook to rail a PC game. Swift group the XCode IDE. Developing your website helps you in branding your business. Password to choose a daily routine and differently, any sort of information. Desktop application must scale and web and mac. Cookies Testing: There may small files getting stores in that temporary option that are called cookies which are used to kick the user session of your application. In this tutorial, and rental car information from a slew of websites then filters and organizes the content presented to the User based on record search criteria. Function that captures a click share an outbound link in Analytics. By using web application testing teams, produced a difference between them that users will soon be more than what is loaded on computer? In web applications via smartphones and differently, after all testers are between website or maintain by each update.
    [Show full text]
  • Extra Notes - React - Getting Started
    Extra Notes - React - Getting Started Dr Nick Hayward React JavaScript Library A quick introduction to React JavaScript library. Further details are available at the React website. Contents Intro Overview why use React? state changes component lifecycle a few benefits Getting started part 1 and 2 JSX benefits composite components more dynamic values conditionals non-DOM attributes reserved words data flow State stateless child components stateful parent component props vs state State - an example Minimal state Component lifecycle method groupings Additional reading &c. References Intro React began life as a port of a custom PHP framework called XHP, which was developed internally at Facebook. XHP, as a PHP framework, was designed to render the full page for each request. React developed from this concept, thereby creating a client-side implementation of loading the full page. Overview React can, therefore, be perceived as a type of state machine, thereby allowing a developer to control and manage the inherent complexity of state as it changes over time. It is able to achieve this by concentrating on a narrow scope for development, maintaining and updating the DOM responding to events React is best perceived as a view library, and has no definite requirements or restrictions on storage, data structure, routing, and so on. This allows developers the freedom to incorporate React code into a broad scope of applications and frameworks. why use React? React is often considered the V in the traditional MVC. As defined in the React docs, it was designed to solve one problem, building large applications with data that changes over time.
    [Show full text]
  • Advanced Internet Applications on Desktop
    MASARYK UNIVERSITY FACULTY}w¡¢£¤¥¦§¨ OF I !"#$%&'()+,-./012345<yA|NFORMATICS Advanced Internet Applications on Desktop DIPLOMA THESIS Bc. Martin Miko Brno, 2011 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Advisor: doc. RNDr. Tomáš Pitner, Ph.D. ii Acknowledgement I would like to thank to doc. RNDr. Tomáš Pitner, Ph.D. whose guidance, many inspiring ideas, remarks, and above all patience made all this possible. Without his good will this work would never be born. Also I would like to thank to all my friends, who stood behind me, had to cope with my moodiness and helped in many ways in the time of need. And last, but not least, I would like to thank to my family for their support and understanding. iii Abstract The aim of this work is to describe, analyse and compare selected important rich Internet application platforms that allow desktop deployment. Analysed platforms are Adobe AIR using applications built in Adobe Flex and Microsoft Silverlight. Secondary aim of this work is demonstration of capabilities offered by AIR framework and comparison of AIR applica- tions to solutions based on JavaScript. To compare and analyse various platforms, a comparison or benchmarking method is required, but unluckily no relevant methods exist. This work proposes a benchmarking method that allows complex comparison of this type of platforms. Method is based on gen- eral requirements of users and developers.
    [Show full text]
  • Bulletin August/September 2006 7/11/16, 1:24 AM
    Bulletin August/September 2006 7/11/16, 1:24 AM sign in contact us site index About ASIS&T Membership Conferences Publications SIGS & Chapters Careers E-Mail Lists ASIS&T - The Information Society for the Go InformationHome > Publications > Age Bulletin > August/September 2006 ARIST Bulletin, August/September 2006 Articles in this Issue Bulletin JASIST The Language of Interaction: Rich Interfaces, Networks Inquiry and Application and Design Patterns Conference Proceedings An Academic's View Digital Library by Austin Govella The IA of Potentiality: Toward a Grounded Online Bookstore Austin Govella is a senior information architect with Satyam's User Theory of Information Architecture Experience Management group in Washington, DC. He writes about IA, UX Philosophy, Theory and Research and design at his blog “Thinking and Making”. Metadata: Practical, Painless, Profitable Alarmists, betting on pestilence, warn pandemics will sweep the globe and Selling Information Architecture: Getting destroy the human race. Germageddon isn't likely. People aren't dominoes Executives to Say "Yes" waiting to be knocked over by disease. We're a vast, global network. Our survival depends on our ability to learn about diseases faster than they We Live Here: Games, Third Places and the Information Architecture of the Future spread. Quarantines illustrate how this works: people learn about and isolate infected populations before they grow. The Language of Interaction: Rich Interfaces, Networks and Design Patterns We didn't survive because we're stronger, faster or heartier. We survived because we talk fast. Designing for Developing Contexts But it's not just about speed. If someone tells you about the latest pox, you Recent Developments in Electronic need two things: you have to speak their language, and you have to hear Resource Management in Libraries enough of what they say to grasp what they mean.
    [Show full text]