1
01:00:00,500 --> 01:00:03,000
So Simon Hamp is back on the show last

2
01:00:03,000 --> 01:00:03,916
time he was here. We talked

3
01:00:03,916 --> 01:00:06,250
about native PHP this time

4
01:00:06,250 --> 01:00:08,166
He's got a brand new thing native PHP

5
01:00:08,166 --> 01:00:10,125
iOS. So welcome back

6
01:00:10,125 --> 01:00:12,083
Simon. Thanks for having me Eric

7
01:00:12,125 --> 01:00:14,125
It's so good to be back. It's good to see

8
01:00:14,125 --> 01:00:18,291
you again. Yeah, you too. So I

9
01:00:18,291 --> 01:00:20,083
Think at first we thought native PHP was

10
01:00:20,083 --> 01:00:21,541
crazy and you're just like

11
01:00:21,541 --> 01:00:23,291
no that's not crazy enough

12
01:00:23,291 --> 01:00:26,000
So we're just gonna go full bore into

13
01:00:26,000 --> 01:00:27,916
mobile development. So so

14
01:00:27,916 --> 01:00:28,666
how did this come about?

15
01:00:31,000 --> 01:00:33,000
Where do I begin? Well, I mean obviously

16
01:00:33,000 --> 01:00:34,458
it starts with native PHP

17
01:00:35,041 --> 01:00:36,166
because none of this would

18
01:00:36,166 --> 01:00:38,333
have happened without that but

19
01:00:39,500 --> 01:00:42,625
Basically last year I was looking into I

20
01:00:42,625 --> 01:00:44,416
was looking into doing something that

21
01:00:44,416 --> 01:00:45,666
probably I shouldn't have

22
01:00:45,958 --> 01:00:48,333
Shouldn't do which is like how can I run?

23
01:00:49,083 --> 01:00:52,000
PHP without a web server behind it and

24
01:00:52,000 --> 01:00:52,916
the reason for that was

25
01:00:52,916 --> 01:00:54,708
kind of like I'm looking into

26
01:00:54,708 --> 01:00:57,208
building all of this stuff for native PHP

27
01:00:57,208 --> 01:00:59,041
for the desktop stuff and

28
01:00:59,583 --> 01:01:02,791
And doing it without web servers and then

29
01:01:02,791 --> 01:01:04,000
it kind of dawned on me

30
01:01:04,000 --> 01:01:06,375
I was like, you know, I think this is

31
01:01:06,375 --> 01:01:08,541
gonna work on a phone because

32
01:01:09,041 --> 01:01:11,083
Now we haven't got to run a web server.

33
01:01:11,083 --> 01:01:13,125
It's so I started investigating all of

34
01:01:13,125 --> 01:01:14,416
that and I'm like, oh

35
01:01:14,416 --> 01:01:15,583
actually I can't run

36
01:01:16,000 --> 01:01:19,166
Like PHP as an a separate executable on

37
01:01:19,166 --> 01:01:21,125
the phone. So I start to investigate like

38
01:01:21,125 --> 01:01:22,625
how do I do this as a

39
01:01:23,166 --> 01:01:25,125
embeddable PHP and

40
01:01:26,000 --> 01:01:27,708
And all these pieces just start to fall

41
01:01:27,708 --> 01:01:28,666
into place and then I'm

42
01:01:28,666 --> 01:01:29,958
like, do you know what?

43
01:01:29,958 --> 01:01:30,500
I think I'm gonna

44
01:01:30,500 --> 01:01:32,958
just hold here for a bit

45
01:01:32,958 --> 01:01:35,625
And I'll just seed a few people with the

46
01:01:35,625 --> 01:01:37,833
idea of like, maybe we can do this

47
01:01:37,833 --> 01:01:39,333
You know talk to Marcel about it

48
01:01:39,333 --> 01:01:41,708
I was like, I think we can do this and we

49
01:01:41,708 --> 01:01:43,333
were at Laricon US and I

50
01:01:43,333 --> 01:01:44,583
mentioned it to a few people

51
01:01:44,583 --> 01:01:46,000
There's some people in the community who

52
01:01:46,000 --> 01:01:48,000
have been on at me like when is it gonna

53
01:01:48,000 --> 01:01:48,958
be ready for mobile?

54
01:01:48,958 --> 01:01:49,708
And I'm like, oh

55
01:01:49,708 --> 01:01:52,666
And I said to them I think I've cracked

56
01:01:52,666 --> 01:01:53,500
it, you know, like I

57
01:01:53,500 --> 01:01:54,791
think we're we're nearly there

58
01:01:54,916 --> 01:01:55,666
and

59
01:01:56,291 --> 01:01:59,375
Coming back from Laricon US. I was like

60
01:01:59,875 --> 01:02:01,958
Well the the Laricon EU

61
01:02:03,166 --> 01:02:05,291
Call for papers, you know call for talks

62
01:02:05,291 --> 01:02:06,958
opened up and I was like, all right

63
01:02:06,958 --> 01:02:09,708
I'll just put a talk in like the really

64
01:02:10,458 --> 01:02:12,500
Smallest brief that I could write for a

65
01:02:12,500 --> 01:02:14,625
talk was like building mobile apps with

66
01:02:14,625 --> 01:02:17,458
PHP and then like months later

67
01:02:17,458 --> 01:02:19,500
I have completely forgot about it. I was

68
01:02:19,500 --> 01:02:20,458
just like, okay, I'm

69
01:02:20,458 --> 01:02:21,041
not gonna do anything

70
01:02:21,541 --> 01:02:23,666
I'm gonna wait till I hear if I get

71
01:02:23,666 --> 01:02:25,000
anything back on this talk

72
01:02:25,000 --> 01:02:26,750
and if they say no, that's fine

73
01:02:26,750 --> 01:02:30,208
But to my surprise Kaneko came back to me

74
01:02:30,208 --> 01:02:31,333
like out of the blue

75
01:02:31,333 --> 01:02:32,166
a couple of months ago

76
01:02:32,166 --> 01:02:32,833
He was just like

77
01:02:32,833 --> 01:02:34,500
really like your talk idea

78
01:02:35,000 --> 01:02:36,041
Do you still want to give

79
01:02:36,041 --> 01:02:37,791
it and I was like hell? Yes

80
01:02:37,791 --> 01:02:40,500
I want to give it but I haven't built any

81
01:02:40,500 --> 01:02:41,208
of the stuff that I

82
01:02:41,208 --> 01:02:42,250
said that was gonna build

83
01:02:42,250 --> 01:02:44,875
So now I've got to go and figure that out

84
01:02:44,875 --> 01:02:47,125
so I finally kind of knuckled down over

85
01:02:47,125 --> 01:02:49,416
like the holiday period and just

86
01:02:49,500 --> 01:02:51,208
Smashed out this thing and I was like

87
01:02:51,208 --> 01:02:53,375
couldn't believe that it actually worked

88
01:02:54,166 --> 01:02:56,875
And yeah, then I started sharing more and

89
01:02:56,875 --> 01:02:58,041
more stuff about it just

90
01:02:58,041 --> 01:02:59,458
like leading up to my talk

91
01:02:59,458 --> 01:03:01,458
so that's kind of how it came to life,

92
01:03:01,458 --> 01:03:03,291
it's probably been a

93
01:03:03,291 --> 01:03:05,458
year in the making and

94
01:03:05,458 --> 01:03:08,083
Quite a lot of work to get there. But

95
01:03:09,250 --> 01:03:14,000
Got the so yes you so basically he by

96
01:03:14,000 --> 01:03:15,458
accepting the talk you had a deadline

97
01:03:15,458 --> 01:03:17,041
So at that yeah, it's had to get

98
01:03:17,041 --> 01:03:17,833
something done, right?

99
01:03:18,250 --> 01:03:20,041
Can echo got his whip out and started

100
01:03:22,250 --> 01:03:23,375
Giddy up

101
01:03:23,875 --> 01:03:25,166
that's funny, so

102
01:03:25,875 --> 01:03:27,875
As far as like the back end

103
01:03:27,875 --> 01:03:29,583
on on how this actually works

104
01:03:29,583 --> 01:03:33,000
So you write in PHP you can

105
01:03:33,000 --> 01:03:34,333
use a lot of wire of course

106
01:03:34,333 --> 01:03:37,458
I guess CSS normal CSS like tailwind or

107
01:03:37,458 --> 01:03:39,916
something and then it compiles itself

