0% found this document useful (0 votes)
9 views89 pages

Ios Development With Swiftui Acquire The Knowledge and Skills To Create Ios Applications Using Swiftui Xcode 13 and Uikit Download

The document is a comprehensive guide on iOS development using SwiftUI, Xcode 13, and UIKit, authored by Mukesh Sharma. It covers essential topics such as SwiftUI basics, state management, UI design, and integration with UIKit, structured across 14 chapters. The book aims to equip readers with practical skills to create modern iOS applications, while also providing resources for further learning and support.

Uploaded by

keenoozaxil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views89 pages

Ios Development With Swiftui Acquire The Knowledge and Skills To Create Ios Applications Using Swiftui Xcode 13 and Uikit Download

The document is a comprehensive guide on iOS development using SwiftUI, Xcode 13, and UIKit, authored by Mukesh Sharma. It covers essential topics such as SwiftUI basics, state management, UI design, and integration with UIKit, structured across 14 chapters. The book aims to equip readers with practical skills to create modern iOS applications, while also providing resources for further learning and support.

Uploaded by

keenoozaxil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 89

Ios Development With Swiftui Acquire The

Knowledge And Skills To Create Ios Applications


Using Swiftui Xcode 13 And Uikit download

https://ebookbell.com/product/ios-development-with-swiftui-
acquire-the-knowledge-and-skills-to-create-ios-applications-
using-swiftui-xcode-13-and-uikit-37568312

Explore and download more ebooks at ebookbell.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Beginning Iphone Development With Swiftui Exploring The Ios Sdk 7th
Edition 7th Wallace Wang

https://ebookbell.com/product/beginning-iphone-development-with-
swiftui-exploring-the-ios-sdk-7th-edition-7th-wallace-wang-50584916

Beginning Iphone Development With Swiftui Exploring The Ios Sdk 6th
Edition Wally Wang

https://ebookbell.com/product/beginning-iphone-development-with-
swiftui-exploring-the-ios-sdk-6th-edition-wally-wang-37244008

Ios 15 Application Development For Beginners Learn Swift Programming


And Build Iphone Apps With Swiftui And Xcode 13 Arpit Kulsreshtha

https://ebookbell.com/product/ios-15-application-development-for-
beginners-learn-swift-programming-and-build-iphone-apps-with-swiftui-
and-xcode-13-arpit-kulsreshtha-37311976

Ios 15 Application Development For Beginners Learn Swift Programming


And Build Iphone Apps With Swiftui And Xcode 13 Kindle Arpit
Kulsreshtha

https://ebookbell.com/product/ios-15-application-development-for-
beginners-learn-swift-programming-and-build-iphone-apps-with-swiftui-
and-xcode-13-kindle-arpit-kulsreshtha-44859382
Mastering Ios 18 Development Take Your Ios Development Experience To
The Next Level With Ios Xcode Swift And Swiftui 1st Edition Avi Tsadok

https://ebookbell.com/product/mastering-ios-18-development-take-your-
ios-development-experience-to-the-next-level-with-ios-xcode-swift-and-
swiftui-1st-edition-avi-tsadok-74428628

Ios 17 App Development For Beginners Get Started With Ios App
Development Using Swift 59 Swiftui And Xcode 15 Arpit Kulsreshtha

https://ebookbell.com/product/ios-17-app-development-for-beginners-
get-started-with-ios-app-development-using-swift-59-swiftui-and-
xcode-15-arpit-kulsreshtha-53883114

Ios Development With Xamarin Cookbook Dimitris Tavlikos

https://ebookbell.com/product/ios-development-with-xamarin-cookbook-
dimitris-tavlikos-4984670

Ios Development With Swift 1st Edition Craig Grummitt

https://ebookbell.com/product/ios-development-with-swift-1st-edition-
craig-grummitt-7371420

Ios Development With Xamarin Cookbook Dimitris Tavlikos

https://ebookbell.com/product/ios-development-with-xamarin-cookbook-
dimitris-tavlikos-5132540
iOS Development
with SwiftUI

Acquire the Knowledge and Skills to Create iOS


Applications Using SwiftUI, Xcode 13, and UIKit

Mukesh Sharma

www.bpbonline.com
FIRST EDITION 2022

Copyright © BPB Publications, India

ISBN: 978-93-91030-98-8

All Rights Reserved. No part of this publication may be


reproduced, distributed or transmitted in any form or by any
means or stored in a database or retrieval system, without the
prior written permission of the publisher with the exception to the
program listings which may be entered, stored and executed in a
computer system, but they can not be reproduced by the means
of publication, photocopy, recording, or by any electronic and
mechanical means.

LIMITS OF LIABILITY AND DISCLAIMER OF WARRANTY

The information contained in this book is true to correct and the


best of author’s and publisher’s knowledge. The author has made
every effort to ensure the accuracy of these publications, but
publisher cannot be held responsible for any loss or damage
arising from any information in this book.

All trademarks referred to in the book are acknowledged as


properties of their respective owners but BPB Publications cannot
guarantee the accuracy of this information.
www.bpbonline.com
Dedicated to

Who lost their life in COVID-19


About the Author

Mukesh Sharma is an experienced developer, Who has been


working in iOS development for the last 10 years. Mukesh has
worked in product companies like Verisk US, Pacira US, Jim beam
Machine learning application Sapin, Gentherm US,DaTangle AR
application US, AmeriSpeak product of Chicago University,
StrategicPartners US and many more apps have been developed by
him for big brands.

Mukesh has worked on development of various tools and


applications. Outside work, he volunteers to help, coach, and
mentor students for interviews.
About the Reviewer

Jayant Varma is many things including an academic, author,


consultant, and mobile specialist with a career that has seen from
mainframes to embedded devices. He has authored quite a few
books, has worked in several countries and is settled in Australia.
Currently, he manages a team with developers spread across
several countries working on products in the Hospitality Tech with
a blend of iPads, Kiosks, web, etc. Mobile always had a special
spot for him and will remain so with Swift and SwiftUI.
Acknowledgements

There are a few people I want to thank for the continued and
ongoing support they have given me during the writing of this
book. First and foremost, I would like to thank my wife and my
son, Laxit, for putting up with me while I was spending many
weekends and evenings on writing—I could have never completed
this book without their support.

My thanks go first and foremost to the people at BPB


Publications who have made writing a book so delightfully easy.
Preface

The primary goal of this book is to provide information and


guidance that are necessary to modernize the iOS development
using SwiftUI.

This book takes a practical approach to understand the concept of


SwiftUI to design the mobile app. It covers some important
concepts of combine framework too which help full to call the
http request and state management of any variable which was
used in the app development.

Now SwiftUI is in the market and I have to switch from


Storyboard to SwiftUI to develop my new iOS apps, and found
them easier to understand and maintain than their Storyboard and
Autolayout. It is a superb framework to learn.

Over the 14 chapters, 13 chapters are completely dedicated to


SwiftUI and one chapter where we discuss the swift language
basics.

Chapter 1 What is SwiftUI will introduce you to the SwiftUI


Framework and discuss why SwiftUI comes into the picture will
also go over the basic features of SwiftUI and architecture of
SwiftUI.

Chapter 2 Basics of Swift will introduce variables and constants in


Swift and explain. There will be brief overviews of the most
common data type types and loop, function, class, structure,
protocol with examples . We’ll conclude this chapter with some
examples of closures and their use.

Chapter 3 Anatomy of a SwiftUI projects will introduce you how to


create a SwiftUI project with xcode 13 and what type of files
automatically generated by xcode also discussing the the
Automatic previewing

Chapter 4 Introduction to SwiftUI Basic Controls and User Input


introduces you with the different types of controls which we use
in iOS development and how we use them to interact with the
user.

Chapter 5 State Properties, Observable, Environment Objects, and


Combine Framework introduce you with the state management
which help the developers to control over the data follow in the
app. This comes under the combined framework and we also
discussed about the other features combined framework.

