Learning React Native Building Native Mobile Apps with JavaScript 2nd Edition Bonnie Eisenman download https://textbookfull.com/product/learning-react-native-building- native-mobile-apps-with-javascript-2nd-edition-bonnie-eisenman/ Download full version ebook from https://textbookfull.com
We believe these products will be a great fit for you. Click the link to download now, or visit textbookfull.com to discover even more! Fullstack React Native Create beautiful mobile apps with JavaScript and React Native 5th Edition Devin Abbott https://textbookfull.com/product/fullstack-react-native-create- beautiful-mobile-apps-with-javascript-and-react-native-5th- edition-devin-abbott/ React Native in Action Developing iOS and Android apps with JavaScript 1st Edition Nader Dabit https://textbookfull.com/product/react-native-in-action- developing-ios-and-android-apps-with-javascript-1st-edition- nader-dabit/ React Native in Action Developing iOS and Android apps with JavaScript 1st Edition Nader Dabit https://textbookfull.com/product/react-native-in-action- developing-ios-and-android-apps-with-javascript-1st-edition- nader-dabit-2/ Building Hybrid Android Apps with Java and JavaScript Applying Native Device APIs Japplying Native Device Apis 1st Edition Gok Nizamettin Khanna Nitin https://textbookfull.com/product/building-hybrid-android-apps- with-java-and-javascript-applying-native-device-apis-japplying- native-device-apis-1st-edition-gok-nizamettin-khanna-nitin/
Progressive Web Apps with React Create Lightning Fast Web Apps With Native Power Using React and Firebase 1st Edition Scott Domes https://textbookfull.com/product/progressive-web-apps-with-react- create-lightning-fast-web-apps-with-native-power-using-react-and- firebase-1st-edition-scott-domes/ Cross-platform Localization for Native Mobile Apps with Xamarin 1st Edition Christopher Miller https://textbookfull.com/product/cross-platform-localization-for- native-mobile-apps-with-xamarin-1st-edition-christopher-miller/ Practical React Native: Build Two Full Projects and One Full Game using React Native 1st Edition Frank Zammetti https://textbookfull.com/product/practical-react-native-build- two-full-projects-and-one-full-game-using-react-native-1st- edition-frank-zammetti/ Learning React Modern Patterns for Developing React Apps 2nd Edition Alex Banks https://textbookfull.com/product/learning-react-modern-patterns- for-developing-react-apps-2nd-edition-alex-banks/ Building Progressive Web Apps Bringing the Power of Native to the Browser 1st Edition Tal Ater https://textbookfull.com/product/building-progressive-web-apps- bringing-the-power-of-native-to-the-browser-1st-edition-tal-ater/
Bonnie Eisenman Learning React Native BUILDING NATIVE MOBILE APPS WITH JAVASCRIPT Learning React Native 2 n d E d i t i o n
Bonnie Eisenman Learning React Native Building Native Mobile Apps with JavaScript SECOND EDITION Boston Farnham Sebastopol Tokyo Beijing Boston Farnham Sebastopol Tokyo Beijing
978-1-491-98914-2 [LSI] Learning React Native by Bonnie Eisenman Copyright © 2018 Bonnie Eisenman. 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/safari). For more information, contact our corporate/insti‐ tutional sales department: 800-998-9938 or corporate@oreilly.com. Editor: Meg Foley Production Editor: Nicholas Adams Copyeditor: Rachel Monaghan Proofreader: Gillian McGarvey Indexer: Judith McConville Interior Designer: David Futato Cover Designer: Karen Montgomery Illustrator: Rebecca Demarest December 2015: First Edition November 2017: Second Edition Revision History for the Second Edition 2017-10-23: First Release See http://oreilly.com/catalog/errata.csp?isbn=9781491989142 for release details. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Learning React Native, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. 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.
Table of Contents Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix 1. What Is React Native?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Advantages of React Native 2 Developer Experience 2 Code Reuse and Knowledge Sharing 3 Risks and Drawbacks 4 Summary 4 2. Working with React Native. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 How Does React Native Work? 5 Rendering Lifecycle 7 Creating Components in React Native 8 Working with Views 8 Using JSX 9 Styling Native Components 10 Host Platform APIs 11 Summary 12 3. Building Your First Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Setting Up Your Environment 13 Developer Setup: Create React Native App 14 Creating Your First Application with create-react-native-app 14 Previewing Your App on iOS or Android 15 Developer Setup: The Traditional Approach 16 Creating Your First Application with react-native 16 Running Your App on iOS 17 Running Your App on Android 18 iii
Exploring the Sample Code 19 Building a Weather App 22 Handling User Input 24 Displaying Data 26 Fetching Data from the Web 29 Adding a Background Image 32 Putting It All Together 34 Summary 36 4. Components for Mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Analogies Between HTML Elements and Native Components 39 The <Text> Component 40 The <Image> Component 42 Working with Touch and Gestures 44 Creating Basic Interactions with <Button> 44 Using the <TouchableHighlight> Component 45 Using the PanResponder Class 48 Working with Lists 54 Using the Basic <FlatList> Component 56 Updating the <FlatList> Contents 59 Integrating Real Data 63 Working with <SectionList> 65 Navigation 69 Other Organizational Components 70 Summary 71 5. Styles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Declaring and Manipulating Styles 73 Using Inline Styles 74 Styling with Objects 75 Using StyleSheet.create 75 Concatenating Styles 76 Organization and Inheritance 77 Exporting Style Objects 77 Passing Styles as Props 78 Reusing and Sharing Styles 79 Positioning and Designing Layouts 80 Using Layouts with Flexbox 80 Using Absolute Positioning 84 Putting It Together 85 Summary 88 iv | Table of Contents
6. Platform APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Using Geolocation 91 Reading the User’s Location 92 Handling Permissions 93 Testing Geolocation in Emulated Devices 94 Watching the User’s Location 95 Working Around Limitations 95 Updating the Weather Application 96 Accessing the User’s Images and Camera 98 Interacting with the CameraRoll Module 99 Requesting Images with GetPhotoParams 100 Rendering an Image from the Camera Roll 101 Uploading an Image to a Server 102 Storing Persistent Data with AsyncStorage 103 The SmarterWeather Application 104 The <WeatherProject> Component 104 The <Forecast> Component 107 The <Button> Component 108 The <LocationButton> Component 109 The <PhotoBackdrop> Component 110 Summary 112 7. Modules and Native Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Installing JavaScript Libraries with npm 113 Installing Third-Party Components with Native Code 115 Using the Video Component 116 Objective-C Native Modules 116 Writing an Objective-C Native Module for iOS 116 Exploring react-native-video for iOS 121 Java Native Modules 124 Writing a Java Native Module for Android 124 Exploring react-native-video for Java 127 Cross-Platform Native Modules 130 Summary 130 8. Platform-Specific Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 iOS- or Android-Only Components 133 Components with Platform-Specific Implementations 134 Using Platform-Specific File Extensions 134 Using the Platform Module 137 When to Use Platform-Specific Components 137 Table of Contents | v
9. Debugging and Developer Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 JavaScript Debugging Practices, Translated 139 Activating the Developer Options 139 Debugging with console.log 141 Using the JavaScript Debugger 143 Working with the React Developer Tools 144 React Native Debugging Tools 145 Using Inspect Element 145 Interpreting the Red Screen of Death 146 Debugging Beyond JavaScript 150 Common Development Environment Issues 151 Common Xcode Problems 151 Common Android Problems 152 The React Native Packager 153 Issues Deploying to an iOS Device 153 Simulator Behavior 155 Testing Your Code 155 Type Checking with Flow 156 Unit Testing with Jest 156 Snapshot Testing with Jest 157 When You’re Stuck 160 Summary 161 10. Navigation and Structure in Larger Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 The Flashcard Application 163 Project Structure 166 Application Screens 167 Reusable Components 173 Styles 177 Data Models 178 Using React-Navigation 181 Creating a StackNavigator 182 Using navigation.navigate to Transition Between Screens 182 Configuring the Header with navigationOptions 185 Implementing the Rest 186 Summary 187 11. State Management in Larger Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Using Redux to Manage State 189 Actions 190 Reducers 192 Connecting Redux 195 vi | Table of Contents
Persisting Data with AsyncStorage 203 Summary and Homework 206 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 A. Modern JavaScript Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 B. Deploying Your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 C. Working with Expo Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Table of Contents | vii
Preface This book is an introduction to React Native, Facebook’s JavaScript framework for building mobile applications. Using your existing knowledge of JavaScript and React, you’ll be able to build and deploy fully featured mobile applications for both iOS and Android that truly render natively. There are plenty of advantages to working with React Native over traditional means of mobile development without needing to sacri‐ fice the native look and feel. We’ll start with the basics and work our way up to creating a full-fledged application with 100% code reuse between iOS and Android. In addition to the essentials of the framework, we’ll discuss how to work beyond it, including how to make use of third- party libraries and even how to write your own Java or Objective-C libraries to extend React Native. If you’re coming to mobile development from the perspective of a frontend software engineer or web developer, this is the book for you. React Native is a pretty amazing thing, and I hope you’re as excited to explore it as I am! Prerequisites This book is not an introduction to React, in general. We’ll assume that you have some working knowledge of React. If you’re brand new to React, I suggest reading through a tutorial or two before coming back to take the plunge into mobile develop‐ ment. Specifically, you should be familiar with the role of props and state, the com‐ ponent lifecycle, and how to create React components. We’ll also be using some modern JavaScript syntax, as well as JSX. If you aren’t famil‐ iar with these, don’t worry; we’ll cover JSX in Chapter 2, and modern JavaScript syn‐ tax in Appendix A. These features are essentially 1:1 translations of the JavaScript code you’re already accustomed to writing. This book focuses on using React Native to write iOS and Android applications, though React Native can also be used to write applications targeting Ubuntu, ix
Windows, and macOS. Linux and Windows users can use React Native to develop Android applications, but in order to write iOS applications, you will need to develop on macOS. Conventions Used in This Book The following typographical conventions are used in this book: Italic Indicates new terms, URLs, email addresses, filenames, and file extensions. Constant width Used for program listings, as well as within paragraphs to refer to program ele‐ ments such as variable or function names, databases, data types, environment variables, statements, and keywords. Constant width bold Shows commands or other text that should be typed literally by the user. Constant width italic Shows text that should be replaced with user-supplied values or by values deter‐ mined by context. This element signifies a tip or suggestion. This element signifies a general note. This element indicates a warning or caution. x | Preface
Using Code Examples Supplemental material (code examples, exercises, etc.) is available for download at https://github.com/bonniee/learning-react-native. This book is here to help you get your job done. In general, if example code is offered with this book, you may use it in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a signifi‐ cant amount of example code from this book into your product’s documentation does require permission. We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “Learning React Native, Second Edi‐ tion, by Bonnie Eisenman (O’Reilly). Copyright 2018 Bonnie Eisenman, 978-1-491-98914-2.” If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com. O’Reilly Safari Safari (formerly Safari Books Online) is a membership-based training and reference platform for enterprise, government, educators, and individuals. Members have access to thousands of books, training videos, Learning Paths, interac‐ tive tutorials, and curated playlists from over 250 publishers, including O’Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Profes‐ sional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, and Course Technology, among others. For more information, please visit http://oreilly.com/safari. Preface | xi
How to Contact Us Please address comments and questions concerning this book to the publisher: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 (in the United States or Canada) 707-829-0515 (international or local) 707-829-0104 (fax) We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at http://bit.ly/learning-react-native-2e. To comment or ask technical questions about this book, send email to bookques‐ tions@oreilly.com. For more information about our books, courses, conferences, and news, see our web‐ site at http://www.oreilly.com. Find us on Facebook: http://facebook.com/oreilly Follow us on Twitter: http://twitter.com/oreillymedia Watch us on YouTube: http://www.youtube.com/oreillymedia Resources It’s dangerous to go alone! Well, not really, but that doesn’t mean you have to. Here are some resources you may find useful as you work through the book: • The GitHub repository for this book contains all of the code samples we’ll be dis‐ cussing. If you get stumped or want more context, try looking here first. • Join the mailing list at LearningReactNative.com for follow-up articles, sugges‐ tions, and helpful resources. • The official documentation has a lot of good reference material. Additionally, the React Native community is a useful resource: • The react-native tag on Stack Overflow • The Reactiflux chat group includes many core contributors and other helpful folks • #reactnative (irc.lc/freenode/reactnative) on Freenode xii | Preface
Acknowledgments As is traditional: this book would not have been possible without the help and sup‐ port of many others. Thank you to my editor, Meg Foley, and the rest of the O’Reilly team for bringing this project into the world. Thank you also to my technical review‐ ers for your time and insightful feedback: Ryan Hurley, Dave Benjamin, David Bieber, Jason Brown, Erica Portnoy, and Jonathan Stark. I would also like to thank the React Native team, without whose stellar work this book would naturally be impossible. Thanks also to Zachary Elliott for his help with the Flashcard application, Android testing, and support throughout. Mi estas dankplena pro via subteno. And many thanks are owed to my dear friends and family, who put up with me throughout this process and provided moral support, guidance, and distraction as the situation required. Thank you. Preface | xiii
CHAPTER 1 What Is React Native? React Native is a JavaScript framework for writing real, natively rendering mobile applications for iOS and Android. It’s based on React, Facebook’s JavaScript library for building user interfaces, but instead of targeting the browser, it targets mobile platforms. In other words, it enables web developers to write mobile applications that look and feel truly “native,” all from the comfort of a familiar JavaScript library. Plus, because most of the code you write can be shared between platforms, React Native makes it easy to simultaneously develop for both Android and iOS. Similar to React for the web, React Native applications are written with a mixture of JavaScript and XML-esque markup, known as JSX. Then, under the hood, the React Native “bridge” invokes the native rendering APIs in Objective-C (for iOS) or Java (for Android). Thus, your application will render using real mobile UI components, not webviews, and will look and feel like any other mobile application. React Native also exposes JavaScript interfaces for platform APIs, so your React Native apps can access platform features like the phone camera or the user’s location. The core React Native project supports writing mobile applications for both iOS and Android. Community implementations also provide support for Windows, Ubuntu, the web, and more. In this book, we’ll build both Android and iOS apps with React Native. The vast majority of the code we write will be cross-platform. And, yes, you can really use React Native to build production-ready mobile applica‐ tions. Some anecdata: Facebook, Airbnb, Walmart, and Baidu are already using it in production for user-facing applications. 1
Advantages of React Native The fact that React Native renders using its host platform’s standard rendering APIs distinguishes it from most existing methods of cross-platform application develop‐ ment, like Cordova or Ionic. Existing methods of writing mobile applications use combinations of JavaScript, HTML, and CSS and typically render using webviews. While this approach can work, it also comes with drawbacks, especially around per‐ formance. Additionally, these methods do not usually have access to the host plat‐ form’s set of native UI elements. When these frameworks do try to mimic native UI elements, the results usually feel just a little off. In addition, reverse-engineering all the fine details of things like animations takes an enormous amount of effort, and they can quickly become outdated. In contrast, React Native actually translates your markup to real, native UI elements, leveraging existing means of rendering views on whatever platform you are working with. Additionally, React works separately from the main UI thread, so your applica‐ tion can maintain high performance without sacrificing capability. The update cycle in React Native is the same as in React: when props or state change, React Native re- renders the views. The major difference between React Native and React in the browser is that React Native does this by leveraging the UI libraries of its host plat‐ form, rather than using HTML and CSS markup. For developers accustomed to working on the web with React, this means you can write mobile apps with the performance and look and feel of a native application, while using familiar tools. React Native also represents an improvement over normal mobile development in two other areas: developer experience and cross-platform development potential. Developer Experience If you’ve developed for mobile before, you might be surprised by how easy React Native is to work with. The React Native team has baked strong developer tools and meaningful error messages into the framework so that working with robust tools is a natural part of your development experience. For instance, because React Native is “just” JavaScript, you don’t need to rebuild your application in order to see your changes reflected; instead, you can refresh your appli‐ cation just as you would any other web page. All of those minutes spent waiting for your application to build can really add up, and in contrast React Native’s quick itera‐ tion cycle feels like a godsend. Additionally, React Native lets you take advantage of intelligent debugging tools and error reporting. If you are comfortable with Chrome or Safari’s developer tools (Figure 1-1), you will be happy to know that you can use them for mobile develop‐ ment as well. Likewise, you can use whatever text editor you prefer for JavaScript 2 | Chapter 1: What Is React Native?
editing. React Native does not force you to work in Xcode to develop for iOS or in Android Studio for Android development. Figure 1-1. Using the Chrome Debugger with React Native Besides the day-to-day improvements to your development experience, React Native also has the potential to positively impact your product release cycle. For instance, Apple and Google both permit you to load JavaScript-only changes to an app’s behav‐ ior without going through the standard review process. This is particularly nice on iOS, where application updates typically require several days or weeks of review. All of these small perks add up to saving you and your fellow developers time and energy, allowing you to focus on the more interesting parts of your work and be more productive overall. Code Reuse and Knowledge Sharing Working with React Native can dramatically shrink the resources required to build mobile applications. Any developer who knows how to write React code can target the web, iOS, and Android, all with the same skill set. By removing the need to “silo” developers based on their target platform, React Native lets your team iterate more quickly and share knowledge and resources more effectively. Not only can you share knowledge, but much of your code can be shared, too. Not all the code you write will be cross-platform, and depending on the functionality you Advantages of React Native | 3
need on a specific platform, you may occasionally need to dip into Objective-C or Java (we’ll cover how so-called native modules work in Chapter 7). But reusing code across platforms is surprisingly easy with React Native. For example, the Facebook Ads Manager application for Android shares 87% of its codebase with the iOS ver‐ sion. The final application we’ll look at in this book, a flashcard app, has total code reuse between Android and iOS. It’s hard to beat that! Risks and Drawbacks As with anything, using React Native is not without its downsides, and whether or not it is a good fit for your team really depends on your individual situation. Because React Native introduces another layer to your project, it can make debugging hairier, especially at the intersection of React and the host platform. We’ll cover debugging for React Native in more depth in Chapter 9 and try to address some of the most common issues. Along the same lines, when updates are released for the host platform—say, a new suite of APIs in a new version of Android—there will be a lag before they are fully supported in React Native. The good news is that in the vast majority of cases, you can implement support for missing APIs yourself, which we’ll cover in Chapter 7. Also, if you do hit a roadblock, you won’t be locked in to using React Native—many companies have successfully implemented hybrid approaches to app development. Changing the platform you use to write your applications is a big choice. Still, I think you’ll see that the benefits of React Native outweigh the risks. Summary React Native is an exciting framework that enables web developers to create robust mobile applications using their existing JavaScript knowledge. It offers faster mobile development and more efficient code sharing across iOS, Android, and the web without sacrificing the end user’s experience or application quality. The tradeoff is that it adds some complexity to your application setup. If your team can handle that and wants to develop mobile applications for more than just one platform, you should be looking at React Native. In the next chapter, we go over some of the main ways in which React Native differs from React for the web, and cover some key concepts. If you’d like to skip straight to developing, feel free to jump to Chapter 3, in which we set up our development envi‐ ronment and write our very first React Native application. 4 | Chapter 1: What Is React Native?
CHAPTER 2 Working with React Native In this chapter, we’ll cover the bridge, and review how React Native works under the hood. Then, we’ll look at how React Native components differ from their web coun‐ terparts, and cover what you’ll need to know in order to create and style components for mobile. If you’d prefer to dig into the development process and see React Native in action, feel free to jump ahead to Chapter 3. How Does React Native Work? The idea of writing mobile applications in JavaScript feels a little odd. How is it possi‐ ble to use React in a mobile environment? In order to understand the technical underpinnings of React Native, we first need to recall one of React’s concepts: the Vir‐ tual DOM. In React, the Virtual DOM acts as a layer between the developer’s description of how things ought to look and the work done to actually render your application onto the page. To render interactive user interfaces in a browser, developers must edit the browser’s DOM, or Document Object Model. This is an expensive step, and excessive writes to the DOM have a significant impact on performance. Rather than directly render changes on the page, React computes the necessary changes in-memory and rerenders the minimal amount necessary. Figure 2-1 shows how this works. 5
Figure 2-1. Performing calculations in the Virtual DOM limits rerendering in the brows‐ er’s DOM In the context of React on the web, most developers think of the Virtual DOM as a performance optimization. The Virtual DOM certainly has performance benefits, but its real potential lies in the power of its abstraction. Placing a clean abstraction layer between the developer’s code and the actual rendering opens up a lot of interesting possibilities. What if React could render to a target other than the browser’s DOM? After all, React already “understands” what your application is supposed to look like. Indeed, this is how React Native works, as shown in Figure 2-2. Instead of rendering to the browser’s DOM, React Native invokes Objective-C APIs to render to iOS com‐ ponents, or Java APIs to render to Android components. This sets React Native apart from other cross-platform app development options, which often end up rendering web-based views. Figure 2-2. React can render to different targets 6 | Chapter 2: Working with React Native
This is all possible because of the bridge, which provides React with an interface into the host platform’s native UI elements. React components return markup from their render function, which describes how they should look. With React for the web, this translates directly to the browser’s DOM. For React Native, this markup is translated to suit the host platform, so a <View> might become an iOS-specific UIView. The core React Native project supports iOS and Android. Because of the abstraction layer provided by the Virtual DOM, React Native can target other platforms, too— someone just needs to write the bridge. For example, there are community imple‐ mentations of React Native for Windows and Ubuntu, so you can also use React Native to create desktop applications. Rendering Lifecycle If you are accustomed to working in React, the React lifecycle should be familiar to you. When React runs in the browser, the render lifecycle begins by mounting your React components (Figure 2-3). Figure 2-3. Mounting components in React After that, React handles the rendering and rerendering of your component as neces‐ sary (Figure 2-4). Figure 2-4. Rerendering components in React For the render stage, the developer returns HTML markup from a React component’s render method, which React then renders directly into the page as necessary. For React Native, the lifecycle is the same, but the rendering process is slightly differ‐ ent because React Native depends on the bridge. We looked at the bridge briefly in Figure 2-2. The bridge translates JavaScript calls and invokes the host platform’s underlying APIs and UI elements (i.e., in Objective-C or Java, as appropriate). Because React Native doesn’t run on the main UI thread, it can perform these asyn‐ chronous calls without impacting the user’s experience. Rendering Lifecycle | 7
Creating Components in React Native All React code lives in React components. React Native components are largely the same as ordinary React components, with some important differences around ren‐ dering and styling. Working with Views When writing in React for the web, you render normal HTML elements (<div>, <p>, <span>, <a>, etc.). With React Native, all of these elements are replaced by platform- specific React components (see Table 2-1). The most basic is the cross-platform <View>, a simple and flexible UI element that can be thought of as analogous to the <div>. On iOS, for instance, the <View> component renders to a UIView, whereas on Android it renders to a View. Table 2-1. Basic React elements for the web compared with React Native React React Native <div> <View> <span> <Text> <li>, <ul> <FlastList>, child items <img> <Image> Other components are platform-specific. For instance, the <DatePickerIOS> compo‐ nent (predictably) renders the iOS standard date picker (Figure 2-5). Here is an excerpt from the RNTester sample app, demonstrating an iOS date picker. The usage is straightforward, as you would expect: <DatePickerIOS date={this.state.date} mode="time" /> Figure 2-5. The <DatePickerIOS> component is, as the name suggests, iOS-specific 8 | Chapter 2: Working with React Native
Because all of our UI elements are now React components rather than basic HTML elements like the <div>, you will need to explicitly import each component you want to use. For instance, we need to import the <DatePickerIOS> component like so: import { DatePickerIOS } from "react-native"; The RNTester application, which is bundled into the React Native GitHub project, allows you to view all of the supported UI elements. I encourage you to examine the various elements included in the RNTester app. It also demonstrates many styling options and interactions. Platform-specific components and APIs have special tags in the documentation, and typically use the platform name as a suffix —for example, <TabBarIOS> and <ToolbarAndroid>. Because these components vary from platform to platform, how you structure your React components becomes even more important when you’re working in React Native. In React for the web, we often have a mix of React components: some manage logic and their child components, while others render raw markup. If you want to reuse code when working in React Native, maintaining separation between these types of components becomes critical. A React <DatePickerIOS> component obvi‐ ously cannot be reused for Android. However, a component that encapsulates the associated logic can be reused. Then the visual component can be swapped out based on your platform. You can also designate platform-specific versions of components if you want, so you could have a picker.ios.js and a picker.android.js file, each with a sep‐ arate implementation of the same component. We’ll cover this in “Components with Platform-Specific Implementations” on page 134. Using JSX In React Native, just as in React, we write our views using JSX, combining markup and the JavaScript that controls it into a single file. JSX met with strong reactions when React first debuted. For many web developers, the separation of files based on technologies is a given: you keep your CSS, HTML, and JavaScript files separate. The idea of combining markup, control logic, and even styling into one language can be confusing. JSX prioritizes the separation of concerns over the separation of technologies. In React Native, this is even more strictly enforced. In a world without the browser, it makes even more sense to unify our styles, markup, and behavior in a single file for each component. Accordingly, your .js files in React Native are in fact JSX files. If you’ve been using vanilla JavaScript when working with React for the web, you will want to transition to JSX syntax for your work in React Native. Creating Components in React Native | 9
If you’ve never seen JSX before, don’t worry: it’s pretty simple. As an example, a pure- JavaScript React component for the web might look something like this: class HelloMessage extends React.Component { render() { return React.createElement( "div", null, "Hello ", this.props.name ); } } ReactDOM.render( React.createElement(HelloMessage, { name: "Bonnie" }), mountNode); We can render this more succinctly by using JSX. Instead of calling React.createElement and passing in a list of HTML attributes, we use XML-like markup: class HelloMessage extends Component { render() { // Instead of calling createElement, we return markup return <div>Hello {this.props.name}</div>; } } // We no longer need a createElement call here ReactDOM.render(<HelloMessage name="Bonnie" />, mountNode); Both of these will render the following HTML onto the page: <div>Hello Bonnie</div> Styling Native Components On the web, we style React components using CSS, just as we would any other HTML element. Whether you love it or hate it, CSS is a necessary part of the web. React usu‐ ally does not affect the way we write CSS. It does make it easier to dynamically build class names based on props and state, but otherwise React is mostly agnostic about how we handle styles on the web. Non-web platforms have a wide array of approaches to layout and styling. When we work with React Native, thankfully, we utilize one standardized approach to styling. Part of the bridge between React and the host platform includes the implementation of a heavily pruned subset of CSS. This narrow implementation of CSS relies primar‐ ily on flexbox for layout, and focuses on simplicity rather than implementing the full range of CSS rules. Unlike the web, where CSS support varies across browsers, React Native is able to enforce consistent support of style rules. As with the various UI 10 | Chapter 2: Working with React Native
elements, you can see many examples of supported styles in the RNTester application, which is one of the examples that ships with React Native. React Native also insists on the use of inline styles, which exist as JavaScript objects. The React team has advocated for this approach before in React for web applications. If you have previously experimented with inline styles in React, the syntax will look familiar to you: // Define a style... const style = { backgroundColor: 'white', fontSize: '16px' }; // ...and then apply it. const txt = ( <Text style={style}> A styled Text </Text>); React Native also provides some utilities for creating and extending style objects that make dealing with inline styles a more manageable process. We will explore those later in Chapter 5. Does looking at inline styles make you twitch? If you’re coming from a web-based background, this is a break from standard practices. Working with style objects, as opposed to stylesheets, takes some mental adjustments and changes the way you need to approach writing styles. However, in the context of React Native, it is a useful shift. We will be discussing styling best practices and workflow in Chapter 5. Just try not to be surprised when you see them in use! Host Platform APIs Perhaps the biggest difference between React for the web and React Native is the way we think about host platform APIs. On the web, we often deal with fragmentation and inconsistent adoption of standards; still, most browsers support a common core of shared features. With React Native, however, platform-specific APIs play a much larger role in creating an excellent, natural-feeling user experience. There are also many more options to consider. Mobile APIs include everything from data storage to location services to accessing hardware such as the camera. Unconventional plat‐ forms lead to even more interesting APIs—what should the interface look like between React Native and a virtual reality headset, for instance? By default, React Native for iOS and Android includes support for many commonly used features, and React Native can support any asynchronous native API. We will take a look at many of them throughout this book. React Native makes it straightfor‐ ward and simple to use host platform APIs, so you can experiment freely. Be sure to Host Platform APIs | 11
Another Random Scribd Document with Unrelated Content
of temperance, by abstaining, at least, twice a week from the ordinary grosser food with which they are supplied. As might be expected from the age, and from his order, the practice of Chrysostom, and of the numerous other ecclesiastical abstinents from the gross diet of the richer part of the community, reposed upon ascetic and traditionary principles, rather than on the more secular and modern motives of justice, humanity, and general social improvement. So, in fact, Origen, one of the most learned of the Fathers, expressly says (Contra Celsum, v.): “We [the Christian leaders] practise abstinence from the flesh of animals to buffet our bodies and treat them as slaves (ὑπωπιάζομεν καί δουλαγωγοῦμεν), and we wish to mortify our members upon earth,” &c. Accordingly, the Apostolical Canons distinguished, as Bingham (Antiquities of the Christian Church) reports them, between abstinents, διὰ τὴν ἀσκησιν and διὰ τὴν βδελυπίαν, i.e., between those who abstained to exercise self-control, and those who did so from disgust and abhorrence of what, in ordinary and orthodox language, are too complacently and confidently termed “the good creatures of God.” This distinction, it must be added, holds only of the prevailing sentiment of the Orthodox Church as finally established. During several centuries—even so late as the Paulicians in the seventh, or even as the
Albigeois of the thirteenth, century—Manicheism, as it is called, or a belief in the inherent evil of all matter, was widely spread in large and influential sections of the Christian Church—nor, indeed, were some of its most famous Fathers without suspicion of this heretical taint. According to the Clementine Homilies, “the unnatural eating of flesh-meat is of demoniacal origin, and was introduced by those giants who, from their bastard nature, took no pleasure in pure nourishment, and only lusted after blood. Therefore the eating of flesh is as polluting as the heathen worship of demons, with its sacrifices and its impure feasts; through participation in which, a man becomes a fellow-dietist (ὁμοδίαιτος) with demons.”[92] That superstition was often, in the minds of the followers both of Plato and of St. Paul, mixed up with, and, indeed, usually dominated over, the reasonable motives of the more philosophic advocates of the higher life, there can be no sort of doubt; nor can we claim a monopoly of rational motives for the mass of the adherents of either Christian or Pythagorean abstinence. Yet an impartial judgment must allow almost equal credit to the earnestness of mind and purity of motive which, mingled though they undoubtedly were with (in the pre-scientific ages) a necessary infusion of superstition, urged the followers of the better way—
Christian and non-Christian—to discard the “social lies” of the dead world around them. At all events, it is not for the selfish egoists to sneer at the sublime— if error-infected—efforts of the earlier pioneers of moral progress for their own and the world’s redemption from the bonds of the prevailing vile materialism in life and dietary habits. We have already shown that the earliest Jewish- Christian communities, both in Palestine and elsewhere—the immediate disciples of the original Twelve—enjoined abstinence as one of the primary obligations of the New Faith; and that the earliest traditions represent the foremost of them as the strictest sort of Vegetarians.[93] If then we impartially review the history of the practice, the teaching, and the traditions of the first Christian authorities, it cannot but appear surprising that the Orthodox Church, ignoring the practice and highest ideal of the most sacred period of its annals, has, even within its own Order, deemed it consistent with its claim of being representative of the Apostolic period to substitute partial and periodic for total and constant abstinence. The following passages in the Homilies, or Congregational Discourses, of Chrysostom will serve as specimens of his feeling on the propriety of dietary reform. The eloquent but diffusive style of
the Greek Bossuet, it must be noted, is necessarily but feebly represented in the literal English version:— “No streams of blood are among them [the ascetics]; no butchering and cutting up of flesh; no dainty cookery; no heaviness of head. Nor are there horrible smells of flesh- meats among them, or disagreeable fumes from the kitchen. No tumult and disturbance and wearisome clamours, but bread and water—the latter from a pure fountain, the former from honest labour. If, at any time, however, they may wish to feast more sumptuously, the sumptuousness consists in fruits, and their pleasure in these is greater than at royal tables. With this repast [of fruits and vegetables], even angels from Heaven, as they behold it, are delighted and pleased. For if over one sinner who repents they rejoice, over so many just men imitating them what will they not do? No master and servant are there. All are servants—all free men. And think not this a mere form of speech, for they are servants one of another and masters one of another. Wherein, therefore, are we different from, or superior to, Ants, if we compare ourselves with them? For as they care for the things of the body only, so also do we. And would it were for these alone! But, alas! it is for things far worse. For not for necessary things only do we care, but also for things superfluous. Those animals pursue an innocent life, while we follow after all covetousness. Nay, we do not so much as imitate the ways of Ants. We follow the ways of Wolves, the habits of Tigers; or, rather, we are worse even than they. To them Nature has assigned that they should be thus [carnivorously] fed, while God has honoured us with rational speech and a sense of equity. And yet we are become worse than the wild beasts.”[94] Again he protests:—
“Neither am I leading you to the lofty peak of total renunciation of possessions [ἀκτημοσύνη]; but for the present I require you to cut off superfluities, and to desire a sufficiency alone. Now, the boundary of sufficiency is the using those things which it is impossible to live without. No one debars you from these, nor forbids you your daily food. I say ‘food,’ not ‘luxury’ [τροφὴν οὐ τρυφὴν λέγω]—‘raiment,’ not ‘ornament.’ Rather, this frugality—to speak correctly—is, in the best sense, luxury. For consider who should we say more truly feasted—he whose diet is herbs, and who is in sound health and suffered no uneasiness, or he who has the table of a Sybarite and is full of a thousand disorders? Clearly, the former. Therefore let us seek nothing more than these, if we would at once live luxuriously and healthfully. And let him who can be satisfied with pulse, and can keep in good health, seek for nothing more. But let him who is weaker, and needs to be [more richly] dieted with other vegetables and fruits, not be debarred from them.... We do not advise this for the harm and injury of men, but to lop off what is superfluous— and that is superfluous which is more than we need. When we are able to live without a thing, healthfully and respectably, certainly the addition of that thing is a superfluity.”—Hom. xix. 2 Cor. Denouncing the grossness of the ordinary mode of living, he eloquently descants on the evil results, physical as well as mental:— “A man who lives in pleasure [i.e., in selfish luxury] is dead while he lives, for he lives only to his belly. In his other senses he lives not. He sees not what he ought to see; he hears not what he ought to hear; he speaks not what he ought to speak.... Look not at the superficial countenance, but examine the interior, and you will see it full of deep
dejection. If it were possible to bring the soul into view, and to behold it with our bodily eyes, that of the luxurious would seem depressed, mournful, miserable, and wasted with leanness, for the more the body grows sleek and gross, the more lean and weakly is the soul. The more the one is pampered, the more is the other hampered [θάλπεται— θάπτεται: the latter meaning, literally, buried]. As when the pupil of the eye has the external envelope too thick, it cannot put forth the power of vision and look out, because the light is excluded by the dense covering, and darkness ensues; so when the body is constantly full fed, the soul must be invested with grossness. The dead, say you, corrupt and rot, and a foul pestilential humour distils from them. So in her who lives in pleasure may be seen rheums, and phlegm, and catarrh, hiccough, vomiting, eructations, and the like, which, as too unseemly, I forbear to name. For such is the despotism of luxury, it makes us endure things which we do not think proper even to mention.... “‘She that lives in pleasure is dead while she lives.’ Hear this, ye women[95] who pass your time in revels and intemperance, and who neglect the poor, pining and perishing with hunger, whilst you are destroying yourselves with continual luxury. Thus you are the cause of two deaths—of those who are dying of want and of your own, both through ill-measure. If, out of your fulness, you tempered their want, you would save two lives. Why do you thus gorge your own body with excess, and waste that of the poor with want? Consider what comes of food—into what it is changed. Are you not disgusted at its being named? Why, then, be eager for such accumulations? The increase of luxury is but the multiplication of filth.[96] For Nature has her limits, and what is beyond these is not nourishment, but injury and the increase of ordure. “Nourish the body, but do not destroy it. Food is called nourishment, to show that its purpose is not to hurt, but to
support us. For this reason, perhaps, food passes into excrement that we may not be lovers of luxury. If it were not so—if it were not useless and injurious to the body, we should hardly abstain from devouring one another. If the belly received as much as it pleased, digested it, and conveyed it to the body, we should see battles and wars innumerable. Even as it is, when part of our food passes into ordure, part into blood, part into spurious and useless phlegm, we are, nevertheless, so addicted to luxury that we spend, perhaps, whole estates on a meal. The more richly we live, the more noisome are the odours with which we are filled.”—Hom. xiii. Tim. v.[97] From this period—the fifth century A.D. down to the sixteenth—Christian and Western literature contains little or nothing which comes within the purpose of this work. The merits of monastic asceticism were more or less preached during all those ages, although constant abstinence from flesh was by no means the general practice even with the inmates of the stricter monastic or conventual establishments—at all events in the Latin Church. But we look in vain for traces of anything like the humanitarian feeling of Plutarch or Porphyry. The mental intelligence as well as capacities for physical suffering of the non-human races—necessarily resulting from an organisation in all essential points like to our own—was apparently wholly ignored; their
just rights and claims upon human justice were disregarded and trampled under foot. Consistently with the universal estimate, they were treated as beings destitute of all feeling—as if, in fine, they are the “automatic machines” they are alleged to be by the Cartesians of the present day. In those terrible ages of gross ignorance, of superstition, of violence, and of injustice—in which human rights were seldom regarded—it would have been surprising indeed if any sort of regard had been displayed for the non- human slaves. And yet an underlying and latent consciousness of the falseness of the general estimate sometimes made itself apparent in certain extraordinary and perverse fancies.[98] To Montaigne, the first to revive the humanitarianism of Plutarch, belongs the great merit of reasserting the natural rights of the helpless slaves of human tyranny. While Chrysostom seems to have been one of the last of Christian writers who manifested any sort of consciousness of the inhuman, as well as unspiritual nature of the ordinary gross foods, Platonism continued to bear aloft the flickering torch of a truer spiritualism; and “the golden chain” of the prophets of the dietary reformation reached down even so late as to the end of the sixth century. Hierokles, author of the commentary on the Golden Verses of Pythagoras, to which reference has already been
made, and who lectured upon them with great success at Alexandria; Hypatia, the beautiful and accomplished daughter of Theon the great mathematician, who publicly taught the philosophy of Plato at the same great centre of Greek science and learning, and was barbarously murdered by the jealousy of her Christian rival Cyril, Archbishop of Alexandria; Proklus, surnamed the Successor, as having been considered the most illustrious disciple of Plato in the latter times, who left several treatises upon the Pythagorean system, and “whose sagacious mind explored the deepest questions of morals and metaphysics”;[99] Olympiodorus, who wrote a life of Plato and commentaries on several of his dialogues, still extant, and lived in the reign of Justinian, by whose edict the illustrious school of Athens was finally closed, and with it the last vestiges of a sublime, if imperfect, attempt at the purification of human life—such are some of the most illustrious names which adorned the days of expiring Greek philosophy. Olympiodorus and six other Pythagoreans determined, if possible, to maintain their doctrines elsewhere; and they sought refuge with the Persian Magi, with whose tenets, or, at least, manner of living, they believed themselves to be most in accord. The Persian customs were distasteful to the purer ideal of the Platonists, and, disappointed in
other respects, they reluctantly relinquished their fond hopes of transplanting the doctrines of Plato into a foreign soil, and returned home. The Persian prince, Chosroes, we may add, acquired honour by his stipulation with the bigoted Justinian, that the seven sages should be allowed to live unmolested during the rest of their days. “Simplicius and his companions ended their lives in peace and obscurity; and, as they left no disciples, they terminated the long list of Grecian philosophers who may be justly praised, notwithstanding their defects, as the wisest and most virtuous of their contemporaries. The writings of Simplicius are now extant. His physical and metaphysical commentaries on Aristotle have passed away with the fashion of the times, but his moral interpretation of Epiktetus is preserved in the library of nations as a classical book excellently adapted to direct the will, to purify the heart, and to confirm the understanding, by a just confidence in the nature both of God and Man.”[100]
XI. CORNARO. 1465–1566. AFTER the extinction of Greek and Latin philosophy in the fifth century, a mental torpor seized upon and, during some thousand years, with rare exceptions, dominated the whole Western world. When this torpor was dispelled by the influence of returning knowledge and reason evoked by the various simultaneous discoveries in science and literature—in particular by the achievements of Gutenberg, Vasco da Gama, Christopher Colon, and, above all, Copernik—the moral sense then first, too, began to show signs of life. The renascence of the sixteenth century, however, with all the vigour of thought and action which accompanied it, proved to be rather a revival of mere verbal learning than of the higher moral feeling of the best minds of old Greece and Italy. Men, fettered as they were in the trammels of theological controversy and metaphysical subtleties, for the most part expended their energies and their intellect in the vain pursuit of phantoms. With the
very few splendid exceptions of the more enlightened and earnest thinkers, Ethics, in the real and comprehensive meaning of the word, was an unknown science; and a long period of time was yet to pass away before a perception of the universal obligations of Justice and of Right dawned upon the minds of men. In truth, it could not have been otherwise. Before the moral instincts can be developed, reason and knowledge must have sufficiently prepared the way. When attention to the importance of the neglected science of Dietetics had been in some degree aroused, the interest evoked was little connected with the higher sentiments of humanity. Of all dietary reformers who have treated the subject from an exclusively sanitarian point of view, the most widely known and most popular name, perhaps, has been that of Luigi Cornaro; and it is as a vehement protester against the follies, rather than against the barbarism, of the prevailing dietetic habits that he claims a place in this work. He belonged to one of the leading families of Venice, then at the height of its political power. Even in an age and in a city noted for luxuriousness and grossness of living of the rich and dominant classes, he had in his youth distinguished himself by his licentious habits in eating and drinking, as well as by
other excesses. His constitution had been so impaired, and he had brought upon himself so many disorders by this course of living, that existence became a burden to him. He informs us that from his thirty-fifth to his fortieth year he passed his nights and days in continuous suffering. Every sort of known remedy was exhausted before his new medical adviser, superior to the prejudices of his profession and of the public, had the courage and the good sense to prescribe a total change of diet. At first Cornaro found his enforced regimen almost intolerable, and, as he tells us, he occasionally relapsed. These relapses brought back his old sufferings, and, to save his life, he was driven at length to practise entire and uniform abstinence, the yolk of an egg often furnishing him the whole of his meal. In this way he assures us that he came to relish dry bread more than formerly he had enjoyed the most exquisite dishes of the ordinary table. At the end of the first year he found himself entirely freed from all his multiform maladies. In his eighty-third year he wrote and published his first exhortation to a radical change of diet under the title of A Treatise on a Sober Life,[101] in which he eloquently narrates his own case, and exhorts all who value health and immunity from physical or mental sufferings to follow
his example. And his exordium, in which he takes occasion to denounce the waste and gluttony of the dinners of the rich, might be applied with little, or without any, modification of its language to the public and private tables of the present day:— “It is very certain,” he begins, “that Custom, with time, becomes a second nature, forcing men to use that, whether good or bad, to which they have been habituated; and we see custom or habit get the better of reason in many things.... Though all are agreed that intemperance (la crapula) is the offspring of gluttony, and sober living of abstemiousness, the former nevertheless is considered a virtue and a mark of distinction, and the latter as dishonourable and the badge of avarice. Such mistaken notions are entirely owing to the power of Custom, established by our senses and irregular appetites. These have blinded and besotted men to such a degree that, leaving the paths of virtue, they have followed those of vice, which lead them imperceptibly to an old age burdened with strange and mortal diseases.... “O wretched and unhappy Italy! [thus he apostrophises his own country] can you not see that gluttony murders every year more of your inhabitants than you could lose by the most cruel plague or by fire and sword in many battles? Those truly shameful feasts (i tuoi veramente disonesti banchetti), now so much in fashion and so intolerably profuse that no tables are large enough to hold the infinite number of the dishes—those feasts, I say, are so many battles.[102] And how is it possible to live amongst such a multitude of jarring foods and disorders? Put an end to this abuse, in heaven’s name, for there is not—I am certain of it—a vice more abominable than this in the eyes of the divine Majesty. Drive
away this plague, the worst you were ever afflicted with—this new [?] kind of death—as you have banished that disease which, though it formerly used to make such havoc, now does little or no mischief, owing to the laudable practice of attending more to the goodness of the provisions brought to our markets. Consider that there are means still left to banish intemperance, and such means, too, that every man may have recourse to them without any external assistance. “Nothing more is requisite for this purpose than to live up to the simplicity, dictated by nature, which teaches us to be content with little, to pursue the practice of holy abstemiousness and divine reason, and accustom ourselves to eat no more than is absolutely necessary to support life; considering that what exceeds this is disease and death, and done merely to give the palate a satisfaction which, though but momentary, brings on the body a long and lasting train of disagreeable diseases, and at length kills it along with the soul. How many friends of mine—men of the finest understanding and most amiable disposition—have I seen carried off by this plague in the flower of their youth! who, were they now living, would be an ornament to the public, and whose company I should enjoy with as much pleasure as I am now deprived of it with concern.” He tells us that he had undertaken his arduous task of proselytising with the more anxiety and zeal that he had been encouraged to it by many of his friends, men of “the finest intellect” (di bellissimo intelletto), who lamented the premature deaths of parents and relatives, and who observed so manifest a proof of the advantages of abstinence in the robust and vigorous frame of the dietetic missionary at the
age of eighty. Cornaro was a thorough-going hygeist, and he followed a reformed diet in the widest meaning of the term, attending to the various requirements of a healthy condition of mind and body:— “I likewise,” he says with much candour, “did all that lay in my power to avoid those evils which we do not find it so easy to remove—melancholy, hatred, and other violent passions which appear to have the greatest influence over our bodies. However, I have not been able to guard so well against either one or the other kind of these disorders [passions] as not to suffer myself now and then to be hurried away by many, not to say all, of them; but I reaped one great benefit from my weakness—that of knowing by experience that these passions have, in the main, no great influence over bodies governed by the two foregoing rules of eating and drinking, and therefore can do them but very little harm, so that it may, with great truth, be affirmed that whoever observes these two capital rules is liable to very little inconvenience from any other excess. This Galen, who was an eminent physician, observed before me. He affirms that so long as he followed these two rules relative to eating and drinking (perchè si guardava da quelli due della bocca) he suffered but little from other disorders—so little that they never gave him above a day’s uneasiness. That what he says is true I am a living witness; and so are many others who know me, and have seen how often I have been exposed to heats and colds and such other disagreeable changes of weather, and have likewise seen me (owing to various misfortunes which have more than once befallen me) greatly disturbed in mind. For not only can they say of me that such mental disturbance has affected me little, but they can aver of many others who did not lead a frugal and regular life that such failure proved very prejudicial to
them, among whom was a brother of my own and others of my family who, trusting to the goodness of their constitution, did not follow my way of living.” At the age of seventy a serious accident befel him, which to the vast majority of men so far advanced in life would probably have been fatal. His coach was overturned, and he was dragged a considerable distance along the road before the horses could be stopped. He was taken up insensible, covered with severe wounds and bruises and with an arm and leg dislocated, and altogether he was in so dangerous a state that his physicians gave him only three days to live. As a matter of course they prescribed bleeding and purging as the only proper and effectual remedies:— “But I, on the contrary, who knew that the sober life I had led for many years past had so well united, harmonised, and dispersed my humours as not to leave it in their power to ferment to such a degree [as to induce the expected high fever], refused to be either bled or purged. I simply caused my leg and arm to be set, and suffered myself to be rubbed with some oils, which they said were proper on the occasion. Thus, without using any other kind of remedy, I recovered, as I thought I should, without feeling the least alteration in myself or any other bad effects from the accident, a thing which appeared no less than miraculous in the eyes of the physicians.”
It is, perhaps, hardly to be expected that “The Faculty” will endorse the opinions of Cornaro, that any person by attending strictly to his regimen “could never be sick again, as it removes every cause of illness; and so, for the future, would never want either physician or physic”:— “Nay, by attending duly to what I have said he would become his own physician, and, indeed, the best he could have, since, in fact, no man can be a perfect physician to anyone but himself. The reason of which is that any man may, by repeated trials, acquire a perfect knowledge of his own constitution and the most hidden qualities of his body, and what food best agrees with his stomach. Now, it is so far from being an easy matter to know these things perfectly of another that we cannot, without much trouble, discover them in ourselves, since a great deal of time and repeated trials are required for that purpose.” Cornaro’s second publication appeared three years later than his first, under the title of A Compendium of a Sober Life and the third, An Earnest Exhortation to a Sober and Regular Life,[103] in the ninety-third year of his age. In these little treatises he repeats and enforces in the most earnest manner his previous exhortations and warnings. He also takes the opportunity of exposing some of the plausible sophisms employed in defence of luxurious living:—
“Some allege that many, without leading such a life, have lived to a hundred, and that in constant health, although they ate a great deal and used indiscriminately every kind of viands and wine, and therefore flatter themselves that they shall be equally fortunate. But in this they are guilty of two mistakes. The first is, that it is not one in one hundred thousand that ever attains that happiness; the other mistake is, that such persons, in the end, most assuredly contract some illness which carries them off, nor can they ever be sure of ending their days otherwise, so that the safest way to obtain a long and healthy life is, at least after forty, to embrace abstinence. This is no difficult matter, since history informs us of very many who, in former times, lived with the greatest temperance, and I know that the present Age furnishes us with many such instances, reckoning myself one of the number. Now let us remember that we are human beings, and that man, being a rational animal, is himself master of his actions.” Amongst others:— “There are old gluttons (attempati) who say that it is necessary they should eat and drink a great deal to keep up their natural heat, which is constantly diminishing as they advance in years, and that it is therefore necessary for them to eat heartily and of such things as please their palates, and that were they to lead a frugal life it would be a short one. To this I answer that our kind mother, Nature, in order that old men may live to a still greater age, has contrived matters so that they should be able to subsist on little, as I do, for large quantities of food cannot be digested by old and feeble stomachs. Nor should such persons be afraid of shortening their lives by eating too little, since when they are indisposed they recover by eating the smallest quantities. Now, if by reducing themselves to a very small quantity of food they
recover from the jaws of death, how can they doubt but that, with an increase of diet, still consistent, however, with sobriety, they will be able to support nature when in perfect health? “Others say that it is better for a man to suffer every year three or four returns of his usual disorders, such as gout, sciatica, and the like than to be tormented the whole year by not indulging his appetite, and eating everything his palate likes best, since by a good regimen alone he is sure to get the better of such attacks. To this I answer that, our natural heat growing less and less as we advance in years, no regimen can retain virtue enough to conquer the malignity with which disorders of repletion are ever attended, so that he must die at last of these periodical disorders, because they abridge life as health prolongs it. Others pretend that it is much better to live ten years less than not indulge one’s appetite. My reply is that longevity ought to be highly valued by men of genius and intellect; as to others it is of no great matter if it is not duly prized by them, since it is they who brutalise the world (perchè questi fanno brutto il mondo), so that their death is rather of service to mankind.” Cornaro frequently interrupts his discourse with apostrophes to the genius of Temperance, in which he seems to be at a loss for words to express his feeling of gratitude and thankfulness for the marvellous change effected in his constitution, by which he had been delivered from the terrible load of sufferings of his earlier life, and by which moreover he could fully appreciate, as he had never dreamed before, the beauties and charms of nature of the
external world, as well as develope the mental faculties with which he had been endowed:— “O thrice holy Sobriety, so useful to man by the services thou renderest him! Thou prolongest his days, by which means he may greatly improve his understanding. Thou moreover freest him from the dreadful thoughts of death. How greatly is thy faithful disciple indebted to thee, since by thy assistance he enjoys this beautiful expanse of the visible world, which is really beautiful to such as know how to view it with a philosophic eye, as thou hast enabled me to do!... O truly happy life which, besides these favours conferred on an old man, hast so improved and perfected him that he has now a better relish for his dry bread than he had formerly for the most exquisite dainties. And all this thou hast effected by acting rationally, knowing that bread is, above all things, man’s proper food when seasoned by a good appetite.... It is for this reason that dry bread has so much relish for me; and I know from experience, and can with truth affirm, that I find such sweetness in it that I should be afraid of sinning against temperance were it not for my being convinced of the absolute necessity of eating of it, and that we cannot make use of a more natural food.” The fourth and last of his appearances in print was a “Letter to Barbaro, Patriarch of Aquileia,” written at the age of ninety-five. It describes in a very lively manner the health, vigour, and use of all his faculties of mind and body, of which he had the perfect enjoyment. He was far advanced in life when his daughter, his only child, was born, and he lived to see her an old woman. He informs us, at the age of
ninety-one, with much eloquence and enthusiasm of the active interest and pleasure he experienced in all that concerned the prosperity of his native city: of his plans for improving its port; for draining, recovering, and fertilizing the extensive marshes and barren sands in its neighbourhood. He died, having passed his one hundredth year, calmly and easily in his arm- chair at Padua in the year 1566.[104] His treatises, forming a small volume, have been “very frequently published in Italy, both in the vernacular Italian and in Latin. It has been translated into all the civilised languages of Europe, and was once a most popular book. There are several English translations of it, the best being one that bears the date 1779. Cornaro’s system,” says the writer in the English Cyclopædia whom we are quoting, “has had many followers.” Recounting his many dignities and honours, and the distinguished part he took in the improvement of his native city, by which he acquired a great reputation amongst his fellow-citizens, the Italian editor of his writings justly adds:— “But all these fine prerogatives of Luigi Cornaro would not have been sufficient to render his name famous in Europe if he had not left behind him the short treatises upon Temperance, composed at various times at the advanced ages of 85, 86, 91, and 95. The candour which breathes through their simplicity, the importance of the argument, and the fervour with which he urges upon all to study the means of
prolonging our life, have obtained for them so great good fortune as to be praised to the skies by men of the best understanding. The many editions which have been published in Italy, and the translations which, together with an array of physiological and philological notes, have appeared out of Italy, at one time in Latin, at another in French, again in German, and again in English, prove their importance. These discourses, in fact, enjoyed all the reputation of a classical book, and, although occasionally somewhat unpolished, as ‘Poca favilla gran fiamma seconda,’ they have sufficed to inspire (riscaldare) a Lessio, a Bartolini, a Ramazzini, a Cheyne, a Hufeland, and so many others who have written works of greater weight upon the same subject.” Addison (Spectator 195) thus refers to him:— “The most remarkable instance of the efficacy of temperance towards the procuring long life is what we meet with in a little book published by Lewis Cornaro, the Venetian, which I the rather mention because it is of undoubted credit, as the late Venetian Ambassador, who was of the same family, attested more than once in conversation when he resided in England.... After having passed his one hundredth year he died without pain or agony, and like one who falls asleep. The treatise I mention has been taken notice of by several eminent authors, and is written with such a spirit of cheerfulness, religion, and good sense as are the natural concomitants of temperance and sobriety. The mixture of the old man in it is rather a recommendation than a discredit to it.” In fact he has exposed himself, it must be confessed, to the taunts of the “devotees of the Table” often cast at the abstinents, that they are too
much given to parading their health and vigour, and certainly if any one can be justly obnoxious to them it is Luigi Cornaro.
XII. SIR THOMAS MORE. 1480–1535. DURING part of the period covered by the long life of Cornaro there is one distinguished man, all reference to whose opinions—intimately though indirectly connected as they are with dietary reform—it would be improper to omit—Sir Thomas More. His eloquent denunciation of the grasping avarice and the ruinous policy which were rapidly converting the best part of the country into grazing lands, as well as his condemnation of the slaughter of innocent life, commonly euphemised by the name of “sport,” are as instructive and almost as necessary for the present age as for the beginning of the sixteenth century. Son of Sir John More, a judge of the King’s Bench, he was brought up in the palace of the Cardinal Lord Chancellor Morton, an ecclesiastic who stands out in favourable contrast with the great majority of his order, and, indeed, of his contemporaries in general. In his twenty-first year he
was returned to the House of Commons, where he distinguished himself by opposing a grant of a subsidy to the king (Henry VII.). In 1516 he published (in Latin) his world-famed Utopia—the most meritorious production in sociological literature since the days of Plutarch. In 1523 he was elected Speaker of the House of Commons, and again he displayed his courage and integrity in resisting an illegal and oppressive subsidy bill, by which he was not in the way to advance his interests with Henry VIII. and his principal minister, Wolsey. Seven years later, however, upon the disgrace of the latter personage, Sir Thomas More succeeded to the vacant Chancellorship, in which office he maintained his reputation for integrity and laborious diligence. When the amorous and despotic king had determined upon the momentous divorce from Catherine, he resigned the Seals rather than sanction that equivocal proceeding; and soon afterwards he was sent to the Tower for refusing the Oath of Supremacy. After the interval of a year he was brought to trial before the King’s Bench, and sentenced to the block (1535). In private life and in his domestic relations he exhibits a pleasing contrast to the ordinary harsh severity of his contemporaries. In learning and ability he occupies a foremost place in the annals of the period.
Unfortunately for his reputation with after ages, as Lord Chancellor he seems to have forgotten the maxims of toleration (political and theological) of his earlier career, so well set forth in his Utopia; and he supplies a notable instance, not too rare, of retrogression with advancing years and dignities, and of “a head grown grey in vain.” In fact, he belonged, ecclesiastically, to the school of conservative sceptics, of whom his intimate friend Erasmus was the most conspicuous representative, rather than to the party of practical reform. Yet, in spite of so lamentable a failure in practical philosophy, More may claim a high degree of merit both for his courage and for his sagacity in propounding views far in advance of his time. In the Utopia his ideas in regard to labour and to crime exhibit him, indeed, as in advance of the received dogmas even of the present day. As to the former he held that the labourer, as the actual basis and support of the whole social system, was justly entitled to some consideration, and to a more rational existence than usually allowed him by the policy of the ruling classes; and, in limiting the daily period of labour to nine hours, he anticipated by 350 years the tardy legislation on that important matter. In exposing the equal absurdity and iniquity of the criminal code he preached the despised doctrine of
prevention rather than punishment, and denounced the monstrous inequality of penalties by which thieving was placed in the same category with murder and crimes of violence:— “For great and horrible punishments be awarded to thieves, whereas much rather provision should have been made that there were some means whereby they might get their living, so that no man should be driven to this extreme necessity—first to steal and then to die.... By suffering your youth to be wantonly and viciously brought up and to be infected, even from their tender age, by little and little with vice—then, in God’s name, to be punished when they commit the same faults after being come to man’s state, which from their youth they were ever like to do—in this point, I pray you, what other thing do you than make thieves and then punish them.”[105] What we are immediately concerned with here is his feeling in regard to slaughter. The Utopians condemn— “Hunters also and hawkers (falconers), for what delight can there be, and not rather displeasure, in hearing the barking and howling of dogs? Or what greater pleasure is there to be felt when a dog follows a hare than when a dog follows a dog? For one thing is done by both—that is to say, running, if you have pleasure in that. But if the hope of slaughter and the expectation of tearing the victim in pieces pleases you, you should rather be moved with pity to see an innocent hare murdered by a dog—the weak by the strong, the fearful by the fierce, the innocent by the cruel and pitiless.[106] Therefore this exercise of hunting, as a thing
unworthy to be used of free men, the Utopians have rejected to their butchers, to the which craft (as we said before) they appoint their bondsmen. For they count hunting the lowest, the vilest, and most abject part of butchery; and the other parts of it more profitable and more honest as bringing much more commodity, in that they (the butchers) kill their victims from necessity, whereas the hunter seeks nothing but pleasure of the seely [simple, innocent] and woful animal’s slaughter and murder. The which pleasure in beholding death, they say, doth rise in wild beasts, either of a cruel affection of mind or else by being changed, in continuance of time, into cruelty by long use of so cruel a pleasure. These, therefore, and all such like, which be innumerable, though the common sort of people do take them for pleasures, yet they, seeing that there is no natural pleasantness in them, plainly determine them to have no affinity with true and right feeling.” In telling us that his model people “permit not their free citizens to accustom themselves to the killing of ‘beasts’ through the use whereof they think clemency, gentlest affection of our nature, by little and little to decay and perish,”[107] More for ever condemns the immorality of the Slaughter-House, whether he intended to do so in toto or no. In relegating the business of slaughter to their bondsmen (criminals who had been degraded from the rights of citizenship), the Utopians, we may observe, exhibit less of justice than of refinement. To devolve the trade of slaughter upon a pariah-class is not the least immoral of the necessary concomitants
of the shambles. That the author of Utopia should feel an instinctive aversion from the coarseness and cruelty of the shambles is not surprising; that he should have failed to banish it entirely from his ideal commonwealth is less to be wondered at than to be lamented. That he had at least a latent consciousness of the indefensibility of slaughter for food appears sufficiently clear from his remark upon the Utopian religion that “they kill no living animal in sacrifice, nor do they think that God has delight in blood and slaughter, Who has given life to animals to the intent they should live.” Wiser than ourselves, the ideal people do not waste their corn in the manufacture of alcoholic drinks:— “They sow corn only for bread. For their drink is either wine made of grapes, or else of apples or pears, or else it is clear water—and many times mead made of honey or liquorice sodden in water, for of that they have great store.” The selfish policy of converting arable into grazing land is emphatically denounced by More:— “They (the oxen and sheep) consume, destroy, and devour whole fields, houses, and cities. For look in what parts of the realm doth grow the finest and therefore the dearest wool. There noblemen and gentlemen, yea, and certain abbots, holy men no doubt, not contenting themselves with the yearly
revenues and profits that were wont to grow to their forefathers and predecessors of their lands, nor being content that they live in rest and pleasure nothing profiting, yea, much annoying, the public weal, leave no land for tillage— they enclose all into pasture, they throw down houses, they pluck down towns and leave nothing standing, but only the church to be made a sheep house; and, as though you lost no small quantity of ground by forests, chases, lands, and parks, those good holy men turn dwelling-places and all glebe land into wilderness and desolation.... For one shepherd or herdsman is enough to eat up that ground with cattle, to the occupying whereof about husbandry many hands would be requisite. And this is also the cause why victuals be now in many places dearer; yea, besides this, the price of wool is so risen that poor folks, which were wont to work it and make cloth thereof, be now able to buy none at all, and by this means very many be forced to forsake work and to give themselves to idleness. For after that so much land was enclosed for pasture, an infinite multitude of sheep died of the rot, such vengeance God took of their inordinate and insatiable covetousness, sending among the sheep that pestiferous murrain which much more justly should have fallen on the sheep-masters’ own heads; and though the number of sheep increase never so fast, yet the price falleth not one mite, because there be so few sellers,” &c. These sagacious and just reflections upon the evil social consequences of carnivorousness may be fitly commended to the earnest attention of our public writers and speakers of to-day. The periodical cattle plagues and foot-and-mouth diseases, which, in theological language, are vaguely assigned to national sins, might be more ingenuously and
truthfully attributed to the one sufficient cause—to the general indulgence of selfish instincts, which closes the ear to all the promptings at once of humanity and of reason, and is, in truth, a national sin of the most serious character.[108] The “wisdom of our ancestors,” which has been so often invoked, both before and since the days of More, and which Bentham has so mercilessly exposed, apparently did not subdue the reason of the author of Utopia; yet, with no little amount of applause it has been made to serve as a very conclusive argument against dietetic reformation, as against many other changes:— “‘These things,’ say they, ‘pleased our forefathers and ancestors—would to God we could be so wise as they were!’ And, as though they had wittily concluded the matter, and with this answer stopped every man’s mouth, they sit down again as who should say, ‘It were a very dangerous matter if a man in any point should be found wiser than his forefathers were.’ And yet be we content to suffer the best and wittiest [wisest] of their decrees to be unexecuted; but if in anything a better order might have been taken than by them was, there we take fast hold, finding therein many virtues.”[109]
XIII. MONTAIGNE. 1533–1592. THE modern Plutarch and the first of essayists deserves his place in this work, if not so much for express and explicit denunciation, totidem verbis, of the barbarism of the Slaughter-House, at least for a sort of argument which logically and necessarily arrives at the same conclusion. In truth, if he had not “seen and approved the better way” (even though, with too many others, he may not have had the courage of his convictions), he would be no true disciple of the great humanitarian. It is necessary to remember that the “perfect day” was not yet come; that a few rays only here and there enlightened the thick darkness of barbarism; that, in fine, not even yet, with the light of truth shining full upon us, have reason and conscience triumphed, as regards the mass of the community, either in this country or elsewhere. Michel de Montaigne descended from an old and influential house in Périgord (modern Périgeaux, in
the department of the Dordogne). His youth was carefully trained, and his early inclination to learning fostered under his father’s diligent superintendence. He became a member of the provincial parliament, and, by the universal suffrage of his fellow-citizens, was elected chief magistrate of Bordeaux, from the official routine of whose duties he soon retired to the more congenial atmosphere of study and philosophic reflection. In his château, at Montaigne, his studious tranquillity was violently interrupted by the savage contests then raging between the opposing factions of Catholics and Huguenots, from both of whom he received ill-treatment and loss. To add to his troubles, the plague, which appeared in Guienne in 1586, broke up his household and compelled him, with his family, to abandon his home. Together they wandered through the country, exposed to the various dangers of a civil war; and he afterwards for some time settled in Paris. He had also travelled in Italy. Montaigne returned to his home when the disturbances and atrocities had somewhat subsided, and there he died with the philosophic calmness with which he had lived. The Essais—that book of “good faith,” “without study and artifice,” as its author justly calls it— appeared in the year 1580. It is a book unique in modern literature, and the only other production to
which it may be compared is the Moralia of Plutarch. “It is not a book we are reading, but a conversation to which we are listening.” “It is,” as another French critic observes, “less a book than a journal divided into chapters, which follow one another without connexion, which bear each a title without much regard to the fulfilment of their promise.” Montaigne treats of almost every phase of human thought and action; and upon every subject he has something original and worth saying. Living in a savagely sectarian and persecuting age, he kept himself aloof and independent of either of the two contending theological sections, and contents himself with the rôle of a sceptical spectator. It must be admitted that he is not always satisfactory in this character, since he sometimes seems to give forth an “uncertain sound.” Considering the age, however, his assertion of the proper authority of Reason deserves our respectful admiration, and is in pleasing contrast with the attitude of most of his contemporaries. A few, like his friend De Thou, or the Italian Giordano Bruno—the latter of whom, indeed, had more of the martyr-spirit than Montaigne—contributed to keep alight the torch of Truth and Reason. But we have only to recollect that it was the age par excellence of Diabolism in Catholic and Protestant theology alike, and of all the horrible superstitions and frightful
Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! textbookfull.com

Learning React Native Building Native Mobile Apps with JavaScript 2nd Edition Bonnie Eisenman

  • 1.
    Learning React NativeBuilding Native Mobile Apps with JavaScript 2nd Edition Bonnie Eisenman download https://textbookfull.com/product/learning-react-native-building- native-mobile-apps-with-javascript-2nd-edition-bonnie-eisenman/ Download full version ebook from https://textbookfull.com
  • 2.
    We believe theseproducts will be a great fit for you. Click the link to download now, or visit textbookfull.com to discover even more! Fullstack React Native Create beautiful mobile apps with JavaScript and React Native 5th Edition Devin Abbott https://textbookfull.com/product/fullstack-react-native-create- beautiful-mobile-apps-with-javascript-and-react-native-5th- edition-devin-abbott/ React Native in Action Developing iOS and Android apps with JavaScript 1st Edition Nader Dabit https://textbookfull.com/product/react-native-in-action- developing-ios-and-android-apps-with-javascript-1st-edition- nader-dabit/ React Native in Action Developing iOS and Android apps with JavaScript 1st Edition Nader Dabit https://textbookfull.com/product/react-native-in-action- developing-ios-and-android-apps-with-javascript-1st-edition- nader-dabit-2/ Building Hybrid Android Apps with Java and JavaScript Applying Native Device APIs Japplying Native Device Apis 1st Edition Gok Nizamettin Khanna Nitin https://textbookfull.com/product/building-hybrid-android-apps- with-java-and-javascript-applying-native-device-apis-japplying- native-device-apis-1st-edition-gok-nizamettin-khanna-nitin/
  • 3.
    Progressive Web Appswith React Create Lightning Fast Web Apps With Native Power Using React and Firebase 1st Edition Scott Domes https://textbookfull.com/product/progressive-web-apps-with-react- create-lightning-fast-web-apps-with-native-power-using-react-and- firebase-1st-edition-scott-domes/ Cross-platform Localization for Native Mobile Apps with Xamarin 1st Edition Christopher Miller https://textbookfull.com/product/cross-platform-localization-for- native-mobile-apps-with-xamarin-1st-edition-christopher-miller/ Practical React Native: Build Two Full Projects and One Full Game using React Native 1st Edition Frank Zammetti https://textbookfull.com/product/practical-react-native-build- two-full-projects-and-one-full-game-using-react-native-1st- edition-frank-zammetti/ Learning React Modern Patterns for Developing React Apps 2nd Edition Alex Banks https://textbookfull.com/product/learning-react-modern-patterns- for-developing-react-apps-2nd-edition-alex-banks/ Building Progressive Web Apps Bringing the Power of Native to the Browser 1st Edition Tal Ater https://textbookfull.com/product/building-progressive-web-apps- bringing-the-power-of-native-to-the-browser-1st-edition-tal-ater/
  • 4.
    Bonnie Eisenman Learning React Native BUILDING NATIVEMOBILE APPS WITH JAVASCRIPT Learning React Native 2 n d E d i t i o n
  • 5.
    Bonnie Eisenman Learning ReactNative Building Native Mobile Apps with JavaScript SECOND EDITION Boston Farnham Sebastopol Tokyo Beijing Boston Farnham Sebastopol Tokyo Beijing
  • 6.
    978-1-491-98914-2 [LSI] Learning React Native byBonnie Eisenman Copyright © 2018 Bonnie Eisenman. 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/safari). For more information, contact our corporate/insti‐ tutional sales department: 800-998-9938 or corporate@oreilly.com. Editor: Meg Foley Production Editor: Nicholas Adams Copyeditor: Rachel Monaghan Proofreader: Gillian McGarvey Indexer: Judith McConville Interior Designer: David Futato Cover Designer: Karen Montgomery Illustrator: Rebecca Demarest December 2015: First Edition November 2017: Second Edition Revision History for the Second Edition 2017-10-23: First Release See http://oreilly.com/catalog/errata.csp?isbn=9781491989142 for release details. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Learning React Native, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. 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.
  • 7.
    Table of Contents Preface.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix 1. What Is React Native?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Advantages of React Native 2 Developer Experience 2 Code Reuse and Knowledge Sharing 3 Risks and Drawbacks 4 Summary 4 2. Working with React Native. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 How Does React Native Work? 5 Rendering Lifecycle 7 Creating Components in React Native 8 Working with Views 8 Using JSX 9 Styling Native Components 10 Host Platform APIs 11 Summary 12 3. Building Your First Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Setting Up Your Environment 13 Developer Setup: Create React Native App 14 Creating Your First Application with create-react-native-app 14 Previewing Your App on iOS or Android 15 Developer Setup: The Traditional Approach 16 Creating Your First Application with react-native 16 Running Your App on iOS 17 Running Your App on Android 18 iii
  • 8.
    Exploring the SampleCode 19 Building a Weather App 22 Handling User Input 24 Displaying Data 26 Fetching Data from the Web 29 Adding a Background Image 32 Putting It All Together 34 Summary 36 4. Components for Mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Analogies Between HTML Elements and Native Components 39 The <Text> Component 40 The <Image> Component 42 Working with Touch and Gestures 44 Creating Basic Interactions with <Button> 44 Using the <TouchableHighlight> Component 45 Using the PanResponder Class 48 Working with Lists 54 Using the Basic <FlatList> Component 56 Updating the <FlatList> Contents 59 Integrating Real Data 63 Working with <SectionList> 65 Navigation 69 Other Organizational Components 70 Summary 71 5. Styles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Declaring and Manipulating Styles 73 Using Inline Styles 74 Styling with Objects 75 Using StyleSheet.create 75 Concatenating Styles 76 Organization and Inheritance 77 Exporting Style Objects 77 Passing Styles as Props 78 Reusing and Sharing Styles 79 Positioning and Designing Layouts 80 Using Layouts with Flexbox 80 Using Absolute Positioning 84 Putting It Together 85 Summary 88 iv | Table of Contents
  • 9.
    6. Platform APIs.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Using Geolocation 91 Reading the User’s Location 92 Handling Permissions 93 Testing Geolocation in Emulated Devices 94 Watching the User’s Location 95 Working Around Limitations 95 Updating the Weather Application 96 Accessing the User’s Images and Camera 98 Interacting with the CameraRoll Module 99 Requesting Images with GetPhotoParams 100 Rendering an Image from the Camera Roll 101 Uploading an Image to a Server 102 Storing Persistent Data with AsyncStorage 103 The SmarterWeather Application 104 The <WeatherProject> Component 104 The <Forecast> Component 107 The <Button> Component 108 The <LocationButton> Component 109 The <PhotoBackdrop> Component 110 Summary 112 7. Modules and Native Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Installing JavaScript Libraries with npm 113 Installing Third-Party Components with Native Code 115 Using the Video Component 116 Objective-C Native Modules 116 Writing an Objective-C Native Module for iOS 116 Exploring react-native-video for iOS 121 Java Native Modules 124 Writing a Java Native Module for Android 124 Exploring react-native-video for Java 127 Cross-Platform Native Modules 130 Summary 130 8. Platform-Specific Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 iOS- or Android-Only Components 133 Components with Platform-Specific Implementations 134 Using Platform-Specific File Extensions 134 Using the Platform Module 137 When to Use Platform-Specific Components 137 Table of Contents | v
  • 10.
    9. Debugging andDeveloper Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 JavaScript Debugging Practices, Translated 139 Activating the Developer Options 139 Debugging with console.log 141 Using the JavaScript Debugger 143 Working with the React Developer Tools 144 React Native Debugging Tools 145 Using Inspect Element 145 Interpreting the Red Screen of Death 146 Debugging Beyond JavaScript 150 Common Development Environment Issues 151 Common Xcode Problems 151 Common Android Problems 152 The React Native Packager 153 Issues Deploying to an iOS Device 153 Simulator Behavior 155 Testing Your Code 155 Type Checking with Flow 156 Unit Testing with Jest 156 Snapshot Testing with Jest 157 When You’re Stuck 160 Summary 161 10. Navigation and Structure in Larger Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 The Flashcard Application 163 Project Structure 166 Application Screens 167 Reusable Components 173 Styles 177 Data Models 178 Using React-Navigation 181 Creating a StackNavigator 182 Using navigation.navigate to Transition Between Screens 182 Configuring the Header with navigationOptions 185 Implementing the Rest 186 Summary 187 11. State Management in Larger Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Using Redux to Manage State 189 Actions 190 Reducers 192 Connecting Redux 195 vi | Table of Contents
  • 11.
    Persisting Data withAsyncStorage 203 Summary and Homework 206 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 A. Modern JavaScript Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 B. Deploying Your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 C. Working with Expo Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Table of Contents | vii
  • 13.
    Preface This book isan introduction to React Native, Facebook’s JavaScript framework for building mobile applications. Using your existing knowledge of JavaScript and React, you’ll be able to build and deploy fully featured mobile applications for both iOS and Android that truly render natively. There are plenty of advantages to working with React Native over traditional means of mobile development without needing to sacri‐ fice the native look and feel. We’ll start with the basics and work our way up to creating a full-fledged application with 100% code reuse between iOS and Android. In addition to the essentials of the framework, we’ll discuss how to work beyond it, including how to make use of third- party libraries and even how to write your own Java or Objective-C libraries to extend React Native. If you’re coming to mobile development from the perspective of a frontend software engineer or web developer, this is the book for you. React Native is a pretty amazing thing, and I hope you’re as excited to explore it as I am! Prerequisites This book is not an introduction to React, in general. We’ll assume that you have some working knowledge of React. If you’re brand new to React, I suggest reading through a tutorial or two before coming back to take the plunge into mobile develop‐ ment. Specifically, you should be familiar with the role of props and state, the com‐ ponent lifecycle, and how to create React components. We’ll also be using some modern JavaScript syntax, as well as JSX. If you aren’t famil‐ iar with these, don’t worry; we’ll cover JSX in Chapter 2, and modern JavaScript syn‐ tax in Appendix A. These features are essentially 1:1 translations of the JavaScript code you’re already accustomed to writing. This book focuses on using React Native to write iOS and Android applications, though React Native can also be used to write applications targeting Ubuntu, ix
  • 14.
    Windows, and macOS.Linux and Windows users can use React Native to develop Android applications, but in order to write iOS applications, you will need to develop on macOS. Conventions Used in This Book The following typographical conventions are used in this book: Italic Indicates new terms, URLs, email addresses, filenames, and file extensions. Constant width Used for program listings, as well as within paragraphs to refer to program ele‐ ments such as variable or function names, databases, data types, environment variables, statements, and keywords. Constant width bold Shows commands or other text that should be typed literally by the user. Constant width italic Shows text that should be replaced with user-supplied values or by values deter‐ mined by context. This element signifies a tip or suggestion. This element signifies a general note. This element indicates a warning or caution. x | Preface
  • 15.
    Using Code Examples Supplementalmaterial (code examples, exercises, etc.) is available for download at https://github.com/bonniee/learning-react-native. This book is here to help you get your job done. In general, if example code is offered with this book, you may use it in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a signifi‐ cant amount of example code from this book into your product’s documentation does require permission. We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “Learning React Native, Second Edi‐ tion, by Bonnie Eisenman (O’Reilly). Copyright 2018 Bonnie Eisenman, 978-1-491-98914-2.” If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com. O’Reilly Safari Safari (formerly Safari Books Online) is a membership-based training and reference platform for enterprise, government, educators, and individuals. Members have access to thousands of books, training videos, Learning Paths, interac‐ tive tutorials, and curated playlists from over 250 publishers, including O’Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Profes‐ sional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, and Course Technology, among others. For more information, please visit http://oreilly.com/safari. Preface | xi
  • 16.
    How to ContactUs Please address comments and questions concerning this book to the publisher: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 (in the United States or Canada) 707-829-0515 (international or local) 707-829-0104 (fax) We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at http://bit.ly/learning-react-native-2e. To comment or ask technical questions about this book, send email to bookques‐ tions@oreilly.com. For more information about our books, courses, conferences, and news, see our web‐ site at http://www.oreilly.com. Find us on Facebook: http://facebook.com/oreilly Follow us on Twitter: http://twitter.com/oreillymedia Watch us on YouTube: http://www.youtube.com/oreillymedia Resources It’s dangerous to go alone! Well, not really, but that doesn’t mean you have to. Here are some resources you may find useful as you work through the book: • The GitHub repository for this book contains all of the code samples we’ll be dis‐ cussing. If you get stumped or want more context, try looking here first. • Join the mailing list at LearningReactNative.com for follow-up articles, sugges‐ tions, and helpful resources. • The official documentation has a lot of good reference material. Additionally, the React Native community is a useful resource: • The react-native tag on Stack Overflow • The Reactiflux chat group includes many core contributors and other helpful folks • #reactnative (irc.lc/freenode/reactnative) on Freenode xii | Preface
  • 17.
    Acknowledgments As is traditional:this book would not have been possible without the help and sup‐ port of many others. Thank you to my editor, Meg Foley, and the rest of the O’Reilly team for bringing this project into the world. Thank you also to my technical review‐ ers for your time and insightful feedback: Ryan Hurley, Dave Benjamin, David Bieber, Jason Brown, Erica Portnoy, and Jonathan Stark. I would also like to thank the React Native team, without whose stellar work this book would naturally be impossible. Thanks also to Zachary Elliott for his help with the Flashcard application, Android testing, and support throughout. Mi estas dankplena pro via subteno. And many thanks are owed to my dear friends and family, who put up with me throughout this process and provided moral support, guidance, and distraction as the situation required. Thank you. Preface | xiii
  • 19.
    CHAPTER 1 What IsReact Native? React Native is a JavaScript framework for writing real, natively rendering mobile applications for iOS and Android. It’s based on React, Facebook’s JavaScript library for building user interfaces, but instead of targeting the browser, it targets mobile platforms. In other words, it enables web developers to write mobile applications that look and feel truly “native,” all from the comfort of a familiar JavaScript library. Plus, because most of the code you write can be shared between platforms, React Native makes it easy to simultaneously develop for both Android and iOS. Similar to React for the web, React Native applications are written with a mixture of JavaScript and XML-esque markup, known as JSX. Then, under the hood, the React Native “bridge” invokes the native rendering APIs in Objective-C (for iOS) or Java (for Android). Thus, your application will render using real mobile UI components, not webviews, and will look and feel like any other mobile application. React Native also exposes JavaScript interfaces for platform APIs, so your React Native apps can access platform features like the phone camera or the user’s location. The core React Native project supports writing mobile applications for both iOS and Android. Community implementations also provide support for Windows, Ubuntu, the web, and more. In this book, we’ll build both Android and iOS apps with React Native. The vast majority of the code we write will be cross-platform. And, yes, you can really use React Native to build production-ready mobile applica‐ tions. Some anecdata: Facebook, Airbnb, Walmart, and Baidu are already using it in production for user-facing applications. 1
  • 20.
    Advantages of ReactNative The fact that React Native renders using its host platform’s standard rendering APIs distinguishes it from most existing methods of cross-platform application develop‐ ment, like Cordova or Ionic. Existing methods of writing mobile applications use combinations of JavaScript, HTML, and CSS and typically render using webviews. While this approach can work, it also comes with drawbacks, especially around per‐ formance. Additionally, these methods do not usually have access to the host plat‐ form’s set of native UI elements. When these frameworks do try to mimic native UI elements, the results usually feel just a little off. In addition, reverse-engineering all the fine details of things like animations takes an enormous amount of effort, and they can quickly become outdated. In contrast, React Native actually translates your markup to real, native UI elements, leveraging existing means of rendering views on whatever platform you are working with. Additionally, React works separately from the main UI thread, so your applica‐ tion can maintain high performance without sacrificing capability. The update cycle in React Native is the same as in React: when props or state change, React Native re- renders the views. The major difference between React Native and React in the browser is that React Native does this by leveraging the UI libraries of its host plat‐ form, rather than using HTML and CSS markup. For developers accustomed to working on the web with React, this means you can write mobile apps with the performance and look and feel of a native application, while using familiar tools. React Native also represents an improvement over normal mobile development in two other areas: developer experience and cross-platform development potential. Developer Experience If you’ve developed for mobile before, you might be surprised by how easy React Native is to work with. The React Native team has baked strong developer tools and meaningful error messages into the framework so that working with robust tools is a natural part of your development experience. For instance, because React Native is “just” JavaScript, you don’t need to rebuild your application in order to see your changes reflected; instead, you can refresh your appli‐ cation just as you would any other web page. All of those minutes spent waiting for your application to build can really add up, and in contrast React Native’s quick itera‐ tion cycle feels like a godsend. Additionally, React Native lets you take advantage of intelligent debugging tools and error reporting. If you are comfortable with Chrome or Safari’s developer tools (Figure 1-1), you will be happy to know that you can use them for mobile develop‐ ment as well. Likewise, you can use whatever text editor you prefer for JavaScript 2 | Chapter 1: What Is React Native?
  • 21.
    editing. React Nativedoes not force you to work in Xcode to develop for iOS or in Android Studio for Android development. Figure 1-1. Using the Chrome Debugger with React Native Besides the day-to-day improvements to your development experience, React Native also has the potential to positively impact your product release cycle. For instance, Apple and Google both permit you to load JavaScript-only changes to an app’s behav‐ ior without going through the standard review process. This is particularly nice on iOS, where application updates typically require several days or weeks of review. All of these small perks add up to saving you and your fellow developers time and energy, allowing you to focus on the more interesting parts of your work and be more productive overall. Code Reuse and Knowledge Sharing Working with React Native can dramatically shrink the resources required to build mobile applications. Any developer who knows how to write React code can target the web, iOS, and Android, all with the same skill set. By removing the need to “silo” developers based on their target platform, React Native lets your team iterate more quickly and share knowledge and resources more effectively. Not only can you share knowledge, but much of your code can be shared, too. Not all the code you write will be cross-platform, and depending on the functionality you Advantages of React Native | 3
  • 22.
    need on aspecific platform, you may occasionally need to dip into Objective-C or Java (we’ll cover how so-called native modules work in Chapter 7). But reusing code across platforms is surprisingly easy with React Native. For example, the Facebook Ads Manager application for Android shares 87% of its codebase with the iOS ver‐ sion. The final application we’ll look at in this book, a flashcard app, has total code reuse between Android and iOS. It’s hard to beat that! Risks and Drawbacks As with anything, using React Native is not without its downsides, and whether or not it is a good fit for your team really depends on your individual situation. Because React Native introduces another layer to your project, it can make debugging hairier, especially at the intersection of React and the host platform. We’ll cover debugging for React Native in more depth in Chapter 9 and try to address some of the most common issues. Along the same lines, when updates are released for the host platform—say, a new suite of APIs in a new version of Android—there will be a lag before they are fully supported in React Native. The good news is that in the vast majority of cases, you can implement support for missing APIs yourself, which we’ll cover in Chapter 7. Also, if you do hit a roadblock, you won’t be locked in to using React Native—many companies have successfully implemented hybrid approaches to app development. Changing the platform you use to write your applications is a big choice. Still, I think you’ll see that the benefits of React Native outweigh the risks. Summary React Native is an exciting framework that enables web developers to create robust mobile applications using their existing JavaScript knowledge. It offers faster mobile development and more efficient code sharing across iOS, Android, and the web without sacrificing the end user’s experience or application quality. The tradeoff is that it adds some complexity to your application setup. If your team can handle that and wants to develop mobile applications for more than just one platform, you should be looking at React Native. In the next chapter, we go over some of the main ways in which React Native differs from React for the web, and cover some key concepts. If you’d like to skip straight to developing, feel free to jump to Chapter 3, in which we set up our development envi‐ ronment and write our very first React Native application. 4 | Chapter 1: What Is React Native?
  • 23.
    CHAPTER 2 Working withReact Native In this chapter, we’ll cover the bridge, and review how React Native works under the hood. Then, we’ll look at how React Native components differ from their web coun‐ terparts, and cover what you’ll need to know in order to create and style components for mobile. If you’d prefer to dig into the development process and see React Native in action, feel free to jump ahead to Chapter 3. How Does React Native Work? The idea of writing mobile applications in JavaScript feels a little odd. How is it possi‐ ble to use React in a mobile environment? In order to understand the technical underpinnings of React Native, we first need to recall one of React’s concepts: the Vir‐ tual DOM. In React, the Virtual DOM acts as a layer between the developer’s description of how things ought to look and the work done to actually render your application onto the page. To render interactive user interfaces in a browser, developers must edit the browser’s DOM, or Document Object Model. This is an expensive step, and excessive writes to the DOM have a significant impact on performance. Rather than directly render changes on the page, React computes the necessary changes in-memory and rerenders the minimal amount necessary. Figure 2-1 shows how this works. 5
  • 24.
    Figure 2-1. Performingcalculations in the Virtual DOM limits rerendering in the brows‐ er’s DOM In the context of React on the web, most developers think of the Virtual DOM as a performance optimization. The Virtual DOM certainly has performance benefits, but its real potential lies in the power of its abstraction. Placing a clean abstraction layer between the developer’s code and the actual rendering opens up a lot of interesting possibilities. What if React could render to a target other than the browser’s DOM? After all, React already “understands” what your application is supposed to look like. Indeed, this is how React Native works, as shown in Figure 2-2. Instead of rendering to the browser’s DOM, React Native invokes Objective-C APIs to render to iOS com‐ ponents, or Java APIs to render to Android components. This sets React Native apart from other cross-platform app development options, which often end up rendering web-based views. Figure 2-2. React can render to different targets 6 | Chapter 2: Working with React Native
  • 25.
    This is allpossible because of the bridge, which provides React with an interface into the host platform’s native UI elements. React components return markup from their render function, which describes how they should look. With React for the web, this translates directly to the browser’s DOM. For React Native, this markup is translated to suit the host platform, so a <View> might become an iOS-specific UIView. The core React Native project supports iOS and Android. Because of the abstraction layer provided by the Virtual DOM, React Native can target other platforms, too— someone just needs to write the bridge. For example, there are community imple‐ mentations of React Native for Windows and Ubuntu, so you can also use React Native to create desktop applications. Rendering Lifecycle If you are accustomed to working in React, the React lifecycle should be familiar to you. When React runs in the browser, the render lifecycle begins by mounting your React components (Figure 2-3). Figure 2-3. Mounting components in React After that, React handles the rendering and rerendering of your component as neces‐ sary (Figure 2-4). Figure 2-4. Rerendering components in React For the render stage, the developer returns HTML markup from a React component’s render method, which React then renders directly into the page as necessary. For React Native, the lifecycle is the same, but the rendering process is slightly differ‐ ent because React Native depends on the bridge. We looked at the bridge briefly in Figure 2-2. The bridge translates JavaScript calls and invokes the host platform’s underlying APIs and UI elements (i.e., in Objective-C or Java, as appropriate). Because React Native doesn’t run on the main UI thread, it can perform these asyn‐ chronous calls without impacting the user’s experience. Rendering Lifecycle | 7
  • 26.
    Creating Components inReact Native All React code lives in React components. React Native components are largely the same as ordinary React components, with some important differences around ren‐ dering and styling. Working with Views When writing in React for the web, you render normal HTML elements (<div>, <p>, <span>, <a>, etc.). With React Native, all of these elements are replaced by platform- specific React components (see Table 2-1). The most basic is the cross-platform <View>, a simple and flexible UI element that can be thought of as analogous to the <div>. On iOS, for instance, the <View> component renders to a UIView, whereas on Android it renders to a View. Table 2-1. Basic React elements for the web compared with React Native React React Native <div> <View> <span> <Text> <li>, <ul> <FlastList>, child items <img> <Image> Other components are platform-specific. For instance, the <DatePickerIOS> compo‐ nent (predictably) renders the iOS standard date picker (Figure 2-5). Here is an excerpt from the RNTester sample app, demonstrating an iOS date picker. The usage is straightforward, as you would expect: <DatePickerIOS date={this.state.date} mode="time" /> Figure 2-5. The <DatePickerIOS> component is, as the name suggests, iOS-specific 8 | Chapter 2: Working with React Native
  • 27.
    Because all ofour UI elements are now React components rather than basic HTML elements like the <div>, you will need to explicitly import each component you want to use. For instance, we need to import the <DatePickerIOS> component like so: import { DatePickerIOS } from "react-native"; The RNTester application, which is bundled into the React Native GitHub project, allows you to view all of the supported UI elements. I encourage you to examine the various elements included in the RNTester app. It also demonstrates many styling options and interactions. Platform-specific components and APIs have special tags in the documentation, and typically use the platform name as a suffix —for example, <TabBarIOS> and <ToolbarAndroid>. Because these components vary from platform to platform, how you structure your React components becomes even more important when you’re working in React Native. In React for the web, we often have a mix of React components: some manage logic and their child components, while others render raw markup. If you want to reuse code when working in React Native, maintaining separation between these types of components becomes critical. A React <DatePickerIOS> component obvi‐ ously cannot be reused for Android. However, a component that encapsulates the associated logic can be reused. Then the visual component can be swapped out based on your platform. You can also designate platform-specific versions of components if you want, so you could have a picker.ios.js and a picker.android.js file, each with a sep‐ arate implementation of the same component. We’ll cover this in “Components with Platform-Specific Implementations” on page 134. Using JSX In React Native, just as in React, we write our views using JSX, combining markup and the JavaScript that controls it into a single file. JSX met with strong reactions when React first debuted. For many web developers, the separation of files based on technologies is a given: you keep your CSS, HTML, and JavaScript files separate. The idea of combining markup, control logic, and even styling into one language can be confusing. JSX prioritizes the separation of concerns over the separation of technologies. In React Native, this is even more strictly enforced. In a world without the browser, it makes even more sense to unify our styles, markup, and behavior in a single file for each component. Accordingly, your .js files in React Native are in fact JSX files. If you’ve been using vanilla JavaScript when working with React for the web, you will want to transition to JSX syntax for your work in React Native. Creating Components in React Native | 9
  • 28.
    If you’ve neverseen JSX before, don’t worry: it’s pretty simple. As an example, a pure- JavaScript React component for the web might look something like this: class HelloMessage extends React.Component { render() { return React.createElement( "div", null, "Hello ", this.props.name ); } } ReactDOM.render( React.createElement(HelloMessage, { name: "Bonnie" }), mountNode); We can render this more succinctly by using JSX. Instead of calling React.createElement and passing in a list of HTML attributes, we use XML-like markup: class HelloMessage extends Component { render() { // Instead of calling createElement, we return markup return <div>Hello {this.props.name}</div>; } } // We no longer need a createElement call here ReactDOM.render(<HelloMessage name="Bonnie" />, mountNode); Both of these will render the following HTML onto the page: <div>Hello Bonnie</div> Styling Native Components On the web, we style React components using CSS, just as we would any other HTML element. Whether you love it or hate it, CSS is a necessary part of the web. React usu‐ ally does not affect the way we write CSS. It does make it easier to dynamically build class names based on props and state, but otherwise React is mostly agnostic about how we handle styles on the web. Non-web platforms have a wide array of approaches to layout and styling. When we work with React Native, thankfully, we utilize one standardized approach to styling. Part of the bridge between React and the host platform includes the implementation of a heavily pruned subset of CSS. This narrow implementation of CSS relies primar‐ ily on flexbox for layout, and focuses on simplicity rather than implementing the full range of CSS rules. Unlike the web, where CSS support varies across browsers, React Native is able to enforce consistent support of style rules. As with the various UI 10 | Chapter 2: Working with React Native
  • 29.
    elements, you cansee many examples of supported styles in the RNTester application, which is one of the examples that ships with React Native. React Native also insists on the use of inline styles, which exist as JavaScript objects. The React team has advocated for this approach before in React for web applications. If you have previously experimented with inline styles in React, the syntax will look familiar to you: // Define a style... const style = { backgroundColor: 'white', fontSize: '16px' }; // ...and then apply it. const txt = ( <Text style={style}> A styled Text </Text>); React Native also provides some utilities for creating and extending style objects that make dealing with inline styles a more manageable process. We will explore those later in Chapter 5. Does looking at inline styles make you twitch? If you’re coming from a web-based background, this is a break from standard practices. Working with style objects, as opposed to stylesheets, takes some mental adjustments and changes the way you need to approach writing styles. However, in the context of React Native, it is a useful shift. We will be discussing styling best practices and workflow in Chapter 5. Just try not to be surprised when you see them in use! Host Platform APIs Perhaps the biggest difference between React for the web and React Native is the way we think about host platform APIs. On the web, we often deal with fragmentation and inconsistent adoption of standards; still, most browsers support a common core of shared features. With React Native, however, platform-specific APIs play a much larger role in creating an excellent, natural-feeling user experience. There are also many more options to consider. Mobile APIs include everything from data storage to location services to accessing hardware such as the camera. Unconventional plat‐ forms lead to even more interesting APIs—what should the interface look like between React Native and a virtual reality headset, for instance? By default, React Native for iOS and Android includes support for many commonly used features, and React Native can support any asynchronous native API. We will take a look at many of them throughout this book. React Native makes it straightfor‐ ward and simple to use host platform APIs, so you can experiment freely. Be sure to Host Platform APIs | 11
  • 30.
    Another Random ScribdDocument with Unrelated Content
  • 31.
    of temperance, byabstaining, at least, twice a week from the ordinary grosser food with which they are supplied. As might be expected from the age, and from his order, the practice of Chrysostom, and of the numerous other ecclesiastical abstinents from the gross diet of the richer part of the community, reposed upon ascetic and traditionary principles, rather than on the more secular and modern motives of justice, humanity, and general social improvement. So, in fact, Origen, one of the most learned of the Fathers, expressly says (Contra Celsum, v.): “We [the Christian leaders] practise abstinence from the flesh of animals to buffet our bodies and treat them as slaves (ὑπωπιάζομεν καί δουλαγωγοῦμεν), and we wish to mortify our members upon earth,” &c. Accordingly, the Apostolical Canons distinguished, as Bingham (Antiquities of the Christian Church) reports them, between abstinents, διὰ τὴν ἀσκησιν and διὰ τὴν βδελυπίαν, i.e., between those who abstained to exercise self-control, and those who did so from disgust and abhorrence of what, in ordinary and orthodox language, are too complacently and confidently termed “the good creatures of God.” This distinction, it must be added, holds only of the prevailing sentiment of the Orthodox Church as finally established. During several centuries—even so late as the Paulicians in the seventh, or even as the
  • 32.
    Albigeois of thethirteenth, century—Manicheism, as it is called, or a belief in the inherent evil of all matter, was widely spread in large and influential sections of the Christian Church—nor, indeed, were some of its most famous Fathers without suspicion of this heretical taint. According to the Clementine Homilies, “the unnatural eating of flesh-meat is of demoniacal origin, and was introduced by those giants who, from their bastard nature, took no pleasure in pure nourishment, and only lusted after blood. Therefore the eating of flesh is as polluting as the heathen worship of demons, with its sacrifices and its impure feasts; through participation in which, a man becomes a fellow-dietist (ὁμοδίαιτος) with demons.”[92] That superstition was often, in the minds of the followers both of Plato and of St. Paul, mixed up with, and, indeed, usually dominated over, the reasonable motives of the more philosophic advocates of the higher life, there can be no sort of doubt; nor can we claim a monopoly of rational motives for the mass of the adherents of either Christian or Pythagorean abstinence. Yet an impartial judgment must allow almost equal credit to the earnestness of mind and purity of motive which, mingled though they undoubtedly were with (in the pre-scientific ages) a necessary infusion of superstition, urged the followers of the better way—
  • 33.
    Christian and non-Christian—todiscard the “social lies” of the dead world around them. At all events, it is not for the selfish egoists to sneer at the sublime— if error-infected—efforts of the earlier pioneers of moral progress for their own and the world’s redemption from the bonds of the prevailing vile materialism in life and dietary habits. We have already shown that the earliest Jewish- Christian communities, both in Palestine and elsewhere—the immediate disciples of the original Twelve—enjoined abstinence as one of the primary obligations of the New Faith; and that the earliest traditions represent the foremost of them as the strictest sort of Vegetarians.[93] If then we impartially review the history of the practice, the teaching, and the traditions of the first Christian authorities, it cannot but appear surprising that the Orthodox Church, ignoring the practice and highest ideal of the most sacred period of its annals, has, even within its own Order, deemed it consistent with its claim of being representative of the Apostolic period to substitute partial and periodic for total and constant abstinence. The following passages in the Homilies, or Congregational Discourses, of Chrysostom will serve as specimens of his feeling on the propriety of dietary reform. The eloquent but diffusive style of
  • 34.
    the Greek Bossuet,it must be noted, is necessarily but feebly represented in the literal English version:— “No streams of blood are among them [the ascetics]; no butchering and cutting up of flesh; no dainty cookery; no heaviness of head. Nor are there horrible smells of flesh- meats among them, or disagreeable fumes from the kitchen. No tumult and disturbance and wearisome clamours, but bread and water—the latter from a pure fountain, the former from honest labour. If, at any time, however, they may wish to feast more sumptuously, the sumptuousness consists in fruits, and their pleasure in these is greater than at royal tables. With this repast [of fruits and vegetables], even angels from Heaven, as they behold it, are delighted and pleased. For if over one sinner who repents they rejoice, over so many just men imitating them what will they not do? No master and servant are there. All are servants—all free men. And think not this a mere form of speech, for they are servants one of another and masters one of another. Wherein, therefore, are we different from, or superior to, Ants, if we compare ourselves with them? For as they care for the things of the body only, so also do we. And would it were for these alone! But, alas! it is for things far worse. For not for necessary things only do we care, but also for things superfluous. Those animals pursue an innocent life, while we follow after all covetousness. Nay, we do not so much as imitate the ways of Ants. We follow the ways of Wolves, the habits of Tigers; or, rather, we are worse even than they. To them Nature has assigned that they should be thus [carnivorously] fed, while God has honoured us with rational speech and a sense of equity. And yet we are become worse than the wild beasts.”[94] Again he protests:—
  • 35.
    “Neither am Ileading you to the lofty peak of total renunciation of possessions [ἀκτημοσύνη]; but for the present I require you to cut off superfluities, and to desire a sufficiency alone. Now, the boundary of sufficiency is the using those things which it is impossible to live without. No one debars you from these, nor forbids you your daily food. I say ‘food,’ not ‘luxury’ [τροφὴν οὐ τρυφὴν λέγω]—‘raiment,’ not ‘ornament.’ Rather, this frugality—to speak correctly—is, in the best sense, luxury. For consider who should we say more truly feasted—he whose diet is herbs, and who is in sound health and suffered no uneasiness, or he who has the table of a Sybarite and is full of a thousand disorders? Clearly, the former. Therefore let us seek nothing more than these, if we would at once live luxuriously and healthfully. And let him who can be satisfied with pulse, and can keep in good health, seek for nothing more. But let him who is weaker, and needs to be [more richly] dieted with other vegetables and fruits, not be debarred from them.... We do not advise this for the harm and injury of men, but to lop off what is superfluous— and that is superfluous which is more than we need. When we are able to live without a thing, healthfully and respectably, certainly the addition of that thing is a superfluity.”—Hom. xix. 2 Cor. Denouncing the grossness of the ordinary mode of living, he eloquently descants on the evil results, physical as well as mental:— “A man who lives in pleasure [i.e., in selfish luxury] is dead while he lives, for he lives only to his belly. In his other senses he lives not. He sees not what he ought to see; he hears not what he ought to hear; he speaks not what he ought to speak.... Look not at the superficial countenance, but examine the interior, and you will see it full of deep
  • 36.
    dejection. If itwere possible to bring the soul into view, and to behold it with our bodily eyes, that of the luxurious would seem depressed, mournful, miserable, and wasted with leanness, for the more the body grows sleek and gross, the more lean and weakly is the soul. The more the one is pampered, the more is the other hampered [θάλπεται— θάπτεται: the latter meaning, literally, buried]. As when the pupil of the eye has the external envelope too thick, it cannot put forth the power of vision and look out, because the light is excluded by the dense covering, and darkness ensues; so when the body is constantly full fed, the soul must be invested with grossness. The dead, say you, corrupt and rot, and a foul pestilential humour distils from them. So in her who lives in pleasure may be seen rheums, and phlegm, and catarrh, hiccough, vomiting, eructations, and the like, which, as too unseemly, I forbear to name. For such is the despotism of luxury, it makes us endure things which we do not think proper even to mention.... “‘She that lives in pleasure is dead while she lives.’ Hear this, ye women[95] who pass your time in revels and intemperance, and who neglect the poor, pining and perishing with hunger, whilst you are destroying yourselves with continual luxury. Thus you are the cause of two deaths—of those who are dying of want and of your own, both through ill-measure. If, out of your fulness, you tempered their want, you would save two lives. Why do you thus gorge your own body with excess, and waste that of the poor with want? Consider what comes of food—into what it is changed. Are you not disgusted at its being named? Why, then, be eager for such accumulations? The increase of luxury is but the multiplication of filth.[96] For Nature has her limits, and what is beyond these is not nourishment, but injury and the increase of ordure. “Nourish the body, but do not destroy it. Food is called nourishment, to show that its purpose is not to hurt, but to
  • 37.
    support us. Forthis reason, perhaps, food passes into excrement that we may not be lovers of luxury. If it were not so—if it were not useless and injurious to the body, we should hardly abstain from devouring one another. If the belly received as much as it pleased, digested it, and conveyed it to the body, we should see battles and wars innumerable. Even as it is, when part of our food passes into ordure, part into blood, part into spurious and useless phlegm, we are, nevertheless, so addicted to luxury that we spend, perhaps, whole estates on a meal. The more richly we live, the more noisome are the odours with which we are filled.”—Hom. xiii. Tim. v.[97] From this period—the fifth century A.D. down to the sixteenth—Christian and Western literature contains little or nothing which comes within the purpose of this work. The merits of monastic asceticism were more or less preached during all those ages, although constant abstinence from flesh was by no means the general practice even with the inmates of the stricter monastic or conventual establishments—at all events in the Latin Church. But we look in vain for traces of anything like the humanitarian feeling of Plutarch or Porphyry. The mental intelligence as well as capacities for physical suffering of the non-human races—necessarily resulting from an organisation in all essential points like to our own—was apparently wholly ignored; their
  • 38.
    just rights andclaims upon human justice were disregarded and trampled under foot. Consistently with the universal estimate, they were treated as beings destitute of all feeling—as if, in fine, they are the “automatic machines” they are alleged to be by the Cartesians of the present day. In those terrible ages of gross ignorance, of superstition, of violence, and of injustice—in which human rights were seldom regarded—it would have been surprising indeed if any sort of regard had been displayed for the non- human slaves. And yet an underlying and latent consciousness of the falseness of the general estimate sometimes made itself apparent in certain extraordinary and perverse fancies.[98] To Montaigne, the first to revive the humanitarianism of Plutarch, belongs the great merit of reasserting the natural rights of the helpless slaves of human tyranny. While Chrysostom seems to have been one of the last of Christian writers who manifested any sort of consciousness of the inhuman, as well as unspiritual nature of the ordinary gross foods, Platonism continued to bear aloft the flickering torch of a truer spiritualism; and “the golden chain” of the prophets of the dietary reformation reached down even so late as to the end of the sixth century. Hierokles, author of the commentary on the Golden Verses of Pythagoras, to which reference has already been
  • 39.
    made, and wholectured upon them with great success at Alexandria; Hypatia, the beautiful and accomplished daughter of Theon the great mathematician, who publicly taught the philosophy of Plato at the same great centre of Greek science and learning, and was barbarously murdered by the jealousy of her Christian rival Cyril, Archbishop of Alexandria; Proklus, surnamed the Successor, as having been considered the most illustrious disciple of Plato in the latter times, who left several treatises upon the Pythagorean system, and “whose sagacious mind explored the deepest questions of morals and metaphysics”;[99] Olympiodorus, who wrote a life of Plato and commentaries on several of his dialogues, still extant, and lived in the reign of Justinian, by whose edict the illustrious school of Athens was finally closed, and with it the last vestiges of a sublime, if imperfect, attempt at the purification of human life—such are some of the most illustrious names which adorned the days of expiring Greek philosophy. Olympiodorus and six other Pythagoreans determined, if possible, to maintain their doctrines elsewhere; and they sought refuge with the Persian Magi, with whose tenets, or, at least, manner of living, they believed themselves to be most in accord. The Persian customs were distasteful to the purer ideal of the Platonists, and, disappointed in
  • 40.
    other respects, theyreluctantly relinquished their fond hopes of transplanting the doctrines of Plato into a foreign soil, and returned home. The Persian prince, Chosroes, we may add, acquired honour by his stipulation with the bigoted Justinian, that the seven sages should be allowed to live unmolested during the rest of their days. “Simplicius and his companions ended their lives in peace and obscurity; and, as they left no disciples, they terminated the long list of Grecian philosophers who may be justly praised, notwithstanding their defects, as the wisest and most virtuous of their contemporaries. The writings of Simplicius are now extant. His physical and metaphysical commentaries on Aristotle have passed away with the fashion of the times, but his moral interpretation of Epiktetus is preserved in the library of nations as a classical book excellently adapted to direct the will, to purify the heart, and to confirm the understanding, by a just confidence in the nature both of God and Man.”[100]
  • 41.
    XI. CORNARO. 1465–1566. AFTER theextinction of Greek and Latin philosophy in the fifth century, a mental torpor seized upon and, during some thousand years, with rare exceptions, dominated the whole Western world. When this torpor was dispelled by the influence of returning knowledge and reason evoked by the various simultaneous discoveries in science and literature—in particular by the achievements of Gutenberg, Vasco da Gama, Christopher Colon, and, above all, Copernik—the moral sense then first, too, began to show signs of life. The renascence of the sixteenth century, however, with all the vigour of thought and action which accompanied it, proved to be rather a revival of mere verbal learning than of the higher moral feeling of the best minds of old Greece and Italy. Men, fettered as they were in the trammels of theological controversy and metaphysical subtleties, for the most part expended their energies and their intellect in the vain pursuit of phantoms. With the
  • 42.
    very few splendidexceptions of the more enlightened and earnest thinkers, Ethics, in the real and comprehensive meaning of the word, was an unknown science; and a long period of time was yet to pass away before a perception of the universal obligations of Justice and of Right dawned upon the minds of men. In truth, it could not have been otherwise. Before the moral instincts can be developed, reason and knowledge must have sufficiently prepared the way. When attention to the importance of the neglected science of Dietetics had been in some degree aroused, the interest evoked was little connected with the higher sentiments of humanity. Of all dietary reformers who have treated the subject from an exclusively sanitarian point of view, the most widely known and most popular name, perhaps, has been that of Luigi Cornaro; and it is as a vehement protester against the follies, rather than against the barbarism, of the prevailing dietetic habits that he claims a place in this work. He belonged to one of the leading families of Venice, then at the height of its political power. Even in an age and in a city noted for luxuriousness and grossness of living of the rich and dominant classes, he had in his youth distinguished himself by his licentious habits in eating and drinking, as well as by
  • 43.
    other excesses. Hisconstitution had been so impaired, and he had brought upon himself so many disorders by this course of living, that existence became a burden to him. He informs us that from his thirty-fifth to his fortieth year he passed his nights and days in continuous suffering. Every sort of known remedy was exhausted before his new medical adviser, superior to the prejudices of his profession and of the public, had the courage and the good sense to prescribe a total change of diet. At first Cornaro found his enforced regimen almost intolerable, and, as he tells us, he occasionally relapsed. These relapses brought back his old sufferings, and, to save his life, he was driven at length to practise entire and uniform abstinence, the yolk of an egg often furnishing him the whole of his meal. In this way he assures us that he came to relish dry bread more than formerly he had enjoyed the most exquisite dishes of the ordinary table. At the end of the first year he found himself entirely freed from all his multiform maladies. In his eighty-third year he wrote and published his first exhortation to a radical change of diet under the title of A Treatise on a Sober Life,[101] in which he eloquently narrates his own case, and exhorts all who value health and immunity from physical or mental sufferings to follow
  • 44.
    his example. Andhis exordium, in which he takes occasion to denounce the waste and gluttony of the dinners of the rich, might be applied with little, or without any, modification of its language to the public and private tables of the present day:— “It is very certain,” he begins, “that Custom, with time, becomes a second nature, forcing men to use that, whether good or bad, to which they have been habituated; and we see custom or habit get the better of reason in many things.... Though all are agreed that intemperance (la crapula) is the offspring of gluttony, and sober living of abstemiousness, the former nevertheless is considered a virtue and a mark of distinction, and the latter as dishonourable and the badge of avarice. Such mistaken notions are entirely owing to the power of Custom, established by our senses and irregular appetites. These have blinded and besotted men to such a degree that, leaving the paths of virtue, they have followed those of vice, which lead them imperceptibly to an old age burdened with strange and mortal diseases.... “O wretched and unhappy Italy! [thus he apostrophises his own country] can you not see that gluttony murders every year more of your inhabitants than you could lose by the most cruel plague or by fire and sword in many battles? Those truly shameful feasts (i tuoi veramente disonesti banchetti), now so much in fashion and so intolerably profuse that no tables are large enough to hold the infinite number of the dishes—those feasts, I say, are so many battles.[102] And how is it possible to live amongst such a multitude of jarring foods and disorders? Put an end to this abuse, in heaven’s name, for there is not—I am certain of it—a vice more abominable than this in the eyes of the divine Majesty. Drive
  • 45.
    away this plague,the worst you were ever afflicted with—this new [?] kind of death—as you have banished that disease which, though it formerly used to make such havoc, now does little or no mischief, owing to the laudable practice of attending more to the goodness of the provisions brought to our markets. Consider that there are means still left to banish intemperance, and such means, too, that every man may have recourse to them without any external assistance. “Nothing more is requisite for this purpose than to live up to the simplicity, dictated by nature, which teaches us to be content with little, to pursue the practice of holy abstemiousness and divine reason, and accustom ourselves to eat no more than is absolutely necessary to support life; considering that what exceeds this is disease and death, and done merely to give the palate a satisfaction which, though but momentary, brings on the body a long and lasting train of disagreeable diseases, and at length kills it along with the soul. How many friends of mine—men of the finest understanding and most amiable disposition—have I seen carried off by this plague in the flower of their youth! who, were they now living, would be an ornament to the public, and whose company I should enjoy with as much pleasure as I am now deprived of it with concern.” He tells us that he had undertaken his arduous task of proselytising with the more anxiety and zeal that he had been encouraged to it by many of his friends, men of “the finest intellect” (di bellissimo intelletto), who lamented the premature deaths of parents and relatives, and who observed so manifest a proof of the advantages of abstinence in the robust and vigorous frame of the dietetic missionary at the
  • 46.
    age of eighty.Cornaro was a thorough-going hygeist, and he followed a reformed diet in the widest meaning of the term, attending to the various requirements of a healthy condition of mind and body:— “I likewise,” he says with much candour, “did all that lay in my power to avoid those evils which we do not find it so easy to remove—melancholy, hatred, and other violent passions which appear to have the greatest influence over our bodies. However, I have not been able to guard so well against either one or the other kind of these disorders [passions] as not to suffer myself now and then to be hurried away by many, not to say all, of them; but I reaped one great benefit from my weakness—that of knowing by experience that these passions have, in the main, no great influence over bodies governed by the two foregoing rules of eating and drinking, and therefore can do them but very little harm, so that it may, with great truth, be affirmed that whoever observes these two capital rules is liable to very little inconvenience from any other excess. This Galen, who was an eminent physician, observed before me. He affirms that so long as he followed these two rules relative to eating and drinking (perchè si guardava da quelli due della bocca) he suffered but little from other disorders—so little that they never gave him above a day’s uneasiness. That what he says is true I am a living witness; and so are many others who know me, and have seen how often I have been exposed to heats and colds and such other disagreeable changes of weather, and have likewise seen me (owing to various misfortunes which have more than once befallen me) greatly disturbed in mind. For not only can they say of me that such mental disturbance has affected me little, but they can aver of many others who did not lead a frugal and regular life that such failure proved very prejudicial to
  • 47.
    them, among whomwas a brother of my own and others of my family who, trusting to the goodness of their constitution, did not follow my way of living.” At the age of seventy a serious accident befel him, which to the vast majority of men so far advanced in life would probably have been fatal. His coach was overturned, and he was dragged a considerable distance along the road before the horses could be stopped. He was taken up insensible, covered with severe wounds and bruises and with an arm and leg dislocated, and altogether he was in so dangerous a state that his physicians gave him only three days to live. As a matter of course they prescribed bleeding and purging as the only proper and effectual remedies:— “But I, on the contrary, who knew that the sober life I had led for many years past had so well united, harmonised, and dispersed my humours as not to leave it in their power to ferment to such a degree [as to induce the expected high fever], refused to be either bled or purged. I simply caused my leg and arm to be set, and suffered myself to be rubbed with some oils, which they said were proper on the occasion. Thus, without using any other kind of remedy, I recovered, as I thought I should, without feeling the least alteration in myself or any other bad effects from the accident, a thing which appeared no less than miraculous in the eyes of the physicians.”
  • 48.
    It is, perhaps,hardly to be expected that “The Faculty” will endorse the opinions of Cornaro, that any person by attending strictly to his regimen “could never be sick again, as it removes every cause of illness; and so, for the future, would never want either physician or physic”:— “Nay, by attending duly to what I have said he would become his own physician, and, indeed, the best he could have, since, in fact, no man can be a perfect physician to anyone but himself. The reason of which is that any man may, by repeated trials, acquire a perfect knowledge of his own constitution and the most hidden qualities of his body, and what food best agrees with his stomach. Now, it is so far from being an easy matter to know these things perfectly of another that we cannot, without much trouble, discover them in ourselves, since a great deal of time and repeated trials are required for that purpose.” Cornaro’s second publication appeared three years later than his first, under the title of A Compendium of a Sober Life and the third, An Earnest Exhortation to a Sober and Regular Life,[103] in the ninety-third year of his age. In these little treatises he repeats and enforces in the most earnest manner his previous exhortations and warnings. He also takes the opportunity of exposing some of the plausible sophisms employed in defence of luxurious living:—
  • 49.
    “Some allege thatmany, without leading such a life, have lived to a hundred, and that in constant health, although they ate a great deal and used indiscriminately every kind of viands and wine, and therefore flatter themselves that they shall be equally fortunate. But in this they are guilty of two mistakes. The first is, that it is not one in one hundred thousand that ever attains that happiness; the other mistake is, that such persons, in the end, most assuredly contract some illness which carries them off, nor can they ever be sure of ending their days otherwise, so that the safest way to obtain a long and healthy life is, at least after forty, to embrace abstinence. This is no difficult matter, since history informs us of very many who, in former times, lived with the greatest temperance, and I know that the present Age furnishes us with many such instances, reckoning myself one of the number. Now let us remember that we are human beings, and that man, being a rational animal, is himself master of his actions.” Amongst others:— “There are old gluttons (attempati) who say that it is necessary they should eat and drink a great deal to keep up their natural heat, which is constantly diminishing as they advance in years, and that it is therefore necessary for them to eat heartily and of such things as please their palates, and that were they to lead a frugal life it would be a short one. To this I answer that our kind mother, Nature, in order that old men may live to a still greater age, has contrived matters so that they should be able to subsist on little, as I do, for large quantities of food cannot be digested by old and feeble stomachs. Nor should such persons be afraid of shortening their lives by eating too little, since when they are indisposed they recover by eating the smallest quantities. Now, if by reducing themselves to a very small quantity of food they
  • 50.
    recover from thejaws of death, how can they doubt but that, with an increase of diet, still consistent, however, with sobriety, they will be able to support nature when in perfect health? “Others say that it is better for a man to suffer every year three or four returns of his usual disorders, such as gout, sciatica, and the like than to be tormented the whole year by not indulging his appetite, and eating everything his palate likes best, since by a good regimen alone he is sure to get the better of such attacks. To this I answer that, our natural heat growing less and less as we advance in years, no regimen can retain virtue enough to conquer the malignity with which disorders of repletion are ever attended, so that he must die at last of these periodical disorders, because they abridge life as health prolongs it. Others pretend that it is much better to live ten years less than not indulge one’s appetite. My reply is that longevity ought to be highly valued by men of genius and intellect; as to others it is of no great matter if it is not duly prized by them, since it is they who brutalise the world (perchè questi fanno brutto il mondo), so that their death is rather of service to mankind.” Cornaro frequently interrupts his discourse with apostrophes to the genius of Temperance, in which he seems to be at a loss for words to express his feeling of gratitude and thankfulness for the marvellous change effected in his constitution, by which he had been delivered from the terrible load of sufferings of his earlier life, and by which moreover he could fully appreciate, as he had never dreamed before, the beauties and charms of nature of the
  • 51.
    external world, aswell as develope the mental faculties with which he had been endowed:— “O thrice holy Sobriety, so useful to man by the services thou renderest him! Thou prolongest his days, by which means he may greatly improve his understanding. Thou moreover freest him from the dreadful thoughts of death. How greatly is thy faithful disciple indebted to thee, since by thy assistance he enjoys this beautiful expanse of the visible world, which is really beautiful to such as know how to view it with a philosophic eye, as thou hast enabled me to do!... O truly happy life which, besides these favours conferred on an old man, hast so improved and perfected him that he has now a better relish for his dry bread than he had formerly for the most exquisite dainties. And all this thou hast effected by acting rationally, knowing that bread is, above all things, man’s proper food when seasoned by a good appetite.... It is for this reason that dry bread has so much relish for me; and I know from experience, and can with truth affirm, that I find such sweetness in it that I should be afraid of sinning against temperance were it not for my being convinced of the absolute necessity of eating of it, and that we cannot make use of a more natural food.” The fourth and last of his appearances in print was a “Letter to Barbaro, Patriarch of Aquileia,” written at the age of ninety-five. It describes in a very lively manner the health, vigour, and use of all his faculties of mind and body, of which he had the perfect enjoyment. He was far advanced in life when his daughter, his only child, was born, and he lived to see her an old woman. He informs us, at the age of
  • 52.
    ninety-one, with mucheloquence and enthusiasm of the active interest and pleasure he experienced in all that concerned the prosperity of his native city: of his plans for improving its port; for draining, recovering, and fertilizing the extensive marshes and barren sands in its neighbourhood. He died, having passed his one hundredth year, calmly and easily in his arm- chair at Padua in the year 1566.[104] His treatises, forming a small volume, have been “very frequently published in Italy, both in the vernacular Italian and in Latin. It has been translated into all the civilised languages of Europe, and was once a most popular book. There are several English translations of it, the best being one that bears the date 1779. Cornaro’s system,” says the writer in the English Cyclopædia whom we are quoting, “has had many followers.” Recounting his many dignities and honours, and the distinguished part he took in the improvement of his native city, by which he acquired a great reputation amongst his fellow-citizens, the Italian editor of his writings justly adds:— “But all these fine prerogatives of Luigi Cornaro would not have been sufficient to render his name famous in Europe if he had not left behind him the short treatises upon Temperance, composed at various times at the advanced ages of 85, 86, 91, and 95. The candour which breathes through their simplicity, the importance of the argument, and the fervour with which he urges upon all to study the means of
  • 53.
    prolonging our life,have obtained for them so great good fortune as to be praised to the skies by men of the best understanding. The many editions which have been published in Italy, and the translations which, together with an array of physiological and philological notes, have appeared out of Italy, at one time in Latin, at another in French, again in German, and again in English, prove their importance. These discourses, in fact, enjoyed all the reputation of a classical book, and, although occasionally somewhat unpolished, as ‘Poca favilla gran fiamma seconda,’ they have sufficed to inspire (riscaldare) a Lessio, a Bartolini, a Ramazzini, a Cheyne, a Hufeland, and so many others who have written works of greater weight upon the same subject.” Addison (Spectator 195) thus refers to him:— “The most remarkable instance of the efficacy of temperance towards the procuring long life is what we meet with in a little book published by Lewis Cornaro, the Venetian, which I the rather mention because it is of undoubted credit, as the late Venetian Ambassador, who was of the same family, attested more than once in conversation when he resided in England.... After having passed his one hundredth year he died without pain or agony, and like one who falls asleep. The treatise I mention has been taken notice of by several eminent authors, and is written with such a spirit of cheerfulness, religion, and good sense as are the natural concomitants of temperance and sobriety. The mixture of the old man in it is rather a recommendation than a discredit to it.” In fact he has exposed himself, it must be confessed, to the taunts of the “devotees of the Table” often cast at the abstinents, that they are too
  • 54.
    much given toparading their health and vigour, and certainly if any one can be justly obnoxious to them it is Luigi Cornaro.
  • 55.
    XII. SIR THOMAS MORE.1480–1535. DURING part of the period covered by the long life of Cornaro there is one distinguished man, all reference to whose opinions—intimately though indirectly connected as they are with dietary reform—it would be improper to omit—Sir Thomas More. His eloquent denunciation of the grasping avarice and the ruinous policy which were rapidly converting the best part of the country into grazing lands, as well as his condemnation of the slaughter of innocent life, commonly euphemised by the name of “sport,” are as instructive and almost as necessary for the present age as for the beginning of the sixteenth century. Son of Sir John More, a judge of the King’s Bench, he was brought up in the palace of the Cardinal Lord Chancellor Morton, an ecclesiastic who stands out in favourable contrast with the great majority of his order, and, indeed, of his contemporaries in general. In his twenty-first year he
  • 56.
    was returned tothe House of Commons, where he distinguished himself by opposing a grant of a subsidy to the king (Henry VII.). In 1516 he published (in Latin) his world-famed Utopia—the most meritorious production in sociological literature since the days of Plutarch. In 1523 he was elected Speaker of the House of Commons, and again he displayed his courage and integrity in resisting an illegal and oppressive subsidy bill, by which he was not in the way to advance his interests with Henry VIII. and his principal minister, Wolsey. Seven years later, however, upon the disgrace of the latter personage, Sir Thomas More succeeded to the vacant Chancellorship, in which office he maintained his reputation for integrity and laborious diligence. When the amorous and despotic king had determined upon the momentous divorce from Catherine, he resigned the Seals rather than sanction that equivocal proceeding; and soon afterwards he was sent to the Tower for refusing the Oath of Supremacy. After the interval of a year he was brought to trial before the King’s Bench, and sentenced to the block (1535). In private life and in his domestic relations he exhibits a pleasing contrast to the ordinary harsh severity of his contemporaries. In learning and ability he occupies a foremost place in the annals of the period.
  • 57.
    Unfortunately for hisreputation with after ages, as Lord Chancellor he seems to have forgotten the maxims of toleration (political and theological) of his earlier career, so well set forth in his Utopia; and he supplies a notable instance, not too rare, of retrogression with advancing years and dignities, and of “a head grown grey in vain.” In fact, he belonged, ecclesiastically, to the school of conservative sceptics, of whom his intimate friend Erasmus was the most conspicuous representative, rather than to the party of practical reform. Yet, in spite of so lamentable a failure in practical philosophy, More may claim a high degree of merit both for his courage and for his sagacity in propounding views far in advance of his time. In the Utopia his ideas in regard to labour and to crime exhibit him, indeed, as in advance of the received dogmas even of the present day. As to the former he held that the labourer, as the actual basis and support of the whole social system, was justly entitled to some consideration, and to a more rational existence than usually allowed him by the policy of the ruling classes; and, in limiting the daily period of labour to nine hours, he anticipated by 350 years the tardy legislation on that important matter. In exposing the equal absurdity and iniquity of the criminal code he preached the despised doctrine of
  • 58.
    prevention rather thanpunishment, and denounced the monstrous inequality of penalties by which thieving was placed in the same category with murder and crimes of violence:— “For great and horrible punishments be awarded to thieves, whereas much rather provision should have been made that there were some means whereby they might get their living, so that no man should be driven to this extreme necessity—first to steal and then to die.... By suffering your youth to be wantonly and viciously brought up and to be infected, even from their tender age, by little and little with vice—then, in God’s name, to be punished when they commit the same faults after being come to man’s state, which from their youth they were ever like to do—in this point, I pray you, what other thing do you than make thieves and then punish them.”[105] What we are immediately concerned with here is his feeling in regard to slaughter. The Utopians condemn— “Hunters also and hawkers (falconers), for what delight can there be, and not rather displeasure, in hearing the barking and howling of dogs? Or what greater pleasure is there to be felt when a dog follows a hare than when a dog follows a dog? For one thing is done by both—that is to say, running, if you have pleasure in that. But if the hope of slaughter and the expectation of tearing the victim in pieces pleases you, you should rather be moved with pity to see an innocent hare murdered by a dog—the weak by the strong, the fearful by the fierce, the innocent by the cruel and pitiless.[106] Therefore this exercise of hunting, as a thing
  • 59.
    unworthy to beused of free men, the Utopians have rejected to their butchers, to the which craft (as we said before) they appoint their bondsmen. For they count hunting the lowest, the vilest, and most abject part of butchery; and the other parts of it more profitable and more honest as bringing much more commodity, in that they (the butchers) kill their victims from necessity, whereas the hunter seeks nothing but pleasure of the seely [simple, innocent] and woful animal’s slaughter and murder. The which pleasure in beholding death, they say, doth rise in wild beasts, either of a cruel affection of mind or else by being changed, in continuance of time, into cruelty by long use of so cruel a pleasure. These, therefore, and all such like, which be innumerable, though the common sort of people do take them for pleasures, yet they, seeing that there is no natural pleasantness in them, plainly determine them to have no affinity with true and right feeling.” In telling us that his model people “permit not their free citizens to accustom themselves to the killing of ‘beasts’ through the use whereof they think clemency, gentlest affection of our nature, by little and little to decay and perish,”[107] More for ever condemns the immorality of the Slaughter-House, whether he intended to do so in toto or no. In relegating the business of slaughter to their bondsmen (criminals who had been degraded from the rights of citizenship), the Utopians, we may observe, exhibit less of justice than of refinement. To devolve the trade of slaughter upon a pariah-class is not the least immoral of the necessary concomitants
  • 60.
    of the shambles.That the author of Utopia should feel an instinctive aversion from the coarseness and cruelty of the shambles is not surprising; that he should have failed to banish it entirely from his ideal commonwealth is less to be wondered at than to be lamented. That he had at least a latent consciousness of the indefensibility of slaughter for food appears sufficiently clear from his remark upon the Utopian religion that “they kill no living animal in sacrifice, nor do they think that God has delight in blood and slaughter, Who has given life to animals to the intent they should live.” Wiser than ourselves, the ideal people do not waste their corn in the manufacture of alcoholic drinks:— “They sow corn only for bread. For their drink is either wine made of grapes, or else of apples or pears, or else it is clear water—and many times mead made of honey or liquorice sodden in water, for of that they have great store.” The selfish policy of converting arable into grazing land is emphatically denounced by More:— “They (the oxen and sheep) consume, destroy, and devour whole fields, houses, and cities. For look in what parts of the realm doth grow the finest and therefore the dearest wool. There noblemen and gentlemen, yea, and certain abbots, holy men no doubt, not contenting themselves with the yearly
  • 61.
    revenues and profitsthat were wont to grow to their forefathers and predecessors of their lands, nor being content that they live in rest and pleasure nothing profiting, yea, much annoying, the public weal, leave no land for tillage— they enclose all into pasture, they throw down houses, they pluck down towns and leave nothing standing, but only the church to be made a sheep house; and, as though you lost no small quantity of ground by forests, chases, lands, and parks, those good holy men turn dwelling-places and all glebe land into wilderness and desolation.... For one shepherd or herdsman is enough to eat up that ground with cattle, to the occupying whereof about husbandry many hands would be requisite. And this is also the cause why victuals be now in many places dearer; yea, besides this, the price of wool is so risen that poor folks, which were wont to work it and make cloth thereof, be now able to buy none at all, and by this means very many be forced to forsake work and to give themselves to idleness. For after that so much land was enclosed for pasture, an infinite multitude of sheep died of the rot, such vengeance God took of their inordinate and insatiable covetousness, sending among the sheep that pestiferous murrain which much more justly should have fallen on the sheep-masters’ own heads; and though the number of sheep increase never so fast, yet the price falleth not one mite, because there be so few sellers,” &c. These sagacious and just reflections upon the evil social consequences of carnivorousness may be fitly commended to the earnest attention of our public writers and speakers of to-day. The periodical cattle plagues and foot-and-mouth diseases, which, in theological language, are vaguely assigned to national sins, might be more ingenuously and
  • 62.
    truthfully attributed tothe one sufficient cause—to the general indulgence of selfish instincts, which closes the ear to all the promptings at once of humanity and of reason, and is, in truth, a national sin of the most serious character.[108] The “wisdom of our ancestors,” which has been so often invoked, both before and since the days of More, and which Bentham has so mercilessly exposed, apparently did not subdue the reason of the author of Utopia; yet, with no little amount of applause it has been made to serve as a very conclusive argument against dietetic reformation, as against many other changes:— “‘These things,’ say they, ‘pleased our forefathers and ancestors—would to God we could be so wise as they were!’ And, as though they had wittily concluded the matter, and with this answer stopped every man’s mouth, they sit down again as who should say, ‘It were a very dangerous matter if a man in any point should be found wiser than his forefathers were.’ And yet be we content to suffer the best and wittiest [wisest] of their decrees to be unexecuted; but if in anything a better order might have been taken than by them was, there we take fast hold, finding therein many virtues.”[109]
  • 63.
    XIII. MONTAIGNE. 1533–1592. THE modernPlutarch and the first of essayists deserves his place in this work, if not so much for express and explicit denunciation, totidem verbis, of the barbarism of the Slaughter-House, at least for a sort of argument which logically and necessarily arrives at the same conclusion. In truth, if he had not “seen and approved the better way” (even though, with too many others, he may not have had the courage of his convictions), he would be no true disciple of the great humanitarian. It is necessary to remember that the “perfect day” was not yet come; that a few rays only here and there enlightened the thick darkness of barbarism; that, in fine, not even yet, with the light of truth shining full upon us, have reason and conscience triumphed, as regards the mass of the community, either in this country or elsewhere. Michel de Montaigne descended from an old and influential house in Périgord (modern Périgeaux, in
  • 64.
    the department ofthe Dordogne). His youth was carefully trained, and his early inclination to learning fostered under his father’s diligent superintendence. He became a member of the provincial parliament, and, by the universal suffrage of his fellow-citizens, was elected chief magistrate of Bordeaux, from the official routine of whose duties he soon retired to the more congenial atmosphere of study and philosophic reflection. In his château, at Montaigne, his studious tranquillity was violently interrupted by the savage contests then raging between the opposing factions of Catholics and Huguenots, from both of whom he received ill-treatment and loss. To add to his troubles, the plague, which appeared in Guienne in 1586, broke up his household and compelled him, with his family, to abandon his home. Together they wandered through the country, exposed to the various dangers of a civil war; and he afterwards for some time settled in Paris. He had also travelled in Italy. Montaigne returned to his home when the disturbances and atrocities had somewhat subsided, and there he died with the philosophic calmness with which he had lived. The Essais—that book of “good faith,” “without study and artifice,” as its author justly calls it— appeared in the year 1580. It is a book unique in modern literature, and the only other production to
  • 65.
    which it maybe compared is the Moralia of Plutarch. “It is not a book we are reading, but a conversation to which we are listening.” “It is,” as another French critic observes, “less a book than a journal divided into chapters, which follow one another without connexion, which bear each a title without much regard to the fulfilment of their promise.” Montaigne treats of almost every phase of human thought and action; and upon every subject he has something original and worth saying. Living in a savagely sectarian and persecuting age, he kept himself aloof and independent of either of the two contending theological sections, and contents himself with the rôle of a sceptical spectator. It must be admitted that he is not always satisfactory in this character, since he sometimes seems to give forth an “uncertain sound.” Considering the age, however, his assertion of the proper authority of Reason deserves our respectful admiration, and is in pleasing contrast with the attitude of most of his contemporaries. A few, like his friend De Thou, or the Italian Giordano Bruno—the latter of whom, indeed, had more of the martyr-spirit than Montaigne—contributed to keep alight the torch of Truth and Reason. But we have only to recollect that it was the age par excellence of Diabolism in Catholic and Protestant theology alike, and of all the horrible superstitions and frightful
  • 66.
    Welcome to ourwebsite – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! textbookfull.com