108
01:03:39,916 --> 01:03:42,000
into an Xcode thing or

109
01:03:42,791 --> 01:03:45,750
I guess I don't know how that works like

110
01:03:45,750 --> 01:03:47,541
what what actually runs on iOS

111
01:03:48,583 --> 01:03:51,250
So it's an Xcode project that gets

112
01:03:51,791 --> 01:03:53,250
kind of bundled together

113
01:03:53,833 --> 01:03:56,291
But your your Laravel app gets kind of

114
01:03:56,291 --> 01:03:57,833
injected into the Xcode

115
01:03:57,833 --> 01:04:00,250
project and then I'm not like

116
01:04:00,750 --> 01:04:03,000
transpiling any PHP code into

117
01:04:03,333 --> 01:04:05,500
Swift or any other language. It's still

118
01:04:05,500 --> 01:04:08,000
running as PHP code. So

119
01:04:08,791 --> 01:04:12,625
Your actual Laravel project goes on to

120
01:04:12,625 --> 01:04:15,625
the phone and it runs as

121
01:04:15,666 --> 01:04:18,458
PHP would on the server kind of

122
01:04:19,250 --> 01:04:20,375
but on the phone

123
01:04:21,041 --> 01:04:23,916
so it's what's happening is the

124
01:04:24,333 --> 01:04:27,000
PHP engine has kind of been embedded into

125
01:04:27,000 --> 01:04:28,875
the app and so when the app

126
01:04:28,875 --> 01:04:31,375
sees like you're asking it to

127
01:04:31,875 --> 01:04:34,166
Basically kind of make a request to PHP,

128
01:04:34,166 --> 01:04:35,583
you know, which Laravel

129
01:04:35,583 --> 01:04:37,541
does very very by default

130
01:04:38,541 --> 01:04:42,000
It kind of boots up the PHP engine runs

131
01:04:42,000 --> 01:04:44,166
the whole Laravel application through the

132
01:04:44,166 --> 01:04:45,041
engine as it normally

133
01:04:45,041 --> 01:04:46,541
would and then just gets the

134
01:04:46,625 --> 01:04:49,916
HTML and the headers back and kind of

135
01:04:49,916 --> 01:04:52,416
injects all of that response into a web

136
01:04:52,416 --> 01:04:54,375
view and it does it without

137
01:04:55,250 --> 01:04:57,083
Without the web server I'm saying

138
01:04:57,083 --> 01:04:59,666
earlier. So there's no there's no

139
01:05:00,000 --> 01:05:01,666
Processes that are sort of hanging around

140
01:05:01,666 --> 01:05:03,541
on the device trying waiting for

141
01:05:03,541 --> 01:05:04,833
requests. It literally just goes

142
01:05:04,875 --> 01:05:07,500
Oh, there's a you want this I'll spin all

143
01:05:07,500 --> 01:05:09,000
of that up and then finish

144
01:05:09,000 --> 01:05:11,083
that and then here you go

145
01:05:11,916 --> 01:05:12,583
which is

146
01:05:13,166 --> 01:05:15,125
Good, you know like for me that's cool

147
01:05:15,125 --> 01:05:17,541
because now I can take all my Laravel

148
01:05:17,541 --> 01:05:19,875
stuff and I can just do it on the phone

149
01:05:20,875 --> 01:05:22,875
But yeah, this it's not

150
01:05:23,791 --> 01:05:25,750
native in the sense of

151
01:05:26,250 --> 01:05:28,666
You know building a like native UI

152
01:05:28,666 --> 01:05:31,541
components yet, but it could get there

153
01:05:31,958 --> 01:05:32,125
Yeah

154
01:05:32,708 --> 01:05:33,833
what about

155
01:05:34,750 --> 01:05:37,250
I know you said it's sort of like bundles

156
01:05:37,250 --> 01:05:38,458
sort of a version of PHP.

157
01:05:38,708 --> 01:05:40,208
What about like a database like

158
01:05:41,750 --> 01:05:42,916
What's your idea there is

159
01:05:42,916 --> 01:05:44,125
is it gonna be able to like?

160
01:05:44,791 --> 01:05:47,333
Use whatever the iPhone storage is or

161
01:05:47,333 --> 01:05:49,083
you're just like doing more like API

162
01:05:49,083 --> 01:05:51,083
calls back to some other thing

163
01:05:51,541 --> 01:05:54,125
You you've got kind of choices there

164
01:05:54,125 --> 01:05:56,416
I think when when people think about

165
01:05:56,416 --> 01:05:58,541
Laravel they think I can connect to my

166
01:05:58,541 --> 01:06:00,041
sequel or Postgres or

167
01:06:00,041 --> 01:06:01,583
all these other drivers and

168
01:06:02,166 --> 01:06:04,291
But you have to kind of get into the

169
01:06:04,291 --> 01:06:05,750
mindset of I'm

170
01:06:05,750 --> 01:06:08,583
building a client application

171
01:06:08,583 --> 01:06:10,583
You know, my Laravel app is really a

172
01:06:10,583 --> 01:06:13,541
client to something else potentially

173
01:06:13,541 --> 01:06:14,333
I mean, it could be

174
01:06:14,333 --> 01:06:15,458
just completely standalone

175
01:06:15,875 --> 01:06:18,375
But if you're thinking, you know, I want

176
01:06:18,375 --> 01:06:20,458
to run Postgres somewhere

177
01:06:20,458 --> 01:06:22,458
Let's say like you've got a service

178
01:06:22,458 --> 01:06:23,625
running on Laravel cloud

179
01:06:24,500 --> 01:06:26,291
And you've got a Postgres database

180
01:06:26,708 --> 01:06:27,333
you

181
01:06:27,833 --> 01:06:30,000
Absolutely do not want to be connecting

182
01:06:30,000 --> 01:06:32,375
your client applications

183
01:06:32,375 --> 01:06:34,125
Which could be installed on hundreds or

184
01:06:34,125 --> 01:06:35,666
thousands of phones in

185
01:06:35,666 --> 01:06:38,500
theory all to that one database

186
01:06:39,125 --> 01:06:40,958
without any kind of

187
01:06:41,458 --> 01:06:43,375
intermediary so you'd want it to be going

188
01:06:43,375 --> 01:06:45,166
through an API that you've got

189
01:06:45,166 --> 01:06:47,291
authentication going on and you can

190
01:06:47,500 --> 01:06:50,458
Tell who's doing what and you know?

191
01:06:51,375 --> 01:06:53,750
give out tokens that you can expire and

192
01:06:53,750 --> 01:06:55,166
all of those kinds of things and just

193
01:06:55,166 --> 01:06:56,041
have like a good

194
01:06:56,041 --> 01:06:57,333
level of control that the

195
01:06:58,041 --> 01:07:00,125
Database server just won't give you by

196
01:07:00,125 --> 01:07:02,291
default without, you know a lot of work

197
01:07:02,750 --> 01:07:05,583
So in that scenario, you should pretty

198
01:07:05,583 --> 01:07:06,625
much always be thinking

199
01:07:06,625 --> 01:07:08,750
like it's going through an API

200
01:07:09,625 --> 01:07:12,625
But because it is just a file system

201
01:07:13,416 --> 01:07:16,833
On the phone you can have a like a sequel

202
01:07:16,833 --> 01:07:18,750
light database running on there and it

203
01:07:18,750 --> 01:07:20,166
comes with sequel light support

204
01:07:20,166 --> 01:07:21,958
so, you know, and Laravel's done a lot of

205
01:07:21,958 --> 01:07:23,625
work in the last couple of years to

206
01:07:24,208 --> 01:07:25,333
Make sequel light

207
01:07:25,333 --> 01:07:26,791
support like a real first-class

208
01:07:28,416 --> 01:07:30,166
supported solution, so

209
01:07:30,833 --> 01:07:33,250
It's actually great for that now and it

210
01:07:33,250 --> 01:07:35,000
works really really well. So you can have

211
01:07:35,000 --> 01:07:37,875
a local database that you're

212
01:07:38,250 --> 01:07:40,125
Updating with like eloquent models and

213
01:07:40,125 --> 01:07:40,833
you know using

214
01:07:40,833 --> 01:07:42,708
migrations and stuff on the device

215
01:07:42,708 --> 01:07:44,666
Which just feels like

216
01:07:44,666 --> 01:07:46,750
you're right at home in

217
01:07:46,916 --> 01:07:48,875
Classic Laravel world, which is great

