├── .DS_Store ├── .gitignore ├── .vscode └── launch.json ├── AppendixB ├── .vscode │ └── launch.json └── PetScrapbook │ ├── .gitignore │ ├── .vscode │ └── launch.json │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── LICENSE │ ├── app.css │ ├── app.js │ ├── data │ │ └── fileSystemService.js │ ├── images │ │ └── home.png │ ├── main-page.js │ ├── main-page.xml │ ├── package.json │ └── views │ │ ├── home-page.css │ │ ├── home-page.js │ │ ├── home-page.xml │ │ ├── scrapbook-page.css │ │ ├── scrapbook-page.js │ │ ├── scrapbook-page.land.minWH600.js │ │ ├── scrapbook-page.land.minWH600.xml │ │ ├── scrapbook-page.xml │ │ ├── scrapbookUpdate-page.css │ │ ├── scrapbookUpdate-page.js │ │ ├── scrapbookUpdate-page.xml │ │ ├── selectDate-page.js │ │ ├── selectDate-page.xml │ │ ├── selectGender-page.js │ │ ├── selectGender-page.xml │ │ └── shared │ │ ├── scrapbook-detail │ │ └── scrapbook-detail.js │ │ ├── scrapbook-list │ │ └── scrapbook-list.js │ │ └── simple-label │ │ └── simple-label.xml │ ├── package-lock.json │ └── package.json ├── Chapter1 ├── .DS_Store ├── .gitignore ├── button-example-css │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── main-view-model.js │ │ ├── package.json │ │ └── references.d.ts │ └── package.json └── button-example │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-667h@2x.png │ │ │ ├── Default-736h@3x.png │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ ├── Default-Landscape.png │ │ │ ├── Default-Landscape@2x.png │ │ │ ├── Default-Landscape@3x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Icon-Small-50.png │ │ │ ├── Icon-Small-50@2x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Info.plist │ │ │ ├── build.xcconfig │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-60.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ ├── icon.png │ │ │ └── icon@2x.png │ ├── app.css │ ├── app.js │ ├── main-page.js │ ├── main-page.xml │ ├── main-view-model.js │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter10 ├── .vscode │ └── launch.json └── PetScrapbook │ ├── .gitignore │ ├── .vscode │ └── launch.json │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── LICENSE │ ├── app.css │ ├── app.js │ ├── data │ │ └── fileSystemService.js │ ├── images │ │ └── home.png │ ├── main-page.js │ ├── main-page.xml │ ├── package.json │ └── views │ │ ├── home-page.css │ │ ├── home-page.js │ │ ├── home-page.xml │ │ ├── scrapbook-page.css │ │ ├── scrapbook-page.js │ │ ├── scrapbook-page.xml │ │ ├── scrapbookUpdate-page.css │ │ ├── scrapbookUpdate-page.js │ │ └── scrapbookUpdate-page.xml │ ├── package-lock.json │ └── package.json ├── Chapter11 ├── .gitignore └── PetScrapbook │ ├── .gitignore │ ├── .vscode │ └── launch.json │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── LICENSE │ ├── app.css │ ├── app.js │ ├── data │ │ └── fileSystemService.js │ ├── images │ │ └── home.png │ ├── main-page.js │ ├── main-page.xml │ ├── package.json │ └── views │ │ ├── home-page.css │ │ ├── home-page.js │ │ ├── home-page.xml │ │ ├── scrapbook-page.css │ │ ├── scrapbook-page.js │ │ ├── scrapbook-page.land.minWH600.js │ │ ├── scrapbook-page.land.minWH600.xml │ │ ├── scrapbook-page.xml │ │ ├── scrapbookUpdate-page.css │ │ ├── scrapbookUpdate-page.js │ │ ├── scrapbookUpdate-page.xml │ │ ├── selectDate-page.js │ │ ├── selectDate-page.xml │ │ ├── selectGender-page.js │ │ └── selectGender-page.xml │ ├── package-lock.json │ └── package.json ├── Chapter12 └── PetScrapbook │ ├── .gitignore │ ├── .vscode │ ├── launch.json │ └── settings.json │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.css │ ├── app.js │ ├── data │ │ └── fileSystemService.js │ ├── images │ │ └── home.png │ ├── package.json │ └── views │ │ ├── home-page.js │ │ ├── home-page.xml │ │ ├── scrapbook-page.css │ │ ├── scrapbook-page.js │ │ ├── scrapbook-page.land.minWH600.js │ │ ├── scrapbook-page.land.minWH600.xml │ │ ├── scrapbook-page.xml │ │ ├── scrapbookUpdate-page.css │ │ ├── scrapbookUpdate-page.js │ │ ├── scrapbookUpdate-page.xml │ │ ├── selectDate-page.js │ │ ├── selectDate-page.xml │ │ ├── selectGender-page.js │ │ ├── selectGender-page.xml │ │ └── shared │ │ ├── scrapbook-detail │ │ └── scrapbook-detail.js │ │ └── scrapbook-list │ │ └── scrapbook-list.js │ ├── package-lock.json │ └── package.json ├── Chapter13 ├── PetScrapBook.png ├── PetScrapbook │ ├── .gitignore │ ├── .vscode │ │ ├── launch.json │ │ └── settings.json │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-120.png │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-57@3x.png │ │ │ │ │ ├── icon-60.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-72@3x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ ├── icon-76@3x.png │ │ │ │ │ ├── icon-83.5@2x.png │ │ │ │ │ ├── icon-Small.png │ │ │ │ │ ├── icon-Small@2x.png │ │ │ │ │ ├── icon-Small@3x.png │ │ │ │ │ └── icon.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── app.css │ │ ├── app.js │ │ ├── data │ │ │ └── fileSystemService.js │ │ ├── images │ │ │ └── home.png │ │ ├── package.json │ │ └── views │ │ │ ├── home-page.js │ │ │ ├── home-page.xml │ │ │ ├── scrapbook-page.css │ │ │ ├── scrapbook-page.js │ │ │ ├── scrapbook-page.land.minWH600.js │ │ │ ├── scrapbook-page.land.minWH600.xml │ │ │ ├── scrapbook-page.xml │ │ │ ├── scrapbookUpdate-page.css │ │ │ ├── scrapbookUpdate-page.js │ │ │ ├── scrapbookUpdate-page.xml │ │ │ ├── selectDate-page.js │ │ │ ├── selectDate-page.xml │ │ │ ├── selectGender-page.js │ │ │ ├── selectGender-page.xml │ │ │ └── shared │ │ │ ├── scrapbook-detail │ │ │ └── scrapbook-detail.js │ │ │ └── scrapbook-list │ │ │ └── scrapbook-list.js │ ├── package-lock.json │ └── package.json └── sample │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.css │ ├── app.js │ ├── bundle-config.js │ ├── main-page.js │ ├── main-page.xml │ ├── main-view-model.js │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter14 ├── PetScrapBook.png ├── PetScrapbook │ ├── .gitignore │ ├── .vscode │ │ ├── launch.json │ │ └── settings.json │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-120.png │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-57@3x.png │ │ │ │ │ ├── icon-60.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-72@3x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ ├── icon-76@3x.png │ │ │ │ │ ├── icon-83.5@2x.png │ │ │ │ │ ├── icon-Small.png │ │ │ │ │ ├── icon-Small@2x.png │ │ │ │ │ ├── icon-Small@3x.png │ │ │ │ │ └── icon.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── app.css │ │ ├── app.js │ │ ├── data │ │ │ └── fileSystemService.js │ │ ├── images │ │ │ └── home.png │ │ ├── package.json │ │ └── views │ │ │ ├── home-page.js │ │ │ ├── home-page.xml │ │ │ ├── scrapbook-page.css │ │ │ ├── scrapbook-page.js │ │ │ ├── scrapbook-page.land.minWH600.js │ │ │ ├── scrapbook-page.land.minWH600.xml │ │ │ ├── scrapbook-page.xml │ │ │ ├── scrapbookUpdate-page.css │ │ │ ├── scrapbookUpdate-page.js │ │ │ ├── scrapbookUpdate-page.xml │ │ │ ├── selectDate-page.js │ │ │ ├── selectDate-page.xml │ │ │ ├── selectGender-page.js │ │ │ ├── selectGender-page.xml │ │ │ └── shared │ │ │ ├── scrapbook-detail │ │ │ └── scrapbook-detail.js │ │ │ └── scrapbook-list │ │ │ └── scrapbook-list.js │ ├── package-lock.json │ └── package.json └── sample │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.css │ ├── app.js │ ├── bundle-config.js │ ├── main-page.js │ ├── main-page.xml │ ├── main-view-model.js │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter15 └── PetScrapbookAngular │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── README.md │ ├── app.component.js │ ├── app.component.ts │ ├── app.css │ ├── app.module.js │ ├── app.module.ts │ ├── images │ │ └── apple.jpg │ ├── main.aot.ts │ ├── main.js │ ├── main.ts │ └── package.json │ ├── package.json │ ├── references.d.ts │ └── tsconfig.json ├── Chapter16 └── PetScrapbookAngular │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── README.md │ ├── app.component.js │ ├── app.component.ts │ ├── app.css │ ├── app.module.js │ ├── app.module.ts │ ├── app.routing.js │ ├── app.routing.ts │ ├── images │ │ └── home.png │ ├── main.aot.ts │ ├── main.js │ ├── main.ts │ ├── package.json │ └── views │ │ ├── about │ │ ├── about.component.js │ │ ├── about.component.ts │ │ ├── about.css │ │ └── about.html │ │ ├── home │ │ ├── home.component.js │ │ ├── home.component.ts │ │ ├── home.css │ │ └── home.html │ │ └── list │ │ ├── list.component.js │ │ ├── list.component.ts │ │ ├── list.css │ │ └── list.html │ ├── package-lock.json │ ├── package.json │ ├── references.d.ts │ └── tsconfig.json ├── Chapter17 └── PetScrapbookAngular │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── README.md │ ├── app.component.js │ ├── app.component.ts │ ├── app.css │ ├── app.module.js │ ├── app.module.ts │ ├── app.routing.js │ ├── app.routing.ts │ ├── images │ │ └── home.png │ ├── main.aot.ts │ ├── main.js │ ├── main.ts │ ├── models │ │ ├── page.js │ │ └── page.ts │ ├── package.json │ ├── services │ │ ├── page.service.js │ │ └── page.service.ts │ └── views │ │ ├── about │ │ ├── about.component.js │ │ ├── about.component.ts │ │ ├── about.css │ │ └── about.html │ │ ├── detail │ │ ├── detail.component.js │ │ ├── detail.component.ts │ │ ├── detail.css │ │ └── detail.html │ │ ├── home │ │ ├── home.component.js │ │ ├── home.component.ts │ │ ├── home.css │ │ └── home.html │ │ ├── list │ │ ├── list.component.js │ │ ├── list.component.ts │ │ ├── list.css │ │ └── list.html │ │ └── modals │ │ ├── select-date │ │ ├── select-date.component.js │ │ ├── select-date.component.ts │ │ ├── select-date.css │ │ └── select-date.html │ │ └── select-gender │ │ ├── select-gender.component.js │ │ ├── select-gender.component.ts │ │ ├── select-gender.css │ │ └── select-gender.html │ ├── package-lock.json │ ├── package.json │ ├── references.d.ts │ └── tsconfig.json ├── Chapter2 └── HelloWorld │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.css │ ├── app.js │ ├── bundle-config.js │ ├── main-page.js │ ├── main-page.xml │ ├── main-view-model.js │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter3 ├── button-example-platform-specific-2 │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.android.js │ │ ├── main-page.common.js │ │ ├── main-page.ios.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json ├── button-example-platform-specific │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.android.xml │ │ ├── main-page.ios.xml │ │ ├── main-page.js │ │ ├── package.json │ │ └── references.d.ts │ └── package.json ├── button-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json ├── myapp │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── app.css │ │ ├── app.js │ │ ├── bundle-config.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── main-view-model.js │ │ ├── package.json │ │ └── references.d.ts │ ├── package-lock.json │ └── package.json ├── orientation │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.land.xml │ │ ├── main-page.port.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json ├── screen-size │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.minWH600.xml │ │ ├── main-page.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json └── style-guide │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-667h@2x.png │ │ │ ├── Default-736h@3x.png │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ ├── Default-Landscape.png │ │ │ ├── Default-Landscape@2x.png │ │ │ ├── Default-Landscape@3x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Icon-Small-50.png │ │ │ ├── Icon-Small-50@2x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Info.plist │ │ │ ├── build.xcconfig │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-60.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ ├── icon.png │ │ │ └── icon@2x.png │ ├── app.css │ ├── app.js │ ├── favorites │ │ ├── call │ │ │ ├── call.css │ │ │ ├── call.js │ │ │ └── call.xml │ │ ├── detail │ │ │ ├── detail.css │ │ │ ├── detail.js │ │ │ └── detail.xml │ │ └── list │ │ │ ├── list.css │ │ │ ├── list.js │ │ │ └── list.xml │ ├── main-page.js │ ├── main-page.xml │ ├── main-view-model.js │ ├── package.json │ ├── references.d.ts │ └── zzzcontact-us │ │ ├── contact-us.css │ │ ├── contact-us.js │ │ └── contact-us.xml │ └── package.json ├── Chapter4 └── Tekmo │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.css │ ├── app.js │ ├── bundle-config.js │ ├── main-page.js │ ├── main-page.xml │ ├── package.json │ ├── references.d.ts │ └── views │ │ ├── about │ │ └── about.xml │ │ └── home │ │ ├── home.js │ │ └── home.xml │ ├── package-lock.json │ └── package.json ├── Chapter5 ├── Tekmo │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── game.png │ │ │ │ ├── game@2x.png │ │ │ │ ├── game@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── LICENSE │ │ ├── app.css │ │ ├── app.js │ │ ├── package.json │ │ └── views │ │ │ ├── about │ │ │ └── about.xml │ │ │ ├── contact-us │ │ │ ├── contact-us.js │ │ │ └── contact-us.xml │ │ │ └── home │ │ │ ├── home.js │ │ │ └── home.xml │ └── package.json ├── grid-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── auto-sizing.xml │ │ ├── complex.xml │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ ├── perc-sizing-two.xml │ │ ├── perc-sizing.xml │ │ ├── pixel-sizing.xml │ │ └── references.d.ts │ └── package.json ├── hint-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── app.css │ │ ├── app.js │ │ ├── hints │ │ │ ├── hints.css │ │ │ └── hints.xml │ │ ├── main-page.css │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json ├── news-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Icon-Small-50.png │ │ │ │ ├── Icon-Small-50@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── build.xcconfig │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-60.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon.png │ │ │ │ └── icon@2x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json └── stack-layout │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-667h@2x.png │ │ │ ├── Default-736h@3x.png │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ ├── Default-Landscape.png │ │ │ ├── Default-Landscape@2x.png │ │ │ ├── Default-Landscape@3x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Icon-Small-50.png │ │ │ ├── Icon-Small-50@2x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Info.plist │ │ │ ├── build.xcconfig │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-60.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ ├── icon.png │ │ │ └── icon@2x.png │ ├── app.css │ ├── app.js │ ├── main-page.js │ ├── main-page.xml │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter6 └── Tekmo │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ │ └── icon.png │ │ │ └── drawable-nodpi │ │ │ │ └── splashscreen.9.png │ │ └── iOS │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-667h@2x.png │ │ │ ├── Default-736h@3x.png │ │ │ ├── Default-Landscape-568h@2x.png │ │ │ ├── Default-Landscape-667h@2x.png │ │ │ ├── Default-Landscape.png │ │ │ ├── Default-Landscape@2x.png │ │ │ ├── Default-Landscape@3x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Icon-Small-50.png │ │ │ ├── Icon-Small-50@2x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Info.plist │ │ │ ├── build.xcconfig │ │ │ ├── couchcommander.png │ │ │ ├── couchcommander@2x.png │ │ │ ├── couchcommander@3x.png │ │ │ ├── game.png │ │ │ ├── game@2x.png │ │ │ ├── game@3x.png │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-60.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ ├── icon.png │ │ │ ├── icon@2x.png │ │ │ ├── mummymadness.png │ │ │ ├── mummymadness@2x.png │ │ │ ├── mummymadness@3x.png │ │ │ ├── pyrorobots.png │ │ │ ├── pyrorobots@2x.png │ │ │ ├── pyrorobots@3x.png │ │ │ ├── rescuepups.png │ │ │ ├── rescuepups@2x.png │ │ │ ├── rescuepups@3x.png │ │ │ ├── supermarshmallowman.png │ │ │ ├── supermarshmallowman@2x.png │ │ │ ├── supermarshmallowman@3x.png │ │ │ ├── vampirevalkyrie.png │ │ │ ├── vampirevalkyrie@2x.png │ │ │ └── vampirevalkyrie@3x.png │ ├── LICENSE │ ├── app.css │ ├── app.js │ ├── package.json │ └── views │ │ ├── about │ │ └── about.xml │ │ ├── contact-us │ │ ├── contact-us.js │ │ └── contact-us.xml │ │ ├── home │ │ ├── home.js │ │ └── home.xml │ │ └── products │ │ ├── products-old.xml │ │ └── products.xml │ ├── package-lock.json │ └── package.json ├── Chapter7 ├── Tekmo │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── couch-commander.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── mummy-madness.png │ │ │ │ │ ├── pyro-robots.png │ │ │ │ │ ├── rescue-pups.png │ │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ │ └── vampire-valkyrie.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── couch-commander.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── mummy-madness.png │ │ │ │ │ ├── pyro-robots.png │ │ │ │ │ ├── rescue-pups.png │ │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ │ └── vampire-valkyrie.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── couch-commander.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── mummy-madness.png │ │ │ │ │ ├── pyro-robots.png │ │ │ │ │ ├── rescue-pups.png │ │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ │ └── vampire-valkyrie.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ ├── splash_screen.xml │ │ │ │ │ └── splashscreen.9.png │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── couch-commander.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── mummy-madness.png │ │ │ │ │ ├── pyro-robots.png │ │ │ │ │ ├── rescue-pups.png │ │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ │ └── vampire-valkyrie.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── couch-commander.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── mummy-madness.png │ │ │ │ │ ├── pyro-robots.png │ │ │ │ │ ├── rescue-pups.png │ │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ │ └── vampire-valkyrie.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── couch-commander.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── mummy-madness.png │ │ │ │ │ ├── pyro-robots.png │ │ │ │ │ ├── rescue-pups.png │ │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ │ └── vampire-valkyrie.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ ├── build.xcconfig │ │ │ │ ├── couch-commander.png │ │ │ │ ├── couch-commander@2x.png │ │ │ │ ├── couch-commander@3x.png │ │ │ │ ├── mummy-madness.png │ │ │ │ ├── mummy-madness@2x.png │ │ │ │ ├── mummy-madness@3x.png │ │ │ │ ├── pyro-robots.png │ │ │ │ ├── pyro-robots@2x.png │ │ │ │ ├── pyro-robots@3x.png │ │ │ │ ├── rescue-pups.png │ │ │ │ ├── rescue-pups@2x.png │ │ │ │ ├── rescue-pups@3x.png │ │ │ │ ├── super-marshmallow-man.png │ │ │ │ ├── super-marshmallow-man@2x.png │ │ │ │ ├── super-marshmallow-man@3x.png │ │ │ │ ├── vampire-valkyrie.png │ │ │ │ ├── vampire-valkyrie@2x.png │ │ │ │ └── vampire-valkyrie@3x.png │ │ ├── app.css │ │ ├── app.js │ │ ├── images │ │ │ ├── couch-commander.png │ │ │ ├── high-res-game-images.zip │ │ │ ├── mummy-madness.png │ │ │ ├── pyro-robots.png │ │ │ ├── rescue-pups.png │ │ │ ├── super-marshmallow-man.png │ │ │ └── vampire-valkyrie.png │ │ ├── package.json │ │ ├── references.d.ts │ │ └── views │ │ │ ├── about │ │ │ └── about.xml │ │ │ ├── contact-us │ │ │ ├── contact-us.js │ │ │ └── contact-us.xml │ │ │ ├── home │ │ │ ├── home.js │ │ │ └── home.xml │ │ │ └── products │ │ │ └── products.xml │ ├── package-lock.json │ └── package.json └── dpi-example │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.js │ ├── main-page.xml │ ├── ns-logo.png │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter8 ├── PetScrapbook │ ├── .gitignore │ ├── .vscode │ │ └── launch.json │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── LICENSE │ │ ├── app.css │ │ ├── app.js │ │ ├── images │ │ │ └── home.png │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── views │ │ │ ├── home-page.css │ │ │ ├── home-page.js │ │ │ ├── home-page.xml │ │ │ ├── scrapbook-page.css │ │ │ ├── scrapbook-page.js │ │ │ ├── scrapbook-page.xml │ │ │ ├── scrapbookUpdate-page.css │ │ │ ├── scrapbookUpdate-page.js │ │ │ └── scrapbookUpdate-page.xml │ ├── package-lock.json │ └── package.json ├── action-bar-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── main-view-model.js │ │ ├── package.json │ │ └── references.d.ts │ └── package.json ├── filesystem-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── LICENSE │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ └── package.json │ └── package.json ├── listpicker-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── LICENSE │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ └── package.json │ └── package.json └── observable-example │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── app.css │ ├── app.js │ ├── main-page.js │ ├── main-page.xml │ ├── package.json │ └── references.d.ts │ └── package.json ├── Chapter9 ├── PetScrapbook │ ├── .gitignore │ ├── .vscode │ │ └── launch.json │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ └── icon.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── icon.png │ │ │ │ └── drawable-nodpi │ │ │ │ │ └── splashscreen.9.png │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── LICENSE │ │ ├── app.css │ │ ├── app.js │ │ ├── data │ │ │ └── fileSystemService.js │ │ ├── images │ │ │ └── home.png │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── views │ │ │ ├── home-page.css │ │ │ ├── home-page.js │ │ │ ├── home-page.xml │ │ │ ├── scrapbook-page.css │ │ │ ├── scrapbook-page.js │ │ │ ├── scrapbook-page.xml │ │ │ ├── scrapbookUpdate-page.css │ │ │ ├── scrapbookUpdate-page.js │ │ │ └── scrapbookUpdate-page.xml │ ├── package-lock.json │ └── package.json ├── camera-example │ ├── .gitignore │ ├── app │ │ ├── App_Resources │ │ │ ├── Android │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── app.gradle │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── background.png │ │ │ │ │ ├── icon.png │ │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ └── iOS │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── icon-29.png │ │ │ │ │ ├── icon-29@2x.png │ │ │ │ │ ├── icon-29@3x.png │ │ │ │ │ ├── icon-40.png │ │ │ │ │ ├── icon-40@2x.png │ │ │ │ │ ├── icon-40@3x.png │ │ │ │ │ ├── icon-50.png │ │ │ │ │ ├── icon-50@2x.png │ │ │ │ │ ├── icon-57.png │ │ │ │ │ ├── icon-57@2x.png │ │ │ │ │ ├── icon-60@2x.png │ │ │ │ │ ├── icon-60@3x.png │ │ │ │ │ ├── icon-72.png │ │ │ │ │ ├── icon-72@2x.png │ │ │ │ │ ├── icon-76.png │ │ │ │ │ ├── icon-76@2x.png │ │ │ │ │ └── icon-83.5@2x.png │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Default-568h@2x.png │ │ │ │ │ ├── Default-667h@2x.png │ │ │ │ │ ├── Default-736h@3x.png │ │ │ │ │ ├── Default-Landscape.png │ │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ │ ├── Default-Portrait.png │ │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ │ ├── Default.png │ │ │ │ │ └── Default@2x.png │ │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── build.xcconfig │ │ ├── app.css │ │ ├── app.js │ │ ├── main-page.js │ │ ├── main-page.xml │ │ ├── package.json │ │ └── references.d.ts │ └── package.json └── filesystem-example │ ├── .gitignore │ ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── app.gradle │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-nodpi │ │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ └── build.xcconfig │ ├── LICENSE │ ├── app.css │ ├── app.js │ ├── main-page.js │ ├── main-page.xml │ └── package.json │ └── package.json ├── LICENSE ├── PetScrapBook.png ├── README.md ├── TheNativeScriptBookv2.0.epub ├── TheNativeScriptBookv2.0.pdf └── background.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | hooks 2 | lib 3 | platforms 4 | node_modules 5 | .DS_Store -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/.gitignore: -------------------------------------------------------------------------------- 1 | hooks 2 | lib 3 | platforms 4 | node_modules 5 | .DS_Store -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/App_Resources/Android/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/AppendixB/PetScrapbook/app/App_Resources/Android/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/App_Resources/Android/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/AppendixB/PetScrapbook/app/App_Resources/Android/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/App_Resources/iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/images/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/AppendixB/PetScrapbook/app/images/home.png -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/main-page.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/AppendixB/PetScrapbook/app/main-page.js -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/main-page.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/views/home-page.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/AppendixB/PetScrapbook/app/views/home-page.css -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/views/scrapbook-page.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mikebranstein/TheNativeScriptBook/95fd48d55329e764be5ba2074d1850094826ddc2/AppendixB/PetScrapbook/app/views/scrapbook-page.css -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/views/scrapbookUpdate-page.css: -------------------------------------------------------------------------------- 1 | 2 | datepicker { 3 | height: 100px; 4 | } 5 | 6 | listpicker { 7 | height: 100px; 8 | } -------------------------------------------------------------------------------- /AppendixB/PetScrapbook/app/views/shared/simple-label/simple-label.xml: -------------------------------------------------------------------------------- 1 |