Index

Symbols

  • @ (at-sign), 151
  • (backslash character), 93
  • $ (dollar sign), 126
  • => (fat arrow) notation, 127
  • ∞ (infinity symbol), 315
  • + (plus sign), 94

A

  • abs method, 228
  • abstract class, 138
  • abstract method, 138
  • access modifiers, 161
  • Account class, 228
  • adding
    • imports, 325
    • itemCount, 325
    • padding, 171–173
    • parameters, 148–151
    • virtual devices, 46–50
    • visual tweaks, 88–89
    • widgets, 91–93
  • ahead-of-time (AOT) compiler, 22
  • alignment parameter, 177
  • Android
    • Android Studio IDE, 30
    • emulators, 31
  • Android devices
    • preparing to test on, 54–56
    • running apps on, 52–53
    • testing on, 59
  • Android runtime (ART), 12
  • Android Studio
    • about, 59
    • configuring, 35–36
    • installing, 43–44
    • installing Flutter plugin, 44–46
    • launching, 44
    • main window, 60–63
    • Project tool window, 61–62
    • starting up, 59–60
    • using, 59–63
  • Android Studio IDE, 30, 33
  • Android Virtual Devices (AVD)
  • angle brackets, 152
  • animation
    • about, 297
    • bouncing, 308–310
    • color, 310–312
    • curves, 312–314
    • dragging widgets, 314–319
    • moving along straight lines, 303–307
    • preparing for, 297–303
    • size, 310–312
  • Animation class, 300
  • AnimationController , 301, 306
  • annotation, override, 151–152
  • anonymous functions, 153–156
  • AOT (ahead-of-time) compiler, 22
  • Apache Cordova, 19
  • API (application programming interface)
    • about, 12
    • Dart programming language, 14–15, 123
    • Flutter, 14–15
    • public, 293–294
  • app bar, controlling Back button of, 266–267
  • application programming interface (API)
    • about, 12
    • Dart programming language, 14–15, 123
    • Flutter, 14–15
    • public, 293–294
  • application programs, 12
  • Application widget, 26
  • apps
    • development of, 25–28
    • enhancing, 146–162
    • mobile development of
      • about, 29–30, 43
      • adding virtual devices, 46–50
      • devices, 52–59
      • installing Android Studio, 43–44
      • installing Android Studio’s Flutter plugin, 44–46
      • installing Flutter, 50–52
      • launching Android Studio, 44
      • running sample programs from book, 63–66
      • setting up computer for, 332
      • steps for, 32–42
      • tools for, 30–32
      • using Android Studio, 59–63
    • running, 36–42
    • running on Android devices, 52–53
    • testing on physical devices, 53–59
  • ART (Android runtime), 12
  • asking questions, 329
  • assets, declaring, 325–326
  • assignment statement, 115
  • async keyword (Dart), 264–266, 295
  • at-sign (@), 151
  • automaticallyImplyLeading parameter, 266
  • AVD (Android Virtual Devices)
  • AVD Manager, opening, 48–50
  • avoiding mistakes, 323–326
  • await keyword (Dart), 264–266, 295

B

  • Back button
    • about, 255
    • controlling, 266–267
  • Background widget, 26
  • backslash character (), 93
  • Bell, Alexander Graham, 69
  • ’bite-size’ programs, 209
  • bitLength property, 227
  • Black Screen app, 23–24
  • blank spaces, 38, 94
  • block comments, 120–121
  • blue circle
    • methods for widgets, 135–138
    • pressing, 132–146
    • stateful widgets, 134–135
    • stateless widgets, 134–135
  • bool type, 122
  • border parameter, 178
  • borderRadius parameter, 178
  • bouncing around, animation and, 308–310
  • bounded constraint, 194–195
  • box widget, 23
  • break statement, 282–283
  • breaking connections, 55–56
  • build method, 129–130, 135–136, 137, 139, 151–152, 202
  • buildColumn method, 170
  • _buildDropdownButtonRow method, 244
  • _buildExpandedBox method, 198
  • building
    • dropdown buttons, 239–245
    • enums, 233
    • function declarations, 124–130
    • functions, 106–112
    • list items one-by-one, 285–287
    • lists, 276–290
    • maps, 245
    • named routes, 272–276
    • parameter lists, 169–170
    • pieces of code, 167–169
    • radio buttons, 230–239
    • radio groups, 233–235
    • scaffolds, 86–87
    • stacks, 255
  • buildPositionedWidget method, 304, 318
  • buildRoundedBox method, 191
  • _buildRowOfThree method, 186, 191
  • built-in types (Dart), 121–123
  • Burd, Barry (author), 6
  • Button widget, 26
  • buttons
    • floating action
      • methods for widgets, 135–138
      • pressing, 132–146
      • stateful widgets, 134–135
      • stateless widgets, 134–135
    • icons on, 254–255