218
01:07:49,583 --> 01:07:53,333
That's sweet. Uh, what about so

219
01:07:54,875 --> 01:07:56,541
What is like the best use case

220
01:07:57,500 --> 01:07:58,166
You know

221
01:07:58,750 --> 01:08:00,708
Sort of this is sort of my thinking the

222
01:08:00,708 --> 01:08:01,625
way you're kind of describing it

223
01:08:01,625 --> 01:08:04,083
Like it's never gonna be like you can

224
01:08:04,083 --> 01:08:05,000
never like build little

225
01:08:05,000 --> 01:08:06,166
games or something with it

226
01:08:06,166 --> 01:08:08,791
But it's more like B2B apps

227
01:08:08,791 --> 01:08:11,208
things like that or is it?

228
01:08:12,083 --> 01:08:12,166
Hmm

229
01:08:13,666 --> 01:08:16,250
Yeah, what's your thoughts there the

230
01:08:16,250 --> 01:08:18,083
first app that is you know

231
01:08:18,083 --> 01:08:19,583
The app that I built that went through

232
01:08:19,583 --> 01:08:21,458
the App Store that Apple have approved

233
01:08:22,125 --> 01:08:24,916
Is a game technically. I mean, it's not

234
01:08:24,916 --> 01:08:25,625
like three-dimensional

235
01:08:26,583 --> 01:08:27,875
stuff but

236
01:08:29,166 --> 01:08:32,708
There's actually a project called PHP GL

237
01:08:34,125 --> 01:08:36,125
Something PHP GLFW or

238
01:08:36,125 --> 01:08:37,291
something like that and it's like

239
01:08:38,041 --> 01:08:40,000
They're trying to make open GL

240
01:08:40,000 --> 01:08:42,625
drivers in PHP and all of this

241
01:08:42,625 --> 01:08:44,833
so I can kind of see a point in the

242
01:08:44,833 --> 01:08:45,708
future where that

243
01:08:45,708 --> 01:08:47,333
could be possible because

244
01:08:47,750 --> 01:08:49,916
there's nothing really preventing you

245
01:08:49,916 --> 01:08:52,333
from connecting to the the hardware and

246
01:08:52,333 --> 01:08:53,375
running all of that

247
01:08:53,375 --> 01:08:54,541
kind of I mean, it's just

248
01:08:55,083 --> 01:08:57,833
More maths really, you know, like more

249
01:08:57,833 --> 01:08:59,125
calculations that happening

250
01:09:00,625 --> 01:09:01,833
But should you do that

251
01:09:01,833 --> 01:09:05,166
in PHP I don't know I

252
01:09:05,166 --> 01:09:07,083
Think people will definitely go we're

253
01:09:07,083 --> 01:09:07,583
trying to build a

254
01:09:07,583 --> 01:09:08,750
really performant game here

255
01:09:08,750 --> 01:09:11,375
Let's use like the proper frameworks that

256
01:09:11,375 --> 01:09:12,125
are available on the

257
01:09:12,125 --> 01:09:14,833
platforms whatever but yeah

258
01:09:15,625 --> 01:09:18,166
Business apps. I mean I can see like

259
01:09:18,166 --> 01:09:20,833
potentially businesses that have they've

260
01:09:20,833 --> 01:09:21,375
already got like

261
01:09:21,375 --> 01:09:22,625
their service like a sass

262
01:09:22,666 --> 01:09:27,000
And then they want this kind of side car

263
01:09:27,791 --> 01:09:28,791
Application that's

264
01:09:28,791 --> 01:09:30,375
installable on the phones

265
01:09:31,291 --> 01:09:33,250
So, you know, they might not ever

266
01:09:33,833 --> 01:09:36,166
Sell that app through the store. They

267
01:09:36,166 --> 01:09:37,958
might not ever do anything that kind of

268
01:09:37,958 --> 01:09:40,166
directly generates revenue from that app

269
01:09:40,291 --> 01:09:41,250
But you know, it's a

270
01:09:41,250 --> 01:09:43,416
feature of their entire platform

271
01:09:44,250 --> 01:09:45,333
And then you know

272
01:09:45,333 --> 01:09:47,333
You could get going basically if you had

273
01:09:47,333 --> 01:09:49,250
a team of like one or

274
01:09:49,250 --> 01:09:50,250
two Laravel developers

275
01:09:50,541 --> 01:09:52,833
And he didn't want to invest in hiring

276
01:09:52,833 --> 01:09:55,541
like Swift developers and Kotlin

277
01:09:55,541 --> 01:09:57,916
developers or react native developers

278
01:09:58,458 --> 01:10:00,083
You got a team now that

279
01:10:00,083 --> 01:10:01,958
can build a native app still

280
01:10:02,458 --> 01:10:03,333
with their

281
01:10:03,958 --> 01:10:05,791
Existing Laravel skills, which I think is

282
01:10:05,791 --> 01:10:08,000
super powerful and and cool

283
01:10:09,708 --> 01:10:11,666
But I do think another thing is like

284
01:10:11,666 --> 01:10:14,416
people just have these ideas, you know

285
01:10:14,416 --> 01:10:16,541
They I've talked to friends over the last

286
01:10:16,541 --> 01:10:18,208
few weeks and they're like I've had this

287
01:10:18,208 --> 01:10:19,333
idea for an app and it's like

288
01:10:19,500 --> 01:10:20,625
Yeah, but you know

289
01:10:20,625 --> 01:10:23,333
You don't really know how to code and you

290
01:10:23,333 --> 01:10:25,041
don't know how you're gonna have to learn

291
01:10:25,041 --> 01:10:26,000
all these languages and

292
01:10:26,000 --> 01:10:27,750
tools and things and it's like

293
01:10:27,750 --> 01:10:29,583
I can't build it for them because I

294
01:10:29,583 --> 01:10:30,541
didn't know Swift and I

295
01:10:30,541 --> 01:10:31,666
didn't know these other languages

296
01:10:31,666 --> 01:10:36,125
But now I can because I already know like

297
01:10:36,125 --> 01:10:38,166
Laravel and PHP so I can just go

298
01:10:38,166 --> 01:10:40,208
Oh, actually, let me just you know and a

299
01:10:40,208 --> 01:10:42,083
day later. It's like here's your app

300
01:10:43,916 --> 01:10:45,333
That's quite cool. I

301
01:10:45,333 --> 01:10:46,250
think that's gonna be

302
01:10:46,916 --> 01:10:49,208
Empowering people to kind of try new

303
01:10:49,208 --> 01:10:51,166
stuff out and bring new

304
01:10:51,166 --> 01:10:52,583
ideas to life. Hopefully

305
01:10:53,333 --> 01:10:55,000
Yes, I think that'll be great

306
01:10:55,000 --> 01:10:56,541
I was you know, I was just thinking my

307
01:10:56,541 --> 01:10:58,125
own use case like it'd be sweet just to

308
01:10:58,125 --> 01:10:59,458
have a little little news app

309
01:10:59,750 --> 01:11:01,708
OS app, I don't know

310
01:11:01,708 --> 01:11:02,833
who would download it

311
01:11:02,833 --> 01:11:04,500
But you know it would be neat to have

312
01:11:04,500 --> 01:11:06,375
that as an option at some point, you know

313
01:11:06,875 --> 01:11:09,000
Or a golf app. It's like no, you've

314
01:11:09,000 --> 01:11:10,375
probably got loads of good golf apps

315
01:11:10,916 --> 01:11:12,416
You know, I don't know

316
01:11:12,916 --> 01:11:16,333
It would be cooler to to hook into we've

317
01:11:16,333 --> 01:11:16,958
actually made another

318
01:11:16,958 --> 01:11:18,083
buddy talked about this before

319
01:11:18,083 --> 01:11:20,750
It's like have an iOS app where we can

320
01:11:20,750 --> 01:11:22,041
like video your swing

321
01:11:22,041 --> 01:11:24,250
and then we hook into like

322
01:11:24,500 --> 01:11:27,166
Chat GPT or one of the AI stuff and it's

323
01:11:27,166 --> 01:11:28,791
like this is what you're doing wrong

324
01:11:28,791 --> 01:11:30,000
You should probably work on you know

325
01:11:30,000 --> 01:11:32,291
Here's some training aids and something

326
01:11:32,291 --> 01:11:33,583
like that might be kind of cool and you

327
01:11:33,583 --> 01:11:34,541
could probably do that

328
01:11:34,541 --> 01:11:35,541
through something like this