Chapter 6 Stacks of views using VStack, HStack, And ZStack


discusses how to create a UI for an iOS application using stacks.
We also discuss other SwiftUI features which help us to manage
the view layout.

Chapter 7 List and Navigation discusses how to create a list and


navigationview and how we can add a list inside the
navigationview. We discuss how to navigate from one view to
another view also how data transfer from one view to another
view using in navigationlink.

Chapter 8 SwiftUI in UIKit discusses how we can use SwiftUI


controls in the UIKit projects.

Chapter 9 UIKit in SwiftUI discusses how we can use UIKit


controls in the SwiftUI projects.

Chapter 10 MVVM and Networking Using Combine discusses how


to call a http request using combine framework and how to
receive a response. We also discuss how SWiftUI helps us to
follow the MVVM architecture to develop the iOS App.

Chapter 11 Drawing in SwiftUI discusses how easy a drawing is in


the SwiftUI development and how we can use drawing in our iOS
app development.

Chapter 12 Animations and Transitions discuss how we can add an


animation on an object and how Translation helps to present a
view on screen.

Chapter 13 App Clip introduces the App Clip which is really a very
nice and advanced feature.

Chapter 14 Widgets discusses what Widgets, how we can add a


Widgets in the iOS device and how it relates with the iOS app.
Code Bundle and Coloured Images

Please follow the link to download the


Code Bundle and the Coloured Images of the book:

https://rebrand.ly/cf7ae1

The code bundle for the book is also hosted on GitHub at In


case there's an update to the code, it will be updated on the
existing GitHub repository.

We have code bundles from our rich catalogue of books and


videos available at Check them out!

Errata

We take immense pride in our work at BPB Publications and


follow best practices to ensure the accuracy of our content to
provide with an indulging reading experience to our subscribers.
Our readers are our mirrors, and we use their inputs to reflect
and improve upon human errors, if any, that may have occurred
during the publishing processes involved. To let us maintain the
quality and help us reach out to any readers who might be
having difficulties due to any unforeseen errors, please write to us
at :

errata@bpbonline.com
Your support, suggestions and feedbacks are highly appreciated by
the BPB Publications’ Family.

Did you know that BPB offers eBook versions of every book
published, with PDF and ePub files available? You can upgrade to
the eBook version at www.bpbonline.com and as a print book
customer, you are entitled to a discount on the eBook copy. Get
in touch with us at: business@bpbonline.com for more details.

At you can also read a collection of free technical articles, sign up


for a range of free newsletters, and receive exclusive discounts
and offers on BPB books and eBooks.
Piracy

If you come across any illegal copies of our works in any form
on the internet, we would be grateful if you would provide us
with the location address or website name. Please contact us at
business@bpbonline.com with a link to the material.

If you are interested in becoming an author

If there is a topic that you have expertise in, and you are
interested in either writing or contributing to a book, please visit
We have worked with thousands of developers and tech
professionals, just like you, to help them share their insights with
the global tech community. You can make a general application,
apply for a specific hot topic that we are recruiting an author for,
or submit your own idea.

Reviews

Please leave a review. Once you have read and used this book,
why not leave a review on the site that you purchased it from?
Potential readers can then see and use your unbiased opinion to
make purchase decisions. We at BPB can understand what you
think about our products, and our authors can see your feedback
on their book. Thank you!

For more information about BPB, please visit


Table of Contents

1. What is SwiftUI?
Introduction
Structure
Objective
Technical requirements for running SwiftUI
Introduction to SwiftUI
Declarative
Automatic
The SwiftUI architecture
Opaque types
Group
AnyView
ViewBuilder
SwiftUI for all Apple products
Conclusion
Questions

2. Basic of Swift
Introduction
Structure
Objectives
Basic Swift syntax
Constant
Variables
Comments
Basic data types
Integers
Floating-point numbers

Booleans
String
Characters
Tuples
Arrays
Retrieving elements from an array
Inserting elements into an array
Modifying elements in an array
Appending elements to an array
Removing elements from an array
Dictionaries
Creating dictionary
Retrieving elements from a dictionary
Modifying an item in a dictionary
Removing an item from a dictionary
Optional type
Working with implicitly unwrapped optionals
Using optional binding
Optional chaining
Unwrapping optionals using “?”
Using the nil coalescing operator
Flow control
if…else statement
Ternary conditional operator
The Switch statement
Looping
for-in loop
while loop
Functions
Understanding input parameters
Returning a value
Class and structures
Reference type (Class):
Value type (Structure):
Creating a class or structure
Properties
Stored properties
Computed properties
Methods
Instance method
Type method
Protocols
Define a protocol
Conforming to a protocol
Closures
Creating a closure
Hello Welcome
Using closures with arrays
Conclusion
Questions

3. Anatomy of a SwiftUI projects


Introduction
Structure
Objective
Technical requirements for running SwiftUI
Creating a new project with Xcode 13
Automatic previewing
Project folders

EmptyProjectApp.swift
App states
ContentView.swift
AppDelegate with SwiftUI app
Multi-window support
Assets.xcassets
Preview Assets.xcassets
Conclusion
Questions

4. Introduction to SwiftUI Basic Controls and User Input


Introduction
Structure
Objectives
Technical requirements for running SwiftUI
Hello World!
Text
Working of modifiers
Image
Changing the image size
Button
Customizing the button
Assigning a role
Custom button style
TextField
Slider
Stepper
Toggle
ScrollView
ScrollViewReader

GroupBox
DisclosureGroup
OutlineGroup
Alert modifier
Context menu
Conclusion
Questions

5. State Properties, Observable, Environment Objects, and Combine


Framework
Introduction
Structure
Objectives
Technical requirements for running SwiftUI
Property Wrapper
State
Data binding
Changing state with external objects
State objects
Environment objects
Access environment values
Create own environment key
How to use own environment key
Overriding EnvironmentKey
The Combine framework
The basic principles of Combine
Where Combine helps
Conclusion
Questions

6. Stacks of Views Using VStack, HStack, And ZStack


Introduction
Structure
Objectives
Technical requirements for running SwiftUI
Layout using Stack
VStack
Alignment
Padding
Spacer
Frame
Geometry Reader
HStack
Priority
ZStack
zIndex
offset with ZStack
Grid
LazyVGrid
Customizing size
LazyHGrid
Lazy
Alignment guides
Conclusion
Questions

7. List and Navigation


Introduction
Structure
Objective

Technical requirements for running SwiftUI


App navigation
Flat navigation
Hierarchical navigation
Basics of NavigationView
navigationBarTitle
Custom navigation bar view
Presenting new view (NavigationLink)
Working of NavigationLink
List
Dynamic list with identifiable protocol
Separators modifier
Swipe actions in list rows
Section in list
.badge
List inside the navigation view
Bar buttons items
Deleting row
Editing row
Toolbar
ToolbarItemGroup
Passing data between views
Passing data using the environment
Navigating programmatically
Creating tab bar application
TabView
TabView with a .badge modifier
TabView programmatically
Navigation inside tabview

Conclusion
Questions

8. SwiftUI in UIKit
Introduction
Structure
Objective
Technical requirements for running SwiftUI
UIHostingController
An UIHostingController example
Adding a hosting controller
Segue action in the view controller
SwiftUIView file
SwiftViewUI.swift
Without segue action
Conclusion
Questions

9. UIKit in SwiftUI
Introduction
Structure
Objective
Technical requirements for running SwiftUI
UIViewRepresentable protocol
An UIViewRepresentable example
UIViewControllerRepresentable
Coordinator
DocumentPickerViewController in SwiftUI
Conclusion
Questions

10. Animation and Transitions