C

    • The C Programming Language (Kernighan and Ritchie), 69
    • Cake icon, 308
    • callbacks, in Flutter framework, 141–142
    • capitalization, 323
    • captioned boxes, 183–184
    • career, advancing your, 327–330
    • cascade operator, 307
    • case sensitivity, in Dart programming language, 70
    • Center widget, 83–85, 302
    • centering text, 94–100
    • _changeText function, 140–141, 144–145, 154
    • changing orientation for devices, 175
    • charging cables, 55
    • Cheat Sheet (website), 6
    • checking connections, 55–56
    • children parameter, 303
    • classes
    • closed project, 59
    • code
      • about, 14–15
      • creating pieces of, 167–169
      • critiquing your own, 328
      • getting reviews of your, 328
      • indenting, 326
      • native, 17
    • code decoration, 121
    • code listing
      • accessing online data, 290–292
      • adding widgets, 91–92
      • aligning text, 99
      • animation along straight lines, 304
      • basic navigation, 252–253
      • captioned boxes, 183–184
      • centering text, 84, 96
      • changing animation size/color, 310–311
      • changing animation velocity, 308–309
      • checking device orientation, 199–200
      • columns, 181–182
      • copying iPhone apps, 90
      • creating functions, 106
      • creating list items one-by-one, 285–286
      • creating lists, 277–278
      • creating named routes, 273–275
      • curves, 312–313
      • debugging, 193
      • displaying images, 103
      • dragging widgets, 315
      • dropdown buttons, 240–242
      • enhancing apps, 146–147
      • expanding widgets, 187–188, 189–190, 192
      • function declarations, 124–125
      • Hello World program, 70, 105
      • JSON code, 293–294
      • for layout, 164–166
      • margin, 178–179, 179–180
      • master-detail interface, 251–252
      • nesting widgets, 185
      • padding, 178–179, 179–180
      • passing data back to sources, 261–262
      • passing data from sources to destinations, 256–257
      • passing data in both directions, 268–269
      • preparing for animation, 298–299
      • pressing floating action buttons, 132–133
      • radio buttons, 231–232
      • responding to a button press, 215–216
      • rows, 181–182
      • slider app, 217–218
      • specifying relative size, 197–198
      • for statement, 289
      • Switch app, 208–209
      • using functions, 106
      • using scaffolds, 86, 88
      • widgets, 26
    • collection for, 289–290
    • color
      • animation and, 310–312
      • layouts and, 170–171
    • Color class, 171
    • color property, 177, 312
    • Column widget, 91, 173–175, 182, 281
    • columns
      • ListView widgets inside, 281
      • nesting, 181–183
    • command line interfaces, 50
    • comments, 120–121
    • compatibility, 16, 213–214
    • compiler, 23–24
    • compiling, 21
    • composition hierarchy, 81
    • compressed archive files, 35
    • computers
      • Macs
        • command line in, 51
        • compressed archive files in, 35
        • creating iPhone apps in, 34–35
        • filename extensions on, 34
        • installing Android Studio, 43
        • launching Android Studio, 44
      • setting up for mobile app development, 332
      • Windows
        • command line in, 51
        • compressed archive files in, 35
        • filename extensions in, 34
        • installing Android Studio, 43
        • launching Android Studio, 44
    • conditional expression, 213
    • conditional operator, 213
    • configuring Android Studio, 35–36
    • connections, breaking/checking, 55–56
    • const keyword (Dart), 211–213
    • ConstraintsLogger widget, 196
    • constructor call, 73
    • constructors, parameters for, 75–76
    • Container widget, 176–181
    • context parameter, 203
    • control. see control element
    • control element
      • about, 203
      • creating dropdown buttons, 239–245
      • creating radio buttons, 230–239
      • feedback, 214–217
      • slider app, 217–220
      • Switch, 208–214
      • text fields, 220–230
    • controlling Back button, 266–267
    • Cordova (Apache), 19
    • _counter variable, 156–157
    • createState method, 136, 139
    • creating
      • dropdown buttons, 239–245
      • enums, 233
      • function declarations, 124–130
      • functions, 106–112
      • list items one-by-one, 285–287
      • lists, 276–290
      • maps, 245
      • named routes, 272–276
      • parameter lists, 169–170
      • pieces of code, 167–169
      • radio buttons, 230–239
      • radio groups, 233–235
      • scaffolds, 86–87
      • stacks, 255
    • Cross Reference icon, 6
    • crossAxisAlignment property, 173–174, 177, 182
    • cross-platform development, Flutter for, 15–17
    • cross-platform framework, 19
    • Cupertino widgets, 90, 256
    • curly braces, 83, 129
    • CurvedAnimation object, 309
    • curves
      • animation and, 312–314
      • defined, 308
    • Curves class, 310

    D

    • Dalvik bytecode instructions, 24
    • Dart programming language
      • about, 11
      • application programming interface (API), 14–15, 123
      • async keyword, 264–266, 295
      • await keyword, 264–266, 295
      • built-in types, 121–123
      • case sensitivity in, 70, 323
      • const keyword, 211–213
      • Dartfmt tool, 111
      • declarations, 112–113
      • enum feature, 89
      • expressions, 114–117
      • Extension keyword, 248–250
      • highlight function, 117–119
      • import declarations, 123–124
      • int.parse method, 230
      • library (website), 124
      • literals, 114–117
      • programming in, 112–124
      • for statement, 288–290
      • statements, 112–113
      • strings, 93–94
      • switch statement, 282–283
      • top-level variables, 259
      • types, non-built-in, 123
      • typing feature, 113–114
      • var keyword, 119–121
      • variables, 114–117
    • dartdoc program, 120–121
    • Dartfmt tool, 111
    • data
      • fetching from Internet, 290–296
      • passing back to sources, 261–267
      • passing from sources to destinations, 256–261
      • passing in both directions, 267–272
    • data cables, 55
    • DateTime class, 123
    • dating app, 337–345
    • declarations
      • about, 80
      • Dart programming language, 112–113
    • declaring
      • assets, 325–326
      • dependencies, 325–326
      • variable names, 224
    • decoration parameter, 177–178
    • density-independent pixel (dp), 172
    • dependencies, declaring, 325–326
    • desktop, 13
    • destination page, 255
    • destinations, passing data from sources to, 256–261
    • DetailPage class, 280
    • developers, 10
    • development computer, 31
    • devices
      • about, 31, 52
      • Android
        • preparing to test on, 54–56
        • running apps on, 52–53
        • testing on, 59
      • changing orientation, 175
      • iPhones
        • Android Studio IDE, 30
        • preparing to test on, 57–58
        • simulators, 31
        • testing on, 59
      • physical
        • about, 31
        • preparing to test on Android, 54–56
        • preparing to test on iPhone, 57–58
        • testing apps on, 53–59
        • testing on Android, 59
        • testing on iPhone, 59
      • running apps on Android, 52–53
      • size of, 199–203
      • testing apps on physical devices, 53–59
      • virtual
        • about, 31
        • adding, 46–50
    • directories, 33
    • displaying
      • images, 100–104
      • user choice, 235–236
      • widgets, 194–195
    • displayNicely function, 249–250
    • dispose method, 223
    • dispose method (Flutter), 230
    • distanceFromLeft, 318
    • distanceFromRight, 318
    • distanceFromTop, 318
    • divisions parameter, 219
    • DO statement, 288
    • doc comments, 120–121
    • documentation, 82–83
    • dollar sign ($), 126
    • dot notation, 227–229
    • double, 113–114
    • double quotation marks, 93
    • double type, 121
    • downloading software, 31
    • dp (density-independent pixel), 172
    • dragging widgets, 314–319
    • dropdown buttons, creating, 239–245
    • DropdownMenuItem class, 242

    E

    • EdgeInsets object, 172
    • Editor area (Android Studio), 62
    • emulators
      • about, 31, 47
      • Android Virtual Devices (AVD) vs., 47
    • encapsulation, 162
    • end-of-line comments, 120–121
    • endsWith method, 228
    • enhancing apps, 146–162
    • enum feature (Dart), 89
    • enums, creating, 233
    • escape sequence, 212
    • event driven programming, 142
    • event handler, 140
    • events
      • defined, 140
      • Flutter framework, 140–141
    • Expanded widget, 186–199, 281, 325
    • expressions
      • about, 289
      • Dart programming language, 114–117
    • Extension keyword (Dart), 248–250

    F

    • fat arrow (=>) notation, 127
    • feedback, 214–217
    • fetching data from Internet, 290–296
    • field, 156
    • filename extensions, 34
    • files
      • pubspec.yaml, 325–326
      • uncompressing, 35
      • unzipping, 35
      • .yaml, 295
    • finite state machine diagram, 270, 272
    • FlatButton widget, 244
    • Flex class, 199
    • flex factor, 198
    • flex property, 175, 199
    • Flexible class, 199
    • floating action buttons
      • methods for widgets, 135–138
      • pressing, 132–146
      • stateful widgets, 134–135
      • stateless widgets, 134–135
    • Flutter. see also specific topics
      • about, 9–10, 331
      • application programming interface (API), 14–15
      • framework
        • about, 17, 139–140
        • callbacks, 141–142
        • code outline, 142–144
        • cross-platform, 19
        • events, 140–141
      • history of, 18–20
      • installing, 50–52
      • library (website), 124
      • uses for, 15–28
    • Flutter Doctor, 50
    • Flutter Inspector, 94
    • Flutter SDK path, 33
    • folders, 33
    • for statement (Dart), 288–290
    • FORTRAN, 114, 288
    • fragmentation, 17
    • framework (Flutter)
      • about, 17, 139–140
      • callbacks, 141–142
      • code outline, 142–144
      • cross-platform, 19
      • events, 140–141
    • function call, 108
    • function declarations
      • about, 107–108
      • creating, 124–130
      • typing names in, 127–128
    • functions

    G

      • _genderRadioValue, 236
      • generating
        • dropdown buttons, 239–245
        • enums, 233
        • function declarations, 124–130
        • functions, 106–112
        • list items one-by-one, 285–287
        • lists, 276–290
        • maps, 245
        • named routes, 272–276
        • parameter lists, 169–170
        • pieces of code, 167–169
        • radio buttons, 230–239
        • radio groups, 233–235
        • scaffolds, 86–87
        • stacks, 255
      • generic, 152
      • GestureDetector class, 316, 317
      • get function, 295
      • getAnimation method, 305–306, 307, 316
      • _getNewInfo function, 144
      • _getNewText function, 141, 145
      • getSuffix function, 283
      • goToDetailPage method, 254, 280
      • graphical user interface (GUI), 50, 139

      H

        • _handlerFunction function, 143
        • hardware, 10–15
        • Hardware Accelerated Execution Manager (HAXM), 53
        • header, 108
        • height parameter, 169, 176
        • Hello World program
          • about, 69, 72–74, 332
          • classes, 79–83
          • constructor parameters, 75–76
          • indentation, 77–78
          • objects, 79–83
          • punctuation, 76–77
          • styling, 83–104
          • widgets, 79–83
        • highlight function, 109, 112–113, 116, 117–119, 126–127, 130
        • hint parameter, 243
        • history, of Flutter, 18–20
        • home directory, 33
        • home parameter, 275
        • Homebrew, 57
        • hot reload, 25, 85
        • hot restart, 24, 85
        • hybrid app development, 18

        I

        • ICANN (Internet Corporation for Assigned Names and Numbers), 40
        • Icon instance, 151
        • icons
          • on buttons, 254–255
          • Cake, 308
          • explained, 5–6
        • Icons class, 151
        • IDE (integrated development environment), 30
        • if statement, 200–201, 213–214, 244
        • if-null operator, 239
        • Image class, 103
        • images, displaying, 100–104
        • import declarations, in Dart programming language, 123–124
        • import statements, 160–161
        • imports, adding, 325
        • _incrementCounter function, 158–159, 323–324
        • indentation, 77–78, 326
        • index, 92, 245, 324
        • infinity symbol (∞), 315
        • inheritance hierarchy, 81
        • initialRoute parameter, 276
        • initState method, 223, 224–225, 230
        • installing
          • Android Studio, 43–44
          • Android Studio’s Flutter plugin, 44–46
          • Flutter, 50–52
          • software, 32–34
        • instance, 79
        • instance variable, 156
        • int class, 113, 121, 227, 228
        • integrated development environment (IDE), 30
        • Intel Hardware Accelerated Execution Manager (HAXM), 53
        • Intel Virtualization Technology (VT), 53
        • Internet, fetching data from, 290–296
        • Internet Corporation for Assigned Names and Numbers (ICANN), 40
        • Internet resources
          • Android Studio IDE, 31
          • Cheat Sheet, 6
          • Color class documentation, 171
          • curve values, 309
          • Dart library, 124
          • example Flutter apps, 30
          • Flutter API reference documentation, 15
          • Flutter library, 124
          • Flutter SDK, 31
          • Homebrew, 57
          • images in Icons class, 151
          • Material Design, 73
          • Material Design’s elevation property, 89
          • The Movie Database, 293
          • @override annotations, 152
          • swatches, 149
          • for this book, 31, 63
          • Virtual Studio Code (VS Code), 33
        • interpolating strings, 125–126
        • int.parse method (Dart), 230
        • int.tryParse method, 230
        • iPhones
          • Android Studio IDE, 30
          • preparing to test on, 57–58
          • simulators, 31
          • testing on, 59
        • isEmpty property, 227
        • isEven property, 227
        • isNegative property, 227
        • itemBuilder parameter, 279–280
        • itemCount parameter, 279, 325

        J

        • Java, 25
        • JavaScript Object Notation (JSON), 293–294, 296
        • JIT (just-in-time) compiler, 22
        • JSON code, 293–294
        • just-in-time (JIT) compiler, 22

        K

        • kernel, 12
        • Kernighan, Brian (author)
          • The C Programming Language, 69
        • Kotlin, 25

        L

        • label parameter, 169, 220
        • landscape mode, 175
        • Last-In-First-Out (LIFO) rule, 255
        • launching
          • Android Studio, 44
          • AVD Manager, 48–50
        • layout
          • about, 163–164
          • adding padding, 171–173
          • color, 170–171
          • Column widget, 173–175
          • Container widget, 176–181
          • creating parameter lists, 169–170
          • creating pieces of code, 167–169
          • device size, 199–203
          • examples of, 164–166
          • Expanded widget, 186–199
          • nesting levels, 183–186
          • nesting rows/columns, 181–183
          • SizedBox widget, 175
        • leading parameter, 266
        • learning, importance of, 329
        • left property, 302
        • length property, 227
        • library. see application programming interface (API)
        • LIFO (Last-In-First-Out) rule, 255
        • List type, 122, 287
        • listing, code
          • accessing online data, 290–292
          • adding widgets, 91–92
          • aligning text, 99
          • animation along straight lines, 304
          • basic navigation, 252–253
          • captioned boxes, 183–184
          • centering text, 84, 96
          • changing animation size/color, 310–311
          • changing animation velocity, 308–309
          • checking device orientation, 199–200
          • columns, 181–182
          • copying iPhone apps, 90
          • creating functions, 106
          • creating list items one-by-one, 285–286
          • creating lists, 277–278
          • creating named routes, 273–275
          • curves, 312–313
          • debugging, 193
          • displaying images, 103
          • dragging widgets, 315
          • dropdown buttons, 240–242
          • enhancing apps, 146–147
          • expanding widgets, 187–188, 189–190, 192
          • function declarations, 124–125
          • Hello World program, 70, 105
          • JSON code, 293–294
          • for layout, 164–166
          • margin, 178–179, 179–180
          • master-detail interface, 251–252
          • nesting widgets, 185
          • padding, 178–179, 179–180
          • passing data back to sources, 261–262
          • passing data from sources to destinations, 256–257
          • passing data in both directions, 268–269
          • preparing for animation, 298–299
          • pressing floating action buttons, 132–133
          • radio buttons, 231–232
          • responding to a button press, 215–216
          • rows, 181–182
          • slider app, 217–218
          • specifying relative size, 197–198
          • for statement, 289
          • Switch app, 208–209
          • using functions, 106
          • using scaffolds, 86, 88
          • widgets, 26
        • lists
          • about, 247–248
          • creating, 276–290
          • creating items one-by-one, 285–287
          • ListView widget, 100, 279–284, 285–287, 289, 325
          • master-detail interface, 251–252
          • parameterized
            • about, 152
            • creating, 169–170
        • ListTile widget, 287
        • ListView widget, 100, 279–284, 285–287, 289, 325
        • literals, in Dart programming language, 114–117
        • loose constraint, 196

        M

        • macOS, filename extensions in, 34
        • Macs
          • command line in, 51
          • compressed archive files in, 35
          • creating iPhone apps in, 34–35
          • filename extensions on, 34
          • installing Android Studio, 43
          • launching Android Studio, 44
        • main axis, 98
        • main function, 127, 128, 139, 228
        • main window (Android Studio), 60–63
        • mainAxisAlignment property, 173, 177, 182–183
        • Map type, 122, 245
        • maps, creating, 245
        • margin, 181
        • margin parameter, 178–181
        • master-detail interface, 251–252
        • Material Design
          • about, 73, 88, 89–90
          • elevation property, 89
          • widgets, 256
        • Material widget, 78, 81, 85, 87, 89, 179
        • MaterialApp widget, 78
        • max parameter, 219
        • members, 228
        • methods
        • min parameter, 219
        • mistakes, avoiding, 323–326
        • mixin, 301
        • mobile app development
          • about, 29–30, 43
          • adding virtual devices, 46–50
          • devices, 52–59
          • installing Android Studio, 43–44
          • installing Android Studio’s Flutter plugin, 44–46
          • installing Flutter, 50–52
          • launching Android Studio, 44
          • running sample programs from book, 63–66
          • setting up computer for, 332
          • steps for, 32–42
          • tools for, 30–32
          • using Android Studio, 59–63
        • The Movie Database, 293

        N

        • named constructor, 103
        • named parameter, 76
        • names
          • typing in function declarations, 127–128
          • underscores and, 160–161
        • naming parameters, 128–129
        • native code, 17
        • navigation
          • about, 247–248
          • basic, 252–253
          • creating named routes, 272–276
          • destination page, 255
          • Extension keyword, 248–250
          • fetching data from Internet, 290–296
          • master-detail interface, 251–252
          • passing data back to sources, 261–267
          • passing data from sources to destinations, 256–261
          • passing data in both directions, 267–272
          • scrolling, 284
          • source page, 255
        • navigation bar (Android Studio), 61
        • Navigator class, 275
        • nesting
          • levels of, 183–186
          • rows/columns, 181–183
        • null-aware operator, 238
        • num type, 121

        O

        • Objective-C language, 25
        • object-oriented programming, 227
        • objects
          • about, 79–83
          • CurvedAnimation, 309
          • EdgeInsets, 172
          • properties of, 97
          • State, 223
        • obtaining software, 32–34
        • On The Web icon, 6
        • onChanged event handler, 216, 220, 222, 243
        • onHorizontalDragUpdate method, 316
        • onPanUpdate method, 316
        • onPressed event handler, 216
        • onScaleUpdate method, 316
        • onSecondaryTapDown method, 316
        • onWillPop parameter, 267
        • open project, 59
        • opening
          • Android Studio, 44
          • AVD Manager, 48–50
        • operating system (OS) software, 11
        • orientation, changing for devices, 175
        • orientation property, 202
        • OS (operating system) software, 11
        • OS user interface, 13
        • overflow, 187
        • override annotation, 151–152

        P

        • package, 40
        • Packages view (Android Studio), 62
        • padding
        • padding parameter, 178–181
        • Padding widget, 26, 171–173
        • parameterized list
          • about, 152
          • creating, 169–170
        • parameters
        • parentheses, 323–324
        • parse method, 227
        • passes constraints, 194
        • passing
          • data back to sources, 261–267
          • data from sources to destinations, 256–261
          • data in both directions, 267–272
        • physical devices
          • about, 31
          • preparing to test on Android, 54–56
          • preparing to test on iPhone, 57–58
          • testing apps on, 53–59
          • testing on Android, 59
          • testing on iPhone, 59
        • Pixel C tablet, 202
        • platform, 16
        • plug-ins, 19
        • plus sign (+), 94
        • polling, 142
        • popping, off stacks, 255–256
        • portrait mode, 175
        • positional parameter, 76
        • Positioned widget, 302, 304, 314, 317
        • practice, importance of, 327
        • preparing, for animation, 297–303
        • pressing floating action buttons, 132–146
        • print function, 113
        • programmer, 10
        • programming languages
          • Dart
            • about, 11, 112–124
            • application programming interface (API), 14–15, 123
            • async keyword, 264–266, 295
            • await keyword, 264–266, 295
            • built-in types, 121–123
            • case sensitivity in, 70, 323
            • const keyword, 211–213
            • Dartfmt tool, 111
            • declarations, 112–113
            • enum feature, 89
            • expressions, 114–117
            • Extension keyword, 248–250
            • highlight function, 117–119
            • import declarations, 123–124
            • int.parse method, 230
            • library (website), 124
            • literals, 114–117
            • programming in, 112–124
            • for statement, 288–290
            • statements, 112–113
            • strings, 93–94
            • switch statement, 282–283
            • top-level variables, 259
            • types, non-built-in, 123
            • typing feature, 113–114
            • var keyword, 119–121
            • variables, 114–117
          • defined, 11
        • programs
          • application, 12
          • dartdoc, 120–121
          • defined, 10
          • Hello World
            • about, 69, 72–74, 332
            • classes, 79–83
            • constructor parameters, 75–76
            • indentation, 77–78
            • objects, 79–83
            • punctuation, 76–77
            • styling, 83–104
            • widgets, 79–83
        • Project tool button (Android Studio), 62
        • Project tool window (Android Studio), 61–62
        • Project view (Android Studio), 61
        • properties
        • public API, 293–294
        • pubspec.yaml file, 325–326
        • punctuation characters, 38, 76–77
        • pushedNamed method, 275
        • pushing, to stacks, 255–256

        Q

        • questions, asking, 329
        • quick-and-easy development cycle, Flutter for, 17–25
        • quotation marks, 93, 94

        R

        • radio buttons, creating, 230–239
        • radio groups, building, 233–235
        • RaisedButton widget, 215, 244, 254, 255
        • React Native, 20
        • real devices. see physical devices
        • Remember icon, 5
        • replaceAll() method, 235
        • researching technology, 328
        • Reset button, 244
        • resources, Internet
          • Android Studio IDE, 31
          • Cheat Sheet, 6
          • Color class documentation, 171
          • curve values, 309
          • Dart library, 124
          • example Flutter apps, 30
          • Flutter API reference documentation, 15
          • Flutter library, 124
          • Flutter SDK, 31
          • Homebrew, 57
          • images in Icons class, 151
          • Material Design, 73
          • Material Design’s elevation property, 89
          • The Movie Database, 293
          • @override annotations, 152
          • swatches, 149
          • for this book, 31, 63
          • Virtual Studio Code (VS Code), 33
        • return statement, 110, 112, 283
        • return value, 108–112
        • right property, 302
        • Ritchie, Dennis (author), 288
          • The C Programming Language, 69
        • routes
          • creating named, 272–276
          • defined, 256
        • rows, nesting, 181–183
        • Run icon, 85
        • Run tool window (Android Studio), 62
        • Runes type, 122
        • running
          • apps, 36–42
          • apps on Android devices, 52–53
          • sample programs from book, 63–66
        • runtime, 12

        S

        • SafeArea widget, 181
        • Scaffold widget, 87
        • scaffolds, creating, 86–87
        • scrolling, 284
        • SDK (Software Development Kit), 30
        • SEARCH ON WIDGETS IN FIRST 100 PAGES
        • sending URLs to servers, 295
        • servers, sending URLs to, 295
        • Set type, 122
        • setState function, 143–145, 153, 154, 155, 306, 317, 324
        • setup, computer for mobile app development, 332
        • shorten method, 238–239
        • showing
          • images, 100–104
          • user choice, 235–236
          • widgets, 194–195
        • simulator, 31
        • single quotation marks, 93
        • SingleChildScrollView, 284
        • size
          • animation and, 310–312
          • of devices, 199–203
        • size property, 311
        • SizedBox widget, 175
        • slash character (/), 275
        • slashes (//), 77, 120
        • sleep, importance of, 330
        • slider app, 217–220
        • software
          • about, 10–15
          • compatibility and, 16
          • downloading, 31
          • installing, 32–34
          • obtaining, 32–34
          • operating system (OS), 11
        • Software Development Kit (SDK), 30
        • source code, 10
        • source page, 255
        • sources
          • passing data back to, 261–267
          • passing data to destinations from, 256–261
        • split method, 228
        • sqrt function, 314
        • square brackets, 296
        • Stack, 302, 303
        • stacks, 255–256
        • Stanley’s Swell Shaving Cream/Superior Shaving Cream, 131–132
        • starting
          • Android Studio, 44, 59–60
          • AVD Manager, 48–50
        • state, 134
        • State object, 223
        • stateful widgets, 134–135
        • StatefulWidget class, 307
        • stateless widgets, 134–135
        • StatelessWidget class, 80, 151–152
        • statements
        • static members, 229
        • static variables, 260
        • status bar (Android Studio), 63
        • straight lines, animation along, 303–307
        • String instance, 114, 122, 228
        • strings
          • Dart programming language, 93–94
          • interpolating, 125–126
        • styling, in Hello World program, 83–104
        • swatch, 149
        • Swift language, 25
        • Switch control, 208–214
        • switch statement (Dart), 282–283
        • Symbol type, 122
        • system image, 47

        T

        • target devices, 31
        • Technical Stuff icon, 6
        • technology, researching, 328
        • ternary operator, 214
        • testing apps on physical devices, 53–59
        • text, centering, 94–100
        • text fields, 220–230
        • text property, 227
        • Text widget, 26, 75, 81, 83, 84–87, 91, 223, 280
        • TextEditingController instance, 227
        • theme parameter, 148
        • ticker, 301
        • tight constraint, 196
        • Tip icon, 5
        • title parameter, 148
        • toolbar (Android Studio), 61
        • tools
          • Dartfmt, 111
          • for mobile app development, 30–32
        • tooltip string, 151
        • top-level declaration, 159
        • top-level names, 162
        • top-level variables (Dart), 259
        • toRadixString method, 228
        • toString method, 235, 236
        • Touge, Alice (historian), 20
        • toUpperCase method, 228
        • trailing comma, 76–77, 111
        • trim method, 228
        • triple quotation marks, 94
        • type safe, 114
        • typing
          • in Dart programming language, 113–114
          • names in function declarations, 127–128

        U

        • unbounded constraint, 194
        • uncompressing files, 35
        • underscores
          • about, 38
          • names and, 160–161
        • unzipping files, 35
        • _updateAgeSwitch function, 210–211, 216
        • _updateGenderRadio function, 234
        • updateOverview method, 296
        • _updateResults function, 216
        • uppercase letters, 38
        • URLs, sending to servers, 295
        • USB cables, 55
        • user group meetings, 328–329
        • user interaction
          • about, 203
          • creating dropdown buttons, 239–245
          • creating radio buttons, 230–239
          • feedback, 214–217
          • slider app, 217–220
          • Switch, 208–214
          • text fields, 220–230
        • users
          • defined, 10
          • displaying user choice, 235–236

        V

        • value indicator, 220
        • value parameter, 220, 243
        • values, of properties, 97
        • var keyword, 119–121
        • variable declarations, 115
        • variable names, declaring, 224
        • variables
          • Dart programming language, 114–117
          • limiting access to, 324
          • static, 260
        • vertical parameter, 172
        • virtual devices
          • about, 31
          • adding, 46–50
        • Virtual Studio Code (VS Code), 33
        • Virtualization Technology (VT), 53
        • Visibility widget, 259
        • visual tweaks, adding, 88–89
        • VoidCallback function, 155, 210–211
        • VT (Virtualization Technology), 53

        W

        • Warning icon, 5
        • websites
          • Android Studio IDE, 31
          • Cheat Sheet, 6
          • Color class documentation, 171
          • curve values, 309
          • Dart library, 124
          • example Flutter apps, 30
          • Flutter API reference documentation, 15
          • Flutter library, 124
          • Flutter SDK, 31
          • Homebrew, 57
          • images in Icons class, 151
          • Material Design, 73
          • Material Design’s elevation property, 89
          • The Movie Database, 293
          • @override annotations, 152
          • swatches, 149
          • for this book, 31, 63
          • Virtual Studio Code (VS Code), 33
        • Widget classes, 124
        • <Widget>, 152–153
        • “within-ness,” 81–82
        • working directory, 51

        X

        • Xamarin, 20

        Y

          • .yaml file, 295

          Z

          • zip files, 35
          ..................Content has been hidden....................

          You can't read the all page of ebook, please click here login for view all page.
          Reset
          13.58.137.218