329
01:11:35,541 --> 01:11:36,583
Because it would just be

330
01:11:36,583 --> 01:11:38,333
connecting through API's

331
01:11:38,583 --> 01:11:41,000
Yeah, I guess because I did see you take

332
01:11:41,000 --> 01:11:42,291
a picture on on stage

333
01:11:42,416 --> 01:11:44,250
So it's definitely possible to hook into

334
01:11:44,250 --> 01:11:46,000
the camera, right? Uh-huh

335
01:11:46,375 --> 01:11:47,833
I mean videos are different beasts

336
01:11:47,833 --> 01:11:50,083
but I think what you know what you're

337
01:11:50,083 --> 01:11:51,375
talking about is essentially like you

338
01:11:51,375 --> 01:11:52,833
capture a bit of video and

339
01:11:52,833 --> 01:11:54,375
then you want your app to

340
01:11:54,500 --> 01:11:56,958
take that file and

341
01:11:57,333 --> 01:11:58,875
Automatically sort of process it through

342
01:11:58,875 --> 01:12:00,291
some other API and get some

343
01:12:00,291 --> 01:12:02,000
data back, you know, it's like

344
01:12:02,791 --> 01:12:03,833
Yeah, you could like

345
01:12:03,833 --> 01:12:06,375
that's just very basic web API

346
01:12:07,000 --> 01:12:09,416
Interaction stuff so you could totally do

347
01:12:09,416 --> 01:12:10,416
that with Laravel now

348
01:12:10,416 --> 01:12:12,750
and that's very very cool

349
01:12:13,375 --> 01:12:14,625
Potential stuff that

350
01:12:14,625 --> 01:12:16,000
could come from this. Yeah

351
01:12:16,416 --> 01:12:19,083
Yeah, I agree and well even you know,

352
01:12:19,083 --> 01:12:20,291
talking about more sale and beyond code,

353
01:12:20,291 --> 01:12:21,291
you know having a tinker

354
01:12:21,291 --> 01:12:22,208
well on your phone that

355
01:12:22,208 --> 01:12:23,833
That could be kind of interesting. I

356
01:12:23,833 --> 01:12:25,208
don't know what you do with it, but you

357
01:12:25,208 --> 01:12:26,375
could play around with PHP

358
01:12:26,375 --> 01:12:27,875
You know as you're as

359
01:12:27,875 --> 01:12:28,500
you're doing something

360
01:12:29,041 --> 01:12:32,416
Yeah, or or more of like an iPad app or

361
01:12:32,416 --> 01:12:34,458
something. I don't know but but yeah,

362
01:12:34,458 --> 01:12:35,416
that's that's very cool

363
01:12:35,458 --> 01:12:37,958
So, so what do you think I know right now

364
01:12:37,958 --> 01:12:41,333
you're iOS only but you do have it that

365
01:12:41,333 --> 01:12:42,916
you're trying to get the Android

366
01:12:43,958 --> 01:12:46,166
Anything else like big that you're

367
01:12:46,166 --> 01:12:48,166
wanting to get done before

368
01:12:48,166 --> 01:12:50,791
before the first release. I

369
01:12:50,791 --> 01:12:52,791
Mean, there's loads of API is that I want

370
01:12:52,791 --> 01:12:53,666
to you know, I'm

371
01:12:53,666 --> 01:12:55,166
working on getting working

372
01:12:56,125 --> 01:12:58,291
so that they're usable and

373
01:12:58,916 --> 01:13:00,875
One of the things I didn't get to do

374
01:13:00,875 --> 01:13:01,750
before my talk which

375
01:13:01,750 --> 01:13:03,250
I hoped I'd have time

376
01:13:03,291 --> 01:13:04,833
But didn't was to kind of

377
01:13:04,833 --> 01:13:06,041
wrap it all up in the nice

378
01:13:06,291 --> 01:13:09,000
We've got quite a nice API now for native

379
01:13:09,000 --> 01:13:11,083
PHP for the desktop stuff and like the

380
01:13:11,083 --> 01:13:12,583
packages are kind of

381
01:13:12,583 --> 01:13:14,625
stable and all of that

382
01:13:14,791 --> 01:13:16,625
So I want to bring some of that stability

383
01:13:16,625 --> 01:13:19,041
across to this kind of straight away

384
01:13:19,041 --> 01:13:20,208
so we get all of that for

385
01:13:20,208 --> 01:13:22,875
free in some respects and

386
01:13:23,250 --> 01:13:25,416
You know, it'll be nice then to have this

387
01:13:25,416 --> 01:13:28,041
you'll have like ID support and all of

388
01:13:28,041 --> 01:13:29,250
the IntelliSense things

389
01:13:29,250 --> 01:13:30,208
are gonna be nice and working

390
01:13:30,583 --> 01:13:33,916
Yeah, I mean I showed off some of the

391
01:13:33,916 --> 01:13:35,916
camera stuff but there's a bit of work to

392
01:13:35,916 --> 01:13:36,541
do to make that

393
01:13:36,541 --> 01:13:38,166
really smooth and get video

394
01:13:38,166 --> 01:13:40,625
And all of those things going but I think

395
01:13:40,625 --> 01:13:41,833
some of those things definitely

396
01:13:42,041 --> 01:13:43,916
But there's a couple of things that come

397
01:13:43,916 --> 01:13:46,041
to the top of the list for people always

398
01:13:46,041 --> 01:13:48,375
push notifications is one

399
01:13:49,333 --> 01:13:50,708
because people basically

400
01:13:50,708 --> 01:13:52,250
people want to be able to

401
01:13:52,458 --> 01:13:55,125
Make the the thing kind of remotely

402
01:13:55,125 --> 01:13:56,958
sensitive to the stuff that's happening

403
01:13:56,958 --> 01:13:57,708
in their application

404
01:13:58,416 --> 01:13:59,291
Environment elsewhere

405
01:13:59,291 --> 01:14:01,041
which makes perfect sense

406
01:14:01,708 --> 01:14:05,416
And another one is in-app purchases. I I

407
01:14:05,416 --> 01:14:07,458
haven't ever looked into stuff like that

408
01:14:07,458 --> 01:14:08,833
before but I think it would be

409
01:14:09,416 --> 01:14:11,791
really cool if you could have a

410
01:14:11,791 --> 01:14:14,500
Laravel app that somebody can go into and

411
01:14:14,500 --> 01:14:16,625
they can just trigger like the you know

412
01:14:16,625 --> 01:14:19,500
Apple pay to purchase something and and

413
01:14:19,500 --> 01:14:21,125
that flow just does what it

414
01:14:21,125 --> 01:14:22,500
does and then I don't know

415
01:14:22,500 --> 01:14:24,291
Maybe it unlocks something in your app or

416
01:14:24,291 --> 01:14:25,791
maybe it's like taking an

417
01:14:25,791 --> 01:14:27,291
order for fast food restaurant

418
01:14:27,625 --> 01:14:28,916
who knows but

419
01:14:29,750 --> 01:14:32,041
Kind of the fact that that then could be

420
01:14:32,041 --> 01:14:33,625
done in Laravel is just

421
01:14:33,625 --> 01:14:35,583
super cool and opens the door to

422
01:14:35,875 --> 01:14:38,291
You know people businesses generating

423
01:14:38,291 --> 01:14:40,083
revenue off of this thing, which is

424
01:14:40,083 --> 01:14:41,875
awesome. So I'd really

425
01:14:41,875 --> 01:14:44,166
like to get that done

426
01:14:45,583 --> 01:14:47,500
But yeah, there's just so much more

427
01:14:47,500 --> 01:14:49,333
there's loads and loads of stuff that I

428
01:14:49,333 --> 01:14:50,833
want to do this is so cool

429
01:14:51,833 --> 01:14:54,416
So so that that does sort of bring

430
01:14:54,416 --> 01:14:56,291
another question in as far as like when

431
01:14:56,291 --> 01:14:57,875
you're developing locally

432
01:14:59,000 --> 01:15:00,791
You can since it's PHP

433
01:15:00,875 --> 01:15:03,416
You can just run like PHP unit pass

434
01:15:03,625 --> 01:15:05,625
Sort of the whole normal testing suite or

435
01:15:05,625 --> 01:15:07,916
you have to like get fancier with how

436
01:15:07,916 --> 01:15:09,416
you're gonna test all this stuff

437
01:15:09,833 --> 01:15:12,750
No, so obviously when you're talking

