Payne | Beginning App Development with Flutter | E-Book | www.sack.de
E-Book

E-Book, Englisch, 322 Seiten, eBook

Payne Beginning App Development with Flutter

Create Cross-Platform Mobile Apps
1. Auflage 2019
ISBN: 978-1-4842-5181-2
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark

Create Cross-Platform Mobile Apps

E-Book, Englisch, 322 Seiten, eBook

ISBN: 978-1-4842-5181-2
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark



Create iOS and Android apps with Flutter using just one codebase.  App development on multiple platforms has historically been difficult and complex. This book breaks down complex concepts and tasks into easily digestible segments with examples, pictures, and hands-on labs with starters and solutions. 

In doing so, you'll develop a basic understanding of the Dart programming language; the entire Flutter development toolchain; the differences between stateful and stateless widgets; and a working knowledge of the architecture of apps. All the most important parts of app development with Flutter are covered in this book. Work with themes and styles. Develop custom widgets. Teach your app to respond to gestures like taps, swipes, and pinches. Design, create and control the layout of your app. Create tools to handle form data entry from users. And ultimately create killer multiscreen apps with navigation, menus, and tabs.

Flutter is Google's new framework for creating mobile apps that run on iOS and Android phones both.You had to be a super-developer to write apps for iOS or Android alone. But writing for both? Forget about it! You had to be familiar with Swift, Java/Kotlin, Xcode, Eclipse, and a bunch of other technologies simultaneously. Beginning App Development with Flutter simplifies the entire process.

What You'll Learn

  • Get the most out of great Flutter widgets

  • Create custom widgets, both stateless and stateful
  • Exercise expert control over your Flutter layouts
  • Make your app respond to gestures like swiping, pinching and tapping
  • Initiate async Ajax calls to RESTful APIs — including Google Firebase!
Who This Book Is ForDevelopers who have coded in Java, C#, C++, or any similar language. It brings app development within the reach of younger developers, so STEM groups are likely to pick up the technology. Managers, product owners, and business analysts need to understand Flutter's capabilities.
Payne Beginning App Development with Flutter jetzt bestellen!

Zielgruppe


Professional/practitioner


Autoren/Hrsg.


Weitere Infos & Material


