Mobile-first development in 2026 — progressive web apps, container queries, responsive images, mobile performance, and cross-platform strategies with React Native.
| Metric | 2020 | 2023 | 2026 |
|---|---|---|---|
| Mobile web traffic | 52% | 62% | 72% |
| Mobile e-commerce | 45% | 58% | 73% |
| Average phone RAM | 4GB | 6GB | 8GB |
| 5G coverage (urban) | 15% | 45% | 78% |
| Average attention span | 8s | 7s | 6s |
| Page speed expectation | 3s | 2s | <1.5s |
Media queries respond to viewport size. Container queries respond to component size:
/* Old way: viewport-based */
@media (max-width: 768px) {
.card column
Container queries make components truly portable — the same card component works in a sidebar (narrow), main content (medium), or full-width (wide).
PWAs bridge the gap between web and native:
// manifest.json
{
"name": "Developer Portfolio",
"short_name": "DevPortfolio",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#6366f1",
"icons": [
{ "src": "/icons/192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icons/512.png", "sizes": "512x512", "type": "image/png" }
]
}
// Service worker for offline support
self.addEventListener("fetch", (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request).then((fetchResponse) => {
return caches.open("v1").then((cache) => {
cache.put(event.request, fetchResponse.clone());
return fetchResponse;
});
});
})
);
});
Image Optimization
<!-- Responsive images with Next.js -->
<Image
src="/hero.webp"
alt="Hero"
width={1200}
height={600}
sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 1200px"
quality={80}
priority
/>
Our Developer Portfolio Platform automatically converts uploaded images to WebP with responsive sizes.
Code Splitting
// Lazy-load heavy components
const Chart = dynamic(() => import("@/components/Chart"), {
loading: () => <div className="h-64 animate-pulse bg-gray-100 rounded" />,
ssr: false,
});
// Only load on mobile
const MobileMenu = dynamic(() => import("@/components/MobileMenu"), {
ssr: false,
});
/* Minimum touch target size (48x48px per WCAG) */
.touch-target {
min-width: 48px;
min-height: 48px;
padding: 12px;
}
/* Disable hover effects on touch devices */
@media (hover: none) {
.card:hover {
transform: none;
box-shadow: none;
}
}
/* Safe areas for notched phones */
.bottom-nav {
padding-bottom: env(safe-area-inset-bottom);
}
.header {
padding-top: env(safe-area-inset-top);
}
For projects that need true native capabilities:
// React Native component (portfolio-android app)
import { View, Text, StyleSheet, ScrollView } from "react-native";
export function ProjectCard({ project }) {
return (
<View style={styles.card}>
<Image source={{ uri: project.thumbnail }} style={styles.image} />
<View style={styles.content}>
<Text style={styles.title}>{project.name}</Text>
<Text style={styles.description}>{project.description}</Text>
</View>
</View>
);
}
const styles = StyleSheet.create({
card: {
borderRadius: 12,
backgroundColor: "#ffffff",
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
elevation: 3,
marginBottom: 16,
},
});
We maintain a React Native portfolio app alongside the Next.js web platform. And our Android apps — HK AIR IoT Controls and HK Relay SMS Gateway — demonstrate native Kotlin development.
Performance:
□ First Contentful Paint < 1.5s on 4G
□ Largest Contentful Paint < 2.5s
□ Total Blocking Time < 200ms
□ Cumulative Layout Shift < 0.1
Usability:
□ All touch targets ≥ 48x48px
□ Text readable without zoom (≥16px)
□ No horizontal scroll
□ Forms use appropriate input types
□ Keyboard doesn't cover inputs
Features:
□ Offline fallback page
□ PWA installable
□ Push notifications (optional)
□ Camera/GPS access (if needed)
| Template | Mobile Features |
|---|---|
| AgencyPro Elite | 5 mobile-optimized homepages |
| AI Landing Pages | 30+ mobile-first templates |
| Dev Portfolio SaaS | Full responsive admin + public |
| Dashboard Bundle | Responsive sidebar collapse |
Related reads:
Follow on Instagram for mobile UI/UX inspiration.
72% of users are on mobile. Our templates and platforms are mobile-first from day one.
Get the latest articles, tutorials, and updates delivered straight to your inbox. No spam, unsubscribe at any time.