438
01:15:12,750 --> 01:15:13,250
about like

439
01:15:13,250 --> 01:15:15,375
potentially hitting native APIs

440
01:15:15,916 --> 01:15:19,000
They're not going to be available if

441
01:15:19,000 --> 01:15:20,666
you're just running your test suite in

442
01:15:20,666 --> 01:15:22,000
the terminal because

443
01:15:22,000 --> 01:15:23,500
you're not running on the device

444
01:15:23,500 --> 01:15:26,291
you're not testing on a real device, but

445
01:15:26,875 --> 01:15:28,666
We already have that again in

446
01:15:28,666 --> 01:15:30,333
native PHP for desktop where

447
01:15:31,208 --> 01:15:33,000
You might not be running all of your

448
01:15:33,000 --> 01:15:35,125
tests inside the browser and you know

449
01:15:35,125 --> 01:15:36,541
kind of the web view environment

450
01:15:37,500 --> 01:15:41,291
of electron and so we we basically have a

451
01:15:41,291 --> 01:15:42,958
whole bunch of mocks and

452
01:15:42,958 --> 01:15:45,208
you know fakes that can

453
01:15:45,625 --> 01:15:48,625
Swap in at test time. So yeah, it's not

454
01:15:48,625 --> 01:15:49,208
it's not going to be

455
01:15:49,208 --> 01:15:50,375
testing the real stuff

456
01:15:50,375 --> 01:15:52,000
But it's not going to prevent you from

457
01:15:52,000 --> 01:15:52,916
having really

458
01:15:52,916 --> 01:15:55,125
reasonable tests against those

459
01:15:55,250 --> 01:15:56,875
Apis and kind of what your

460
01:15:56,875 --> 01:15:58,500
expectations are going to be

461
01:15:59,125 --> 01:16:01,333
That's coming through really well and a

462
01:16:01,333 --> 01:16:03,000
lot of that's been thanks to

463
01:16:03,000 --> 01:16:04,416
contributors, you know

464
01:16:05,208 --> 01:16:06,916
Giving of their time and making that

465
01:16:06,916 --> 01:16:07,791
stuff because I haven't

466
01:16:07,791 --> 01:16:08,750
had the time to do that

467
01:16:08,750 --> 01:16:09,833
So, you know

468
01:16:09,875 --> 01:16:12,541
I think at least to that side of things

469
01:16:12,541 --> 01:16:14,750
the communities really come forward and

470
01:16:14,750 --> 01:16:15,875
kind of helped make all

471
01:16:15,875 --> 01:16:16,791
of that possible and I

472
01:16:16,791 --> 01:16:19,291
Think we can take a lot of the principles

473
01:16:19,291 --> 01:16:21,000
of that and bring it over to the iOS

474
01:16:21,000 --> 01:16:23,375
stuff as well. Definitely. No, no doubt

475
01:16:24,333 --> 01:16:24,541
sweet

476
01:16:25,583 --> 01:16:28,875
another question is there any

477
01:16:30,208 --> 01:16:32,541
Sort of performance implications for

478
01:16:32,541 --> 01:16:36,458
using native iOS versus I guess Swift

479
01:16:36,666 --> 01:16:39,458
I assume there might be but yeah, is it

480
01:16:39,458 --> 01:16:40,708
super noticeable or is

481
01:16:40,708 --> 01:16:41,833
it still pretty quick and

482
01:16:43,208 --> 01:16:46,083
I I think it's noticeable because I'm

483
01:16:46,083 --> 01:16:48,083
maybe a bit more sensitive to that

484
01:16:50,458 --> 01:16:52,625
Basically like understanding what's going

485
01:16:52,625 --> 01:16:54,541
on under the hood helps here so

486
01:16:55,041 --> 01:16:58,375
for every request that you expect your

487
01:16:58,375 --> 01:17:00,625
Laravel application to kind of

488
01:17:00,791 --> 01:17:02,375
handle and respond to

489
01:17:03,375 --> 01:17:05,041
We've got to boot PHP up

490
01:17:05,041 --> 01:17:06,166
completely from scratch

491
01:17:06,166 --> 01:17:07,916
I mean, it's not even like on a web

492
01:17:07,916 --> 01:17:10,500
server where you might have

493
01:17:10,541 --> 01:17:12,625
op cache, you know or

494
01:17:14,125 --> 01:17:17,208
Processes like in PHP FPM in engine X I

495
01:17:17,208 --> 01:17:19,000
don't get to tell you but you know, you

496
01:17:19,000 --> 01:17:21,000
have processes that are just there

497
01:17:21,000 --> 01:17:22,041
They're ready. They're

498
01:17:22,041 --> 01:17:24,125
waiting to serve requests

499
01:17:24,125 --> 01:17:27,041
And so when a request comes into the web

500
01:17:27,041 --> 01:17:29,708
server it goes which one of you is free

501
01:17:30,166 --> 01:17:32,250
Do this thing and because it's already

502
01:17:32,250 --> 01:17:34,083
there and waiting it's kind

503
01:17:34,083 --> 01:17:36,250
of super fast in this world

504
01:17:36,250 --> 01:17:38,666
We can't spin up processes and have them

505
01:17:38,666 --> 01:17:39,958
just waiting around for

506
01:17:39,958 --> 01:17:41,500
the user to do some stuff

507
01:17:41,750 --> 01:17:45,125
So we literally have to spin PHP up right

508
01:17:45,125 --> 01:17:46,916
from the beginning on every single

509
01:17:46,916 --> 01:17:48,291
request at the moment

510
01:17:49,375 --> 01:17:51,791
Which you know, like there is just

511
01:17:51,791 --> 01:17:54,083
overhead to doing that every time

512
01:17:55,041 --> 01:17:56,125
There's some things that

513
01:17:56,125 --> 01:17:57,250
we can do to speed that up

514
01:17:58,041 --> 01:18:00,750
I do think we can get up cache going at

515
01:18:00,750 --> 01:18:03,625
some point and I think I already started

516
01:18:03,625 --> 01:18:05,208
exploring some of the

517
01:18:06,166 --> 01:18:10,166
Putting pH 3 PHP in a thread on the

518
01:18:10,166 --> 01:18:12,625
device, which you know swift and and this

519
01:18:12,625 --> 01:18:13,583
they can all support

520
01:18:14,083 --> 01:18:15,166
multi-threaded

521
01:18:15,833 --> 01:18:19,833
applications so in theory at least it

522
01:18:19,833 --> 01:18:22,375
could be possible to have like the PHP

523
01:18:22,791 --> 01:18:24,583
Process just kind of it's not processed

524
01:18:24,583 --> 01:18:27,416
but the the engine just like primed and

525
01:18:27,416 --> 01:18:28,208
ready, you know, like

526
01:18:28,208 --> 01:18:29,416
kind of ticking over

527
01:18:31,000 --> 01:18:33,583
Waiting for the next request and then and

528
01:18:33,583 --> 01:18:35,083
then it will be a lot lot faster

529
01:18:35,583 --> 01:18:38,416
but I will say like right now it's not

530
01:18:39,333 --> 01:18:41,708
It's not too slow. It's not like you tap

531
01:18:41,708 --> 01:18:43,125
the button and then you're like

532
01:18:43,708 --> 01:18:46,125
You know waiting for something to happen

533
01:18:46,416 --> 01:18:48,875
It does react quite quickly

534
01:18:48,875 --> 01:18:51,291
But it is a bit I will say it's a bit

535
01:18:51,291 --> 01:18:52,500
slower than you know

536
01:18:52,500 --> 01:18:54,750
If you've got native UI and you've got

537
01:18:54,750 --> 01:18:56,875
it's just running native code directly

538
01:18:56,875 --> 01:18:58,250
because well you've

539
01:18:58,250 --> 01:18:59,375
got all this extra stuff

540
01:18:59,375 --> 01:19:00,375
that's happening so

541
01:19:00,375 --> 01:19:02,958
yeah, it probably adds like a

542
01:19:03,333 --> 01:19:06,625
150 to 300 milliseconds to the whole

543
01:19:06,625 --> 01:19:08,958
thing which you know on occasions it can

544
01:19:08,958 --> 01:19:09,958
feel a little bit slow

545
01:19:10,666 --> 01:19:14,250
Gotcha, yeah, it sort of reminds me of

546
01:19:14,250 --> 01:19:15,791
you remember the old day. Well, you're

547
01:19:15,791 --> 01:19:16,458
probably not old enough

