Project check-in
Ten days to Demo Day. Each team gets three minutes, and this time you start on a phone:
- Open your landing page the way a stranger would, from a link.
- Sign up, and show the first screen a new person sees.
- Do the core thing.
Feedback follows Rules for Class CritsRules for Class Crits
Keep feedback respectful and focused on the work, not the person. We’re all here to learn.
If you liked something, call it out! If you don’t, try and explain why.
You can use “I wonder…” or .... Then, in your team: what's left on your must-have list, and what are you cutting? This week is your feature freeze. After it, you only fix and polish.
Your site already works on a phone
Open your project on your phone. It's responsive (L4), it's on the internet, and you can put it on your home screen:
- iPhone: in Safari, tap Share → Add to Home Screen.
- Android: in Chrome, tap ⋮ → Add to Home screen (sometimes Install app).
It gets its own icon and opens like an app. A website that does this well is called a progressive web app (PWA). A small file called manifest.json, with your app's name, icon and colours, makes it look even more like one.
So why does anyone make an app?
Three ways to make a mobile product
| Web app | Cross-platform app | Native app | |
|---|---|---|---|
| Built with | HTML, CSS and JavaScript, like everything this semester | One codebase (React Native or Flutter) that becomes an iPhone app and an Android app | Swift for iPhone and Kotlin for Android: two separate codebases |
| Examples | Your final project | Google Pay (Flutter), Discord (React Native) | Apple's own apps, Google Maps |
| How people get it | A link | The App Store and Play Store | The App Store and Play Store |
| How updates reach people | Every push, straight away | After store review, when people update | After store review, when people update |
| Camera, notifications, working offline | Some. On iPhone, notifications only work once it's on the home screen | Most | All |
| Cost to build | One team | One team, plus some work per platform | Two teams |
| Feels like the phone | Close, if it's designed well | Close | Exactly |
Some things to note:
- For a startup, the web is usually the first version. One link in a WhatsApp group, no review, no install. Many products only become apps once people are asking for one.
- Native apps should feel native. The back gesture, tab bars, share sheets and where the main button goes all differ between iPhone and Android. Apple's Human Interface Guidelines and Google's Material Design are both public. Look up the same component in both.
iOS and Android are different products
| iPhone (iOS) | Android | |
|---|---|---|
| Who makes it | Apple makes the phones and the software | Google makes the software. Samsung, Xiaomi, OnePlus and many others make the phones |
| Share of phones in India | A few percent | Well over 90% |
| Share of phones in the US | More than half | Most of the rest |
| Range of devices | A handful of sizes, mostly recent | Thousands, from ₹7,000 phones to foldables |
| Design guidelines | Human Interface Guidelines | Material Design |
Who are your users? A product for Indian college students that only works well on an iPhone has picked a very small audience. Test on a cheap Android phone, and on Slow 3G (Exercise - Trace a RequestExercise - Trace a Request
Watch your website load, piece by piece
Use the browser's Network tab to observe everything that happens between typing your URL and seeing your page.
Steps
Open your own site (from Exercis...).
The stores are gatekeepers
| Apple App Store | Google Play | |
|---|---|---|
| Cost to publish | $99 a year | $25, once |
| Review | Every update is reviewed by people, usually within a day or two | Mostly automated, usually faster |
| Cut of in-app payments | 15–30% | 15–30% |
Some things to note:
- That cut is a design constraint. It's why Netflix and Spotify have you pay on their websites rather than inside their iPhone apps.
- A website ships when you push. An app ships when Apple says yes, and reaches people when they update. A one-line bug fix can take days.
- The stores also decide what's allowed. Sign in with Apple, from L8, keeps appearing because of Apple's rules.
Sidenote: Which apps on your phone could have been websites? Which ones really needed to be apps?
Ship-ready
Most student projects skip this part, and most real products don't. In your team, go through each list on your own project and write down everything that fails. That list is your work until Demo Day.
Accessibility
- Contrast. Body text needs a contrast ratio of at least 4.5:1 against its background. Inspect some text in DevTools and click its colour swatch to see the ratio. Check dark mode too (L3).
- Keyboard. Put the mouse away and use Tab and Enter. Can you sign up and do the core thing? Can you always see where you are?
- Alt text on every image that means something. A model can write a first draft (L11), but read it.
- Text size.
rem, notpx(L4). Turn up your phone's text size and look again. - A screen reader. On a Mac, ⌘F5 turns VoiceOver on and off. Listen to your landing page for thirty seconds.
Speed
- In DevTools, open Lighthouse and click Analyze page load. Read the Performance and Accessibility scores and the first few suggestions.
- Throttle to Slow 3G and reload, as in Exercise - Trace a RequestExercise - Trace a Request
Watch your website load, piece by piece
Use the browser's Network tab to observe everything that happens between typing your URL and seeing your page.
Steps
Open your own site (from Exercis.... What does someone see while it loads? - The usual cause is images: a 5 MB photo straight from your phone. Resize it before it goes in the repo.
Security and privacy
- Rules. Rerun the
fetchfrom Exercise - Hack the WallExercise - Hack the Wall
Find out what a stranger could do to the class wall
The class wall is open on purpose. The page only lets you paint squares in your own colour, but the page isn't what protects the data. The datab... against your own database. Signed out, can you write? Can you read anything you shouldn't? - Keys. Search your repo on github.com for
AIza, and check.envisn't there (L9). - Your server. Does it turn away empty and very long requests (L11)?
- What you collect. List every piece of personal data you store. Do you need all of it? Who can see it? India's Digital Personal Data Protection Act (2023) expects you to collect only what you need and tell people what it's for.
A real domain (optional)
your-project.vercel.app works, but a name like hostelorders.in is easier to say out loud on Demo Day.
- Buy one from a domain registrar. A
.inor.comcosts a few hundred to a thousand rupees a year. - In Vercel, go to Settings → Domains and add it. Vercel tells you which DNS records to add at your registrar.
- Add the new domain to Firebase's Authorized domains, or sign-in will fail on it.
This is DNS from Exercise - Trace a RequestExercise - Trace a Request
Watch your website load, piece by piece
Use the browser's Network tab to observe everything that happens between typing your URL and seeing your page.
Steps
Open your own site (from Exercis...: you're telling the internet's address book that your name points to Vercel's computers. It can take anywhere from a few minutes to a few hours to reach everyone.
Demo Day
Friday 27 November. Seven minutes per team, then three minutes of questions.
- Start from your landing page, the way a stranger would, and go through sign-up to the core thing.
- Tell the story of how you made it: what you cut, what broke, and what you'd do differently. That's the process documentation from the brief.
- Have a backup. Record your screen going through the whole flow, in case the Wi-Fi, a key or a quota fails on the day.
- Practise once with a timer. Seven minutes goes quickly.
Homework
- Everything on your ship-ready list.
- Exercise - Mobile Ecosystem ComparisonExercise - Mobile Ecosystem Comparison
iOS vs Android, from a product team's chair
Compare and contrast the iOS and Android ecosystems for app development and distribution, highlighting the differences that would actually change a prod..., with your own product as the lens. - Rehearse your demo.