Symbols
- (backslash character), 93
- => (fat arrow) notation, 127
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),
-
Button
widget, 26
- buttons
- floating action
- methods for widgets, 135–138
- pressing, 132–146
- stateful widgets, 134–135
- stateless widgets, 134–135
-
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
- changing orientation for devices, 175
- charging cables, 55
- Cheat Sheet (website),
- checking connections, 55–56
-
children
parameter, 303
- classes
- about, 79–83
- abstract, 138
Account
, 228
Animation
, 300
Color
, 171
Curves
, 310
DateTime
, 123
DetailPage
, 280
DropdownMenuItem
, 242
Flex
, 199
Flexible
, 199
GestureDetector
, 316, 317
- Hello World program, 79–83
Icons
, 151
Image
, 103
int
, 113, 121, 227, 228
_MyHomePage
, 202
_MyHomePageState
, 162, 224, 260, 307
Navigator
, 275
StatefulWidget
, 307
StatelessWidget
, 80, 151–152
Widget
, 124
- 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,
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
- 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, –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
- anonymous, 153–156
_changeText
, 140–141, 144–145, 154
- creating, 106–112
displayNicely
, 249–250
get
, 295
_getNewInfo
, 144
_getNewText
, 141, 145
getSuffix
, 283
_handlerFunction
, 143
highlight
, 109, 112–113, 116, 117–119, 126–127, 130
_incrementCounter
, 158–159, 323–324
main
, 127, 128, 139, 228
print
, 113
setState
, 143–145, 153, 154, 155, 306, 317, 324
sqrt
, 314
_updateAgeSwitch
, 210–211, 216
_updateGenderRadio
, 234
_updateResults
, 216
- using, 106–112
VoidCallback
, 155, 210–211
- 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
_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, –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,
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
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
abs
, 228
- abstract, 138
build
, 129–130, 135–136, 137, 139, 151–152, 202
buildColumn
, 170
_buildDropdownButtonRow
, 244
_buildExpandedBox
, 198
buildPositionedWidget
, 304, 318
buildRoundedBox
, 191
_buildRowOfThree
, 186, 191
createState
, 136, 139
dispose
, 223, 230
endsWith
, 228
getAnimation
, 305–306, 307, 316
goToDetailPage
, 254, 280
initState
, 223, 224–225, 230
int.parse
, 230
int.tryParse
, 230
onHorizontalDragUpdate
, 316
onPanUpdate
, 316
onScaleUpdate
, 316
onSecondaryTapDown
, 316
parse
, 227
pushedNamed
, 275
replaceAll()
, 235
shorten
, 238–239
split
, 228
toRadixString
, 228
toString
, 235, 236
toUpperCase
, 228
trim
, 228
updateOverview
, 296
- for widgets, 135–138
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
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,
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
- parameters
- about, 108–112
- adding, 148–151
alignment
, 177
automaticallyImplyLeading
, 266
border
, 178
borderRadius
, 178
children
, 303
- for constructors, 75–76
context
, 203
decoration
, 177–178
divisions
, 219
height
, 169, 176
hint
, 243
home
, 275
initialRoute
, 276
itemBuilder
, 279–280
itemCount
, 279, 325
label
, 169, 220
leading
, 266
margin
, 178–181
max
, 219
min
, 219
- named, 76
- naming, 128–129
onWillPop
, 267
padding
, 178–181
- positional, 76
theme
, 148
title
, 148
value
, 220, 243
vertical
, 172
width
, 176
- 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
- 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
bitLength
, 227
color
, 177, 312
crossAxisAlignment
, 173–174, 177, 182
flex
, 175, 199
isEmpty
, 227
isEven
, 227
isNegative
, 227
left
, 302
length
, 227
mainAxisAlignment
, 173, 177, 182–183
- in object-oriented programming, 227
- of objects, 97
orientation
, 202
right
, 302
size
, 311
text
, 227
- values of, 97
- 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,
replaceAll()
method, 235
- researching technology, 328
- Reset button, 244
- resources, Internet
- Android Studio IDE, 31
- Cheat Sheet,
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
for
, 288–290
- about, 289
- assignment, 115
break
, 282–283
- Dart programming language, 112–113
- defined, 116
DO
, 288
if
, 200–201, 213–214, 244
import
, 160–161
return
, 110, 112, 283
switch
, 282–283
- 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,
- 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,
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
- 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,
- websites
- Android Studio IDE, 31
- Cheat Sheet,
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
- widgets
- about, 26, 79–83
- adding, 91–93
Application
, 26
Background
, 26
- box, 23
Button
, 26
Center
, 83–85, 302
Column
, 91, 173–175, 182, 281
ConstraintsLogger
, 196
Container
, 176–181
- Cupertino, 90, 256
- displaying, 194–195
- dragging, 314–319
Expanded
, 186–199, 281, 325
FlatButton
, 244
- Hello World program, 79–83
- layout of, 163–164
ListTile
, 287
ListView
, 100, 279–284, 285–287, 289, 325
Material
, 78, 81, 85, 87, 89, 179
- Material Design, 256
MaterialApp
, 78
- methods for, 135–138
Padding
, 26, 171–173
Positioned
, 302, 304, 314, 317
RaisedButton
, 215, 244, 254, 255
SafeArea
, 181
Scaffold
, 87
SizedBox
, 175
- stateful, 134–135
- stateless, 134–135
Text
, 26, 75, 81, 83, 84–87, 91, 223, 280
Visibility
, 259
width
parameter, 176
- Windows
- command line in, 51
- compressed archive files in, 35
- filename extensions in, 34
- installing Android Studio, 43
- launching Android Studio, 44
..................Content has been hidden....................
You can't read the all page of ebook, please click
here login for view all page.