Vorige: We’re live!
De app werkt. De app is live. Maar… het voelt nog als een website.
Tijd voor native feel.
Je kent het. Trek naar beneden, de app refresht. Zo simpel, zo verwacht op iOS.
overscroll-behavior voor browser compatibilityFeels: Net een native app!
let startY = 0;
let pulling = false;
element.addEventListener('touchstart', (e) => {
if (window.scrollY === 0) {
startY = e.touches[0].pageY;
pulling = true;
}
});
element.addEventListener('touchmove', (e) => {
if (!pulling) return;
const diff = e.touches[0].pageY - startY;
if (diff > 80) {
// Show indicator, trigger refresh
}
});
Simpel. Effectief. Native feel.
De standaard number input was… meh. Kleine plus/min knoppen. Niet smooth.
Dus bouwden we een wheel picker. iOS-style.
class WheelPicker {
constructor(options) {
this.itemHeight = 44; // iOS standard
this.visibleItems = 5;
this.friction = 0.95; // Momentum
}
snap() {
// Snap to nearest value
const index = Math.round(this.offset / this.itemHeight);
this.animateTo(index * this.itemHeight);
}
}
Het voelt precies zoals de native iOS picker. Smooth scroll, momentum, snap.
In Instellingen:
define: {
__APP_VERSION__: JSON.stringify(pkg.version),
__BUILD_DATE__: JSON.stringify(new Date().toISOString())
}
Versie info automatisch bij elke build. Geen handmatig werk.
Met deze UX verbeteringen bumpen we naar versie 0.2.0.
| Metric | Waarde |
|---|---|
| Total User Time | ~2 uur |
| Total AI Time | ~16 uur |
| Efficiency | 1:8 |
| Issues Closed | 22 |
| Phase 0 | ✅ 100% |
| Phase 1 | ~70% |
| Version | 0.2.0 |
| Live URL | dailymo.netlify.app |
Het verschil tussen “website” en “app” zit in kleine dingen:
De wheel picker was een uitdaging. Maar het resultaat is 100% custom, 100% iOS-feel, 0% dependencies.
De app voelt nu als een app. Niet als een website. Dat is een milestone op zich.
Vorige: We’re live! · Volgende: Mijn virtuele team →