Get unlimited access to all of programming knowledges for less than 30 min
Index

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