548
01:19:16,458 --> 01:19:17,541
to know the old days but

549
01:19:17,541 --> 01:19:24,583
So the old days with you know, we were we

550
01:19:24,583 --> 01:19:26,000
would build web apps and it was like

551
01:19:26,000 --> 01:19:26,958
Oh, you've got a you've

552
01:19:26,958 --> 01:19:28,166
got to compress all this down

553
01:19:28,166 --> 01:19:30,125
You know the extra 10 kilobytes is gonna

554
01:19:30,125 --> 01:19:31,291
dial up, you know, you

555
01:19:31,291 --> 01:19:32,333
would check you would have to

556
01:19:32,625 --> 01:19:34,541
You know toggle the the thing in your

557
01:19:34,541 --> 01:19:35,791
browser to simulate

558
01:19:35,791 --> 01:19:37,166
dial up and all that stuff

559
01:19:37,208 --> 01:19:40,208
It's like, you know now it's like if you

560
01:19:40,208 --> 01:19:44,000
know if my if even on my cell like only

561
01:19:44,000 --> 01:19:45,291
just being on the browser

562
01:19:45,291 --> 01:19:46,916
It's like it's still quick. It's crazy

563
01:19:46,916 --> 01:19:48,375
how much faster everything it's just

564
01:19:48,375 --> 01:19:50,833
gotten over the years. So that's

565
01:19:52,083 --> 01:19:53,875
So, you know hundred to three hundred

566
01:19:53,875 --> 01:19:55,708
milliseconds probably is not that bad

567
01:19:56,083 --> 01:19:58,041
For now, I should be building

568
01:19:58,583 --> 01:20:01,625
People who are used to building stuff on

569
01:20:01,625 --> 01:20:04,166
I you know, like on an iPhone that iPhone

570
01:20:04,166 --> 01:20:05,583
app developers will go

571
01:20:05,666 --> 01:20:08,125
Oh, man, this is slow, you know because

572
01:20:08,125 --> 01:20:09,625
they're so used to be

573
01:20:09,625 --> 01:20:11,000
it being instantaneous

574
01:20:12,458 --> 01:20:14,166
Especially when you're not making network

575
01:20:14,166 --> 01:20:16,000
requests, you know, we're not going out

576
01:20:16,000 --> 01:20:17,541
to the network. So it

577
01:20:17,541 --> 01:20:18,791
should be really fast

578
01:20:19,500 --> 01:20:23,000
but my kind of counter to it is this is

579
01:20:23,000 --> 01:20:25,000
very early stage and

580
01:20:25,500 --> 01:20:26,541
We'll get there

581
01:20:26,541 --> 01:20:29,458
I think it's never going to be as fast as

582
01:20:29,458 --> 01:20:32,416
truly native because it just can't be

583
01:20:32,416 --> 01:20:34,625
there's too many layers of stuff going on

584
01:20:34,666 --> 01:20:36,458
In between but I think we

585
01:20:36,458 --> 01:20:39,166
can we can squeeze it down

586
01:20:39,791 --> 01:20:43,583
So that it's almost as good as and I

587
01:20:43,583 --> 01:20:45,791
think it's good enough right now

588
01:20:45,791 --> 01:20:47,875
And I think that's fine for

589
01:20:47,875 --> 01:20:49,041
a lot of use cases, you know

590
01:20:49,041 --> 01:20:50,833
I think there's a lot of a lot of

591
01:20:50,833 --> 01:20:52,541
businesses a lot of agencies

592
01:20:52,541 --> 01:20:54,333
that will find that very very

593
01:20:54,750 --> 01:20:56,458
acceptable, you know, so

594
01:20:57,458 --> 01:20:58,333
Hopefully anyway

595
01:20:59,291 --> 01:21:01,083
Yeah, that makes sense.

596
01:21:01,083 --> 01:21:02,875
That's perfect sense. Um, so

597
01:21:03,666 --> 01:21:07,250
Any features or anything that I did not

598
01:21:07,250 --> 01:21:09,125
ask you about that you want to make sure

599
01:21:09,125 --> 01:21:10,250
we get covered on this

600
01:21:11,208 --> 01:21:12,791
Yeah, I mean I guess one of

601
01:21:12,791 --> 01:21:14,791
the things that I have been

602
01:21:15,416 --> 01:21:17,000
thinking about and I was talking about

603
01:21:17,000 --> 01:21:20,083
with somebody yesterday even is

604
01:21:20,375 --> 01:21:24,125
The whole ecosystem of of building stuff

605
01:21:25,500 --> 01:21:28,958
Like mobile apps along with a server

606
01:21:28,958 --> 01:21:30,458
based application, you know

607
01:21:30,500 --> 01:21:32,500
And this kind of you're building all of

608
01:21:32,500 --> 01:21:34,083
these tools and you fit them all together

609
01:21:34,083 --> 01:21:35,833
and they're all in different things

610
01:21:35,833 --> 01:21:36,666
You know, you might have

611
01:21:36,666 --> 01:21:38,500
react native mobile apps

612
01:21:38,500 --> 01:21:40,750
So you can do it cross-platform on iPhone

613
01:21:40,750 --> 01:21:43,000
and Android and then maybe on the server

614
01:21:43,000 --> 01:21:44,666
You've got Laravel and

615
01:21:44,666 --> 01:21:46,041
maybe some other bits and pieces

616
01:21:46,041 --> 01:21:47,500
But generally, you know, you're

617
01:21:47,500 --> 01:21:49,958
communicating with like a Laravel API and

618
01:21:49,958 --> 01:21:51,208
I just I've always felt

619
01:21:51,208 --> 01:21:52,208
I've done that for years

620
01:21:52,208 --> 01:21:54,333
And I've always felt it's a little bit

621
01:21:54,333 --> 01:21:56,208
disjointed because not only

622
01:21:56,208 --> 01:21:56,833
if you're gonna have these

623
01:21:57,000 --> 01:21:58,666
teams of different people

624
01:21:58,666 --> 01:21:59,916
with different skills and

625
01:21:59,916 --> 01:22:01,416
you've got to come up with these

626
01:22:01,416 --> 01:22:03,541
mechanisms for these systems to

627
01:22:03,541 --> 01:22:04,791
communicate with each other and you've

628
01:22:04,791 --> 01:22:06,333
got to document all of that stuff and

629
01:22:06,333 --> 01:22:08,583
You you've got people doing diagrams and

630
01:22:08,583 --> 01:22:10,416
writing docs and it's going out of date

631
01:22:10,416 --> 01:22:13,750
and you know, all of the things I

632
01:22:13,750 --> 01:22:15,291
Think having Laravel on

633
01:22:15,291 --> 01:22:17,041
both sides of the equation

634
01:22:17,375 --> 01:22:19,625
Really has the potential to unlock

635
01:22:19,625 --> 01:22:22,125
something incredible that I don't I don't

636
01:22:22,125 --> 01:22:23,875
see many people talking about

637
01:22:23,875 --> 01:22:25,208
maybe I'm being ignorant but

638
01:22:25,875 --> 01:22:29,375
Where you you just forget about the API

639
01:22:29,375 --> 01:22:31,375
all together and these things just click

640
01:22:31,375 --> 01:22:32,791
together and they just work

641
01:22:32,791 --> 01:22:35,625
So you can just go I install this package

642
01:22:35,625 --> 01:22:37,416
over here in my iPhone app

643
01:22:37,875 --> 01:22:40,000
And I install kind of the counter version

644
01:22:40,000 --> 01:22:43,083
of that for the server on the server app

645
01:22:43,750 --> 01:22:45,166
And now they can just talk to each other

646
01:22:45,166 --> 01:22:48,666
like securely like best practice safe and

647
01:22:48,666 --> 01:22:50,416
everything and syncing data

648
01:22:50,416 --> 01:22:52,416
You know between the two and you're just

649
01:22:52,416 --> 01:22:53,750
using eloquent on both sides

650
01:22:53,791 --> 01:22:55,583
And you're just like you don't even care

651
01:22:55,583 --> 01:22:57,833
like is it talking to the API or is it

652
01:22:57,833 --> 01:22:58,875
talking to the local database?

653
01:22:59,625 --> 01:23:01,250
I don't know. It doesn't matter because

654
01:23:01,250 --> 01:23:02,583
it just works, you know

655
01:23:02,583 --> 01:23:05,708
It's like I've never had it that easy and

