Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
WEBVTT
1
00:00:04.069 --> 00:00:05.970
Alright, so we're all ready to start
2
00:00:05.970 --> 00:00:08.250
writing apps for Android, but we should
3
00:00:08.250 --> 00:00:10.110
probably start by answering the question
4
00:00:10.110 --> 00:00:12.450
"What is Android?". Now Android is often
5
00:00:12.450 --> 00:00:14.880
considered to be an operating system, but
6
00:00:14.880 --> 00:00:17.609
it's also a software stack that consists
7
00:00:17.609 --> 00:00:19.770
of an operating system, Linux, and a
8
00:00:19.770 --> 00:00:21.740
framework for developing applications.
9
00:00:21.740 --> 00:00:23.880
And it also includes a number of key
10
00:00:23.880 --> 00:00:26.340
applications, such as contacts, that
11
00:00:26.340 --> 00:00:29.150
reflect its purpose as a mobile platform.
12
00:00:29.150 --> 00:00:31.050
Android was originally written by a
13
00:00:31.050 --> 00:00:32.940
company called Android Incorporated, and
14
00:00:32.940 --> 00:00:36.030
Google bought that company in 2005. Now
15
00:00:36.030 --> 00:00:37.950
it's usual to think of Android as being
16
00:00:37.950 --> 00:00:40.050
developed by Google, and I tend to talk
17
00:00:40.050 --> 00:00:42.090
about Google a lot in this course, but
18
00:00:42.090 --> 00:00:44.399
Android is in fact maintained by
19
00:00:44.399 --> 00:00:47.340
the Open Handset Alliance. So rather than
20
00:00:47.340 --> 00:00:48.989
releasing Android as a proprietary
21
00:00:48.989 --> 00:00:50.610
system when they bought Android
22
00:00:50.610 --> 00:00:52.590
Incorporated, Google got together with a
23
00:00:52.590 --> 00:00:54.719
number of other companies to create the
24
00:00:54.719 --> 00:00:57.840
Open Handset Alliance. The OHA. Now at
25
00:00:57.840 --> 00:00:59.609
the time I'm recording this video, the
26
00:00:59.609 --> 00:01:02.370
OHA has 84 members who are all committed
27
00:01:02.370 --> 00:01:05.519
to keeping Android open source. So you
28
00:01:05.519 --> 00:01:06.780
can actually download the complete
29
00:01:06.780 --> 00:01:08.670
source code for Android, and modify it, if
30
00:01:08.670 --> 00:01:10.350
you wish. There's actually a link to get
31
00:01:10.350 --> 00:01:12.330
the source on the home page of the OHA.
32
00:01:12.330 --> 00:01:14.010
I'm just going to bring that link up on
33
00:01:14.010 --> 00:01:17.460
the screen there; again OHA, Open Handset
34
00:01:17.460 --> 00:01:19.799
Alliance. You can see there's an option
35
00:01:19.799 --> 00:01:21.990
there to get the source code. There's
36
00:01:21.990 --> 00:01:24.409
also a link there to get the SDK as well.
37
00:01:24.409 --> 00:01:26.700
Now the home page is a little bit
38
00:01:26.700 --> 00:01:29.250
misleading, because the most recent entry
39
00:01:29.250 --> 00:01:31.079
in the what's new section, over here,
40
00:01:31.079 --> 00:01:34.170
actually has a date of July 18th 2011.
41
00:01:34.170 --> 00:01:35.850
And that would give the impression that
42
00:01:35.850 --> 00:01:38.220
not much is happening with the OHA, but
43
00:01:38.220 --> 00:01:39.750
that couldn't be further from the truth.
44
00:01:39.750 --> 00:01:41.759
You're taking this course, so you
45
00:01:41.759 --> 00:01:43.770
probably know that version 8 of Android,
46
00:01:43.770 --> 00:01:48.119
code named Oreo, was released in 2017. A new
47
00:01:48.119 --> 00:01:49.439
version of Android is actually released
48
00:01:49.439 --> 00:01:50.280
every year.
49
00:01:50.280 --> 00:01:52.649
Android and the OHA are very much alive.
50
00:01:52.649 --> 00:01:55.259
Now you can learn more about the OHA by
51
00:01:55.259 --> 00:01:57.119
clicking on the Alliance menu item, at
52
00:01:57.119 --> 00:02:01.530
the top of the page. Clicking on
53
00:02:01.530 --> 00:02:06.180
Members, as I've done there, shows the
54
00:02:06.180 --> 00:02:08.250
current members of the OHA; and if you
55
00:02:08.250 --> 00:02:09.599
scroll down, if I scroll down, you can
56
00:02:09.599 --> 00:02:11.580
probably recognize some of the names of
57
00:02:11.580 --> 00:02:13.380
these companies. They're
58
00:02:13.380 --> 00:02:17.550
actually part of the OHA. And there's
59
00:02:17.550 --> 00:02:18.840
different categories here. What we
60
00:02:18.840 --> 00:02:20.340
chose with the default is Mobile
61
00:02:20.340 --> 00:02:24.840
Operators. Handset manufacturers - some
62
00:02:24.840 --> 00:02:27.260
household names here for sure.
63
00:02:27.260 --> 00:02:30.450
SUSE Tech is one, Dell is another,
64
00:02:30.450 --> 00:02:33.240
Jitsu, so some quite well-known companies.
65
00:02:33.240 --> 00:02:36.600
NEC, LG and so on. Now I'm not going to
66
00:02:36.600 --> 00:02:38.220
spend time in this video going through it,
67
00:02:38.220 --> 00:02:42.600
but the Android menu also is well worth
68
00:02:42.600 --> 00:02:44.040
a read, to get an overview of the
69
00:02:44.040 --> 00:02:46.770
thinking behind Android. Now I suggest
70
00:02:46.770 --> 00:02:48.870
that it might be useful for you, if
71
00:02:48.870 --> 00:02:51.330
you're on this page, to actually watch
72
00:02:51.330 --> 00:02:53.040
this video. It's quite a useful video and
73
00:02:53.040 --> 00:02:55.020
have a bit of a read there. All right,
74
00:02:55.020 --> 00:02:56.880
so let's have a quick look at Android, to
75
00:02:56.880 --> 00:02:57.990
see some of the things that we're going
76
00:02:57.990 --> 00:02:59.550
to be looking at getting our apps to do.
77
00:02:59.550 --> 00:03:01.590
Now for this demo we're going to be
78
00:03:01.590 --> 00:03:03.750
using an Android emulator, or virtual
79
00:03:03.750 --> 00:03:05.550
device, and we'll be looking at how to
80
00:03:05.550 --> 00:03:07.680
create virtual devices a bit later in
81
00:03:07.680 --> 00:03:09.810
the course. But think of them as so
82
00:03:09.810 --> 00:03:11.730
basically a way to run our apps on a
83
00:03:11.730 --> 00:03:14.130
wide variety of phones, without having to
84
00:03:14.130 --> 00:03:15.660
buy loads of devices, because it's all
85
00:03:15.660 --> 00:03:18.480
actually done in a virtual machine.
86
00:03:18.480 --> 00:03:19.800
Which means it's running on your
87
00:03:19.800 --> 00:03:22.080
computer. Now in fact, when Google
88
00:03:22.080 --> 00:03:24.660
released Android studio 3, they also
89
00:03:24.660 --> 00:03:26.940
updated the emulators. Now there's also a
90
00:03:26.940 --> 00:03:29.070
couple of emulators that include the
91
00:03:29.070 --> 00:03:30.210
Google Play Store.
92
00:03:30.210 --> 00:03:31.620
and what that means is that you can
93
00:03:31.620 --> 00:03:33.330
install just about any apps from the
94
00:03:33.330 --> 00:03:35.730
Play Store onto your emulator, and we're
95
00:03:35.730 --> 00:03:36.750
going to be discussing that in more
96
00:03:36.750 --> 00:03:38.370
detail when we come to create our own
97
00:03:38.370 --> 00:03:39.900
emulators. But it's something that
98
00:03:39.900 --> 00:03:41.430
developers have been asking for for
99
00:03:41.430 --> 00:03:43.740
quite a few years now. Alright, so I'm going
100
00:03:43.740 --> 00:03:47.130
to switch over now to an emulator - you
101
00:03:47.130 --> 00:03:48.780
can see that I've got it running, but we
102
00:03:48.780 --> 00:03:49.920
can see that it looks like a real
103
00:03:49.920 --> 00:03:52.020
Android phone. There at the bottom are
104
00:03:52.020 --> 00:03:54.570
these three soft keys, and you
105
00:03:54.570 --> 00:03:56.160
find those on just about all Android
106
00:03:56.160 --> 00:03:57.930
devices these days. Though some
107
00:03:57.930 --> 00:03:59.550
manufacturers do replace the middle
108
00:03:59.550 --> 00:04:01.560
button with a physical key, rather than
109
00:04:01.560 --> 00:04:03.690
having it on screen, but the function is
110
00:04:03.690 --> 00:04:05.970
the same. Now the triangular button on
111
00:04:05.970 --> 00:04:07.860
the left over here, that's the back
112
00:04:07.860 --> 00:04:10.050
button, and some devices that appears as
113
00:04:10.050 --> 00:04:11.790
a curved left pointing arrow, and
114
00:04:11.790 --> 00:04:13.830
rather confusingly can appear on the
115
00:04:13.830 --> 00:04:15.510
right-hand side of the screen instead.
116
00:04:15.510 --> 00:04:18.840
The back button, though, is used to go
117
00:04:18.840 --> 00:04:20.370
back to a previous app, dismiss
118
00:04:20.370 --> 00:04:22.860
dialogues, cancel menus; basically it just
119
00:04:22.860 --> 00:04:24.380
goes back to what you were doing before.
120
00:04:24.380 --> 00:04:26.670
And just to see what I mean there,
121
00:04:26.670 --> 00:04:28.260
I can come over here and click on it, to get into our list of
122
00:04:28.260 --> 00:04:32.880
apps. I can choose Gmail, then I can
123
00:04:32.880 --> 00:04:35.220
click on the back button to go back to
124
00:04:35.220 --> 00:04:37.680
the list of apps. Now the middle button
125
00:04:37.680 --> 00:04:40.170
down here, that's the home button, and as
126
00:04:40.170 --> 00:04:41.850
I said some manufacturers use a physical
127
00:04:41.850 --> 00:04:43.980
button for that instead. And this button
128
00:04:43.980 --> 00:04:46.320
takes you back to the home screen. So if
129
00:04:46.320 --> 00:04:50.850
I run Gmail again, and then press the
130
00:04:50.850 --> 00:04:54.120
home button, we end up back on the home
131
00:04:54.120 --> 00:04:55.800
screen, rather than the apps list that we
132
00:04:55.800 --> 00:04:58.050
got when we clicked on back. Now it's got
133
00:04:58.050 --> 00:05:00.570
another function - if you long tap, so
134
00:05:00.570 --> 00:05:02.190
hold it down basically, it'll launch the
135
00:05:02.190 --> 00:05:04.980
Google app: you can see that that's come
136
00:05:04.980 --> 00:05:07.230
up there when I've done that. Now I don't
137
00:05:07.230 --> 00:05:09.120
want to set up the Google assistant at
138
00:05:09.120 --> 00:05:10.260
the moment, so I'm going to click on back
139
00:05:10.260 --> 00:05:12.750
there to get out of that. And we're going
140
00:05:12.750 --> 00:05:13.890
to need another app running for this
141
00:05:13.890 --> 00:05:15.360
next bit, so I'm gonna launch Google Maps
142
00:05:15.360 --> 00:05:17.880
as well. So I'm just going to go to the
143
00:05:17.880 --> 00:05:21.030
home again, click on maps here, and open
144
00:05:21.030 --> 00:05:23.640
up Google Maps as well. Then the square
145
00:05:23.640 --> 00:05:25.800
button on the right, over here, has
146
00:05:25.800 --> 00:05:27.930
various names. You'll find it referred
147
00:05:27.930 --> 00:05:29.700
to as the recents button, or the
148
00:05:29.700 --> 00:05:31.830
multitasking button, or even sometimes
149
00:05:31.830 --> 00:05:34.770
the intents button. Now before I tap it,
150
00:05:34.770 --> 00:05:36.450
one thing that may not be obvious is
151
00:05:36.450 --> 00:05:39.210
that pressing back or home doesn't close
152
00:05:39.210 --> 00:05:41.220
an Android app in the same sense as
153
00:05:41.220 --> 00:05:43.830
closing a program on your PC. The app is
154
00:05:43.830 --> 00:05:45.330
still running, and you can bring it back
155
00:05:45.330 --> 00:05:47.190
to the same state it was when you
156
00:05:47.190 --> 00:05:47.910
dismissed it.
157
00:05:47.910 --> 00:05:50.340
Now the recent button shows all the apps
158
00:05:50.340 --> 00:05:52.380
that are still running, and if I click on
159
00:05:52.380 --> 00:05:55.230
that now, so you can see here that I've
160
00:05:55.230 --> 00:05:59.040
got maps going, as well as Gmail. And you
161
00:05:59.040 --> 00:06:01.200
can actually close it up completely by
162
00:06:01.200 --> 00:06:03.360
clicking on the X up here, at the top
163
00:06:03.360 --> 00:06:05.040
right. But Android will actually take
164
00:06:05.040 --> 00:06:07.050
take care of closing the older apps for
165
00:06:07.050 --> 00:06:09.090
you, if it needs to use the memory for
166
00:06:09.090 --> 00:06:10.320
something else. So there's generally no
167
00:06:10.320 --> 00:06:12.570
need to do that. What I'm doing instead
168
00:06:12.570 --> 00:06:13.860
is tap Google Maps.
169
00:06:13.860 --> 00:06:16.110
When I do that, it brings it to the
170
00:06:16.110 --> 00:06:18.360
foreground. Then you can scroll through
171
00:06:18.360 --> 00:06:20.250
the list of recent apps, so well to
172
00:06:20.250 --> 00:06:21.870
demonstrate that I need a few more apps
173
00:06:21.870 --> 00:06:23.490
running, so we've got a decent list to
174
00:06:23.490 --> 00:06:25.080
scroll through. So I'm going to go back
175
00:06:25.080 --> 00:06:26.910
to the home screen, using the middle
176
00:06:26.910 --> 00:06:30.600
button, and go into apps, and we'll start
177
00:06:30.600 --> 00:06:35.910
by launching calendar. Now back will take
178
00:06:35.910 --> 00:06:37.620
me back to the list of apps, and this
179
00:06:37.620 --> 00:06:41.060
time we're going to select photos.
180
00:06:41.060 --> 00:06:43.020
That's a bit boring because I haven't
181
00:06:43.020 --> 00:06:44.910
got any photos on this emulator. So I'm
182
00:06:44.910 --> 00:06:47.550
gonna go back one more time now, this
183
00:06:47.550 --> 00:06:51.710
time we're gonna start the YouTube app.
184
00:06:51.710 --> 00:06:53.880
Okay, so we've now got a few apps running,
185
00:06:53.880 --> 00:06:55.980
and I can view them all by tapping that
186
00:06:55.980 --> 00:06:58.950
- recents button again. They're all the
187
00:06:58.950 --> 00:07:01.020
apps I've just launched - stacked up with
188
00:07:01.020 --> 00:07:02.820
the most recent on the top of the pile.
189
00:07:02.820 --> 00:07:04.560
You can see on the bottom that's
190
00:07:04.560 --> 00:07:06.810
YouTube. Now this is much easier to do on
191
00:07:06.810 --> 00:07:09.270
a physical device. Using an emulator will
192
00:07:09.270 --> 00:07:10.770
take a little bit of getting used to,
193
00:07:10.770 --> 00:07:12.210
because the mouse pointer doesn't quite
194
00:07:12.210 --> 00:07:14.160
behave the same as a finger on a
195
00:07:14.160 --> 00:07:16.050
touchscreen. And hopefully I won't
196
00:07:16.050 --> 00:07:17.550
accidentally touch an app while trying
197
00:07:17.550 --> 00:07:19.170
to scroll through them. But the way to
198
00:07:19.170 --> 00:07:20.430
scroll through them is to to hold the
199
00:07:20.430 --> 00:07:22.440
mouse button down while moving the mouse,
200
00:07:22.440 --> 00:07:25.080
to simulate a finger dragging. So if I do
201
00:07:25.080 --> 00:07:28.770
that, you can see here that I can
202
00:07:28.770 --> 00:07:31.260
actually move down and change the list
203
00:07:31.260 --> 00:07:34.410
of apps, as I scroll down, or scroll up
204
00:07:34.410 --> 00:07:39.030
for that matter. I'm getting the
205
00:07:39.030 --> 00:07:41.850
different apps as I do that.
206
00:07:41.850 --> 00:07:43.230
Basically it's simulating the finger
207
00:07:43.230 --> 00:07:45.450
dragging of the phone's touchscreen. Now
208
00:07:45.450 --> 00:07:46.830
you saw that when I was dragging, the
209
00:07:46.830 --> 00:07:48.360
recent apps move off the bottom of
210
00:07:48.360 --> 00:07:52.410
the screen, to reveal the older ones.
211
00:07:52.410 --> 00:07:54.420
Like so. If I start down there, then as I
212
00:07:54.420 --> 00:07:56.370
scroll up you can see Photos is coming
213
00:07:56.370 --> 00:07:59.670
up, YouTube, and so on. Now the Linux
214
00:07:59.670 --> 00:08:02.490
kernel allows multitasking, and Android's
215
00:08:02.490 --> 00:08:05.250
built on top of the Linux kernel. So an
216
00:08:05.250 --> 00:08:07.470
Android phone is a multitasking computer.
217
00:08:07.470 --> 00:08:09.090
And you can have actually have several
218
00:08:09.090 --> 00:08:10.440
apps running at the same time, which
219
00:08:10.440 --> 00:08:11.970
we're doing here, and this can be very
220
00:08:11.970 --> 00:08:13.710
useful if you need to do something like
221
00:08:13.710 --> 00:08:15.150
checking your calendar while talking on
222
00:08:15.150 --> 00:08:17.820
the phone, for example. And in fact we can
223
00:08:17.820 --> 00:08:20.220
simulate that. I'll select Gmail from the
224
00:08:20.220 --> 00:08:23.070
list of apps, so I'll scroll down, click
225
00:08:23.070 --> 00:08:26.010
on Gmail. And next I'm going to phone my
226
00:08:26.010 --> 00:08:28.050
emulator. Now at the bottom of the side
227
00:08:28.050 --> 00:08:30.720
menu, over here, is this ellipsis - three
228
00:08:30.720 --> 00:08:33.330
dots. If I click on that, that brings up
229
00:08:33.330 --> 00:08:34.890
an extended controls; which I'll just
230
00:08:34.890 --> 00:08:36.330
move over, so you can see the screen as
231
00:08:36.330 --> 00:08:41.310
well. This the menu lets you play around
232
00:08:41.310 --> 00:08:43.350
with things like location and text
233
00:08:43.350 --> 00:08:45.480
messages. Now the phone option in the
234
00:08:45.480 --> 00:08:49.860
left pane, over here, I click on that ... that
235
00:08:49.860 --> 00:08:51.750
allows me to send SMS messages to the
236
00:08:51.750 --> 00:08:53.220
phone and you can also simulate an
237
00:08:53.220 --> 00:08:53.850
incoming
238
00:08:53.850 --> 00:08:56.639
phone call, using the call phone button.
239
00:08:56.639 --> 00:08:58.199
And you can even enter different phone
240
00:08:58.199 --> 00:08:59.970
numbers, to build up a phone log, which
241
00:08:59.970 --> 00:09:01.500
can be useful if you're testing an app
242
00:09:01.500 --> 00:09:03.660
that works with the phone log. Now on
243
00:09:03.660 --> 00:09:05.880
this Nexus emulator, that causes a
244
00:09:05.880 --> 00:09:07.319
message to drop down so that I can
245
00:09:07.319 --> 00:09:08.670
answer the call. Let's just do that.
246
00:09:08.670 --> 00:09:12.180
call device, you can see that's popped up
247
00:09:12.180 --> 00:09:14.100
there. I've come over here now onto the
248
00:09:14.100 --> 00:09:18.340
device. I click on answer.
249
00:09:18.340 --> 00:09:20.230
Now you can't really have a phone
250
00:09:20.230 --> 00:09:22.270
conversation with the emulator, but the
251
00:09:22.270 --> 00:09:23.920
emulator is now behaving like a real
252
00:09:23.920 --> 00:09:26.170
phone that's in a phone call. So without
253
00:09:26.170 --> 00:09:27.520
hanging up the phone, I could tap on the
254
00:09:27.520 --> 00:09:31.870
recents button go back to my email, and
255
00:09:31.870 --> 00:09:34.240
view that. Now there isn't much in this
256
00:09:34.240 --> 00:09:35.620
email, because I'm using a test account
257
00:09:35.620 --> 00:09:37.810
for this demo, but it can be useful to
258
00:09:37.810 --> 00:09:39.490
check some details in an email during a
259
00:09:39.490 --> 00:09:41.380
phone call. All right, so now that I've
260
00:09:41.380 --> 00:09:43.060
checked my email, I can tap the recents
261
00:09:43.060 --> 00:09:45.400
button again, and go back to the phone
262
00:09:45.400 --> 00:09:47.170
call. And obviously if that was off the
263
00:09:47.170 --> 00:09:49.270
list, we could scroll up and down to find
264
00:09:49.270 --> 00:09:51.910
it. And just click it to actually bring
265
00:09:51.910 --> 00:09:53.770
that back on screen again. So that's
266
00:09:53.770 --> 00:09:55.390
pretty neat. The Android phone that fits
267
00:09:55.390 --> 00:09:57.490
in your pocket is more powerful than most
268
00:09:57.490 --> 00:09:59.140
desktop computers from just twenty years
269
00:09:59.140 --> 00:10:01.300
ago. Now there is a slight oddity
270
00:10:01.300 --> 00:10:03.130
sometimes with simulating phone calls on
271
00:10:03.130 --> 00:10:05.320
the emulators. At the moment, when I tap
272
00:10:05.320 --> 00:10:07.060
the red floating action button down here
273
00:10:07.060 --> 00:10:09.880
during the call, the extended control
274
00:10:09.880 --> 00:10:12.700
menu sometimes doesn't seem to update. It
275
00:10:12.700 --> 00:10:13.930
thinks there's still a call in progress.
276
00:10:13.930 --> 00:10:16.210
So tapping the button in there will end
277
00:10:16.210 --> 00:10:17.710
the call, but in this case that has
278
00:10:17.710 --> 00:10:19.750
actually worked okay, but if you get a
279
00:10:19.750 --> 00:10:20.950
problem there, just tap on the button
280
00:10:20.950 --> 00:10:22.540
over here, to end the call. It's not
281
00:10:22.540 --> 00:10:24.280
really a big problem, just something to
282
00:10:24.280 --> 00:10:25.570
be aware of when you're testing how your
283
00:10:25.570 --> 00:10:27.520
apps behave when something like a phone
284
00:10:27.520 --> 00:10:30.070
call happens. Now the phone app, by the
285
00:10:30.070 --> 00:10:32.410
way, doesn't appear in the recents list
286
00:10:32.410 --> 00:10:34.450
after you end a call. So when I tap the
287
00:10:34.450 --> 00:10:37.839
recent button again, you can see that
288
00:10:37.839 --> 00:10:40.960
it's actually disappeared. There's only
289
00:10:40.960 --> 00:10:42.310
the apps I had running before the
290
00:10:42.310 --> 00:10:44.620
phone call came in. To get back to it, we
291
00:10:44.620 --> 00:10:47.470
need to tap the home button, click on
292
00:10:47.470 --> 00:10:50.350
the blue phone icon here. Now I
293
00:10:50.350 --> 00:10:51.940
haven't got any favourites saved, but the
294
00:10:51.940 --> 00:10:53.770
middle tab, this one here with the clock
295
00:10:53.770 --> 00:10:56.950
icon, shows the time and duration of the
296
00:10:56.950 --> 00:10:58.570
you know quote-unquote call I just
297
00:10:58.570 --> 00:11:00.580
received. And I can even simulate an
298
00:11:00.580 --> 00:11:02.980
outgoing call by tapping the phone icon
299
00:11:02.980 --> 00:11:05.950
on the right over here, and that
300
00:11:05.950 --> 00:11:07.450
simulates, as I said, an outgoing phone
301
00:11:07.450 --> 00:11:08.980
call. Of course we're not really going
302
00:11:08.980 --> 00:11:10.390
to make a phone call, but it's a great
303
00:11:10.390 --> 00:11:12.690
feature, again, when testing your apps.
304
00:11:12.690 --> 00:11:14.589
Alright, so I'm going to hang up the phone,
305
00:11:14.589 --> 00:11:17.440
let's hang up that call now.
306
00:11:17.440 --> 00:11:20.050
Let's have a look at split screen mode. Now a
307
00:11:20.050 --> 00:11:21.339
new feature that was introduced in
308
00:11:21.339 --> 00:11:23.680
Android 7 Nougat is split screen mode.
309
00:11:23.680 --> 00:11:25.660
As I said, don't worry if you haven't
310
00:11:25.660 --> 00:11:28.270
got an Android 7 or later device. All the
311
00:11:28.270 --> 00:11:29.920
apps we're developing this course will
312
00:11:29.920 --> 00:11:31.779
run on all devices, on Android 4
313
00:11:31.779 --> 00:11:34.629
- that's Android Jellybean - onwards. They
314
00:11:34.629 --> 00:11:36.040
won't be able to use split screen mode
315
00:11:36.040 --> 00:11:38.290
on earlier devices, but it's still useful
316
00:11:38.290 --> 00:11:40.540
to see what it is. Now some
317
00:11:40.540 --> 00:11:42.879
Samsung devices have had split screen
318
00:11:42.879 --> 00:11:44.949
for a while, but it's now part of Android
319
00:11:44.949 --> 00:11:47.199
itself, which means that all devices from
320
00:11:47.199 --> 00:11:49.660
Nougat onwards will be able to use it.
321
00:11:49.660 --> 00:11:51.309
Now you need one app already running, to
322
00:11:51.309 --> 00:11:53.139
go into split screen mode, and I've
323
00:11:53.139 --> 00:11:54.430
already got the phone dialer on the screen.
324
00:11:54.430 --> 00:11:57.579
So we'll use that for this demo. Now with
325
00:11:57.579 --> 00:11:59.050
that running, which it is, I'm gonna long
326
00:11:59.050 --> 00:12:02.350
tap over here, on the recents button, and
327
00:12:02.350 --> 00:12:03.399
again, on a phone, you'd be holding
328
00:12:03.399 --> 00:12:04.870
your finger on it. In the emulator I
329
00:12:04.870 --> 00:12:06.189
just held the mouse button down, until
330
00:12:06.189 --> 00:12:08.139
that happened. Now on phones that've
331
00:12:08.139 --> 00:12:09.819
got soft buttons, rather than physical
332
00:12:09.819 --> 00:12:12.160
devices, the icon changes to show you
333
00:12:12.160 --> 00:12:14.019
that you're in split screen. So instead
334
00:12:14.019 --> 00:12:17.259
of just a square, it shows two boxes
335
00:12:17.259 --> 00:12:18.790
inside the square, to represent the two
336
00:12:18.790 --> 00:12:20.170
apps running. And that's what you can see
337
00:12:20.170 --> 00:12:22.420
down here. Now I can scroll through the
338
00:12:22.420 --> 00:12:24.670
list of apps down the bottom now, and tap
339
00:12:24.670 --> 00:12:25.899
the one that I want to open in that
340
00:12:25.899 --> 00:12:29.769
other half of the screen. Again I can just
341
00:12:29.769 --> 00:12:31.959
come down and select them. like so. Now
342
00:12:31.959 --> 00:12:33.910
some apps can't support running in split
343
00:12:33.910 --> 00:12:35.980
screen, so you may see a message over
344
00:12:35.980 --> 00:12:38.199
those apps informing you of that. But I
345
00:12:38.199 --> 00:12:40.689
can scroll down and select, for example
346
00:12:40.689 --> 00:12:43.120
the Gmail. Click on that, and I can have
347
00:12:43.120 --> 00:12:45.069
that and the dialer running together on
348
00:12:45.069 --> 00:12:47.680
the device, on screen at the same time. So
349
00:12:47.680 --> 00:12:49.779
yeah that's pretty neat. And it's also
350
00:12:49.779 --> 00:12:51.579
possible to copy and paste between the
351
00:12:51.579 --> 00:12:53.259
two apps, but not all apps actually
352
00:12:53.259 --> 00:12:55.600
support that. Now the bar in the middle
353
00:12:55.600 --> 00:12:58.209
here looks like it lets you resize the
354
00:12:58.209 --> 00:12:59.889
apps, but at the moment anyway it's just
355
00:12:59.889 --> 00:13:01.209
used to close one or the other, by
356
00:13:01.209 --> 00:13:02.589
dragging it over the app you want to
357
00:13:02.589 --> 00:13:04.269
remove from the screen. So I'm going to
358
00:13:04.269 --> 00:13:06.430
drag it to get rid of the dialer, so
359
00:13:06.430 --> 00:13:09.610
we're left with just Gmail. So we're back
360
00:13:09.610 --> 00:13:12.250
in single view mode. So we've now got the
361
00:13:12.250 --> 00:13:14.589
one app running, and the recents button has
362
00:13:14.589 --> 00:13:16.179
now changed back to the single square
363
00:13:16.179 --> 00:13:18.370
again. Okay so let's have a look at some
364
00:13:18.370 --> 00:13:19.269
of the things we're going to be learning
365
00:13:19.269 --> 00:13:22.389
how to add to our apps. Now at the top
366
00:13:22.389 --> 00:13:24.879
of the Gmail app is a toolbar, with a
367
00:13:24.879 --> 00:13:26.589
settings menu on the left, and a search
368
00:13:26.589 --> 00:13:27.819
button on the right. So there's the
369
00:13:27.819 --> 00:13:33.370
settings and there's the search. The
370
00:13:33.370 --> 00:13:35.319
settings menu, as I click it, produces
371
00:13:35.319 --> 00:13:38.050
a navigation drawer. And in this course
372
00:13:38.050 --> 00:13:40.209
we'll see how to create these, as well as
373
00:13:40.209 --> 00:13:42.429
implementing search in our apps. Now to
374
00:13:42.429 --> 00:13:44.230
dismiss the navigation drawer, swipe
375
00:13:44.230 --> 00:13:45.220
to the left.
376
00:13:45.220 --> 00:13:47.410
Now some older phones have a physical
377
00:13:47.410 --> 00:13:49.150
Settings button, instead of the settings
378
00:13:49.150 --> 00:13:51.280
3 bar icon appearing on the toolbar.
379
00:13:51.280 --> 00:13:54.010
It works in the same way, just be aware
380
00:13:54.010 --> 00:13:55.210
of that, if you create an app and the
381
00:13:55.210 --> 00:13:57.280
settings icon doesn't appear on the
382
00:13:57.280 --> 00:13:59.290
toolbar. Now it's also possible to have a
383
00:13:59.290 --> 00:14:01.720
more traditional menu on the toolbar, and
384
00:14:01.720 --> 00:14:03.130
we'll be learning how to create menus
385
00:14:03.130 --> 00:14:04.690
before we get into navigation drawers.
386
00:14:04.690 --> 00:14:07.060
Now the brief instructions at the top of
387
00:14:07.060 --> 00:14:08.770
the list of emails looks like a snack
388
00:14:08.770 --> 00:14:11.890
bar - this one here. These were introduced
389
00:14:11.890 --> 00:14:13.720
with Lollipop and material design, but
390
00:14:13.720 --> 00:14:15.490
are available now for all Android
391
00:14:15.490 --> 00:14:17.440
versions - dating right back to version
392
00:14:17.440 --> 00:14:19.840
2.1 And they're similar to the toast
393
00:14:19.840 --> 00:14:21.460
messages that pop up briefly on the
394
00:14:21.460 --> 00:14:23.530
screen, but you can also add actions to
395
00:14:23.530 --> 00:14:24.520
them, which makes them more interactive
396
00:14:24.520 --> 00:14:27.460
than the old toast messages. This one has
397
00:14:27.460 --> 00:14:28.960
just a simple button to close the snack
398
00:14:28.960 --> 00:14:30.850
bar, but you can also swipe them off the
399
00:14:30.850 --> 00:14:34.510
screen, like so. Now, the emails appear in
400
00:14:34.510 --> 00:14:36.220
a list, and we can create lists like this
401
00:14:36.220 --> 00:14:38.500
using either the ListView widget or a
402
00:14:38.500 --> 00:14:41.080
more recent replacement, called a RecyclerView.
403
00:14:41.080 --> 00:14:43.270
Now, the RecyclerView is more
404
00:14:43.270 --> 00:14:45.760
flexible, but you can't tell by looking
405
00:14:45.760 --> 00:14:46.990
at the screen which one has been used
406
00:14:46.990 --> 00:14:48.340
here. So we're gonna learn how to use
407
00:14:48.340 --> 00:14:50.920
both in our apps anyway. And we'll also
408
00:14:50.920 --> 00:14:52.330
see how to use this floating action
409
00:14:52.330 --> 00:14:54.790
button, this is the circular button at
410
00:14:54.790 --> 00:14:56.440
the bottom right of the screen. And that
411
00:14:56.440 --> 00:14:58.030
should be reserved for the primary
412
00:14:58.030 --> 00:14:59.560
function that users would perform from
413
00:14:59.560 --> 00:15:02.140
for any from any particular screen. And
414
00:15:02.140 --> 00:15:04.470
here it allows a new email to be entered.
415
00:15:04.470 --> 00:15:06.460
Now I can scroll through the list of
416
00:15:06.460 --> 00:15:10.780
emails. I'll just go back now, and as I do
417
00:15:10.780 --> 00:15:13.270
that, the RecyclerView is taking care of
418
00:15:13.270 --> 00:15:15.460
things for us - or the ListView, for
419
00:15:15.460 --> 00:15:16.600
that matter, because again we're not sure
420
00:15:16.600 --> 00:15:18.550
which one's being used here. Now I can
421
00:15:18.550 --> 00:15:22.510
also tap on an email to read it, and
422
00:15:22.510 --> 00:15:24.160
we're gonna learn how to respond to taps
423
00:15:24.160 --> 00:15:27.100
and long taps, in our apps. We can also
424
00:15:27.100 --> 00:15:28.930
add buttons to the list, like the star
425
00:15:28.930 --> 00:15:31.000
next to each of these emails under here,
426
00:15:31.000 --> 00:15:33.670
and that marks them as a favorite. Now by
427
00:15:33.670 --> 00:15:34.990
the time you finish this course, you'll
428
00:15:34.990 --> 00:15:36.190
have learnt how to create all these
429
00:15:36.190 --> 00:15:38.410
effects, and a lot more, which is pretty
430
00:15:38.410 --> 00:15:40.570
cool. Android devices can also
431
00:15:40.570 --> 00:15:42.670
determine their location, and they do
432
00:15:42.670 --> 00:15:45.160
this in two ways. The most accurate is by
433
00:15:45.160 --> 00:15:47.620
using the built in GPS module. If the
434
00:15:47.620 --> 00:15:49.630
device has one, then that allows a phone
435
00:15:49.630 --> 00:15:52.240
to be used as a GPS device. An app such
436
00:15:52.240 --> 00:15:55.060
as Copilot is as a good as dedicated GPS
437
00:15:55.060 --> 00:15:56.860
devices, for giving directions or
438
00:15:56.860 --> 00:15:59.130
driving. And Google Maps also has
439
00:15:59.130 --> 00:16:01.710
the advantage of being free, and also
440
00:16:01.710 --> 00:16:03.780
makes a pretty good pretty good GPS
441
00:16:03.780 --> 00:16:06.000
navigator - though not all the emulators
442
00:16:06.000 --> 00:16:07.650
have things like Google Maps installed.
443
00:16:07.650 --> 00:16:10.290
And that's why I chose the API 26
444
00:16:10.290 --> 00:16:12.360
emulator. At the time I'm recording this,
445
00:16:12.360 --> 00:16:14.460
YouTube isn't installed on the API 25
446
00:16:14.460 --> 00:16:16.740
emulators. Now the other way that Android
447
00:16:16.740 --> 00:16:18.870
devices can check their location is
448
00:16:18.870 --> 00:16:20.970
using the Wi-Fi or mobile phone location.
449
00:16:20.970 --> 00:16:24.000
But this is far less accurate. Wi-Fi, in
450
00:16:24.000 --> 00:16:25.710
particular, can be way out because it
451
00:16:25.710 --> 00:16:28.050
only reliably knows the location of your
452
00:16:28.050 --> 00:16:29.460
connection to the Internet.
453
00:16:29.460 --> 00:16:31.200
The phone cabinet in the street, in
454
00:16:31.200 --> 00:16:32.670
other words, which could be a mile or
455
00:16:32.670 --> 00:16:34.980
more from your real location. Alright, so
456
00:16:34.980 --> 00:16:38.340
go back to the home screen now, and
457
00:16:38.340 --> 00:16:39.690
let's just launch Maps by clicking
458
00:16:39.690 --> 00:16:41.850
it over here. Now the first time you
459
00:16:41.850 --> 00:16:43.650
launch it, whether on an emulator or a
460
00:16:43.650 --> 00:16:45.810
real device, you have to accept the terms
461
00:16:45.810 --> 00:16:47.970
of conditions. But I've done that already,
462
00:16:47.970 --> 00:16:49.470
and again that's pretty standard for a
463
00:16:49.470 --> 00:16:51.980
lot of google apps. Alright the
464
00:16:51.980 --> 00:16:54.960
emulators got a default location. We can
465
00:16:54.960 --> 00:16:56.730
change that from the extended controls
466
00:16:56.730 --> 00:16:58.140
menu that we just used to make a phone
467
00:16:58.140 --> 00:16:58.530
call.
468
00:16:58.530 --> 00:17:00.540
So come over here and click on location,
469
00:17:00.540 --> 00:17:02.640
and I can tell the emulator that it's in
470
00:17:02.640 --> 00:17:03.210
Adelaide.
471
00:17:03.210 --> 00:17:05.130
Now the longitude let's type that in
472
00:17:05.130 --> 00:17:06.569
first. That's choosing the longitude and
473
00:17:06.569 --> 00:17:09.390
latitude for Adelaide. Longitude is going
474
00:17:09.390 --> 00:17:11.730
to be one thirty eight thirty eight
475
00:17:11.730 --> 00:17:15.959
point six oh one, and the latitude we
476
00:17:15.959 --> 00:17:18.030
need to set that to minus thirty four
477
00:17:18.030 --> 00:17:23.750
point nine two eight five. Tap on send,
478
00:17:23.750 --> 00:17:26.760
that sends the new location to the
479
00:17:26.760 --> 00:17:29.430
device. And it's important to make the
480
00:17:29.430 --> 00:17:31.590
latitude negative. Adelaide's south of the
481
00:17:31.590 --> 00:17:33.090
Equator, and if we leave it positive we'll
482
00:17:33.090 --> 00:17:39.200
end up in the sea.
483
00:17:39.200 --> 00:17:41.149
And as you can see when I did that, it
484
00:17:41.149 --> 00:17:43.039
automatically went to Adelaide, when I
485
00:17:43.039 --> 00:17:45.049
actually updated the latitude and
486
00:17:45.049 --> 00:17:47.960
longitude. Now you can also simulate the
487
00:17:47.960 --> 00:17:49.970
device moving, either by typing in and
488
00:17:49.970 --> 00:17:52.369
sending new coordinates, or by loading a
489
00:17:52.369 --> 00:17:54.139
set of coordinates stored in a GPX
490
00:17:54.139 --> 00:17:56.149
file. So I'm going to load a file using
491
00:17:56.149 --> 00:18:01.220
the load a GPX XML button, down here. I'm
492
00:18:01.220 --> 00:18:02.389
going to select the file I've already
493
00:18:02.389 --> 00:18:06.320
got here, adelaide.gpx, and open.
494
00:18:06.320 --> 00:18:07.580
So once I've done that, I can come over here
495
00:18:07.580 --> 00:18:09.590
and click on the play button, and when I
496
00:18:09.590 --> 00:18:11.059
do that, the coordinates are sent to
497
00:18:11.059 --> 00:18:12.409
the device just as if we were coming
498
00:18:12.409 --> 00:18:17.059
from a real GPS module. You can see the
499
00:18:17.059 --> 00:18:19.820
Google updates, er, Google Maps is updating
500
00:18:19.820 --> 00:18:23.530
as we do that.
501
00:18:23.530 --> 00:18:26.530
And as you can see, it also tracks time
502
00:18:26.530 --> 00:18:28.540
as well as location, so the speed varies;
503
00:18:28.540 --> 00:18:30.550
just like it would if you got out of a
504
00:18:30.550 --> 00:18:32.980
car and started walking. All right, so
505
00:18:32.980 --> 00:18:35.820
that's the GPS demonstration. And
506
00:18:35.820 --> 00:18:37.480
basically that's a quick demonstration
507
00:18:37.480 --> 00:18:39.670
of how Android apps work, and interact
508
00:18:39.670 --> 00:18:41.850
with the Android operating system.
509
00:18:41.850 --> 00:18:44.320
Now in the next sections, let's start
510
00:18:44.320 --> 00:18:46.420
off with a simple app to get the hang of
511
00:18:46.420 --> 00:18:49.240
using Android Studio to develop apps. And
512
00:18:49.240 --> 00:18:50.770
then we're going to build up to create more
513
00:18:50.770 --> 00:18:53.620
complex apps, involving databases, Google
514
00:18:53.620 --> 00:18:56.440
Maps, REST services and more. And there's
515
00:18:56.440 --> 00:18:58.870
also a tutorial section coming up, and if
516
00:18:58.870 --> 00:19:00.460
you already know Java or Kotlin
517
00:19:00.460 --> 00:19:01.600
(depending on which course you're
518
00:19:01.600 --> 00:19:03.460
watching this video in) then feel free to
519
00:19:03.460 --> 00:19:05.740
skip those videos. But if you're new to
520
00:19:05.740 --> 00:19:07.990
the language, the tutorials will actually
521
00:19:07.990 --> 00:19:10.090
give you the basics. And you'll find the
522
00:19:10.090 --> 00:19:12.670
tutorials in section 4. Alright, so in the
523
00:19:12.670 --> 00:19:13.900
next video we're going to download and
524
00:19:13.900 --> 00:19:16.990
install Android Studio, which is the tool
525
00:19:16.990 --> 00:19:18.310
you'll need to start creating your
526
00:19:18.310 --> 00:19:20.110
Android apps. So we'll see you in that
527
00:19:20.110 --> 00:19:22.620
next video.
40741
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.