{"product_id":"beginning-flutter-a-hands-on-guide-to-app-development-paperback-softback-9781119550822","title":"Beginning Flutter; A Hands On Guide to App Development (Paperback \/ softback) 9781119550822","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eBeginning Flutter\u003c\/font\u003e\u003cbr\u003e\r\n\u003cfont size=\"5\"\u003eA Hands On Guide to App Development\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\u003cp\u003e\u003cfont size=\"4\"\u003eMarco L. Napoli (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781119550822, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003ePaperback \/ softback, published 15 November 2019\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e528 pages\u003cbr\u003e22.6 x 18.3 x 3 cm, 0.68 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003e\u003cp\u003e\u003cb\u003eBuild your first app in Flutter—no experience necessary!\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eBeginning Flutter: A Hands-On Guide to App Development \u003c\/i\u003eis the essential resource for both experienced and novice developers interested in getting started with Flutter—the powerful new mobile software development kit. With Flutter, you can quickly and easily develop beautiful, powerful apps for both Android and iOS, without the need to learn multiple programming languages or juggle more than one code base. This book walks you through the process step by step.\u003c\/p\u003e \u003cp\u003eIn Flutter, you’ll be working with Dart, the programming language of choice for top app developers. Even if you’re just starting out in your development career, you can learn Dart quickly, eliminating the barrier to entry for building apps. This is a more efficient way to develop and maintain cross-platform mobile apps, and this book makes the process even easier with a teach-by-example approach.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eFocus on providing quality content by eliminating the need to switch between multiple coding languages\u003c\/li\u003e \u003cli\u003eLearn the ins and outs of Flutter, including all the frameworks, widgets, and tools available to developers\u003c\/li\u003e \u003cli\u003eAccelerate your app development pace, keeping all the code for your cross-platform app in a single code base\u003c\/li\u003e \u003c\/ul\u003e \u003cul\u003e \u003cli\u003eLeapfrog barriers to entry to the mobile software market, creating your first app with no experience necessary\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eThe Flutter community is growing rapidly and transforming the way Android and iOS apps get made. \u003ci\u003eBeginning Flutter\u003c\/i\u003e allows you to get on board with the latest app development technology, giving your mobile development career a big head start.\u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eIntroduction xxi\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I: The Foundations of Flutter Programming\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Introducing Flutter and Getting Started 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing Flutter 4\u003c\/p\u003e \u003cp\u003eDefining Widgets and Elements 5\u003c\/p\u003e \u003cp\u003eUnderstanding Widget Lifecycle Events 5\u003c\/p\u003e \u003cp\u003eThe StatelessWidget Lifecycle 6\u003c\/p\u003e \u003cp\u003eThe StatefulWidget Lifecycle 6\u003c\/p\u003e \u003cp\u003eUnderstanding the Widget Tree and the Element Tree 8\u003c\/p\u003e \u003cp\u003eStateless Widget and Element Trees 9\u003c\/p\u003e \u003cp\u003eStateful Widget and Element Trees 10\u003c\/p\u003e \u003cp\u003eInstalling the Flutter SDK 13\u003c\/p\u003e \u003cp\u003eInstalling on macOS 13\u003c\/p\u003e \u003cp\u003eSystem Requirements 13\u003c\/p\u003e \u003cp\u003eGet the Flutter SDK 13\u003c\/p\u003e \u003cp\u003eCheck for Dependencies 14\u003c\/p\u003e \u003cp\u003eiOS Setup: Install Xcode 14\u003c\/p\u003e \u003cp\u003eAndroid Setup: Install Android Studio 14\u003c\/p\u003e \u003cp\u003eSet Up the Android Emulator 15\u003c\/p\u003e \u003cp\u003eInstalling on Windows 15\u003c\/p\u003e \u003cp\u003eSystem Requirements 15\u003c\/p\u003e \u003cp\u003eGet the Flutter SDK 16\u003c\/p\u003e \u003cp\u003eCheck for Dependencies 16\u003c\/p\u003e \u003cp\u003eInstall Android Studio 16\u003c\/p\u003e \u003cp\u003eSet Up the Android Emulator 17\u003c\/p\u003e \u003cp\u003eInstalling on Linux 17\u003c\/p\u003e \u003cp\u003eSystem Requirements 17\u003c\/p\u003e \u003cp\u003eGet the Flutter SDK 18\u003c\/p\u003e \u003cp\u003eCheck for Dependencies 19\u003c\/p\u003e \u003cp\u003eInstall Android Studio 19\u003c\/p\u003e \u003cp\u003eSet Up the Android Emulator 19\u003c\/p\u003e \u003cp\u003eConfiguring the Android Studio Editor 20\u003c\/p\u003e \u003cp\u003eSummary 20\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Creating a Hello World App 25\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSetting Up the Project 25\u003c\/p\u003e \u003cp\u003eUsing Hot Reload 30\u003c\/p\u003e \u003cp\u003eUsing Themes to Style Your App 33\u003c\/p\u003e \u003cp\u003eUsing a Global App Theme 33\u003c\/p\u003e \u003cp\u003eUsing a Theme for Part of an App 35\u003c\/p\u003e \u003cp\u003eUnderstanding Stateless and Stateful Widgets 37\u003c\/p\u003e \u003cp\u003eUsing External Packages 38\u003c\/p\u003e \u003cp\u003eSearching for Packages 39\u003c\/p\u003e \u003cp\u003eUsing Packages 40\u003c\/p\u003e \u003cp\u003eSummary 41\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Learning Dart Basics 43\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy Use Dart? 43\u003c\/p\u003e \u003cp\u003eCommenting Code 44\u003c\/p\u003e \u003cp\u003eRunning the main() Entry Point 45\u003c\/p\u003e \u003cp\u003eReferencing Variables 45\u003c\/p\u003e \u003cp\u003eDeclaring Variables 46\u003c\/p\u003e \u003cp\u003eNumbers 47\u003c\/p\u003e \u003cp\u003eStrings 47\u003c\/p\u003e \u003cp\u003eBooleans 47\u003c\/p\u003e \u003cp\u003eLists 47\u003c\/p\u003e \u003cp\u003eMaps 48\u003c\/p\u003e \u003cp\u003eRunes 48\u003c\/p\u003e \u003cp\u003eUsing Operators 49\u003c\/p\u003e \u003cp\u003eUsing Flow Statements 51\u003c\/p\u003e \u003cp\u003eif and else 51\u003c\/p\u003e \u003cp\u003eternary operator 52\u003c\/p\u003e \u003cp\u003efor Loops 52\u003c\/p\u003e \u003cp\u003ewhile and do-while 53\u003c\/p\u003e \u003cp\u003ewhile and break 54\u003c\/p\u003e \u003cp\u003econtinue 54\u003c\/p\u003e \u003cp\u003eswitch and case 55\u003c\/p\u003e \u003cp\u003eUsing Functions 55\u003c\/p\u003e \u003cp\u003eImport Packages 57\u003c\/p\u003e \u003cp\u003eUsing Classes 57\u003c\/p\u003e \u003cp\u003eClass Inheritance 60\u003c\/p\u003e \u003cp\u003eClass Mixins 60\u003c\/p\u003e \u003cp\u003eImplementing Asynchronous Programming 61\u003c\/p\u003e \u003cp\u003eSummary 62\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Creating a Starter Project Template 65\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating and Organizing Folders and Files 65\u003c\/p\u003e \u003cp\u003eStructuring Widgets 69\u003c\/p\u003e \u003cp\u003eSummary 74\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Understanding the Widget Tree 77\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroduction to Widgets 77\u003c\/p\u003e \u003cp\u003eBuilding the Full Widget Tree 79\u003c\/p\u003e \u003cp\u003eBuilding a Shallow Widget Tree 85\u003c\/p\u003e \u003cp\u003eRefactoring with a Constant 86\u003c\/p\u003e \u003cp\u003eRefactoring with a Method 86\u003c\/p\u003e \u003cp\u003eRefactoring with a Widget Class 91\u003c\/p\u003e \u003cp\u003eSummary 99\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II: Intermediate Flutter: Fleshing Out an App\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Using Common Widgets 103\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing Basic Widgets 103\u003c\/p\u003e \u003cp\u003eSafeArea 107\u003c\/p\u003e \u003cp\u003eContainer 108\u003c\/p\u003e \u003cp\u003eText 112\u003c\/p\u003e \u003cp\u003eRichText 112\u003c\/p\u003e \u003cp\u003eColumn 114\u003c\/p\u003e \u003cp\u003eRow 115\u003c\/p\u003e \u003cp\u003eColumn and Row Nesting 115\u003c\/p\u003e \u003cp\u003eButtons 119\u003c\/p\u003e \u003cp\u003eFloatingActionButton 119\u003c\/p\u003e \u003cp\u003eFlatButton 121\u003c\/p\u003e \u003cp\u003eRaisedButton 121\u003c\/p\u003e \u003cp\u003eIconButton 122\u003c\/p\u003e \u003cp\u003ePopupMenuButton 123\u003c\/p\u003e \u003cp\u003eButtonBar 126\u003c\/p\u003e \u003cp\u003eUsing Images and Icons 130\u003c\/p\u003e \u003cp\u003eAssetBundle 130\u003c\/p\u003e \u003cp\u003eImage 131\u003c\/p\u003e \u003cp\u003eIcon 132\u003c\/p\u003e \u003cp\u003eUsing Decorators 135\u003c\/p\u003e \u003cp\u003eUsing the Form Widget to Validate Text Fields 139\u003c\/p\u003e \u003cp\u003eChecking Orientation 143\u003c\/p\u003e \u003cp\u003eSummary 149\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Adding Animation to an App 151\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing AnimatedContainer 152\u003c\/p\u003e \u003cp\u003eUsing AnimatedCrossFade 155\u003c\/p\u003e \u003cp\u003eUsing AnimatedOpacity 160\u003c\/p\u003e \u003cp\u003eUsing AnimationController 164\u003c\/p\u003e \u003cp\u003eUsing Staggered Animations 170\u003c\/p\u003e \u003cp\u003eSummary 175\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Creating an App’s Navigation 177\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing the Navigator 178\u003c\/p\u003e \u003cp\u003eUsing the Named Navigator Route 188\u003c\/p\u003e \u003cp\u003eUsing Hero Animation 188\u003c\/p\u003e \u003cp\u003eUsing the BottomNavigationBar 193\u003c\/p\u003e \u003cp\u003eUsing the BottomAppBar 199\u003c\/p\u003e \u003cp\u003eUsing the TabBar and TabBarView 203\u003c\/p\u003e \u003cp\u003eUsing the Drawer and ListView 207\u003c\/p\u003e \u003cp\u003eSummary 217\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Creating Scrolling Lists and Effects 221\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing the Card 222\u003c\/p\u003e \u003cp\u003eUsing the ListView and ListTile 223\u003c\/p\u003e \u003cp\u003eUsing the GridView 230\u003c\/p\u003e \u003cp\u003eUsing the GridView.count 230\u003c\/p\u003e \u003cp\u003eUsing the GridView.extent 232\u003c\/p\u003e \u003cp\u003eUsing the GridView.builder 233\u003c\/p\u003e \u003cp\u003eUsing the Stack 237\u003c\/p\u003e \u003cp\u003eCustomizing the CustomScrollView with Slivers 243\u003c\/p\u003e \u003cp\u003eSummary 250\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Building Layouts 253\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA High-Level View of the Layout 253\u003c\/p\u003e \u003cp\u003eWeather Section Layout 256\u003c\/p\u003e \u003cp\u003eTags Layout 256\u003c\/p\u003e \u003cp\u003eFooter Images Layout 257\u003c\/p\u003e \u003cp\u003eFinal Layout 257\u003c\/p\u003e \u003cp\u003eCreating the Layout 257\u003c\/p\u003e \u003cp\u003eSummary 265\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Applying Interactivity 267\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSetting Up GestureDetector: The Basics 267\u003c\/p\u003e \u003cp\u003eImplementing the Draggable and Dragtarget Widgets 275\u003c\/p\u003e \u003cp\u003eUsing the GestureDetector for Moving and Scaling 278\u003c\/p\u003e \u003cp\u003eUsing the InkWell and InkResponse Gestures 289\u003c\/p\u003e \u003cp\u003eUsing the Dismissible Widget 296\u003c\/p\u003e \u003cp\u003eSummary 303\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Writing Platform-Native Code 307\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Platform Channels 307\u003c\/p\u003e \u003cp\u003eImplementing the Client Platform Channel App 309\u003c\/p\u003e \u003cp\u003eImplementing the iOS Host Platform Channel 313\u003c\/p\u003e \u003cp\u003eImplementing the Android Host Platform Channel 318\u003c\/p\u003e \u003cp\u003eSummary 322\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III: Creating Production-Ready Apps\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Saving Data with Local Persistence 327\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the JSON Format 328\u003c\/p\u003e \u003cp\u003eUsing Database Classes to Write, Read, and Serialize JSON 330\u003c\/p\u003e \u003cp\u003eFormatting Dates 331\u003c\/p\u003e \u003cp\u003eSorting a List of Dates 332\u003c\/p\u003e \u003cp\u003eRetrieving Data with the FutureBuilder 333\u003c\/p\u003e \u003cp\u003eBuilding the Journal App 335\u003c\/p\u003e \u003cp\u003eAdding the Journal Database Classes 339\u003c\/p\u003e \u003cp\u003eAdding the Journal Entry Page 344\u003c\/p\u003e \u003cp\u003eFinishing the Journal Home Page 359\u003c\/p\u003e \u003cp\u003eSummary 371\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Adding The Firebase and Firestore Backend 375\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat are Firebase and Cloud Firestore? 376\u003c\/p\u003e \u003cp\u003eStructuring and Data Modeling Cloud Firestore 377\u003c\/p\u003e \u003cp\u003eViewing Firebase Authentication Capabilities 380\u003c\/p\u003e \u003cp\u003eViewing Cloud Firestore Security Rules 381\u003c\/p\u003e \u003cp\u003eConfiguring the Firebase Project 383\u003c\/p\u003e \u003cp\u003eAdding a Cloud Firestore Database and Implementing Security 391\u003c\/p\u003e \u003cp\u003eBuilding the Client Journal App 395\u003c\/p\u003e \u003cp\u003eAdding Authentication and Cloud Firestore Packages to the Client App 395\u003c\/p\u003e \u003cp\u003eAdding Basic Layout to the Client App 403\u003c\/p\u003e \u003cp\u003eAdding Classes to the Client App 406\u003c\/p\u003e \u003cp\u003eSummary 409\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Adding State Management to the Firestore Client App 411\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eImplementing State Management 412\u003c\/p\u003e \u003cp\u003eImplementing an Abstract Class 414\u003c\/p\u003e \u003cp\u003eImplementing the InheritedWidget 415\u003c\/p\u003e \u003cp\u003eImplementing the Model Class 416\u003c\/p\u003e \u003cp\u003eImplementing the Service Class 417\u003c\/p\u003e \u003cp\u003eImplementing the BLoC Pattern 417\u003c\/p\u003e \u003cp\u003eImplementing StreamController, Streams, Sinks, and StreamBuilder 419\u003c\/p\u003e \u003cp\u003eBuilding State Management 421\u003c\/p\u003e \u003cp\u003eAdding the Journal Model Class 422\u003c\/p\u003e \u003cp\u003eAdding the Service Classes 424\u003c\/p\u003e \u003cp\u003eAdding the Validators Class 430\u003c\/p\u003e \u003cp\u003eAdding the BLoC Pattern 432\u003c\/p\u003e \u003cp\u003eAdding the AuthenticationBloc 432\u003c\/p\u003e \u003cp\u003eAdding the AuthenticationBlocProvider 435\u003c\/p\u003e \u003cp\u003eAdding the LoginBloc 436\u003c\/p\u003e \u003cp\u003eAdding the HomeBloc 441\u003c\/p\u003e \u003cp\u003eAdding the HomeBlocProvider 443\u003c\/p\u003e \u003cp\u003eAdding the JournalEditBloc 444\u003c\/p\u003e \u003cp\u003eAdding the JournalEditBlocProvider 447\u003c\/p\u003e \u003cp\u003eSummary 449\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Adding Blocs to Firestore Client App Pages 453\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdding the Login Page 454\u003c\/p\u003e \u003cp\u003eModifying the Main Page 460\u003c\/p\u003e \u003cp\u003eModifying the Home Page 465\u003c\/p\u003e \u003cp\u003eAdding the Edit Journal Page 472\u003c\/p\u003e \u003cp\u003eSummary 484\u003c\/p\u003e \u003cp\u003eIndex 489\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Business applications [\u003ca title=\"See our other books on Business applications\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Business%20applications%20%5BUF%5D%22\"\u003eUF\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wrox","offers":[{"title":"Brand New","offer_id":52472099373336,"sku":"9781119550822","price":21.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781119550822.jpg?v=1785716918","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/beginning-flutter-a-hands-on-guide-to-app-development-paperback-softback-9781119550822","provider":"Freshly Printed Books","version":"1.0","type":"link"}