656
01:23:05,708 --> 01:23:06,666
I think that I meant

657
01:23:06,666 --> 01:23:08,291
like this far away from

658
01:23:08,375 --> 01:23:11,750
Doing something like that and I just that

659
01:23:11,750 --> 01:23:13,416
feels to me like a killer

660
01:23:14,125 --> 01:23:16,666
opportunity to tap into for people

661
01:23:17,875 --> 01:23:20,291
So like I see this is like

662
01:23:20,291 --> 01:23:23,416
a Foundational technology, you know getting

663
01:23:23,416 --> 01:23:24,541
these pieces to work

664
01:23:24,958 --> 01:23:26,583
But then the real stuff is when you can

665
01:23:26,583 --> 01:23:29,291
go these all things fit together. So

666
01:23:29,291 --> 01:23:31,375
that's gonna be really cool

667
01:23:32,208 --> 01:23:33,833
Yeah, that's gonna be it's it's gonna be

668
01:23:33,833 --> 01:23:35,833
powerful. I you know the

669
01:23:36,625 --> 01:23:39,125
Feedback I've seen just on the native PHP

670
01:23:40,375 --> 01:23:41,750
original is

671
01:23:42,166 --> 01:23:44,666
Super positive and everybody seems to

672
01:23:44,666 --> 01:23:46,791
like like it outside of a couple

673
01:23:47,375 --> 01:23:49,000
of

674
01:23:49,000 --> 01:23:51,208
Community places that I'd rarely visit

675
01:23:52,458 --> 01:23:54,000
But all the feedback

676
01:23:54,000 --> 01:23:55,791
I've heard it really good

677
01:23:57,541 --> 01:24:00,958
Tons of potential I

678
01:24:00,958 --> 01:24:02,666
Like that when you said native PHP

679
01:24:02,666 --> 01:24:05,125
original it made me think of Pringles

680
01:24:06,583 --> 01:24:09,208
This is the you got desktop was like the

681
01:24:09,208 --> 01:24:10,416
red tube of Pringles

682
01:24:10,750 --> 01:24:12,708
What should the what

683
01:24:12,708 --> 01:24:13,708
should the mobile one be?

684
01:24:14,750 --> 01:24:16,833
Sour cream and onion because it's got you

685
01:24:16,833 --> 01:24:18,041
got the green in the

686
01:24:21,250 --> 01:24:23,625
That's good, I like I was thinking maybe

687
01:24:23,625 --> 01:24:26,375
like the what's the spicy one or paprika

688
01:24:26,375 --> 01:24:28,416
or something, you know

689
01:24:28,416 --> 01:24:29,750
We might not have those here in America

690
01:24:29,750 --> 01:24:32,000
or I've not seen those it's I've seen

691
01:24:32,000 --> 01:24:33,208
it's the basic version of Pringles

692
01:24:33,208 --> 01:24:35,041
It's like playing barbecue

693
01:24:35,041 --> 01:24:37,458
sour cream and salt vinegar. No

694
01:24:38,000 --> 01:24:40,791
You're missing out to get you need to get

695
01:24:40,791 --> 01:24:42,000
into European shores

696
01:24:42,000 --> 01:24:44,333
and try a paprika Pringles

697
01:24:44,333 --> 01:24:49,041
You know, it's this is Tony I'm the

698
01:24:49,041 --> 01:24:50,250
subject but Paul that

699
01:24:50,625 --> 01:24:51,666
You know does a lot of

700
01:24:51,666 --> 01:24:52,500
writing on the liberal news

701
01:24:52,500 --> 01:24:54,625
He's he's one of these chip connoisseurs

702
01:24:54,625 --> 01:24:56,083
and he just tries to

703
01:24:56,083 --> 01:24:57,041
find the wildest chips

704
01:24:57,041 --> 01:24:58,875
He can find it eats them and I'm like,

705
01:24:58,875 --> 01:25:01,583
it's like ketchup and you

706
01:25:01,583 --> 01:25:02,708
know pickle ketchup. I'm like

707
01:25:03,250 --> 01:25:04,125
None of that

708
01:25:04,125 --> 01:25:09,333
In the UK there was like one of the

709
01:25:09,333 --> 01:25:10,583
common flavors, you know

710
01:25:10,583 --> 01:25:12,416
I mean you get them bolty pack flavor of

711
01:25:12,416 --> 01:25:15,125
crisps, you know, and it's got salt and

712
01:25:15,125 --> 01:25:17,666
vinegar and it's got the salt it you know

713
01:25:17,666 --> 01:25:18,250
and just

714
01:25:18,708 --> 01:25:21,750
Cheese and onion and then the one was

715
01:25:21,750 --> 01:25:24,125
always in there was prawn cocktail

716
01:25:26,541 --> 01:25:29,625
What nobody loves this it stinks

717
01:25:29,708 --> 01:25:34,458
That just sounds like the name itself

718
01:25:34,458 --> 01:25:35,500
just sounds terrible. It's

719
01:25:35,500 --> 01:25:37,375
like I would never want this

720
01:25:39,583 --> 01:25:42,208
That's hilarious. Oh

721
01:25:42,208 --> 01:25:44,708
I got a meatball chip. Yes, so that's

722
01:25:44,708 --> 01:25:46,375
great. Yep. Kind of sore official. Yes

723
01:25:46,958 --> 01:25:48,583
Y'all get y'all can start mailing it back

724
01:25:48,583 --> 01:25:49,291
and forth, you know

725
01:25:49,291 --> 01:25:51,166
different flavors of nasty chips

726
01:25:51,166 --> 01:25:55,125
All right, yeah pin pals

727
01:25:55,125 --> 01:25:58,375
All right, let's get back on topic

728
01:26:00,708 --> 01:26:02,125
We'll go down we'll go

729
01:26:02,125 --> 01:26:03,500
down a spiral here in a minute

730
01:26:04,250 --> 01:26:05,833
but uh, so

731
01:26:06,375 --> 01:26:08,625
I guess as far as the release goes

732
01:26:08,791 --> 01:26:10,791
When are you thinking you another couple

733
01:26:10,791 --> 01:26:11,875
months or you're thinking

734
01:26:11,875 --> 01:26:13,583
fairly soon on your release date?

735
01:26:13,583 --> 01:26:16,333
Don't like the official thing or or

736
01:26:16,333 --> 01:26:18,708
what's your feeling right now?

737
01:26:18,916 --> 01:26:20,833
um, I mean there is a lot

738
01:26:20,833 --> 01:26:23,166
that I want to build in but

739
01:26:23,458 --> 01:26:25,750
that's kind of like it'll come and it

740
01:26:25,750 --> 01:26:27,541
will keep refining and there'll always be

741
01:26:27,541 --> 01:26:28,708
more because there's there's a

742
01:26:29,250 --> 01:26:32,500
Huge API footprint that we've got to kind

743
01:26:32,500 --> 01:26:34,208
of tackle to build all the stuff

744
01:26:34,708 --> 01:26:36,291
So I think it's just about getting a few

745
01:26:36,291 --> 01:26:37,500
of those key ones, you know

746
01:26:37,500 --> 01:26:38,875
It'd be great if we can get push

747
01:26:38,875 --> 01:26:40,625
notifications in our purchases

748
01:26:41,666 --> 01:26:43,583
The camera and a few other bits and

749
01:26:43,583 --> 01:26:46,500
pieces going and then I mean Android is

750
01:26:46,500 --> 01:26:48,500
that the other big piece, right?

751
01:26:48,500 --> 01:26:50,416
So we get Android and those things and

752
01:26:50,416 --> 01:26:52,666
get everything kind of on par with each

753
01:26:52,666 --> 01:26:54,500
other and then it kind of feels ready

754
01:26:54,500 --> 01:26:55,875
Yeah, because right

755
01:26:55,875 --> 01:26:58,208
now it it's stable enough

756
01:26:59,000 --> 01:27:00,125
you know, I there is an

757
01:27:00,125 --> 01:27:01,500
app on the App Store that

758
01:27:02,500 --> 01:27:05,500
so the the principle of that is you could

759
01:27:05,500 --> 01:27:07,916
go today and and use it and build a

760
01:27:07,916 --> 01:27:09,833
product that you can sell like you could

761
01:27:10,000 --> 01:27:13,250
Sell it on the store or you could build

762
01:27:13,250 --> 01:27:14,166
it for a client that's

763
01:27:14,166 --> 01:27:15,625
paying you and you you know

