YouTube2Text

On crée ensemble une app iOS de A à Z avec l'IA — Transcript

by Maxime Gadras · 8,076 words · 1,240 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Today, we're going to do something very
  2. 0:02simple: start from scratch and create an
  3. 0:05iOS mobile app from A to Z, from the
  4. 0:07initial idea to submission on the App
  5. 0:09Store.
  6. 0:10And in this video, I'm going to show you
  7. 0:12exactly how I do it, all the steps I go
  8. 0:15through to create my application. How I
  9. 0:17define the features to implement, how I
  10. 0:19handle the design, how I code with AI of
  11. 0:21course, and how I submit it to the App
  12. 0:23Store.
  13. 0:24The goal here isn't to make a
  14. 0:26theoretical demo video; it's really
  15. 0:27about the concrete process. And
  16. 0:29obviously, by the end of the video, you
  17. 0:31will know exactly how to go about
  18. 0:33creating your own iOS mobile app as well
  19. 0:35. So, don't forget to subscribe and
  20. 0:37share this video if you find it
  21. 0:38interesting or if it might interest
  22. 0:40people you know.
  23. 0:42And now, let's get started.
  24. 0:44Before we begin, a quick disclaimer.
  25. 0:46This video is not intended to encourage
  26. 0:48you to build crappy apps in just a few
  27. 0:50hours using AI and then flood the App
  28. 0:52Store hoping one of them takes off. That
  29. 0:54is not the goal at all; it's what we
  30. 0:56call "AI slop," and it is clearly not
  31. 0:57recommended. Right now, so many are
  32. 0:59being submitted that it's overloading
  33. 1:01the App Store, which is why app approval
  34. 1:03times are super long now, and that's
  35. 1:04terrible.
  36. 1:06If you make an app, make it thoughtfully
  37. 1:08, by trying to create something truly
  38. 1:10useful that you value, with a real art
  39. 1:12direction and a real identity so that
  40. 1:13you can be proud of what you've done.
  41. 1:16The video won't last for hours and hours
  42. 1:18either; I will inevitably condense my
  43. 1:20methodology and what I do, and I'll use
  44. 1:21cuts. So, obviously, it would take me
  45. 1:23more time to do it for real, and besides
  46. 1:25, this is a V1. Naturally, a more
  47. 1:27complete application would take more
  48. 1:28time. So, there you go, all this is to
  49. 1:30tell you not to take this as
  50. 1:32encouragement to do just anything. I'm
  51. 1:34just giving you a methodology here so
  52. 1:36you know how to do it and get on the
  53. 1:37right track; be responsible. Alright,
  54. 1:39now let's get to it. So, regarding the
  55. 1:40idea, there's something I've been
  56. 1:42wanting to do for a while.
  57. 1:44I know that if you follow this type of
  58. 1:45iOS app creation video, you've probably
  59. 1:47come across other YouTubers who do the
  60. 1:48same thing and who, for some, have a lot
  61. 1:50of success.
  62. 1:52And there is one type of application
  63. 1:53that we see very often: affirmation apps
  64. 1:55. There are plenty of them on the App
  65. 1:57Store, one of the best known is I Am,
  66. 1:59and the idea behind these apps is? It's
  67. 2:00to scroll through positive affirmations
  68. 2:03to feel better on a daily basis. So we
  69. 2:05can like them and so on, and above all,
  70. 2:07we can display them on our home screen
  71. 2:09via a widget.
  72. 2:10And so this type of application, which
  73. 2:12is widely replicated, is also one of the
  74. 2:14easiest to rebuild because there's
  75. 2:16hardly any tech involved, it's quite
  76. 2:17simple.
  77. 2:19So the idea today isn't to launch a
  78. 2:20clone just to say we're launching an
  79. 2:21affirmation app.
  80. 2:23I'm trying to think of an angle of
  81. 2:25attack that could be interesting in this
  82. 2:27ocean of affirmation apps, a type of
  83. 2:29persona it might interest.
  84. 2:33And so, thinking about it, I said to
  85. 2:34myself: who are the people who need
  86. 2:36motivation every day, to be in good
  87. 2:38spirits, to have a good mood, but who
  88. 2:40are nonetheless attacked a little every
  89. 2:42day?
  90. 2:43This good will, this motivation is
  91. 2:45attacked within the framework of their
  92. 2:47work.
  93. 2:48And actually, I didn't have to look very
  94. 2:50far, since I am one myself:
  95. 2:51entrepreneurs.
  96. 2:53Anyone who has ever tried to launch a
  97. 2:54project, a company, knows it's very hard
  98. 2:56to stay motivated every day despite the
  99. 2:58good news, the bad news, and the roller
  100. 2:59coaster that entrepreneurship can bring
  101. 3:01.
  102. 3:02And often we feel very alone, and there
  103. 3:04are days that are much tougher than
  104. 3:06others.
  105. 3:07So I thought it makes a lot of sense at
  106. 3:10that level to have an app that sends
  107. 3:12affirmations to keep entrepreneurs
  108. 3:14motivated.
  109. 3:16I told myself: rather than just making
  110. 3:18an app with just motivational phrases, I
  111. 3:20wanted to add a little twist. And so, I
  112. 3:22thought a bit, and I know that what
  113. 3:24helps me as an entrepreneur is seeing
  114. 3:25that I'm not the only one struggling at
  115. 3:27times.
  116. 3:29And in fact, I know that all the great
  117. 3:31entrepreneurs you know today, and they
  118. 3:32talk about it either in interviews or in
  119. 3:34the biographies they've written, is that
  120. 3:36they all struggled at some point, they
  121. 3:38all failed, they all tell those stories
  122. 3:40.
  123. 3:41And so I think it could be nice to
  124. 3:43create a mix, an affirmation app that
  125. 3:46also intersperses between affirmation
  126. 3:48phrases stories from entrepreneurs, but
  127. 3:50focused on their failures.
  128. 3:53To show that, well, you see, he's super
  129. 3:54successful, but actually before being
  130. 3:56super successful, he failed at this,
  131. 3:57this, and that, or he struggled with
  132. 3:59this, this, and that. So don't give up.
  133. 4:01Actually, I think it can also really
  134. 4:02help people feel better.
  135. 4:05There you go, so that's the idea for the
  136. 4:07application.
  137. 4:09So what I suggest is that we now move
  138. 4:11straight on to writing the features.
  139. 4:13The first step is to define which
  140. 4:15features I want in my app, and starting
  141. 4:18from there, we'll draft a specification
  142. 4:20based on what we call user stories,
  143. 4:22meaning user stories are what the user
  144. 4:25can do within our application.
  145. 4:27Every sentence in this specification
  146. 4:29will start with "As a user, I want to be
  147. 4:31able to." So, let's head over to the
  148. 4:33computer to tackle this right away. So
  149. 4:35we're back at my little whiteboard here
  150. 4:37, and what I suggest is that we add some
  151. 4:40text. We'll write it here like this and
  152. 4:43get everything out of my head that I'm
  153. 4:46thinking of for the application in this
  154. 4:49case.
  155. 4:50As I said, we're not going to make
  156. 4:51something very complicated. The idea is
  157. 4:53really to use the mechanics of apps that
  158. 4:55already exist and just add our own
  159. 4:57little twist. So first, we'll write "As
  160. 5:01a user."
  161. 5:04"I want to be able to," colon.
  162. 5:06Okay.
  163. 5:09And so, actually doing this exercise
  164. 5:11will allow us to really think about what
  165. 5:14we want in the app.
  166. 5:17For me, as a user, I want to be able to
  167. 5:21, uh, browse
  168. 5:25through phrases
  169. 5:29of motivational affirmations, let's say
  170. 5:31.
  171. 5:34I want to?
  172. 5:36I want to be able to swipe up to scroll
  173. 5:40through the phrases.
  174. 5:44You have to be very precise when writing
  175. 5:45our user stories. The idea is really to
  176. 5:47describe what the user does in the app,
  177. 5:48or rather, the future application. So, I
  178. 5:50want to be able to browse, and how do I
  179. 5:52do that? Well, I swipe up.
  180. 5:55Uh, for each affirmation, I want to be
  181. 5:59able to—and here we'll create sub-user
  182. 6:03stories. I want to be able to
  183. 6:07like, and therefore have, uh, a place
  184. 6:11where I can find my likes, add to
  185. 6:14favorites,
  186. 6:17share
  187. 6:19on social media.
  188. 6:21That will help with the organic side of
  189. 6:23the application. I also want to be able
  190. 6:25to...Actually, let's put it here instead
  191. 6:27. Browse motivational affirmation
  192. 6:30phrases and stories
  193. 6:35from entrepreneurs, or rather, stories
  194. 6:37of entrepreneurial failures.
  195. 6:42I also want to be able to access the
  196. 6:45application without logging in.
  197. 6:49Uh, for a V1, I'm not going to build an
  198. 6:51account system and so on, there's no
  199. 6:52point. The idea is that we create the
  200. 6:55app, we download the app, and then when
  201. 6:57arriving on the app, we go through the
  202. 6:59onboarding, and at the end of onboarding
  203. 7:02, we arrive directly on the app.
  204. 7:04So, access to the application without
  205. 7:06logging in.
  206. 7:08I want to be able to navigate a menu.
  207. 7:13Here, I'll put "bottom" in parentheses,
  208. 7:14so like all apps, right, it's the menu
  209. 7:15at the bottom.
  210. 7:17And so in the menu, I'll put the tabs
  211. 7:19that are there.
  212. 7:21So there is the, uh, main tab.
  213. 7:26There are the settings.
  214. 7:29I'm just thinking that the, the menu,
  215. 7:31sorry, for this type of app, it's
  216. 7:33actually not at the bottom; it's, uh,
  217. 7:35it's the little cross, the little
  218. 7:36settings in the top right, otherwise
  219. 7:38there's the swipe.
  220. 7:40So yeah, actually, we won't do that,
  221. 7:42we'll do, uh, browsing
  222. 7:46different tabs. We'll do it like that.
  223. 7:49OK.
  224. 7:50So here, main, settings. In the settings
  225. 7:53, we'll see what we put in.
  226. 7:57Possibly, favorites.
  227. 7:59So favorites, and inside, I'll put there
  228. 8:01are affirmations
  229. 8:04and stories. I also want to be able to
  230. 8:08create a widget on my
  231. 8:14home screen that displays a story or an
  232. 8:19affirmation every day
  233. 8:24at random.
  234. 8:26Simply. And roughly, that's all. There
  235. 8:28isn't much more that I could add.
  236. 8:30Afterward, the rest will be details that
  237. 8:32I might refine a little bit off-camera,
  238. 8:34but the idea here is, well, my V1 is
  239. 8:36this.
  240. 8:38I don't want more features, and that's
  241. 8:40why this exercise is extremely important
  242. 8:41because I could go off in all directions
  243. 8:43, adding stuff to post directly to
  244. 8:45TikTok with a, but actually, I don't
  245. 8:47care, there you go.
  246. 8:48This is what I want. This application,
  247. 8:50the V1, it's going to be this.
  248. 8:52So, we'll go with that, and so now, the
  249. 8:55next step will be to think about the
  250. 8:57design I want.
  251. 8:59So, we'll meet right back for the design
  252. 9:01brainstorming.
  253. 9:02So, for the design, what I like to do is
  254. 9:05go get inspired by what other designers
  255. 9:08are doing. Now, watch out, I'm not
  256. 9:09saying steal their work, I'm just saying
  257. 9:11get inspired, go see a little bit the
  258. 9:13different artistic directions that exist
  259. 9:15to be able to, well, adapt them to my
  260. 9:17thing. So, what I really like is the
  261. 9:19Dribbble website, right here.
  262. 9:22And so, on Dribbble, we're going to take
  263. 9:25a look at what's being done.
  264. 9:28I've already given it some thought, of
  265. 9:30course, and what I really like is
  266. 9:32looking at neo-brutalist or editorial
  267. 9:35styles, that kind of art direction.
  268. 9:39So, let's search for "brutalist mobile
  269. 9:41app."
  270. 9:43Yeah, something like this style here.
  271. 9:46See, that's not bad.
  272. 9:49Otherwise, what I also like—yeah, I like
  273. 9:52this one.
  274. 9:53I like this one because—well, it's very
  275. 9:55sports-oriented, and I often feel that
  276. 9:58entrepreneurship is a marathon, not a
  277. 10:00sprint.
  278. 10:02And so, I think the art direction of
  279. 10:03sports mobile apps could work really
  280. 10:05well for this app, drawing some
  281. 10:06inspiration from that.
  282. 10:09So, this is actually pretty good, really
  283. 10:11not bad at all; it's neo-brutalist, yeah
  284. 10:14.
  285. 10:15OK. So, neo-brutalist with, uh, a sports
  286. 10:18vibe. I'm not even saving the photo; I
  287. 10:20don't really need to. If worst comes to
  288. 10:22worst, I'll come back to it if I see
  289. 10:23that it doesn't work out in the mockups
  290. 10:24. We're going to generate mockups using
  291. 10:26AI later. But for now, in any case, OK,
  292. 10:28that's exactly what I want.
  293. 10:31It's really cool.
  294. 10:32I'll take a quick look to see if there's
  295. 10:34anything else, but the idea, the idea
  296. 10:36will be this; yeah, I like that. Let's
  297. 10:38see—it's not sports-related, but I like
  298. 10:40the big, bold text, very square, very
  299. 10:42straight; that's what's called
  300. 10:44neo-brutalism. So, I wanted to confirm—
  301. 10:47I had already thought about this,
  302. 10:49obviously—but I wanted to confirm it,
  303. 10:51and honestly, we got lucky here, but I
  304. 10:53want something that leans towards this.
  305. 10:56You could just save this image and give
  306. 10:59it to the AI.
  307. 11:01I feel like that's kind of stealing this
  308. 11:03person's work. I get the concept, so
  309. 11:05I'll just describe it instead.
  310. 11:07Now, as for how I handle the app design
  311. 11:09, I use—well, I have a ChatGPT
  312. 11:11subscription and a Claude subscription.
  313. 11:14You should know that ChatGPT is very,
  314. 11:16very good at imagining more artistic
  315. 11:18things, but it doesn't create editable
  316. 11:20designs or things like that the way
  317. 11:22Claude does. While Claude Design is good
  318. 11:25at creating fairly classic designs, if
  319. 11:27you don't guide it extremely well, it
  320. 11:29struggles a bit to step off the beaten
  321. 11:31path and do original things.
  322. 11:33So what I do is, I always generate one
  323. 11:35or two high-fidelity mockups—not
  324. 11:37wireframes, but actual things with color
  325. 11:39—in ChatGPT, and then I feed these
  326. 11:41ChatGPT images into Claude Design.
  327. 11:44So I'm going to enter my prompt into
  328. 11:45ChatGPT and we'll see what it gives us
  329. 11:46right away.
  330. 11:48OK, we're now on ChatGPT and it's not
  331. 11:51bad.
  332. 11:52It's not bad at all. So, it's called the
  333. 11:54app Grit.
  334. 11:55That was one of my suggestions I had in
  335. 11:57terms of a name. It's not bad at all.
  336. 11:59It's not bad at all, at all, at all.
  337. 12:02You see, there's this bold text, this
  338. 12:04very blocky look, and so on.
  339. 12:06So here, this is the part where we swipe
  340. 12:07. It might be a bit big, we'll see.
  341. 12:10The idea is that afterwards we have
  342. 12:12entrepreneur stories with—and I really
  343. 12:14like this—the entrepreneur's photo,
  344. 12:16which helps to better visualize who they
  345. 12:18are, with the name in big letters and
  346. 12:20just a sentence saying, "Before Airbnb
  347. 12:21took off, the founders sold cereal boxes
  348. 12:23just to keep building."
  349. 12:25For those who don't know, it's the
  350. 12:27Airbnb founders; at one point, they were
  351. 12:29really struggling.
  352. 12:31It was during the Obama-Trump election,
  353. 12:33and they made cereal boxes with Obama
  354. 12:34and Trump as mascots and sold them.
  355. 12:36Well, that's the legend; apparently, it
  356. 12:38allowed them to get back on their feet
  357. 12:41financially and keep developing Airbnb.
  358. 12:43So I think that's pretty cool, with the
  359. 12:45explanatory sentence and a little
  360. 12:47motivational phrase below, "You're
  361. 12:49probably earlier than you think."
  362. 12:51Same thing here, I had to guide ChatGPT
  363. 12:53to include that; it's also part of the
  364. 12:55user story work. I showed you a brief
  365. 12:57overview earlier, but the idea is to
  366. 12:59really dig into what you want exactly.
  367. 13:02The point is not to let the AI build
  368. 13:04your app for you; you don't want to lose
  369. 13:06the intellectual property of your app.
  370. 13:09And so, as I said, we find the ability
  371. 13:12to like, save, send, and we can swipe up
  372. 13:15to go to the next thing.
  373. 13:17I did, however, ask him to put a menu at
  374. 13:20the bottom here for me.
  375. 13:22I actually find it quite nice in
  376. 13:24neo-brutalist, because while other apps
  377. 13:26use those little floating icons, I think
  378. 13:27this is pretty good.
  379. 13:30We're looking at it here, yeah, that was
  380. 13:31it too.
  381. 13:32That right there is what was saved as a
  382. 13:34favorite.
  383. 13:35Right here.
  384. 13:37Uh, so I think that's cool.
  385. 13:38Now, he took a bit of liberty here, I
  386. 13:40see, with a like counter next to it—
  387. 13:41well, there is a like counter, but
  388. 13:42there's no count, there's nothing, so we
  389. 13:44won't be able to know how many people
  390. 13:45liked this phrase; it’s not a social
  391. 13:46network.
  392. 13:48So actually, in the real mockups—or
  393. 13:49rather the real app—we won't find this
  394. 13:51counter; it will just show whether or
  395. 13:52not you personally liked it, that's all
  396. 13:53.
  397. 13:55Uh, and this, then, is the profile, with
  398. 13:58, you know, notifications, widget
  399. 14:00preview, widget style, themes, and so on
  400. 14:03and so forth.
  401. 14:05It's true that in this type of
  402. 14:07application there are a lot of themes;
  403. 14:09for now, I haven't added any, to be
  404. 14:10honest, I think for a V1 I won't include
  405. 14:12payments, and these apps usually charge
  406. 14:14for app customization.
  407. 14:16However, for me, for now, since I don't
  408. 14:18want to charge, I probably won't do any
  409. 14:19customization. So, we'll see. So, now
  410. 14:22that I have these mockups, we'll take
  411. 14:25them and put them into Claude Design and
  412. 14:29see what it comes up with. The idea is
  413. 14:32really to do all the application screens
  414. 14:34, so screen by screen. Uh, that means,
  415. 14:37okay, here, if I click on Save, what
  416. 14:38happens? If I click on my Momentum, what
  417. 14:40happens? If I click here on Explore,
  418. 14:42what is there? What happens? I actually
  419. 14:45think I'm going to ask it to remove the
  420. 14:46Explore button. I don't really like it
  421. 14:47because, in fact, the Home and the
  422. 14:49Explore, well, it's useless.
  423. 14:51Alright, I'm heading into Claude Design
  424. 14:53now and we'll see what it gives us. So,
  425. 14:55we are back in Claude Design, which is
  426. 14:57right here. Uh, in terms of the model,
  427. 14:59I'm sticking with Opus 5.5, which is one
  428. 15:01of the latest models released and it's
  429. 15:03excellent. Uh, and for effort, though,
  430. 15:05I'm not setting it to medium, I'm
  431. 15:06setting it to high, and it performs
  432. 15:08perfectly like Fable 5.1.
  433. 15:09So, I'll leave it on Opus 5.5. The idea
  434. 15:12is that, as a result, I'm going to work
  435. 15:14on Mobile App Design. And so, what I'm
  436. 15:17going to do is go back into ChatGPT and
  437. 15:19ask it to create a prompt for me,
  438. 15:21because ChatGPT created these initial
  439. 15:24mockups. So, I'm going to tell it, "
  440. 15:26Create a prompt for me to really capture
  441. 15:28the design and the feeling of this art
  442. 15:30direction." I just told ChatGPT that I
  443. 15:32was going to give the mockups to Claude
  444. 15:35Design and so on, and so it's generating
  445. 15:37a prompt for me. There we go.
  446. 15:39Okay, so here we are in Claude Design.
  447. 15:41So, I have sent the entire prompt. I am
  448. 15:44also going to attach the mockups.
  449. 15:46And we're going to launch Claude Design
  450. 15:48and see what it does for us. We'll be
  451. 15:49back as soon as it's finished working.
  452. 15:51Okay, so Claude has finished creating
  453. 15:53the mockups. Now, I won't lie to you;
  454. 15:55Claude finished a little while ago. I
  455. 15:57chatted with it, brainstormed, and so on
  456. 15:59, to modify things and show you the
  457. 16:01final result.
  458. 16:03There were some things I said I wouldn't
  459. 16:04keep, but in the end, I kept them; the
  460. 16:06famous little "Explore" tab, I kept that
  461. 16:07one.
  462. 16:08You'll see that it got a little ahead of
  463. 16:10itself and created a paywall, even
  464. 16:11though I said the app would be free.
  465. 16:13It will be at launch, at least, but at
  466. 16:15least it's already there.
  467. 16:16And so, I suggest we take a look at the
  468. 16:18result of this entire session together
  469. 16:20right now so you can see what it looks
  470. 16:21like. So, here we are in Claude Design.
  471. 16:24So you see, this is cool, it created the
  472. 16:26entire design system for the app. So
  473. 16:27from here, I'll be able to generate
  474. 16:29everything, create all the App Store
  475. 16:30screenshots, and everything with a
  476. 16:32consistent art direction. So that's
  477. 16:33great.
  478. 16:34So I have my design system with the
  479. 16:36rules for each color, when it's used,
  480. 16:38and so on, the different fonts—that's so
  481. 16:41good—the different buttons, in short,
  482. 16:43absolutely everything.
  483. 16:46The idea is that now we have the screens
  484. 16:49. So I worked with it, particularly on
  485. 16:51the onboarding. Onboarding is something
  486. 16:53that's quite important because, well,
  487. 16:55often an onboarding process that's long
  488. 16:57—and I'm the first to say this in my
  489. 16:58videos—I find that super annoying in an
  490. 17:00app.
  491. 17:01But you still need to have a little
  492. 17:03onboarding where you ask questions.
  493. 17:05Because psychologically, the user feels
  494. 17:07more like it’s something personalized
  495. 17:09for them, and therefore they see greater
  496. 17:12value in the application.
  497. 17:14It's a little psychological tip.
  498. 17:16And the other thing is that it also lets
  499. 17:18you collect some data on who is using
  500. 17:19your application, so you can know
  501. 17:21exactly who to target to get more and
  502. 17:23more users.
  503. 17:24So here you can see I’ve been working on
  504. 17:26the onboarding.
  505. 17:27Uh, so I’ve done everything in English
  506. 17:28for the moment. So "You are not behind
  507. 17:30in your building" and so on. Anyway, a
  508. 17:32first affirmation sentence with various
  509. 17:34questions. Uh, what is the hardest thing
  510. 17:36in your journey today? What are you
  511. 17:38currently doing? Uh, where are you at?
  512. 17:40And I really like this—this wasn't my
  513. 17:42idea, this was actually Claude's—this
  514. 17:44little timeline here, from the idea
  515. 17:46stage all the way to scaling, it's just
  516. 17:48great.
  517. 17:49Uh "What do you need more?" And
  518. 17:52basically, each affirmation will have a
  519. 17:55category, a tag. And so we can see that
  520. 17:57there are several here that I had given
  521. 17:58it. So "Motivation, launch, rejection,
  522. 18:00comparison, burnout" and so on. And so
  523. 18:03it's a bunch of affirmation sentences to
  524. 18:04actually counter all of that. We have a
  525. 18:06few questions to really refine the user
  526. 18:09experience.
  527. 18:10This is the famous screen to authorize
  528. 18:11notifications or not, because obviously
  529. 18:13it's super important, we know that.
  530. 18:16Anyone with a smartphone has dozens and
  531. 18:18dozens of apps, and if there’s nothing
  532. 18:20to remind them to come back to the app,
  533. 18:22there’s a very high chance they’ll
  534. 18:24forget you and eventually delete it.
  535. 18:26And that's not what we want as app
  536. 18:29creators, so there’s this little screen
  537. 18:31that asks, well, do you want to be
  538. 18:34reminded—well, not reminded exactly, but
  539. 18:36how often do you want us to show you
  540. 18:39affirmation sentences?
  541. 18:41And then, here’s what the application
  542. 18:43looks like, and so we have 10 sentences
  543. 18:45a day, which is one of the things I
  544. 18:47reworked because I saw that it was
  545. 18:49common in many apps.
  546. 18:52And so, there you go, keep going, nobody
  547. 18:54sees the company yet, et cetera, et
  548. 18:55cetera; we scroll and we can see founder
  549. 18:57stories that will appear somewhat
  550. 18:58randomly within the 10. There are at
  551. 19:00least—I’ll specify later, but I think—
  552. 19:02one or two stories in the affirmations
  553. 19:04each day, because there aren't millions
  554. 19:05of stories, so maybe one story per day,
  555. 19:07I think that’s what I’ll do.
  556. 19:10We’re now on my desktop, and you can see
  557. 19:12that I’ve opened something called GitHub
  558. 19:14. Well, GitHub Desktop. Uh, what is
  559. 19:17GitHub? It's a platform that allows you
  560. 19:20to save versions of your code.
  561. 19:23When we develop, let's imagine something
  562. 19:25very, very simple; there is the
  563. 19:27application that your users see, the
  564. 19:29version of the app that your users see,
  565. 19:31but imagine now that you want to add a
  566. 19:34feature.
  567. 19:35The feature won't just be added all at
  568. 19:37once like that, although it's a bit
  569. 19:39easier now, but the idea is you have to
  570. 19:41add a new screen, you have to start
  571. 19:43making changes, and actually, as
  572. 19:45developers, we don't want to break the
  573. 19:47application that the users are currently
  574. 19:49using.
  575. 19:50So what happens is that we make a copy
  576. 19:53of this existing application, we do our
  577. 19:55little tinkering on this copy, and once
  578. 19:57that tinkering is done, we perform
  579. 19:59what's called a commit—meaning we save
  580. 20:02this new version to replace the other—
  581. 20:04and we perform a push, a deployment, to
  582. 20:07be able to replace the version we just
  583. 20:09created and thus replace the old version
  584. 20:11.
  585. 20:12And that way, the users don't see the
  586. 20:14version that's under construction while
  587. 20:16it's in progress, and as soon as it's
  588. 20:18finished, we commit, we deploy, and then
  589. 20:19, hop, without them having to do
  590. 20:21anything, they see this new version.
  591. 20:24It's a bit like what happens when you
  592. 20:25download an app on the App Store;
  593. 20:26sometimes when you go back to the page,
  594. 20:28there's an "update" button.
  595. 20:29Actually, what is an update? It just
  596. 20:31means that the developer has added a new
  597. 20:33version and that you need to download
  598. 20:35this new version to be able to access it
  599. 20:36.
  600. 20:37Up until then, you were on the old one.
  601. 20:39Well, for us, it will be exactly the
  602. 20:41same in our development.
  603. 20:42We will have our development in the
  604. 20:45Cloud with VS Code, one version of the
  605. 20:47application, but even while we are
  606. 20:49developing, we will want to save
  607. 20:51different versions every time we add a
  608. 20:54feature. Well, it can be very useful if
  609. 20:56, for example, we add a feature tomorrow
  610. 20:58and break something, and we end up
  611. 20:59thinking, "Actually, it was better
  612. 21:01before." Well, we can go back. We can
  613. 21:03return to the previous version. And well
  614. 21:05, GitHub allows us to do that.
  615. 21:08Uh, so GitHub, there are plenty of ways
  616. 21:09to install it, to download it. You can
  617. 21:11install it in the terminal via the
  618. 21:13terminal, via terminals. You can—I
  619. 21:15downloaded the GitHub application
  620. 21:16because, actually, I had a little issue
  621. 21:18on my computer, so it was simpler. So
  622. 21:20you can get GitHub Desktop; just type it
  623. 21:21into Google and you'll be able to
  624. 21:23download it.
  625. 21:24So it looks like this. So here you see,
  626. 21:26I am in the Giga repository. So, what is
  627. 21:28a repository? Well, it's a folder in
  628. 21:30which GitHub will track the different
  629. 21:32versions of your app.
  630. 21:34So what I'm going to do is go here, I'll
  631. 21:37click add, and then create a new
  632. 21:39repository.
  633. 21:42I'll call it Grid.
  634. 21:45I'll choose the location where I want to
  635. 21:47create it. I won't add a description or
  636. 21:49a license, we don't really care, and
  637. 21:50I'll click create repository.
  638. 21:53So what happens now is that I have a
  639. 21:55folder on my computer that is considered
  640. 21:57a repo, a repository, by GitHub.
  641. 22:00And so from there, GitHub will track the
  642. 22:02different versions of my app that we're
  643. 22:04going to put in there.
  644. 22:07Uh, what I'm going to do is click
  645. 22:08publish repository because, actually, as
  646. 22:10long as I don't publish, this repository
  647. 22:12, these versions of the app, stay on my
  648. 22:13computer. So if my computer burns
  649. 22:15tomorrow, I lose everything.
  650. 22:17When I click publish, it actually, uh,
  651. 22:20publishes the repo to github.com. And so
  652. 22:22it's in the cloud, and so if my computer
  653. 22:24burns tomorrow, it's fine, I can recover
  654. 22:26the future versions. I really hope my
  655. 22:28computer won't burn, but that's the idea
  656. 22:30.
  657. 22:31I will, however, keep "keep this code
  658. 22:33private" checked because if we don't set
  659. 22:34it to private, anyone can see the code,
  660. 22:36and that doesn't work for me for a
  661. 22:37project like this one.
  662. 22:38So I click publish repository.
  663. 22:41I now have my grid folder on my computer
  664. 22:44.
  665. 22:44So we're going to go back into Claude
  666. 22:46Code, download the HTML file with all
  667. 22:48the mockups, and put it into grid.
  668. 22:50And here, by the way, I'm going to add a
  669. 22:51new folder that will be called, uh,
  670. 22:55reference.
  671. 22:57And so in "reference," we'll be able to
  672. 22:59put reference images, mockups, and so on
  673. 23:01and so forth.
  674. 23:02So I'm going back to Claude Design, and
  675. 23:04I'll select project HTML.
  676. 23:06There, project archive, very good.
  677. 23:10I'm going to export it and put it in my
  678. 23:12folder. I'll save it in "reference,"
  679. 23:14save.
  680. 23:16And there you go, now Claude Code will
  681. 23:18be able to access this file to start
  682. 23:21coding the application.
  683. 23:23I'm going to do one more thing in this
  684. 23:25folder. Remember, I talked about my user
  685. 23:27stories that I had written up very
  686. 23:28quickly to show you; I didn't show you
  687. 23:30the full version, otherwise it would
  688. 23:32have taken, uh, half an hour or an hour
  689. 23:33.
  690. 23:35But what I'm going to do now is ask
  691. 23:37ChatGPT to generate a .md file for me, a
  692. 23:39markdown file that is easily readable by
  693. 23:42AIs, containing all the features that
  694. 23:44are supposed to be in the application.
  695. 23:48And there you go.
  696. 23:49So now I have my .md file, the
  697. 23:51specifications for my application, which
  698. 23:54Claude will be able to retrieve to start
  699. 23:56creating the development plan and, well
  700. 23:59, establish the rules for the
  701. 24:01development in general.
  702. 24:03So now, what we're going to do is head
  703. 24:06over to Visual Studio Code, where, hop,
  704. 24:10I've already set up Claude, Claude Code
  705. 24:13. So it's a plugin that you install, and
  706. 24:15it allows you to access Claude directly
  707. 24:17within Visual Studio. As I said, Visual
  708. 24:19Studio is an IDE. An IDE is?
  709. 24:24It's a development environment, which
  710. 24:26allows you to have—you know, rather than
  711. 24:29just this simple little chat window—the
  712. 24:31idea is that we really have this setup
  713. 24:34where we have our application files here
  714. 24:37, the file contents here, and we can
  715. 24:39talk here, we can use quite a few slash
  716. 24:41commands to talk to Claude in a way
  717. 24:44that's a bit more precise than in a
  718. 24:46normal chat window.
  719. 24:50And so here, what I'm going to do is
  720. 24:52open Visual Studio Code in my "grid code
  721. 24:54" folder that we created earlier, so
  722. 24:56Claude Code will be able to access all
  723. 24:58the files in this folder; it will be
  724. 25:00much more practical for developing.
  725. 25:03So here, what I'm going to do, hop, is
  726. 25:06click "Open Folder."
  727. 25:10I'm going to open "grid."
  728. 25:15It opened "grid" for me in the folder.
  729. 25:17And so there, you can see that now on
  730. 25:19the left, I have my "reference" folder,
  731. 25:22and there in my "reference" folder, I
  732. 25:24have my .md file and my mockups. So,
  733. 25:27from this point on, I'm going to tell
  734. 25:28him we're going to do it together.
  735. 25:32Hello, listen, you have access to the
  736. 25:33grid project folder, inside the
  737. 25:35reference folder, you'll find a .md file
  738. 25:37which is the project specifications. So
  739. 25:39, I would like you to analyze it in
  740. 25:41detail and deduce the development plan
  741. 25:44from it.
  742. 25:46If you have any questions, don't
  743. 25:48hesitate to ask me, and for clarity,
  744. 25:50don't forget that the project must be
  745. 25:53built using Expo 57.
  746. 25:55And the app previews will be done via
  747. 25:59Expo Go.
  748. 26:01In principle, there is no native build,
  749. 26:03so there are no native features, meaning
  750. 26:05there won't be a need for a development
  751. 26:07build, but I'll let you analyze all that
  752. 26:08and ask me questions if needed.
  753. 26:11So, what did I just tell him? I
  754. 26:12purposely didn't explain it to you
  755. 26:14beforehand; quite a few terms were
  756. 26:15mentioned, like Expo, development build
  757. 26:17, and so on.
  758. 26:19What you need to understand is that when
  759. 26:21developing a mobile application, there
  760. 26:23are several ways to do it: either you
  761. 26:25use the native language of the phone you
  762. 26:28want to develop for. So for iPhone, the
  763. 26:30language is Swift, but we also have
  764. 26:33other methods, which means developing in
  765. 26:35JavaScript and using what's called
  766. 26:38encapsulation to offer this version that
  767. 26:41isn't written in the phone's native
  768. 26:43language, but can still be read. And
  769. 26:45actually, Expo does exactly that. The
  770. 26:48advantage of Expo is that it allows you
  771. 26:50, with a single piece of code—actually,
  772. 26:52just one codebase that you develop—to
  773. 26:55deploy your application either on Apple
  774. 26:57, or on iOS, or on Android.
  775. 26:59So, it's very practical. Here, I'm going
  776. 27:01to do it for iOS, but tomorrow, if it
  777. 27:03works, I can very easily convert my
  778. 27:05application for Android.
  779. 27:07Um, and so, Expo is, uh, a
  780. 27:11a method that is very, well, that is
  781. 27:13very, very well-recognized and that I
  782. 27:14recommend you use. Uh, there is very,
  783. 27:16very little difference from Swift. Uh, I
  784. 27:18also mentioned Expo Go. So, what is Expo
  785. 27:21Go? It's an application you download on
  786. 27:23your phone, which I'll show you in a
  787. 27:24moment, that allows you to preview your
  788. 27:26application before it's on the App Store
  789. 27:28.
  790. 27:28And so, that is also truly extremely
  791. 27:30practical.
  792. 27:32Uh, I mentioned development build. What
  793. 27:34is a development build?
  794. 27:36It's actually a development version, so
  795. 27:38a development build, right, that you can
  796. 27:41install on your phone, so there's a link
  797. 27:43, etc., you can go through the internet
  798. 27:45and install the application on the phone
  799. 27:47to be able to test more advanced
  800. 27:49features that require an installation
  801. 27:51and cannot be tested by just previewing
  802. 27:53via the web with Expo Go.
  803. 27:56Uh, in principle, we won't need that
  804. 27:58here.
  805. 28:00So, it tells me "iOS widgets and real
  806. 28:02purchases require a native build,
  807. 28:03impossible in Expo Go, how do you want
  808. 28:05to?"
  809. 28:05So, I'm going to say "No widgets or
  810. 28:08native build planned for now for testing
  811. 28:11."
  812. 28:12Because, effectively, widgets, well,
  813. 28:14that's a feature that requires a native
  814. 28:16build, so potentially a development
  815. 28:18build.
  816. 28:19"Who produces the starting content,
  817. 28:21punch, and?" You generate a first batch
  818. 28:22for this example, we'll say we're going
  819. 28:24to generate it. "Where is the back-end
  820. 28:26at?"
  821. 28:28Here, we'll say "Mock data first." But I
  822. 28:31want to say "No Supabase back-end.
  823. 28:37We're going with
  824. 28:41local storage."
  825. 28:45There aren't any user accounts anyway,
  826. 28:50so nothing to store on an external
  827. 28:56back-end.
  828. 28:58"Which language for?" For the moment,
  829. 29:00we'll only do English.
  830. 29:03And we're launching. So there you go,
  831. 29:04hence the importance of working well on
  832. 29:07everything upstream to specify
  833. 29:09everything clearly. For example, here, I
  834. 29:11think I must have missed something in
  835. 29:13the .md file since it's asking me these
  836. 29:15questions again even though what I said
  837. 29:18was normally quite precise.
  838. 29:20So it says "I've updated the plan, phase
  839. 29:220, phase 1, phase 2 starting content,
  840. 29:24phase 3 onboarding, phase 4 feed home."
  841. 29:26"OK, very, very good." So it's putting
  842. 29:28all the development phases for me, we'll
  843. 29:29be able to refer to them later.
  844. 29:32Uh, that suits me, you can write the
  845. 29:36plan.md as well as a cloud.md.
  846. 29:41So the plan.md is the file it will refer
  847. 29:43to for development, to know if I'm at
  848. 29:45phase 1, phase 2. The cloud.md is a more
  849. 29:48global file that allows us to store the
  850. 29:50major decisions, the major best
  851. 29:52practices to follow, and so on and so
  852. 29:55forth. And so it's important to update
  853. 29:58it regularly.
  854. 29:59So in Visual Studio Code there are some
  855. 30:02very handy things, for example, the/
  856. 30:04init slash command allows you to update
  857. 30:06the file. When you select the cloud.md
  858. 30:09file, you can then update this cloud.md
  859. 30:10file with what we just did. So there, it
  860. 30:13finished writing the plan and the
  861. 30:14cloud.md for me, so it specifies, "I
  862. 30:16don't have figures for the free account
  863. 30:18limits, uh, I'll put in some default
  864. 30:20values.""So, indeed, I hadn't specified
  865. 30:21that because I wasn't sure when I did it
  866. 30:23, so that's not a big deal." The
  867. 30:24important thing is to know that there
  868. 30:26are limits for the free account. And you
  869. 30:27see, afterwards, these are the kinds of
  870. 30:28small details you'll correct as
  871. 30:29development progresses.
  872. 30:31So it tells me, "Well, look, I haven't
  873. 30:32committed anything; let me know if you
  874. 30:33want me to commit these files or start
  875. 30:35phase 0 directly." And so there, it
  876. 30:36tells me, "I haven't committed anything
  877. 30:37.""That's what I explained to you
  878. 30:39earlier."
  879. 30:40We just added files to our development
  880. 30:42folder.
  881. 30:44These files, for the moment, are on my
  882. 30:45computer.
  883. 30:46What we need to do is save a version of
  884. 30:49the application. So the application is
  885. 30:51the entire grid folder.
  886. 30:53And to be able to store it, to say, "
  887. 30:55Well, at this moment in time, these
  888. 30:57files now exist." Which means that from
  889. 30:58this version on, Claude will rely on
  890. 31:00these files to develop. So what we're
  891. 31:02going to do is, yeah, we're going to
  892. 31:03commit. So we'll go back into GitHub
  893. 31:05Desktop.
  894. 31:08Here. And you can see that now in GitHub
  895. 31:10, I see on the left that it has listed
  896. 31:12all the files that have changed.
  897. 31:14So here, I'm going to say, "Writing
  898. 31:16Claude MD and development plan."
  899. 31:21development. I click "Commit 5 files to
  900. 31:24main." So main is my main branch, it's
  901. 31:26the official version of the application
  902. 31:28, the primary one. And I click "Push
  903. 31:30origin" to send it to the web.
  904. 31:34A small clarification, I know there are
  905. 31:35people who automate this entirely. I
  906. 31:36don't want Claude to commit for me. I
  907. 31:38want to be in control of what is
  908. 31:40committed. I want to be able to know
  909. 31:42exactly where we are, at which phase,
  910. 31:44what I am validating, and what I am not
  911. 31:46. It takes a little more time, but it
  912. 31:47allows me to have more control over what
  913. 31:48I'm doing. I hate leaving everything to
  914. 31:50the AI. Maybe one day it will happen,
  915. 31:53but for now, I prefer to keep control
  916. 31:55over that.
  917. 31:56So now that we've got that, I'm going to
  918. 31:58tell it, "Listen, that's perfect.
  919. 32:00I've committed the latest version. You
  920. 32:03can launch development phase zero."
  921. 32:08And so, this development phase zero is
  922. 32:11right here.
  923. 32:13It's the project foundation. It will set
  924. 32:15up the Expo project using SDK 57. So SDK
  925. 32:1857 is the version of, well, of Expo, you
  926. 32:21could say.
  927. 32:22Uh, Expo Router, strict TypeScript, and
  928. 32:24so on. Anyway, it will initialize the
  929. 32:26project, set the name, and so on.
  930. 32:28It will use the theme directly from the
  931. 32:31mockup we made earlier. So it's
  932. 32:33important to do the mockup beforehand.
  933. 32:35And then, once that's done, we'll move
  934. 32:38on to phase 1, meaning content, local
  935. 32:41storage, etc. So really setting up, you
  936. 32:43know, the main essentials.
  937. 32:46The big part will be phase 2, since that
  938. 32:47will be the initial content, the
  939. 32:49different punchlines, and so on.
  940. 32:51And phase 4, phase 3 is the onboarding,
  941. 32:53and phase 4 is the home feed, and so on
  942. 32:54and so forth.
  943. 32:56So right now, it's setting all of that
  944. 32:58up.
  945. 32:58I'm not going to stay with you for every
  946. 33:00step to film it; it would be very, very
  947. 33:02long and not that interesting. It will
  948. 33:04always happen the same way; it will
  949. 33:06finish phase 0. So for phase 0, I have
  950. 33:09nothing to test, but starting from the
  951. 33:11content and local storage phase, yeah,
  952. 33:14phase 1, phase 2, yeah.
  953. 33:17Starting from phase 1, I'll have things
  954. 33:19to test on Expo Go. So we'll meet back
  955. 33:21right after to show you how it's going
  956. 33:23in Expo Go. Just know that I'll be going
  957. 33:26back and forth with it at each phase to
  958. 33:27make sure it truly respects my vision
  959. 33:29and the plan. And to be sure it follows
  960. 33:32the plan, we can obviously select it
  961. 33:34here so it always has it when launching
  962. 33:37the task.
  963. 33:39There you go. So I'm launching these
  964. 33:40different phases and we'll meet back
  965. 33:41right after so I can show you how it's
  966. 33:43going in Expo Go. So, we're back after
  967. 33:45several hours accumulated over two days
  968. 33:48of work with Claude. I've exchanged
  969. 33:50quite a bit with it, as I told you. So
  970. 33:51we've completed the different phases
  971. 33:53that we saw in the development plan. At
  972. 33:55each phase, I tested it on my phone,
  973. 33:57gave him my feedback, made small
  974. 33:59modifications, and so on. In short, a
  975. 34:01lot of back and forth, back and forth,
  976. 34:02back and forth. Every time, I manually
  977. 34:04committed via GitHub Desktop to make
  978. 34:06sure everything was up to date.
  979. 34:08And so I've reached a version that isn't
  980. 34:10completely finished yet, but I'm making
  981. 34:11a quick video to show you how I test it
  982. 34:13and how exactly it works. So, the first
  983. 34:15thing is, as I mentioned earlier, we're
  984. 34:17going to use Expo Go.
  985. 34:19So Expo, this famous Expo Go app, this
  986. 34:21famous mobile app that you can download
  987. 34:23on the iPhone and which acts as a
  988. 34:24companion to the Expo framework that we
  989. 34:26use for developing with Claude.
  990. 34:30There's one thing that is extremely
  991. 34:32practical when you want to test: we
  992. 34:34launch a local server on our computer,
  993. 34:36and by having this server on the
  994. 34:38computer, we can scan it with our iPhone
  995. 34:41and test our application.
  996. 34:43So, what happens is that we go into the
  997. 34:46terminal here and run npm run start.
  998. 34:49It will launch the server and give me a
  999. 34:52QR code that I'll need to scan with my
  1000. 34:55phone.
  1001. 34:58Hop, I'm currently recording my phone
  1002. 35:00screen so you'll see, I select that, I
  1003. 35:02click open in Expo Go.
  1004. 35:04It will load my application, so you can
  1005. 35:07see it starting up, and my Grid
  1006. 35:09application appears, so you can see I
  1007. 35:12have everything I had already decided on
  1008. 35:15.
  1009. 35:16So, the famous swipe up to see the
  1010. 35:19different punches.
  1011. 35:22We also have Founder Stories from time
  1012. 35:23to time—well, from time to time actually
  1013. 35:25means once a day for Founder Stories.
  1014. 35:27So here we can see Ben Silbermann, who
  1015. 35:29is the founder of Pinterest. Here, we
  1016. 35:31can see the full story. Actually, the
  1017. 35:33full story is just a little timeline of
  1018. 35:35what happened, so there you go, in 2010
  1019. 35:38Pinterest launches with 3,000 users.
  1020. 35:41In 2012, two years later, 10 million
  1021. 35:43monthly users, and with each one, a
  1022. 35:45little phrase underneath: "small numbers
  1023. 35:47are still a signal," meaning even if you
  1024. 35:50don't have many users—well, 3,000 is
  1025. 35:52still a lot, but anyway.
  1026. 35:55And well, that's not a reason to get
  1027. 35:56discouraged, you see.
  1028. 35:59So there are plenty of stories, one per
  1029. 36:02day, and 10 punches each day.
  1030. 36:05And once you've reached the 10, or
  1031. 36:06rather it's 9 punches and one story.
  1032. 36:09And at the end, at the end of the 10,
  1033. 36:11you get "that's today 10" and so you
  1034. 36:13can't view anymore.
  1035. 36:16You'll have to come back the next day.
  1036. 36:18Uh then we have tabs, so "saved" where
  1037. 36:20you can save punches or stories you
  1038. 36:22liked.
  1039. 36:23You have an "explore" button, now that's
  1040. 36:25pretty cool; actually, uh you'll be able
  1041. 36:27to find all the existing punches here, I
  1042. 36:29didn't set a limit on that. On the other
  1043. 36:31hand, for the stories, I thought I'd add
  1044. 36:33the stories as the user sees them. It
  1045. 36:36will increase retention because it makes
  1046. 36:37us want to come back every day to see
  1047. 36:39the entrepreneurial story of the day,
  1048. 36:41and every time you see one it appears in
  1049. 36:43"Founder Stories," and as you can see,
  1050. 36:44there are 37 left to see, so you'll have
  1051. 36:46to come back at least 37 times. I'll add
  1052. 36:48more later, but the idea is there.
  1053. 36:51Next, you have the famous uh profile tab
  1054. 36:54where you can edit uh all all those
  1055. 36:56things.
  1056. 36:57And there you go, that's how we test uh
  1057. 36:59the application. Now, once again, when
  1058. 37:02there isn't a truly native feature that
  1059. 37:04requires a what we call a development—
  1060. 37:06wow, I could barely say it—a "
  1061. 37:08development build," and the development
  1062. 37:10build is, well, it's also an Expo
  1063. 37:12feature that lets you install the
  1064. 37:14application on your phone in development
  1065. 37:16mode. You have to put the iPhone in test
  1066. 37:18mode—sorry, in dev mode—but it's very
  1067. 37:20easy to do.
  1068. 37:21Uh, and so that's to be able to test
  1069. 37:23things like widgets. Uh, I haven't done
  1070. 37:26that yet, so I haven't made the widgets
  1071. 37:27yet.
  1072. 37:28I'm going to add French, Spanish, and
  1073. 37:29Italian translations, the standard ones
  1074. 37:31, especially French, for you so that you
  1075. 37:33can download and use it.
  1076. 37:35Uh, I'm going to add the logo and so on
  1077. 37:37and so forth. I think it's going to be a
  1078. 37:39G, a big G with a red bar. I think it's
  1079. 37:41going to be nice.
  1080. 37:42Uh, I also hesitated with the name "
  1081. 37:44Grits" because there are a lot of "
  1082. 37:45Grits" out there. Actually, "grit," I
  1083. 37:47think I already mentioned it before, but
  1084. 37:49in English, it means working hard,
  1085. 37:51perseverance, and so on.
  1086. 37:53Uh, so I like it; ultimately, it's not a
  1087. 37:55big deal for a mobile app, the name
  1088. 37:57isn't necessarily paramount. It just
  1089. 37:59needs to be findable in the App Store,
  1090. 38:01so I think I'll stick with that.
  1091. 38:03Uh, and that's it.
  1092. 38:05So there, I've shown you a little bit of
  1093. 38:06my entire development process. Now,
  1094. 38:08obviously, I can't show you everything,
  1095. 38:10it's a bit complicated, but you have a
  1096. 38:11preview of what it is, of what the
  1097. 38:13application is today. I'm going to keep
  1098. 38:15working on it for a bit.
  1099. 38:17I'll continue certain phases, add the
  1100. 38:19widgets, make a few more small
  1101. 38:20adjustments, and we'll be back soon for
  1102. 38:22the App Store launch.
  1103. 38:26Finally.
  1104. 38:28OK, so we're back after some time, a few
  1105. 38:30hours spread over a few days where I
  1106. 38:31reviewed the application.
  1107. 38:33I went back and forth a few times with
  1108. 38:34Claude. I manually reviewed each of the
  1109. 38:37punchy sentences it generated in French
  1110. 38:38and English to make sure they were
  1111. 38:40translated correctly, that they actually
  1112. 38:42mean something, and above all, that I
  1113. 38:44like them.
  1114. 38:45So you see, it’s also a good way for me
  1115. 38:47to remind you that just because AI can
  1116. 38:48do everything for you, doesn't mean you
  1117. 38:49should let it do everything for you.
  1118. 38:51You see, I told it, "Go ahead, generate
  1119. 38:53the sentences for me." But I still spent
  1120. 38:55several hours proofreading and
  1121. 38:56correcting everything to make sure it
  1122. 38:57really fits me and that the quality I
  1123. 38:59want to provide to users is actually
  1124. 39:00there.
  1125. 39:03So once all that was done, and I had
  1126. 39:04thoroughly tested my application from
  1127. 39:06top to bottom, I, as you saw, asked EAS
  1128. 39:08—well, I sent my build via Expo EAS,
  1129. 39:10which then sent it directly to the App
  1130. 39:11Store.
  1131. 39:14So what happens is that when the App
  1132. 39:15Store receives the build, it checks it
  1133. 39:16to make sure there are no problems or
  1134. 39:18anything, and then it makes it available
  1135. 39:19in App Store Connect, where I can then
  1136. 39:21add it.
  1137. 39:22So we are here in App Store Connect, you
  1138. 39:24can see I'm on my version page, I'm in
  1139. 39:26my application Grit Motivation for
  1140. 39:28Founders.
  1141. 39:29I'm on my version 1.0, my version page.
  1142. 39:33So I filled in all the information, well
  1143. 39:34, app privacy; there was almost nothing
  1144. 39:36to put because there's no account, no
  1145. 39:38payment, I don't track anything at all,
  1146. 39:39so there's nothing to put in privacy.
  1147. 39:42That's the main thing to enter, and then
  1148. 39:45there's also everything related to
  1149. 39:48privacy URLs, user rights, and so on. So
  1150. 39:51usually, you have to create an
  1151. 39:53accessible web page. So I made a web
  1152. 39:56page hosted on Vercel; I didn't even use
  1153. 39:58a specific domain name. The important
  1154. 40:00thing is just that it's online and
  1155. 40:01accessible with a valid URL.
  1156. 40:03So I asked Claude to make me a little
  1157. 40:05landing page site with the different
  1158. 40:07pages that we then add to privacy and
  1159. 40:09here in the information section.
  1160. 40:12Also, you should know that via the App
  1161. 40:14Store Connect API, Claude can access it
  1162. 40:16and do things for you. It can't fill out
  1163. 40:18forms, it can't fill out privacy
  1164. 40:20policies, etc., but it can fill out
  1165. 40:23everything else, meaning all the
  1166. 40:25metadata related to the app, like the
  1167. 40:27description, keywords, and so on.
  1168. 40:30As for adding screenshots, I made them
  1169. 40:32in Claude Design and then asked Claude
  1170. 40:34via the API to add them for me.
  1171. 40:36And so that is extremely practical,
  1172. 40:37especially when you have multiple
  1173. 40:38languages, because it saves a crazy
  1174. 40:40amount of time. For my first application
  1175. 40:41, I did everything by hand, and it was
  1176. 40:43endless.
  1177. 40:44So now that we are here, and everything
  1178. 40:46is filled out for all languages, I
  1179. 40:48scroll down, go to Build, and click add
  1180. 40:51build. Here, you can see that it's the
  1181. 40:52build that was sent by Expo. There.
  1182. 40:55I click finish. It is properly added, I
  1183. 40:57click save.
  1184. 41:01And I click add for review.
  1185. 41:08I click create submission, send for
  1186. 41:11review.
  1187. 41:16And the item is sent.
  1188. 41:19Now, I just have to wait for the Apple
  1189. 41:20teams to look at the application and
  1190. 41:22validate it to put it online on the App
  1191. 41:24Store, and I have nothing else to do.
  1192. 41:26What you should know is that I checked
  1193. 41:28the box at the very bottom, "
  1194. 41:28automatically release this version." So
  1195. 41:30, from the moment the teams have
  1196. 41:32reviewed it and given it the green light
  1197. 41:34, it will be published automatically on
  1198. 41:36the App Store.
  1199. 41:37So, there you go, I hope you liked this
  1200. 41:39video.
  1201. 41:40I really tried to show you the different
  1202. 41:42steps of the process, not necessarily in
  1203. 41:44detail because otherwise the video would
  1204. 41:46have lasted tens of hours, but simply to
  1205. 41:48show you the steps I go through to go
  1206. 41:50from an idea to an app directly on the
  1207. 41:52App Store.
  1208. 41:54I hope you like the app idea as well.
  1209. 41:56Normally, when this video is released,
  1210. 41:58it will be available on the App Store.
  1211. 42:00If you are watching this video a long
  1212. 42:01time from now, there may have been
  1213. 42:02updates in the meantime, perhaps at that
  1214. 42:04point there will be a paid version, I
  1215. 42:05don't know. For the moment, it is
  1216. 42:07entirely free. I will put the link in
  1217. 42:09the video description as soon as it is
  1218. 42:10available so that you can go download it
  1219. 42:12.
  1220. 42:13If you like the application, don't
  1221. 42:14hesitate to give it a 5-star rating; it
  1222. 42:16helps tremendously with ranking. And if
  1223. 42:18you don't like it, well, just abstain,
  1224. 42:20don't leave any stars. There you go.
  1225. 42:21Send me a little message on YouTube and
  1226. 42:24I will make the necessary improvements.
  1227. 42:26There you go.
  1228. 42:27Also, if you're interested in being
  1229. 42:29guided to create your own application
  1230. 42:31with Lia, where we go a bit more into
  1231. 42:33the detail of all the methods, the whole
  1232. 42:36method I showed you, I've put a link in
  1233. 42:38the description so you can take a look
  1234. 42:40at everything I offer and book an
  1235. 42:42appointment with me.
  1236. 42:44So, I'll see you very soon. Subscribe to
  1237. 42:46the channel if you haven't already, and
  1238. 42:48I'll see you very shortly for a new
  1239. 42:50video.
  1240. 42:51Alright, ciao.

About this transcript

This page contains the full transcript of On crée ensemble une app iOS de A à Z avec l'IA by Maxime Gadras, generated from the public captions YouTube serves with the video. The transcript has 8,076 words across 1,240 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.