Section: Introduction to Flutter 1.  Hello FlutterChapter Synopsis: Setting the stage for the book. Give the reader a feel for why they're here. What problems does Flutter solve? Why the boss would choose Flutter versus some other solution.What is covered in this bookBrief chapter overview and roadmapWhat is notcovered and where to find answers to your questionsThe Dart language itself - There's an overview and cheatsheet in the AppendixDeploying to a storeDevice-specific programmingWho is this book for?Who's a good fit and who is notWhere to go to satisfy the prerequisitesWhat is Flutter?Problems it solvesWhere it came from - Brief history and originsCompetitors to FlutterWhat other options are available? What might you use if not Flutter? Advantages and disadvantages of Flutter vs the other optionsReact NativeProgressive Web AppsWebView solutions (Ionic, etc.)Truly native coding (Swift, Objective-C, Java, Kotlin)Characteristics of Flutter  - Big picture things to keep in mind to successfully code in FlutterThis ain't the web!Imperative UIYou're writing using DartEverything is a widget (Define widgets and explain the big win of widgets)Widgets compositionYou have to watch state 2.  How do I develop in Flutter?Chapter synopsis: Flutter has a unique set of tools but it isn't always straightforward what each tool does and how to use it. This chapter guides the reader through the process of write-debug-test-run.Installing Flutter tooling - A very brief and high-level coverage of where to get the tools. It should be brief because the details are likely to change regularly.Overview of each toolThe emulatorsiOS simulator through XCodeAndroid emulator through Android StudioThe IDE - Visual Studio CodeAlternatives: Android Studio, Atom, jBoss, etc.The Flutter CLIHow to check and repair your toolchain through Flutter doctorHow to scaffold a new appHow to run in an emulatorWhen errors occurHow to debugprint() statementFlutter inspector or DartCode VS Code pluginWatch mode Section: Foundational Flutter 3.  Everything is widgetsChapter Synopsis: Widgets are super-important to Flutter since they're the building blocks of every Flutter app. We show why and provide the motivation and basic tools to create widgets.Reminder about widgetsCompositionDefine compositionProvide real-world examplesWhy it is such a winComparison with Web Components, React, Angular, and VueThe categories of Flutter UI widgetsFor each category, we'll explain why we'd use them, what they have in common, and give one or two examples of the most fundamental and needed widgets in each category.Value WidgetsExample: Text widgetStyle WidgetsExample: Center widgetComposition WidgetsExample: Container widgetNavigation WidgetsExample: AppBar widgetBringing the chapter together: Composing them in a custom widgetStateful vs. Stateless widgetsWhat is state?How to create a custom stateless widget (Note: creating a stateful widget is complex so we're saving it for the State chapter). 4.  Value WidgetsChapter Synopsis: Deep dive into widgets that hold a value, especially user-input fieldsWhat's the pubspec.yaml file?Text widgetListView widgetListView for a small listListTitleUsing a ListView.builder() for memory efficiencyImage widgetInput widgetsTextField widgetForm widgetTextFormField widget (Yes, it's different)CheckBox widgetRadioButton widgetDropDownButton and DropDownMenuItem widgetsValidating input data 5.  Responding to GesturesChapter Synopsis: How to make your program do things in response to user actions like taps, swiping, pinching, and the likeThe button familyRaisedButton widgetFlatButton widgetIconButton widgetFloatingActionButton widgetCupertinoButtonCustom gestures on custom widgetsStep 1 - Decide on your gesturesStep 2 - Create your custom widgetStep 3 - Add a GestureDetector widgetStep 4 - Associate your gesture with a methodExample - LongPressExample - PinchingExample - SwipingCompeting gesturesThe GestureArena and conflict resolution 6.  Laying out your widgetsChapter Synopsis: How to lay out a view, controlling how widgets are placed side-by-side and/or above-and-below, defining the amount of space between widgets, and aligning them vertically and horizontallyHow sizing widgets worksBox constraintsBox size vs widget sizeWhat's the difference and when each applyWidth, height, minwidth, maxwidth, minheight, maxheightLayout properties that apply to most widgetsMarginBorderPaddingEdgeInsets.all(), EdgeInsets.only()PositionAlignmentHow to apply these things to widgets that don't support themLaying out the whole sceneMaterialApp and Scaffold widgetsAppBar widgetSnackBar widgetSnackBarActionWidgets that hold multiple childrenRow and Column widgetsAligning inside themScrollView widgetsTo make view scrollableExpanded widgetFor when the contents are larger than the screenGridView widgetFor children across and then down. Like PinterestStack widgetFor allowing widgets to overlay each other in the z-directionWidgets that hold a single childContainer widgetExpanded widgetCenter widgetSafeArea widgetCard widget 7.  Navigation with widgetsChapter Synopsis: Making the app "hide" one widget and "show" another in response to user actions. This makes them feel like they're moving from one view to another.Dialog widgetAlertDialog widget and showDialog methodWhy navigation?Why do we need routes?Named routesThe Navigator widgetPushing and popping routesSetting up navigationMaterialPageRouteTypes of navigationTab navigationStack navigationDialogs and modalsPassing context between routesDrawer widgetTab widgetStack widgetHamburger icon and dropdown navigationBottomSheet widgetBottomNavigation widget 8.  Styling your widgetsChapter Synopsis: How to control each widget's position, color, spacing, and other presentational characteristics. We handled light styling as we introduced each widget above but this is where we answer all the questions needed to get a real-world app looking good.This is not CSSStyles don't get inheritedWhat is Material Design?Some widgets take a style parameter.TextTextStyleletterSpacing, fontWeight, colortextScaleFactor, fontSizetextOverflow, maxlinesUnderline, overline, strikethroughUsing custom fontsGoogle Fontspubspec.yamlSelecting, downloading, applyingBoxDecorationBorderRadius WidgetBoxShadow WidgetBoxShape enum (.circle, etc)ThemesApplying a theme to the entire appApplying styles from the current theme 9.  Maintaining StateChapter Synopsis: How to get data from one widget to another and how to change that data.Reminder of stateful vs. stateless widgetsWhen to choose eachHow to create a custom stateful widgetExtend StatefulWidget with createState()Extend State with build()Call setState() to trigger a re-renderPassing data from host to innerPassing data from inner to hostSharing data between siblings and cousins Section: Above and Beyond  10.  Talking to other computersChapter Synopsis: How to read from and write to a server. This is where we show how to make Ajax calls.Why would we want to talk to a server?RESTful APIs are amazing!Definition of RESTStructure of RESTGet a feel for the API we'll be using in the Firebase appendixHow to read a single recordHow to read a list of recordsHow to add a new recordHow to delete an existing recordHow to update an existing record 11.  Including external librariesChapter Synopsis: How to find, install, and use 3rd-party components and libraries in your Flutter appLocating librariesInstalling librariesIntegrating in your Flutter app 12.  Using the camera and other device resourcesChapter Synopsis: How Flutter allows us to programmatically use the phone's native hardwareTaking pictures and video with the cameraMaking phone callsSending SMS/text messagesUsing the GPS and geolocation to know where you areReading sensors -- thermometer, brightness, proximity, air pressure, accelerometer and gyroscopeBattery Power monitor Section: Appendices Dart language introChapter Synopsis: A brief introduction to the Dart language. More of a cheat sheetFlutter procedural code is written in DartWhy did Google choose Dart?Advantages and Disadvantages of DartSort of a compromise between JavaScript and JavaStatically-typed like JavaTruly object-oriented like JavaDart vs. JavaScriptDart vs. Java/C#Features of Dart we need for Flutter FirebaseChapter Synopsis: Firebase is the Google service we'll be using to host our RESTful data. This appendix is a high-level explanation, just enough for the reader to understand the server-side tools. Demystifying the backend enough so the reader isn't distracted. Answers the question, "What parts are done in Flutter and what parts are done by something else?"Firebase functionsFirebase Firestore Firebase authentication


Rap Payne has focused on mobile development since he started Agile Gadgets, a mobile app development company in 2003. He is a consultant, trainer, and entrepreneur who has written apps, mentored developers, and taught software development classes for Fortune 500 companies like Boeing, Walmart, Coca-Cola, Wells Fargo, Honda,CVS, GE, Chase, HP, Lockheed, Exxon-Mobil, Lowe's, Nike, J.C. Penney, USAA, Walgreen's, and government agencies like the US Air Force, Navy, Army, NASA, Britain's GCHQ, Canada's postal service, and several provincial governments, to name a few.

As a professional mentor and trainer, Rap has developed a talent for communicating highly complex ideas in easy-to-understand ways. And as a real-world developer, he understands the need to teach these topics using practical and realistic examples and exercises.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.