Introduction
Structure
Objective
Technical requirements for running SwiftUI
The fundamental use of animations
Implicit animation
Explicit animations
Easing
Animation.easeIn
Animation.easeOut
Animation.easeInOut
Scaling
Repeating the animation
Rotation
Rotating in 2D
3D rotation
Spring
Working of spring animation
DampingFraction
Response
BlendDuration
Interactive spring
Interpolating spring animation
Mass
Initial velocity
Transitions
Transition modifiers
Moving views with transitions

Asymmetric transitions
Combining transitions
Conclusion
Questions

11. Drawing in SwiftUI


Introduction
Structure
Objective
Technical requirements for running SwiftUI
Built-in shapes in SwiftUI
Circle
.fill() modifier
Capsule
.stroke modifier
Ellipse
Overlays
Rectangle
Rounded rectangle
Scaling
Drawing custom paths and shapes
Drawing curves
Clipping with the basic shapes
Special effects
Screen blend mode
Conclusion
Questions

12. MVVM and Networking Using Combine


Introduction

Structure
Objective
Technical requirements for running SwiftUI
MVVM design pattern
My JSON server
API design
Creating the APIError class
Network layer
Codable
NewsViewModel
View
ProgressView
Conclusion
Questions

13. App Clip


Introduction
Structure
Objectives
Technical requirements for running SwiftUI
App Clip
App Clip limitations
Where to find App Clips?
Create an example of App Clip
Sharing
Assets
File
Storage sharing
Testcase
Run App Clip in a real device

Debugging App Clip


Testing App Clips locally
Testing invocations with the local experience
Associated domains
Adding an associated domain file to the website
Adding Associated Domains Entitlement to App
Accessing the invocation URL
App Clip small in size
Conclusion
Questions

14. Widgets
Introduction
Structure
Objectives
Technical requirements for running SwiftUI
An overview of widgets
Widget extension
Widget entry view
Widget timeline entries
Widget provider
Reload policy
Widget sizes
Modifying MyWidget.swift class
Changing widget background
Deep linking
Creating a URL scheme
Changes in the ContentView
Conclusion
Questions

Index
CHAPTER 1

What is SwiftUI?
Introduction

In this chapter, we will give you a detailed introduction to Apple’s


newest app development framework SwiftUI, after a few general
words about SwiftUI, will review its architecture.

WWDC is always a source of exciting stuff for developers;


everyone waits with bated breath to see what new tech is being
introduced by Apple. The most recent pioneering piece of tech
released by Apple was in 2014 when Apple released Swift in
addition to Apple’s currently used programming language,
Objective-C. Since its release, Swift has updated and evolved,
eventually becoming one of today’s most beloved and powerful
programming languages.

SwiftUI was announced by Apple at WWDC19 and is described as


“SwiftUI is an innovative, exceptionally simple way to build user
interfaces across all Apple platforms with the power of Swift” and
that’s true with SwiftUI; it’s surprisingly simple to build apps just
like you imagine them to look.
Structure

This chapter covers the details of SwiftUI:

Introduction to SwiftUI

The SwiftUI architecture

Opaque types

SwiftUI for all Apple products


Objective

The objective of this chapter is to explain SwiftUI, SwiftUI


architecture, and technical requirements to run the SwiftUI on
macOS. For this book, our focus is on developing iOS
applications for the iPhone.

SwiftUI follows a declarative syntax approach, meaning that we


depict in code how our interface should look:

Figure 1.1: SwiftUI example with preview


Technical requirements for running SwiftUI

SwiftUI shipped with Xcode 11, which you can download for free
from the Mac App Store. Note that SwiftUI is only compatible
with running at least macOS Catalina and BigSur or later versions.

When you start creating your project with Xcode 13, you have to
select an alternative to storyboard, select the SwiftUI from the
dropdown, as seen in the following screenshot:

Figure 1.2: Showing selection option for SwiftUI


This approach to app creation is a true cross-Apple platform and,
along with the Catalyst launch, with just a few taps, the iPadOS
app is now becoming a true native macOS app, a choice that just
wasn’t possible with UIKit.
Introduction to SwiftUI

The SwiftUI framework is quite different from Cocoa. It operates


on a programming paradigm that is completely unlike Cocoa. In
SwiftUI, there is no storyboard, no nibs, and no outlets. There is
no not even a Text is a struct, and View is just a protocol. A
SwiftUI View is extremely lightweight.
Declarative

The declarative syntax is a paradigm of programming that allows


you to write more formal and procedural code. The declarative
syntax is a way of describing the code you want to write, without
worrying about how it’s going to be implemented. Due to
SwiftUI’s declarative nature of programming, it changes the
paradigm of UI development by revealingly reducing lines of code.

With iOS 13, developers were using UIKit with an imperative


technique of UI development. It means that a developer needs to
handle the events, UI transition, or maintain states by writing
additional lines of code every single time an event should be
reflected in the UI. With this technique, apps become more
complicated and less readable.

Imperative syntax:

let labelText = UILabel(frame: CGRect(x:0, y:0, width:120,


height:120))
labelText.text = “Understanding SwiftUI”
labelText.textColor = UIColor.red
labelText.backgroundColor = UIColor.green
labelText.font = UIFont(name: “Consolas”, size: 26)
self.view.addSubview(labelText)

Declarative Syntax (SwiftUI code):


Text(“Understanding SwiftUI”)
.foregroundColor(.blue)
.background(Color.red)
.font(.largeTitle)

In the preceding code, we see two syntax structures of codes for


a similar output. One is imperative nature, and the other is a
declarative SwiftUI approach with not so much code but rather
more comprehensible what is the issue with the imperative
methodology is the developer need to assemble the code, over
and over, to check the yield of the coding But in SwiftUI,
revelatory user can see the coding yield promptly on the preview.

Output:

Figure 1.3: Output of declarative syntax

With declarative methodology, Apple permits the developer to


declare all states for the view at once, no longer needing to write
the code for managing the states.
SwiftUI completed this task for the developer to declare rules at
the very beginning. The only task left for the developers is to
shape the showcase model and refresh.SwiftUI will refresh the UI.

When we used storyboards to make a UI, we got a huge XML


document with complicated code that was hard to read. Lately,
this XML document has been converted to machine code, and
now no more complicated XML in SwiftUI.
Automatic

SwiftUI has no extensive needs for Interface Builder; Canvas, a


responsive interface editor, replaced it. When writing code, the
visual part in Canvas is automatically generated. When we use
SwiftUI previews during development, you can quickly create more
flexible and maintainable apps. It allows you to manage themes
easily. Developers can easily add dark mode to their apps and set
it as the default theme, and users can easily equip dark mode.

It offers a Live Preview. This is a very opportune and reformer


way to see the results of code execution in real-time without
having to build.SwiftUI preview and also shows our designs in
multiple screen sizes at the same time. This speeds up
development.
The SwiftUI architecture

The Swift language is an open source, but SwiftUI is not open


source and overseen by Apple. When you’ve taken in the nuts and
bolts of SwiftUI, you’ve realized what you have to know to utilize
SwiftUI anyplace. You can utilize the equivalent SwiftUI aptitudes
for making an iOS application as you would for making an
application on watchOS, tvOS, or macOS. So, the SwiftUI
architecture tells you where SwiftUI exists in the development
process.
Figure 1.4: The SwiftUI architecture

When SwiftUI sits on top of the application code and creates the
application that displays UI elements, it does not create native
elements from the code.

Therefore, when a developer generates a text element, it does not


produce a an or a It’s still a text element. However, they are
shown independently in their hierarchies. All SwiftUI is stored in a
container called hosting

SwiftUI’s standard library is written in Swift. However, its core


foundation is written in C++.
Opaque types

Starting in Swift 5.1 and iOS 13, a function return type can be
specified as some supertype without stating subtype. The syntax is
the keyword followed by the supertype.

As an example of SwiftUI we can see this here:

struct ContentView: View {


var body: some View {
Text(“Hello, world!”)
.padding()
}
}