764
01:27:15,625 --> 01:27:16,958
You're basically making money off this

765
01:27:16,958 --> 01:27:18,166
thing straight away, which is great

766
01:27:19,250 --> 01:27:21,916
So I feel that it's like stable enough

767
01:27:21,916 --> 01:27:23,541
right now to do something

768
01:27:24,125 --> 01:27:26,750
But yeah, it's not gonna do all of the

769
01:27:26,750 --> 01:27:28,916
things that you might want to do with

770
01:27:28,916 --> 01:27:31,166
like interacting with the device

771
01:27:31,458 --> 01:27:34,541
API's so I

772
01:27:34,541 --> 01:27:36,875
Think once we've got some of those the

773
01:27:36,875 --> 01:27:38,500
stability is kind of already there

774
01:27:38,916 --> 01:27:40,833
Android will come and that'll just be

775
01:27:40,833 --> 01:27:42,375
like the okay, you know

776
01:27:42,375 --> 01:27:43,833
We've got the little cherry on top now

777
01:27:43,833 --> 01:27:45,458
with everything working together. So

778
01:27:45,458 --> 01:27:48,625
let's just roll this out proper and then

779
01:27:49,125 --> 01:27:51,250
Then we can continue just like supporting

780
01:27:51,250 --> 01:27:53,458
it and maintaining it and improving it

781
01:27:54,333 --> 01:27:55,041
so I think

782
01:27:55,583 --> 01:27:56,958
We're probably looking at

783
01:27:56,958 --> 01:27:58,625
a couple of months from now

784
01:27:58,625 --> 01:28:00,791
But I definitely want to bring that in as

785
01:28:00,791 --> 01:28:03,666
much as I possibly can so get it get it

786
01:28:03,666 --> 01:28:05,000
going as quickly as possible

787
01:28:05,208 --> 01:28:05,666
basically

788
01:28:06,375 --> 01:28:08,458
Awesome. Well if so when

789
01:28:08,458 --> 01:28:09,541
people want to find out more

790
01:28:10,458 --> 01:28:12,375
Where should they go? You know, I guess

791
01:28:12,375 --> 01:28:14,000
like a newsletter sign up or

792
01:28:14,000 --> 01:28:15,250
anything like that for them

793
01:28:15,750 --> 01:28:18,208
Yeah, the the easiest place to go to is

794
01:28:18,208 --> 01:28:20,916
native PHP comm slash iOS

795
01:28:22,083 --> 01:28:24,750
Because it is iOS at only at the moment

796
01:28:25,625 --> 01:28:27,666
But yeah, the the docs are coming

797
01:28:27,666 --> 01:28:30,916
together on native PHP comm got now like

798
01:28:30,916 --> 01:28:31,833
the whole section of

799
01:28:31,833 --> 01:28:32,875
like switching between

800
01:28:33,041 --> 01:28:34,250
desktop and mobile

801
01:28:34,583 --> 01:28:36,333
Documentation so you can start to see all

802
01:28:36,333 --> 01:28:37,166
of that come together

803
01:28:37,708 --> 01:28:39,750
And if you go to that page that I just

804
01:28:39,750 --> 01:28:42,166
mentioned, there's the chance to join the

805
01:28:42,166 --> 01:28:43,416
early access program

806
01:28:44,041 --> 01:28:45,791
And there's a sign-up link

807
01:28:45,791 --> 01:28:47,083
there as well for a newsletter

808
01:28:47,125 --> 01:28:49,125
If you know you're not ready to join the

809
01:28:49,125 --> 01:28:50,083
early access program

810
01:28:50,083 --> 01:28:51,500
so you can find out more

811
01:28:52,041 --> 01:28:54,500
I'll be sharing updates and stuff on the

812
01:28:54,500 --> 01:28:55,416
newsletter over the

813
01:28:55,416 --> 01:28:56,875
coming weeks like probably

814
01:28:57,791 --> 01:29:00,458
once a week for the next few weeks

815
01:29:01,791 --> 01:29:04,291
Awesome. Well, man. Well, I appreciate

816
01:29:04,291 --> 01:29:06,583
you taking the time to you know, let us

817
01:29:06,583 --> 01:29:08,833
talk about native PHP iOS

818
01:29:08,833 --> 01:29:10,458
And I'm really glad to have the

819
01:29:10,458 --> 01:29:12,583
opportunity again. Yeah, I'm excited

820
01:29:12,750 --> 01:29:15,000
I'm excited to see where this this you

821
01:29:15,000 --> 01:29:16,791
know brings the community in the future

822
01:29:16,791 --> 01:29:19,208
like we're it feels like

823
01:29:19,208 --> 01:29:20,500
there Connie you with all the

824
01:29:20,583 --> 01:29:21,458
announcements around

825
01:29:22,166 --> 01:29:24,375
Laravel proper announcements then you

826
01:29:24,375 --> 01:29:26,000
have you know what you're doing yet

827
01:29:26,000 --> 01:29:27,125
fusion you have and

828
01:29:27,125 --> 01:29:28,291
all this stuff is just

829
01:29:28,708 --> 01:29:30,375
Coming out of nowhere in the last year

830
01:29:30,375 --> 01:29:32,916
and it's it's pretty inspiring and I

831
01:29:32,916 --> 01:29:34,291
think we'll do a lot with people with

832
01:29:34,291 --> 01:29:35,083
Laravel in the future

833
01:29:35,625 --> 01:29:38,333
Yeah, I can't wait to use fusion. I think

834
01:29:38,333 --> 01:29:39,125
Aaron said he's gonna

835
01:29:39,125 --> 01:29:40,583
bring it out on Friday

836
01:29:40,875 --> 01:29:42,958
I think he was gonna do it on Monday

837
01:29:42,958 --> 01:29:44,000
originally, but now it's

838
01:29:44,000 --> 01:29:45,125
gonna be this this Friday

839
01:29:45,125 --> 01:29:47,416
and I just I want to

840
01:29:47,416 --> 01:29:49,083
get my hands on that and

841
01:29:49,083 --> 01:29:51,416
chuck it into native PHP and

842
01:29:51,625 --> 01:29:54,291
see if it work on mobile out of the box

843
01:29:54,291 --> 01:29:55,416
because I think that's gonna be really

844
01:29:55,416 --> 01:29:57,458
cool because I think view

845
01:29:57,708 --> 01:29:59,458
You know, I've been showing most of my

846
01:29:59,458 --> 01:30:01,291
demos from like live wire because I

847
01:30:01,291 --> 01:30:02,666
really like using live wire

848
01:30:02,666 --> 01:30:06,833
but I used to do a lot of view and I know

849
01:30:06,833 --> 01:30:08,125
there's like a space for

850
01:30:08,125 --> 01:30:09,541
still doing that and I think

851
01:30:10,166 --> 01:30:11,375
allowing people to use

852
01:30:11,375 --> 01:30:13,291
whatever front-end tooling

853
01:30:13,666 --> 01:30:15,500
Really makes sense and and there's

854
01:30:15,500 --> 01:30:16,708
nothing to stop you like I

855
01:30:16,708 --> 01:30:17,916
can't tell you you can't do it

856
01:30:17,916 --> 01:30:18,958
So, you know

857
01:30:18,958 --> 01:30:21,250
you can use view or react to whatever and

858
01:30:21,250 --> 01:30:23,458
and I think fusion will just slot right

859
01:30:23,458 --> 01:30:25,083
in there and just work and I just

860
01:30:25,083 --> 01:30:27,666
want to try it out so that I can see if

861
01:30:27,666 --> 01:30:29,916
that happens and I think that's gonna be

862
01:30:29,916 --> 01:30:31,375
very cool for a lot of people because

863
01:30:31,750 --> 01:30:34,250
Yeah, Aaron did an awesome job. His talk

864
01:30:34,250 --> 01:30:35,791
was brilliant and the the

865
01:30:35,791 --> 01:30:37,458
project looks great, too

866
01:30:37,458 --> 01:30:39,458
So I'm really excited to see that

867
01:30:40,333 --> 01:30:41,250
For sure for sure

868
01:30:41,791 --> 01:30:43,875
all right, well Simon, thank you again

869
01:30:43,875 --> 01:30:46,166
for coming and joining me and

870
01:30:46,666 --> 01:30:50,041
We'll look look forward to the launch and

871
01:30:50,041 --> 01:30:50,541
to everything you're

872
01:30:50,541 --> 01:30:52,041
working on. Thanks, man