struct ContentView_Previews: PreviewProvider {


static var previews: some View {
ContentView()
}
}

In the preceding code, we can see some keywords, a View


protocol requires a body computed property of type some We can
hide the concrete return type of a computed property or function
using some keyword, known as an opaque type.
An opaque type describes a value in terms of the protocols it
supports. Opaque return types as a function or method with an
opaque return type hide its return value’s type information. Instead
of providing a concrete type as the function’s return type.

Let’s take an example.

The following code snippets return the Text view (this is valid
because Text conforms to the View protocol):

var body: some View {


Text(“opaque type”)

Other the Text view, you can also return a VStack view (which is
also valid as VStack conforms to the View protocol):

var body: some View {


VStack {
Text(“opaque type”)
Image(systemName: “manatsign.circle”)
}
}

Let’s create another example. In this example, we create a button,


and on button click, we change the button label with the help of
is Text and create an extension of ContentView to declare the
functionality of the shapeOrText function:
struct ContentView: View {
@State private var isText = true
var body: some View {
Button{
isText.toggle()
}label:{
shapeOrText()
}
}
}
Extension of
extension ContentView{
func shapeOrText() -> some View{

if isText {
RoundedRectangle(cornerRadius: 10)
.fill(Color.orange)

.frame(width: 100, height: 100)


}else
{
Text(“SwiftUI”)
.font(.largeTitle)
}
}
}

The preceding code snippet will give the following error:


Figure 1.5: Showing opaque return type error

Function declared an opaque return type, but the return


statements in its body do not have underlying matching types

This is because, at compile time, the opaque return type cannot


be determined. Is the body going to return a Text or Image view?
This means no concrete type defined at return.

So opaque return types are a specific type of protocol that works


without exposing the concrete type to the API caller for better
encapsulation. The preceding error may appear silly, but it makes
sense given the preceding opaque type limitations. To remove this
error, we can use some techniques:

Group

AnyView

ViewBuilder
Group

If we wrap the if condition in then our error gets removed and


our code runs perfectly. No matter whether we send back a shape
or a text view, they both go back in a group:

extension ContentView{
func shapeOrText() -> some View{
Group{
if isText {
RoundedRectangle(cornerRadius: 10)
.fill(Color.orange)
.frame(width: 100, height: 100)
}else
{
Text(“SwiftUI”)
.font(.largeTitle)
}
}
}
}

In the preceding code, we are not returning anything, and our


functionality is working perfectly.
AnyView

AnyView is a type-erased view. It allows us to hide the real type


of view. It allows multiple view types to be returned from a single
function. It effectively makes Swift forget what type is contained
within making them appear to be the same. However, because
this has a substantial cost, don’t use it frequently.

Let’s use a type-erased wrapper AnyView that also return:

extension ContentView{
func shapeOrText() -> some View{if isText {
return AnyView(RoundedRectangle(cornerRadius: 10)
.fill(Color.orange)
.frame(width: 100, height: 100))
}else
{
return AnyView(Text(“SwiftUI”)
.font(.largeTitle))
}
}
}
ViewBuilder

The ViewBuilder function builder attribute plays a very central role


in SwiftUI. We can use here a function builder:

extension ContentView{
@ViewBuilder
func shapeOrText() -> some View{

if isText {
RoundedRectangle(cornerRadius: 10)
.fill(Color.orange)
.frame(width: 100, height: 100)
}else
{
Text(“SwiftUI”)
.font(.largeTitle)
}
}
}

We can use @ViewBuilder in different ways and have more


importance in SwiftUI.

All solutions are working perfectly fine


SwiftUI for all Apple products

What you learn in SwiftUI to other Apple platforms, for example,


macOS is before the dispatch of SwiftUI, you’ll need to utilize
platforms’ explicit UI structures to build up the UI. You use
AppKit to compose UI for macOS applications and so forth.

While utilizing SwiftUI, Apple offers designers a quandary UI


system for building UIs on a wide range of Apple gadgets. The UI
code composed for iOS can be effortlessly used on your iPadOS,
macOS, and watchOS but might have to change a couple of
modifiers, a couple of frame values, and stuff like that.

But SwiftUI’s goal is clear, learn once and apply

As we show declarative code snippets, we create UILabel and then


set its background and text color with font size. This code is
specific for iOS as it uses the UILabel is not available on macOS,
which uses or the watchOS, which uses. With SwiftUI, there is a
common element available on all iOS, iPadOS, macOS, and
watchOS.

SwiftUI doesn’t replace UIKit — like Swift and Objective-C, you


can use both in the
Conclusion

In this chapter, we looked at SwiftUI, how it came to reality and


the advantages of declarative development. We also touched upon
how easy it is to write UI without worrying much about it in a
much more declarative manner.

The introduction of SwiftUI became a perfect buddy to Swift,


opening up avenues not just for developers but also for designers
and people just starting their journey into the world of Apple app
development.

Next, we are going to understand the basics of swift.


Questions

Which paradigms do SwiftUI and UIKit follow?

What was Swift’s first big change?

What is open-source software?

For which platforms can SwiftUI be developed?


Another Random Scribd Document
with Unrelated Content
coloure Aȝure, hafand the colour of the firmament, sayand, that
Asure is a hevynly colour, it makis not: ffor thare is bot lytill betuene,
nocht than the lift is nocht colourit.

Ane othir coloure is the Quhyte coloure, the quhilk next the Asure is
the maist noble coloure that was countit in Armoury in ancien
cronikis, because that it is maist nere the nature of lycht and
claritee; and for the clereness of it, it is signyfyit to the vertu of
puritee, of clenesse, and innocence, and sympilness: And as to that
the Haly Scripture sais, that the clethingis of Jhesu Crist apperit ay
to thame of quhite colour as snaw; and this coloure of quhite
representis the Water, the quhilk efter the Aire is the maist noble
element.

Ane othir colour is in Armoury that callit is Blak; the quhilk


representis the Erde, and be it is signyfyit dolour, ffor it is ferrest fra
lichtness and claritee that betakenis blythnes, and cummys nerest to
myrknesse; and tharefore, quhen ony peple or folk will mak dule for
ony of thair frendis dede, or in ony bataill tynt, or othir grete
misauenture, men makis thair dule in that clething; ffor it is the
lawest of degree of all the four elementis, and is signifyit be it
humilitee. And for that cause, in takenyng of humilitee, the
religiouse men ar cled in blak wede, commonly to schawe mekenes
in hert, and put away all lust of vanitee, and vane glore warldly.

PRIMA REGULA BELLI CLAUSTRALIS.


HERE SCHAWIS THE DOCTOUR CERTANE THINGIS AND DOCUMENTIS
TOUCHAND CLOSE BATAILL, THAT WE CALL BATAILL IN LISTIS.

nd first, be cause that close bataill is rycht perilouse and mysty to be


jugit be ignorant men, that ar nocht instruct in the lawis, myn advys
is, that thare suld na Prince, na Lord, hald felde of bataille in Listis,
bot gif he had gude wise counsale of wele
vnderstandand men of lawe; that is for to say, of
Doctouris in Canoun and Ciuile, to geve him gude
counsale: ffor commounly the casis ar sa subtile to juge,
that Seclere men for couatise and auarice of warldis
wyn, gevis oft tyme counsale to Princis that soundis mare to the
desyre of wynnyng of warldis gude, na it dois to resone or to
rychtwise querele; and als thai wate quhat casis ar in the lawis
condampnyt vtterly, and reprouit, and quhat casis ar tholit and
permysit at the plesance of Princis; and wate alssua, quhat casis ar
priuilegit in the law quhilk nocht; and the lawis sais, That Aduocatis
ar procuratouris of mannis lignage. And ane othir resoun quhy I
haue sett this reugle is, ffor commonly the Clerkis ar mare sad of
counsale, and mare caulde of complexion, and mare temperit in thair
curage, and ferrar can se in the ground of a mater na Secleris; ffor
Seclaris ar hate of blude, and in ire, and oft tymes thai geve thair
counsale and jugement again resoun, with the wrang outhir for fede
or frendschip, luferent, or haterent, or for mede, or for ire, or breth,
or othir singulare appetite, for honour or richess, or lordschip or
reddoure or otheris. And erar ar inclynyt to mak were, na trety and
concorde; and to ger bataill in barrieris be, na to sloke it, and
appese it; ffor ire lettis the mannis mynde to juge and determe
veritee.

SECUNDA REGULA BELLI CLAUSTRALIS.


HERE DECLARIS THE DOCTOUR ANE OTHIR REUGLE AND DOCTRYNE APON THE
GOUERNAUNCE OF CLOSE BATAILL.

hat nocht gaynstandand that be malice or hete,


woodnes, ramage, or pride orguillouse, or be
inclinacioun, auaricius appellacioun of bataill be maid,
and the party ressauis the gage of bataill, the Prince
suld be wise in his audience geving, and of gude
tholemudenes, to suetely here the cause that the Appelloure
chalangis the appelland of; and wele copy and vnderstand all the
mater before, or he geve his consent, and gif the cause movis of
dett or of fede, or of ony othir singular cause he suld call counsale,
and inquere how and quhare, and in quhat place, and for quhat
cause, and of quhat tyme, and all the circumstancis, and gif the
Prince may be ony way get knawlage of other pruf or witnes, or othir
pruf be instrument or obligacioun, or to draw out of the party be
inquisicioun or confessioun, and othir maner of prufis. And gif the
Prince may persaue be ony way that ony knaulage may be gottyn be
ony way of the warld, the Prince suld nocht thole passe bataill. Or
suppose na witnes war, bot anerly that the party allegit witnes, ȝit
suld he assigne day till produce thai prufis before the justice
ordinare; ffor quhen pruf is offerit, or allegit, all wage of bataill is
slokit, be all lawis of canon and of ciuile.

To the Thrid reugle and doctrine of battaill in Listis is this: That the
Prince in na case suld juge bataill to be, bot quhare thare is na prufis
allegit na producit, and that is law commoun and reasonnable
custum; bot he sall suere, be his faith, that his cause can nocht be
prufit in na way bot be his persoun.

he Ferde doctrine teching and reugle of bataill in barrieris is: That a


Prince suld haue gude counsale to ger propone before him the
maner of the appellacioun, and the cause and occasiouns that the
Appellour allegis in his appellacioun, and gif him thinkis resonnable
the cause of the appellacioun, he suld admytt thame to the bataill;
and gif thai war nocht resonnable, sloke it out, and geue na consent
tharetill, na tholaunce; ffor gif fulis, throu thair foly, be sa daft that
thai wage bataill for lytill, evyn as to say, Quhethir growis better
wynnis in Burgoyne or in Gascoyne? or, Quhethir is thare fairar
ladyes in Florence or in Barsalongne? or, In quhat countree is thare
best men of armes, in France or in Lombardy? And the ta-part cast
gage of bataill on the tothir, apon thir grete weris of lawe; or to say,
his hors runnys fastar na his; or, That his hors is better na his, or syk
lyke thing; or, That he lusis his lady better na he dois; or, That he
dancis or syngis better na he dois, or for syk maner of tromperys; a
Prince suld nocht juge na thole bataill to be, bot he suld, before the
peple, in presence of his counsall, punyse syk trompouris, that
otheris tuke ensample thareby in tyme to cum, to gage bataill for sik
fule causis.

The Fyft doctrine is: That for na wordis of hete, and sudane ire of
chaude cole or of chaude mellencoly, na injuriouse langage, thare
suld na Prince thole na consent gage of bataill in listis to pas; for
wordis may be said for hete, or for brethe, or for gude wyne, or othir
wayis in lichtnes, that sone efter he may repent: bot and the wordis
be injurious and dishonourable, crimynouss or defamatouris, and he
perseuere in his outrageous langage, and lykis nocht till amend; bot
stand in his purpos efter that the ire salbe past, ellis the Prince suld
nocht juge bataill to be: ffor gif he dois, he jugis again the Lawis
writtin opynly.

The Sext doctrine is: That because thare is sum men sa hichty
hautayn and orguillous and full of surquedry, that thai haue na traist,
na fyaunce in God na his Sanctis, bot in thair awin propre pyth and
vertu of corps and strenth of membris; na has na will; na thocht on
God to mend thair mysdedis; na to tak counsale at gude men of lyf
and deuocion; na to mak gude ordynaunce for thame self, suppose
the Prince suld the bataill to be tholit to be done to the vtterest: And
tharfore the King suld assigne certane day of bataill and houre to the
Appelloure, and he suld ger schaw him the grete perile in the quhilk
he puttis him in baith of body and of saule, and monyse him, and
exhort him on Goddis behalf, that all before that euer he schape him
for horse, harnais, na othir prouision for the bataill, that first he
schape him to se for a gude Confessour, that be a gude wise clerke,
wele letterit and wele instruct in the faith, and of gude counsale and
conscience, that he may discharge his conscience to, and schrive
him wele, and put his saule first in gude estate, and his gudein
ordinance, as he wald mak his testament to ga to dede, and as wyse
man aw to do: Quhilk gif he dois nocht, the King suld say him, "That
sen he traistit nocht in Goddis help, he suld nocht traist that he war
a gude Cristyn man, and that he suld haue the lesse fauour of him;"
and than suld he ordane him a term within quhilk he suld put him in
gude estate of the saule to Godwart, and syne spere, how thai had
done at thair Confessoure, and sa suld he do to the tothir: And this
is a takyn that a Prince is wyse, and lufis wele God, that begynnis at
him to dispone all his gouernance and dedis.

Fol.
81. b.

HERE SPERIS THE DOCTOURE QUHAT THINGIS EFFERIS TILL ALL GUDE PRINCE
TO DO

s now sen he hes sum part declarit quhat properteis


suld be in ane Emperoure, now will he declare quhat
properteis a gude King suld haue in him: that is the
maist hye dignitie efter the Emperoure. And ȝit will oure
maisteris saye that the name of King is mare na the
name of Emperoure be excellence; ffor oure Lord Jhesu Crist in this
erde here callit him nocht Emperoure, bot tholit to be callit King of
Kingis and Lord of Lordis, as our Haly Writt beris witness. And alssua
he was callit a Kingis Sone: ffor he is callit in Haly Writt the Sone of
David King; and that sais Clerkis that he is of Kingis be the grettar
excellence of lynage. And ȝit alssua Sanct Peter menyt to his
teching, that the name of King was mare excellent na the name of
Emperoure, quhen he said till his disciples, That thai suld be
subgettis till all creature humayne for the honoure of God ȝour King,
and specially till all Kingis for the honoure of him, as to the hiest
degree and maist excellent. And this approues the Pape Gelasius,
&c.

Fol.
83. b.

And trewly I say, and he kepe wele thir termes, he is a worthy


Prince, and worthy to be a King, and till haue superioritee and
soueranitee, and victory of his fais. And tharefor the Doctour settis
here certane poyntis of doctrine touchand a ȝong Prince, in Ryme,
quhilkis spekis thus: A King that will be ane worthy werryoure, he
sulde be wiss, faire, and curageous: And that he be Lord of his
subjectis, asto the Quaile the Sperehauk; and that he be misericorde
and rigorouss in justice, as case requeris; and that gif he will be
wele fortunyt in armes, be ay first.

Fol.
84. b.

Item, a Prince or a King suld nocht oure lichtly trow all talis na
sudayn tydingis; ffor mony learis oft tymes flechis lordis with false
talis, and settis thame in wrang and euill purpose. And that is oure
grete perile in princis and grete lordis, to geue sudane credence till
ony mannis tale, quhill he war wele informyt of the suthfastnes: And
he suld be wele and ryply avisit, or that he write to the Pape ony
materis, or till ony strange Princis, for ony lycht mennis counsailis, or
ony small wrechit mannis. And quhen he wrytis, his writtis suld be
wele and statelyke deuisit, and dytit be wise Clerkis, and men of
counsale, and expert in the lawis and purpose lyke, and syne be
notable gude wrytaris as efferis; bathe to the ryaltee of him that
sendis the writtis, and of him that thai wryttis ar send to; and suld
wele auise for quham he wrytis, that thai be worthy persouns, and
alssua for quhat thing he wrytis; that it be nocht a wrechit thing that
he wrytis for; and als that his peticioun be bathe rychtwise and
honourable; ffor quhen Princis prayis for vnworthy persouns, God is
offendit and displesit thareat. And syne the Pape or Princis that he
wryttis till, will hald him for ane vnwise Prince that the lettres send
for sik a persone, and will nocht sa gladly grant him his asking in
tyme to cum. And thus sall the renoun of a Prince pas oure all the
Cristyndome, and geue him lofe and honour that excedis all warldis
richess, throu the quhilk he sal be prisit and redoubtit bathe with fais
and frendis, and haldin for wise Prince; and syne sall he be lufit of
God, and wyn throu that the joy of Paradise.

And ȝit mare, suld a King be temperit and messurit in his


conuersacioun, and repair amang folk, in placis public, our oft
tymes; ffor ony thing that Commouns seis oure oft thai prise all the
lesse. And quhen it is seldyn sene it gevis folk in mare grete desyre
to se it agayne ay mare and mare; and for this cause the grete
Souldane of Babilone cummys bot thrise in the ȝere in publik
audience furthwart, and than quhen he cummys furthwart, on thre
festuale dayes, he cummys rydand with sik a state and solempnitee
that all the peple desyris and presses the mare to se him, na he rade
euery day, or euery wolk or moneth; bot gif it be quhen that he rydis
in werefare, and than all his peple and cheualrye may se him.

And suppose I mycht ȝit compile and gader togedir mony Vertues
and properteis that suld be in a Prince, and als mony thingis of
Mysgouernaunce that he suld eschew: Bot in gude faith the Doctour
sais, that he was sa irkit of wryting, that he mycht nocht as now na
mare tak on hand as to put in this Buke of Bataillis; bot and God
geve him lyve dayes, he sais, in his conclusioun of his Buke, he sall
compile a Trety of propereteis of Gude Condiciouns bathe of
Temparale men and of men of Kirk, that sall be gude and
prouffitable for all men, that on lukis bathe langand the gouernaunce
of thair office and digniteis, as may be compylit be the foundement
of Haly Writt, and efter the Lawis writtyn. Bot here he prayis to God
mekely that he send grace and gude gouernaunce to the Prince that
he has compilit this wrytt for, and maid this Buke till, that is to say
King Philip[20] of Fraunce, and geue him grace sa to reule his
realme, and his ryall magestee and estate, that God be payit of him,
and bring him till his euerlestand joye of Paradise at his ending, and
all his frendis and wele willaris. In nomine Patris, et Filii, et Spiritus
Sancti. Amen.

Explicit Liber Bellorum, sed potius Dolorum, ut rescitat Doctor in


pluribus, etc.

No. II.

HERE BEFORE ENDIS THE BUKE OF BATAILLES, AND HERE EFTER BEGYNNYS

The Buke of the Ordere of


Knychthede.
[This portion of the Manuscript, from fol. 85, to fol. 103, is contained in
the present volume.]
No. III.
Fol.
103. b.

HERE ENDIS THE BUKE OF THE ORDRE OF KNYCHTHEDE; AND


BEGYNNIS THE BUKE CALLIT

The Buke of the Gouernaunce


of Princis, Etc.
HERE BEGYNNYS THE TABLE OF THE BUKE OF THE GOUERNAUNCE OF PRINCIS.

And first of the Prolog of the first fyndyng, and interpretacioun of


the said Buke out of diuerse langagis, etc.

Item, Of the first Pistle fend fra Alexander till Arestotil to ask him
counsale of the Gouernaunce of Perse new conquest; and of the
form of the Epistle, and of his Ansuere.

Item, Of ane othir of thé Ansueris of Aristotle till Alexander; and the
forme of the Epistle send fra Aristotle of his opynion.

The First chapiter is, How thare is four


maneris of Kingis. 1
How auarice and fule largess suld be
eschewit in a King. 2
How Princis and Kingis suld sett them
for gude renoun here. 3
How thai suld eschew all outrageous
carnall lustis and appetitis. 4
Quhat kynde of sapience efferis to
Kingis, Princis, and grete Lordis. 5
Quhatkyn habyt anournement and
clething thai suld haue. 6
How Kingis and Princis suld punyse
mysdoaris, and honour gude men. 7
How thai suld haue in thame justice
and equitee with merci. 8
Quhatkyn plesance, deduytis, and
recreaciouns Princis suld tak. 9
How punycioun suld be maid efter the
case and state of persons. 10
How Princis may be lyknyt to the dew
of the hevyn. 11
How Kingis and Princis are of the
samyn nature with symple men. 12
How thai suld delyte thame in bukis of
stories of Vertues and Vicis, and of
othir honourable dedis of alde
Ancestry, and of wisedome. 13
How thai sulde kepe gude faith and
lautee till all Mankynde euer. 14
How Princis suld found scolis and
studyes of sciences in thair contreis. 15
How thai suld nocht gouerne thame be
women, na trow thair counsale. 16
How thai suld nocht traist anerly in a
medicine, but ma. 17
How Princes suld gouerne thame be a
wyse Clerk, expert in astronomy. 18
Off the science of astronomy, and of
the divisioun of it. 19
How Princis suld atoure all thing tak
kepe to thair hele. 20
How and in quhat maner thai suld
gouerne thair hele keping. 21
Here declaris the Philosophour certane
documentis of medicyne. 22
Here declaris the Philosophour certane
secrete documentis of medicyne. 23
Here declaris he the four rathis of the
ȝere, and first of Ver. 24
And first of the kynde of the sesoun of
Somer. 25
And syne of the third sesoun that is
callit Hervist. 26
And syne of the nature of the Wynter. 27
Quhat thingis fattis or lenys men maist. 28
Here declaris the Philosophour ane othir
poynt of medicyne. 29
Quhat kyndis of metis ar best for man. 30
Off syndry kyndis of wateris, and thair
naturis. 31
Off syndry kyndis of wynis, and thair
naturis. 32
Off bathis and stuphis [stoves], and
thair gouernaunce and proffittis. 33
Quhat justice efferis till a Prince or a
King. 34
How a Prince or a King suld ken
himself. 35
How Kingis and Princis suld gouerne be
grete counsale. 36
How the Man is maid of the four
elementis. 37
How Princis suld haue discrete
Secretaris. 38
How thai suld have discrete and traist
messageris. 39
How the Prince and the Peple are
comperit till a gardyn. 40

EXPLICIT TABULA DE REGIMINE PRINCIPUM.


HERE BEGYNNIS THE BUKE CALLIT THE BUKE OF THE GOUERNANCE OF
PRINCIS, THAT IS CALLIT THE SECRETE OF SECRETIS, MAID BE ARISTOTYLL
TILL ALEXANDER THE GRAND: AND FIRST THE PROLOUG AS IT IS CONTENYT IN
THE FRANCH BUKE.

PROLOGUS.

ere declaris the Autour of this Buke that a clerk, callit


Fair Patrix, wyse in all langagis fand in Grece, kepit
within a temple, callit the Temple of the Sonne, (the
quhilk the noble philosophour Esculapius had gert mak,)
this Buke of the Secretis of Aristotle in language of
Grew; the quhilk he translatit out of Grew in the langage of Caldee,
the quhilk was quhilom the langage of grete Babyloyne, and now is
the langage of grete Inde; and syne, at request of the King of Araby,
he translatit it off the langage of Caldee in his langage of Arrabyk.
And syne, efter that mony a ȝere, ane othir grete clerk, callit
Philippus, translatit it out of Arabyk in lang Latyne, and send it till
ane reuerend Fader in Crist, and wyse prelate, noble and honourable
Sir Guy de Valance, Bischop of Tryploun: And as beris witness be
thair alde ancien stories, the worthy and noble Philosophouris in
thay tymes, that als lang as Alexander le Grant had with him Aristotil
the wyse clerk, he passit throuch and vencust all realmes, and all his
inymyes, throu the mekle prudence and wisedome of that noble
Philosophour and throu his counsale. And quhen he mycht no mare
trauaile with him, he send him ay betuene Lettres and Epistlis, how
he suld gouerne him in all his dedis and grete materis. And at the
last, quhen he saw he mycht nocht for elde langsumely be nature
left, he compilit this Buke to be a reugle of Gouernaunce till him
euer mare quhill he lyvit, and send it till him with grete regrate and
lamentacioun, that he mycht no mare be with him, sa mekle he lufit
him, for cause he was his Maister and his techour euer fra his
begynnyng of barnehede till that tyme, and with him in his
conquestis. And syne was this ilke Buke translatit out of Latine in the
langage of Romaine, nocht all hallely bot alsmekle as thame thocht
nedefull and spedefull to the Gouernance of Princis. And tharfore the
noble Philosophour said in his counsale geving till Alexander, that it
was nocht spedefull that this Buke war till all men publist, bot anerly
to the secrete counsale of Princis, and of grete Lordis, and nocht to
Commouns; and to rede it oft tymes before thame, to tak, as myrour
schawis the faultis and the suthfastnes, ensample, and doctrine of
gude lyfing, and formable as efferis to thair honour and prouffit, and
of thair subjectis. For it is nocht spedefull that popularis wit the
secrete of Princis, na Lordis gouernance, na the reuglis of thair
Ordre; and thairfor is the Buke callit The Secrete of Secretis of
Aristotil, ordanyt for document and teching of Gouernance of
Princis.

till
HERE DECLARIS HE HOW ARISTOTLE RESSAUIT A PISTLE SENT FRA ALEXANDER
him in his grete age, to ask counsale, quhen he had conquest
Perse, Quhethir he suld destroy and sla all the folk of that land,
and peple it with others? because that thay war perilouse to
gouerne, and subtile, and full of mychti maliciouse engyne of
conquest, for the quhilk he dred thair subtile malice.

FORMA EPISTOLE ALEXANDRI REGIS MAGNI AD ARISTOTILEM.

ill ane maist noble and worthy Lord of Justice, I signify


to thy prudence, that I haue foundyn in the land of
Perse a kynde of folk rycht haboundand in richess, and
of lytill vnderstanding, settand thair study to mak
conquestis of realmes, and desyrand till haue lordschip
atour othir men; ffor the quhilk cause, that we can nocht fynd to be
seker of thame, we haue tane to purpose to put thame all to dede;
bot bydand to haue thy counsale thareto, be wrytt in lettres; the
quhilk counsale we will kepe and fulfill at the vtterast.
HERE FOLLOWIS THE ANSUERE OF ARISTOTIL TILL ALEXANDER IN EPISTIL.

lexander, gif thou may change the nature of the erde,


the water, and the aire of that regioun, and the
disposicioun of the citeis of the landis of Perse, than
counsale I that thou do thy will hardily; and gif thou
may nocht do as foresaid is, sla thame nocht, bot
gouerne thame in all gudelynes, with clemence, benignitee, and
sueteness, put honour to thaim, and graciously demayne thame in
graciouse justice and equitee; the quhilk gif thou dois, I traist, that
with the grace of God, that thai sal be gude subjectis to thé, and sall
gouerne thame at thy plesaunce and commandement: ffor than for
the lufe that thai sall haue to thé for thy nobless, thou sall haue the
dominacioun apon thame with peis and tranquilitie.

The quhilkis lettres the Prince ressauit with benignitee, and fulfillit
his counsale vtterly; throu the quhilkis thingis the peple of Perse
gafe sik a luferent till Alexander, that thai lufit him better, and was
mare obeysand till him, na ony othir pepele of ony of his othir
conquestis.

excusand
HERE FOLLOWIS A PISTLE SEND FRA ARISTOTIL TILL ALEXANDER
him for sore elde and waykenes he mycht na mare byde with
him na hald the court; and tharfore he send him a Regement in
wrytt, how and in quhat maner he suld gouerne him ay furth;
the quhilk begynnis in this maner as efter folowis:—

lexander,faire Sone, gloriouss Emperour, the Souerane preciouss God


Almychty mot confirme thé, and send thé knaulege to fauour the
wayis of vertu, and of veritee, and that he wald refreyne in thé all
bestiale appetitis, and that he wald illumyn thyne
engyne, and conferme thy spirit of thy gouernaunce till
his honour and service, honourably to be ressauit as
efferis. And I have vnderstandin, how thou desyris that I
war with thé; and that thou sais thou art amaruailit that
I may abstene fra thy presence; thinkand that I am not sa besy and
diligent of thy gouernaunce as I was wont to be: And be this cause I
haue vndertane to make litil Reugles callit Cannonet, that is to say, A
lytil buke, the quhilk salbe as a balaunce in the quhilk thou sall payss
all thy werkis in; and to be a supplee to thé in my absence, rycht as
I war present: &c.

XL.—CAPITULUM.
Fol.
129.

HERE DECLARIS THE NOBLE PHILOSOPHOUR HOW THAT THE SUBJECTIS OF


PRINCIS THAT AR THE VPHALD OF THE WARLDE, AR COMPERIT TILL A FAIRE
GARDYN, OR TILL A LORDIS TRESOURE, AND THAT THAI SULD BE KEPIT AS
TRESOURE.

Alexander, faire Sone, ȝit will I that thow witt, that thy subjectis suld
be kepit as thy tresouris, ffor thai ar thy tresoure. For thai may be
comperit till a Lord that has a faire and gude gardyn quhare thare is
grete quantitee of fruyte treis, herbis, and othir gresis, richess, and
nedefull till mannis behufe, the quhilkis ȝerely and contynualy beris
grete plentee of fruytis for mannis sustenaunce quhen thai ar well
grathit, scroubbit, and demaynit, and wele gudit, kepit, sustenit, and
gouernyt at rycht, and suld be wele sene to, and socourit at thair
nedis. And kepit wele in gude reugle of justice and saufit fra injuris
and oppressins, and that thare be bot thou allane gardener upon
thame, and nocht mony maister gardenaris; ffor quhare mony
maister gardeneris ar the gardyn is nocht commounly all prouffitably
gouernyt, the quhilk suld be of gude gouernaunce that stent him
nocht to spill thy treis, na gader thy fruytis, that is to say, thy
subjectis gudis wrangwisely; and sa may thy realme left, and be
wele defendit and conseruit, sa that thou kepe thé nocht to haue
mony dispensaris in thy gardyn, that is thy realme. Ffor quhy, for
couatise and gredynes of thy fruytis, thar may enter corrupcioun in
thy gardyn, and syne apon thyself, quhen ilk ane pressis oure otheris
to be masteris of thi gudis, and of thy counsaile, and thi
gouernaunce. Bot thare is mony that will hecht and say thai sall do
wele, and quhen thai mount in gouernaunce thai do all othir wayis.
And sum corrumpis be giftis and hechtis Princis Counsailouris, and
peruertis all gude gouernaunce throu thair gredyness of gudis,
gevand giftis to Lordis of the Counsale for to maneteine thame lang
in thaire officis and in thaire malicis. And traist wele, Alexander, that
thy Peple and thy Barouns, thy Bacheleris and thy Commons ar the
stuf and the multiplicacioun and furnyssing of thy realme, and be
thame mon thou be crownyt, and thy croun vphaldyn and
mayntenyt, and be thai nocht throu thé manetenyt and sustenyt in
thair rychtis and richess, thai will nocht lufe thé, na honoure thé, na
tho court, na help to sustene thyne estate; ffor bot gyf thou mak
thaim cause to be fyablez and traist to thé, and thy worschip and
prouffit, and to hald lufe and lautee betuix thé and thy peple, thou
fall neuer be seker na seure a day in thy realme. And will thou
vmbethink thé wele of all that I haue said, and gouerne thé efter my
deuise and counsale beforesaid, thou sal be haldyn as wyse and
worthy King, and doubtit and lufit of thy peple, and of all otheris:
And thou sall cum aboue of all thyne vndertakingis and desyris:
Quhilkis gif thou faillis to do, thou sall se that thare sall cum
greuouse mischeif and mysfortune, bathe upon thé and thy realme,
and thy gouernaunce, and it sall nocht be in thy powar to sett
remede, na thou can nocht, na may nocht estymy the paynis that
suld be injunct to thé tharfore. Bot here I pray hertfully to the hye
and mychty God, makare of Hevyn and Erde, to geue thé grace, as
he is gudely Gouernoure of Hevin and Erde, and of all the Warlde to
gouerne thé sa in vertu and in veritee, in justice and leautee, that
God and man be payit of the end: And rycht sa mote it be of oure
worthy King, and graciouse Prince, and all his welewillaris, I pray to
God Almichti, in nomine Patris et Filii, et Spiritus Sancti. Amen.

EXPLICIT LE GOUERNEMENT DES PRINCES.

NOTES.
[1] Dunbar's Poems, by Laing, vol. i. pp. 42, 214, Edin.
1834, 2 vols. post 8vo.

[2] This work extends to 3 volumes in folio. Vol. I. was


published at Edinburgh in 1708; Vol. II. in 1711; Vol. III. in
1722. This volume contains a List of nearly 600 Subscribers.
On the title of a MS. which belonged to Robert Myln, the
Genealogist, he makes a reference to a Life of Dr Thomas
Reid, among "the schedules of Dr Mackenzie's 4th Volume
of Lives." Whether such "schedules" still exist, is uncertain.

[3] Dr George Mackenzie, was born on the 10th December


1669. He was the son of the Hon. Colin Mackenzie, second
son of George, second Earl of Seaforth, and of Jean,
daughter of Dr Robert Laurie, Bishop of Brechin. He died at
Fortrose, on the 28th November 1725.—(Caledonian
Mercury, Dec. 16, 1725.)

[4] The last three leaves contain a transcript of two articles


unconnected with the rest of the volume, viz.—"The Ordour
of the processioun and bering of the Sacrament in Antuarpe
the first day of Junij the ȝeir of God Im Vc lxij." And a Letter
or Testimonial from Thomas Bishop of Orknoy in 1446,
addressed to the King of Norwege, respecting the
Genealogy of William of Sanctclare, Erle of Orchadie, &c.
(the ancestor of the St Clairs of Roslin,) "Translatit out of
Latin into Scottis, be me, Deine Thomas Gwld, Monk of
Newbothill," in the year 1554.

[5] Les Manuscrits François de la Bibliothéque du Roi: par


A. Paulin Paris, vol. v. p. 103.

[6] See Lewis's Life of Caxton, p. 81.

[7] Catalogue des Livres imprimés sur Vélin, de la


Bibliothéque du Roi, tome iii. p. 81.

[8] Edinburgh, 1801, p. 65.

[9] In Maidment's Analecta Scotica, vol. ii. p. 1, is a curious


Indenture betwixt Sir William the Hay, Knight, Lorde of the
Nauchtane, and Alan of Kynnarde Lord of that ilke, and
Dame Mary of Murray his wife, for the marriage of their
children, dated 7th December 1420.

[10] At a latter period, among the Determinants at St


Andrews, in 1449, we find "Gilbertus Hay, cujus bursa, viijs.
vjd;" and again "M. Gilbertus Hay," as having taken his
degree as a Licentiate in 1451. But this obviously could not
have been Sir Gilbert Hay. In the "Compot. Magist. Roberti
Pantre receptoris facultatis arcium anni [M.CCCC.]LII. datum
iiiio die Decembris," at the end of a long list of contributions
is this entry—"Item, per Magistrum Gilbertum Hay, xxvs.
Debitor Thomas Hay licentiatus, frater ejusdem Gilberti."
The name of Thomas Hay stands first in the list of
Licentiates in 1452-3.
[11] Genealogie of the Sainteclaires of Rosslyn, by Father
Richard Augustin Hay, p. 26. Edin. 1835, 4to.

[12] Lord Hailes's Additional Case of the Countess of


Sutherland, pp. 110, 128.

[13] Genealogie of the Sainteclaires of Rosslyn, p. 91-98.

[14] "Extracts from The Buike of King Alexander the


Conquerour, a Manuscript in the Library at Taymouth
Castle." (1831). 4to. Privately printed by the Secretary of
the Bannatyne Club.

[15] See supra, page 1.

[16] The Number of the Chapters, in both the Second and


Third Parts or Books, are omitted in the Original
Manuscript.

[17] In the MS. the Numbers of the Chapters in this Fourth


Part, are marked, Primum Capitulum, II. Cam., III. Cam. &c.

[18] Although each chapter at the beginning is marked with


a rubric, the number of the chapter is not given in the
Original Manuscript. The following selection will be found to
differ somewhat in the divisions, but it represents the whole
portion of the Manuscript which corresponds with the titles
of chapters 138 to 153, in the preceding Table; along with
the conclusion of the Work.

[19] In the original, "Car toutes comparaisons sont


haynneuses."

[20] [It will be observed, that in the Prologue or dedication,


at page 64, this "Buke" was addressed by the Author to
Charles the Sixth, King of France.]
*** END OF THE PROJECT GUTENBERG EBOOK THE BUKE OF THE
ORDER OF KNYGHTHOOD ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States
copyright in these works, so the Foundation (and you!) can copy
and distribute it in the United States without permission and
without paying copyright royalties. Special rules, set forth in the
General Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree
to abide by all the terms of this agreement, you must cease
using and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project Gutenberg™
works in compliance with the terms of this agreement for
keeping the Project Gutenberg™ name associated with the
work. You can easily comply with the terms of this agreement
by keeping this work in the same format with its attached full
Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and
with almost no restrictions whatsoever. You may copy it,
give it away or re-use it under the terms of the Project
Gutenberg License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country
where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of
the copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
containing a part of this work or any other work associated with
Project Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute


this electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the
Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must,
at no additional cost, fee or expense to the user, provide a copy,
a means of exporting a copy, or a means of obtaining a copy
upon request, of the work in its original “Plain Vanilla ASCII” or
other form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™
works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or


providing access to or distributing Project Gutenberg™
electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project


Gutenberg™ electronic work or group of works on different
terms than are set forth in this agreement, you must obtain
permission in writing from the Project Gutenberg Literary
Archive Foundation, the manager of the Project Gutenberg™
trademark. Contact the Foundation as set forth in Section 3
below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on,
transcribe and proofread works not protected by U.S. copyright
law in creating the Project Gutenberg™ collection. Despite these
efforts, Project Gutenberg™ electronic works, and the medium
on which they may be stored, may contain “Defects,” such as,
but not limited to, incomplete, inaccurate or corrupt data,
transcription errors, a copyright or other intellectual property
infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be
read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except


for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU AGREE
THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT
EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE
THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY
DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE
TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL,
PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE
NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person
or entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set


forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you
do or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status
by the Internal Revenue Service. The Foundation’s EIN or
federal tax identification number is 64-6221541. Contributions
to the Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.
back
back
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookbell.com

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy