Blog

Tutorials

Mobile App Development: Beginner Guide (2026)

Mobile app development for beginners: pick code, no-code or AI, learn with free official courses, and build your first app in 7 steps, with real costs and fees.

Writer

Nafis Amiri

Co-Founder of CatDoes

Title slide with the text ‘Mobile App Development for Beginners Guide’ on a white background with a grid floor design.

Quick answer: Mobile app development is the process of planning, designing, building, testing, and publishing software for phones and tablets. Beginners have four ways in: native code (Swift for iPhone, Kotlin for Android), cross-platform code (React Native or Flutter), no-code builders, or AI app builders such as CatDoes. If you want to become a developer, learn to code with a free official course. If you want to launch an idea, start with an AI or no-code builder and learn as you go.

This guide to mobile app development for beginners is written for first-time builders with no app experience. It covers which path fits your goal, how hard each one is, and the free courses from Apple, Google and the Flutter team. Then it walks through seven steps to your first app, with real costs, fees and timelines.

TL;DR: Start with one clear user problem. Define a small MVP, choose the fastest path that can test the idea, and launch before adding advanced features. For most beginners, that means using an AI app builder or no-code tool first, such as CatDoes, which turns a plain-English description into a React Native app you can preview on your phone. To become a developer instead, take Apple's or Google's free course. Move into React Native, Flutter, Swift, or Kotlin when the app needs deeper control.

Table of Contents

  • What Is Mobile App Development?

  • Mobile App Development Paths Compared

  • Is Mobile App Development Hard?

  • How to Build a Mobile App: 7 Steps for Beginners

  • How to Validate and Plan Your App Idea

  • How Much Does Mobile App Development Cost?

  • How Long Does Mobile App Development Take?

  • Best Mobile App Development Tools for Beginners

  • Designing an Intuitive User Experience

  • Building, Testing, and Launching Your App

  • The Best Beginner Path to Build Your First App

  • Mobile App Development Tips for Beginners

  • Frequently Asked Questions

What Is Mobile App Development?

Mobile app development for beginners showing a person sketching an app interface on a tablet

Mobile app development is the full process of turning an app idea into software that runs on iOS, Android, or both. It includes product planning, interface design, frontend development, backend setup, testing, publishing, and ongoing updates.

Every app has two broad parts. The frontend is what users see and touch: screens, buttons, text, images, forms, navigation, and animations. The backend is the system behind the app: user accounts, databases, file storage, payments, notifications, server logic, and admin tools.

Mobile app architecture showing frontend UI connected to backend database and server logic

A simple app might only need a few screens and local data. A real product usually needs accounts, saved data, permissions, analytics, and updates that do not break the app for existing users.

That is why mobile app development is bigger than writing code. A good app solves a specific user problem, feels natural on a phone, works under messy real-world conditions, and gives people a reason to come back.

The Building Blocks of a Mobile App

Every mobile app, from a to-do list to a banking app, is made of the same five parts. Learning them in this order makes any tool easier to pick up.

  • Screens and navigation: the pages of the app and how users move between them, such as Home, Details, and Settings.

  • UI components: buttons, text fields, lists, cards, tabs, and icons.

  • State: what the app knows right now, such as the items in a list or whether the user is signed in.

  • Data storage: saving information on the phone so it is still there after the app closes.

  • Backend: accounts, a cloud database, file storage, and server logic for data that has to sync across devices or users.

When something breaks, ask which of these five parts it lives in. That one question narrows the search.

Mobile App Development Paths Compared

Beginners have four realistic paths: native development, cross-platform development, no-code development, and AI app development. The best path is the one that gets your idea into users' hands with the least unnecessary complexity.

Path

Best For

Coding Needed

Typical Tools

Main Tradeoff

Native development

High-performance apps, deep iOS or Android features

High

Swift and SwiftUI in Xcode (iOS), Kotlin and Jetpack Compose in Android Studio (Android)

You build and maintain separate iOS and Android codebases

Cross-platform development

Startups, MVPs, and apps that need iOS plus Android

Medium

React Native with Expo, Flutter

One shared codebase, but some native edge cases still need platform work

No-code or low-code

Simple MVPs, internal tools, forms, dashboards

Low

Adalo, Glide, FlutterFlow

Fast to start, but platform limits can appear later

AI app development

Beginners who want to describe an app in plain English

None

CatDoes

You need a clear brief and a careful review of the result

Four mobile app development paths for beginners: native, cross-platform, no-code, and AI app development

Native Development

Native development means building directly for one platform. iPhone apps are built with Swift and SwiftUI in Xcode, which runs only on a Mac. Android apps are built with Kotlin and Jetpack Compose in Android Studio, which has versions for Windows, macOS, Linux, and ChromeOS.

This gives you the most direct access to platform features, speed, and polish. It also has the steepest learning curve, especially if you want both iOS and Android, because that means two languages and two toolsets.

Cross-Platform Development

Cross-platform development lets you build one codebase that runs on both iOS and Android. The two main beginner choices are React Native, which uses JavaScript or TypeScript, and Flutter, which uses Google's Dart language.

For a new React Native app, the React Native docs recommend starting with a framework such as Expo, which handles navigation, native APIs, and builds for you. If you are choosing between the two, our Flutter vs React Native comparison explains the practical tradeoffs.

No-Code and Low-Code Development

No-code and low-code tools such as Adalo, Glide, and FlutterFlow let you design screens, manage data, and create workflows in visual editors. They suit simple apps, tight budgets, and MVPs you need working quickly.

The tradeoff is long-term flexibility. If your app needs custom native features, complex offline behavior, unusual speed requirements, or deep integrations, you may outgrow a visual builder.

AI App Development

AI app development is the newest path for beginners. You describe the app in plain English, and an AI agent writes the code, sets up the backend, and handles the build. CatDoes, for example, builds mobile apps with React Native and Expo, so the result is a standard codebase you can download on the Plus plan or above.

This works best when you can explain the app clearly: who it is for, what screens it needs, what data it stores, and what should happen when users take action. Clear briefs lead to better first versions.

Which Path Fits You?

Match the path to your goal, not to what is popular. This table pairs common beginner goals with a starting point and a free way to begin.

Your Goal

Start With

Free Way to Begin

Become an iPhone developer

Swift and SwiftUI in Xcode (Mac required)

Apple's Develop in Swift Tutorials

Become an Android developer

Kotlin and Jetpack Compose in Android Studio

Google's Android Basics with Compose course

One codebase for iPhone and Android

React Native with Expo, or Flutter

The Expo starter project, or the Flutter learning pathway

Launch an app idea without coding

An AI app builder such as CatDoes

CatDoes free plan: 15 credits to start, publish to the web

Turn a spreadsheet into a simple app

A no-code builder such as Glide

Glide's free plan

Is Mobile App Development Hard?

Mobile app development is hard if you start by learning to code, and much easier if you start with an AI or no-code builder. On the coding path you learn a language, a UI framework, state, data storage, and store publishing before the app feels finished. On the AI path you can test a working first version the same day, and the hard part becomes deciding what the app should do.

The difficulty is uneven. Google estimates the first unit of its free Android course, which ends with your first working app, at about 10 hours. The parts that take longer come later: managing state across screens, saving data, connecting a backend, handling errors, and getting through store review.

Can You Learn Mobile App Development on Your Own?

Yes. Apple, Google, and the Flutter team all publish free, self-paced courses written for beginners, so you don't need a degree or a bootcamp to start. Pick one platform and finish one course before switching.

  • iPhone: Apple's Develop in Swift Tutorials teach Swift, SwiftUI, and Xcode from zero. You need a Mac.

  • Android: Android Basics with Compose is Google's self-paced course in Kotlin and Jetpack Compose. Google lists basic computer and math skills as the only prerequisites.

  • Flutter: the Flutter learning pathway covers setup, the Dart language, and three small Flutter apps.

  • React Native: start with Expo, which the React Native docs recommend for new apps, by running npx create-expo-app@latest in a terminal.

How Long Does It Take to Learn Mobile App Development?

Plan on two to three months of steady practice to build your first small app with code. Google's time estimates for the 8 units of Android Basics with Compose add up to about 100 hours, which is roughly 10 weeks at 10 hours a week. With an AI app builder, you can have a first version to test within a day, then learn the concepts as you change it.

A realistic 8-week plan for a first coded app looks like this:

  1. Weeks 1 and 2: language basics and setup. Learn variables, conditions, functions, and lists in Swift, Kotlin, Dart, or JavaScript, and get a blank project running on your own phone.

  2. Weeks 3 and 4: screens and navigation. Build a 2 to 3 screen app with a list, a detail screen, and buttons that work.

  3. Weeks 5 and 6: state and saved data. Let users add, edit, and delete items, and keep them after the app closes.

  4. Weeks 7 and 8: backend, testing, and sharing. Add sign-in or a cloud database, test on a real phone, and send a build to a few friends.

How to Build a Mobile App: 7 Steps for Beginners

Here is how to build a mobile app as a beginner, whichever path you choose. Steps 1 to 4 happen before you open any tool, and they decide whether the rest goes smoothly.

  1. Pick one problem and one user. Write one sentence: who the app is for and what it helps them do. "Help freelance designers track client feedback" is specific enough to build.

  2. Choose your build path. Learn to code (native or cross-platform) if you want to become a developer. Use an AI app builder or a no-code tool if you want a working app fast.

  3. Sketch the screens and user flow. Draw 2 to 4 screens on paper or in Figma, plus the path between them, from opening the app to getting value.

  4. Cut it to an MVP. Keep only the features the first test needs. One core action done well beats ten half-built ones.

  5. Build the first version. Follow a tutorial project in Xcode, Android Studio, Expo, or Flutter, or describe the app to an AI builder and review what it makes.

  6. Test it on a real phone. Use a simulator or a QR-code preview, then try the unhappy paths: bad input, no connection, and denied permissions.

  7. Publish and improve. Share a web link or a test build first. For the stores you need an Apple Developer account (99 USD a year) and a Google Play developer account (US$25 once). Then improve the app from user feedback.

Don't skip steps one to four. A clear user, flow, and MVP also make AI tools more useful, because you can give the builder precise instructions instead of asking it to guess the product.

Beginner App Ideas for Your First Project

Your first app should have 2 to 4 screens and one core feature, so you can finish it. Each of these five projects teaches a different building block.

App Idea

Screens

What It Teaches

To-do list

List, add item, edit item

Lists, state, and saving data on the device

Habit tracker

Today, habit detail, history

Dates, streaks, and reminders

Expense tracker

Add expense, list, monthly total

Forms, number input, and simple charts

Recipe or meal planner

Recipe list, recipe detail, shopping list

Data models, search, and favorites

Booking request app

Services, pick a time, confirmation

Sign-in, a cloud database, and notifications

Pick the one closest to a problem you actually have. You will test it more honestly.

How to Validate and Plan Your App Idea

Planning a mobile app idea with sticky notes, user flows, and feature priorities

Validation means checking whether real people have the problem your app is supposed to solve. It does not require a finished product. It requires clear questions and honest feedback.

Start by naming the target user. "Everyone who wants to be more productive" is too broad. "Freelance designers who need to track client feedback across projects" is specific enough to guide features, design, pricing, and launch channels.

Define the User and Problem

Write a short user persona before you build. Give the person a role, a goal, a frustrating current workaround, and a reason they would open your app more than once.

For example, a meal-planning app for busy parents should not start with social sharing or a feed. It should start with quick meal plans, grocery lists, dietary preferences, and a way to reuse meals that worked.

Map the User Flow

A user flow is the path someone takes through the app. For a booking app, that might be: open app, choose service, pick time, enter details, pay deposit, receive confirmation.

Mapping the flow before building helps you spot missing screens, confusing steps, and dead ends. A simple sketch on paper is enough for the first version.

Choose the MVP

A Minimum Viable Product is the smallest useful version of the app. It should solve the core problem without every feature you eventually want.

For a deeper framework, read our guide to what a Minimum Viable Product is. The short version: build the smallest version that proves the user wants the outcome, then expand from evidence.

How Much Does Mobile App Development Cost?

Mobile app development costs anywhere from $0 to well over $200,000, depending on who builds it. Learning to code and building the app yourself costs time, not money. An AI or no-code builder costs a monthly subscription. Hiring a development company typically costs $10,000 to $49,999, according to Clutch's 2026 pricing guide, which puts the average project at about $90,780.

Publishing to the stores adds two fixed fees. The Apple Developer Program costs 99 USD per membership year, and Google Play charges a US$25 one-time registration fee.

Cost Area

Typical Cash Cost

Best For

Learning to code

$0 for the official tools and courses (iOS needs a Mac)

Becoming a developer

AI app builders

Free plan to start, then monthly. CatDoes: 15 free credits; App Store and Google Play publishing from the $50/month Starter plan

A working app without learning a full stack first

No-code tools

Free plans to start, paid plans for publishing

Simple MVPs and internal tools

Freelancers or agencies

Typically $10,000 to $49,999 per project (Clutch)

Validated apps with clear requirements

Store accounts

99 USD a year (Apple) and US$25 once (Google)

Any public App Store or Google Play launch

Clutch bases its figures on verified client reviews of app development projects. Its budget brackets run from under $10,000 to over $200,000, and cost rises with complexity: accounts, payments, integrations, custom design, and a backend each add work.

Those figures assume people build the app by hand. An AI app builder changes what you pay for. The agent writes the first version from your brief, so your cost becomes a subscription plus your time reviewing and testing, instead of a project quote.

The biggest beginner cost is usually not the tool. It is rebuilding the same app because the first version was too broad. A narrow MVP keeps cost down because every screen, database table, and edge case has to justify itself.

How Long Does Mobile App Development Take?

Mobile app development takes anywhere from a day to about a year. Clutch's 2026 pricing guide says agency mobile app projects usually take about 11 months. A first version built with an AI app builder can be ready to test within a day. A first coded app takes about 10 weeks at 10 hours a week, going by Google's course estimates.

Build Path

Relative Timeline

Why

AI app builder

Fastest for a first working version

The agent can generate screens, code, backend, and deployment from a clear brief

No-code builder

Fast for simple workflows

You assemble screens and logic visually, but complex behavior can slow down

Cross-platform code

Moderate

One shared codebase saves time, but you still manage code, testing, and release

Native iOS and Android

Longest for two-platform launches

You are building, testing, and maintaining platform-specific work

Scope moves the number more than the tool does. A polished consumer app with accounts, payments, notifications, offline behavior, and store approval takes far longer than a single-purpose tool. AI app builders shorten the first version because the agent generates the screens, code, and backend from your brief, so your time goes into testing and refining.

The fastest way to shorten the timeline is to reduce the first version. Do not launch with messaging, payments, analytics, onboarding, admin tools, and social sharing unless the core problem requires them.

A good first app should feel almost too small. If users still care about it, you have earned the right to add the next layer.

Best Mobile App Development Tools for Beginners

The best beginner tools depend on whether you want to learn coding, build an MVP, or launch a product quickly. Choose a tool because it fits the next step in your app, not because it is popular.

Useful categories include:

  • Design: Figma, Canva, or paper sketches for wireframes and early mockups.

  • Native development: Xcode with Swift and SwiftUI for iOS, Android Studio with Kotlin and Jetpack Compose for Android.

  • Cross-platform development: React Native with Expo, or Flutter, for one codebase across iOS and Android.

  • No-code development: visual builders such as Adalo, Glide, and FlutterFlow for simple apps, forms, workflows, and internal tools.

  • AI app development: CatDoes, where you describe the app in plain English and an agent builds the app, the backend, and the release builds.

If you are comparing platforms, our guide to the best software for creating mobile apps breaks down the wider tool landscape. For this beginner guide, the rule is simpler: pick the tool that gets a useful first version into real hands fastest.

Which Programming Language Should You Learn?

The best language for mobile app development depends on where the app will run. Choose the platform first, then learn the one language it uses.

Platform

Language

UI Toolkit

Main Tool

Runs On

iPhone and iPad

Swift

SwiftUI

Xcode

Mac only

Android

Kotlin

Jetpack Compose

Android Studio

Windows, macOS, Linux, ChromeOS

Both, with Flutter

Dart

Flutter widgets

VS Code or Android Studio

Windows, macOS, Linux

Both, with React Native

JavaScript or TypeScript

React Native components

Expo

Windows, macOS, Linux

Both, without code

None

Visual editor or AI chat

CatDoes, Adalo, Glide

Any web browser

Shipping an iPhone app from Windows still needs a Mac somewhere in the pipeline: your own, or a cloud build service such as Expo's EAS. AI builders such as CatDoes build the app in the cloud, so you can publish to the App Store without owning a Mac.

Designing an Intuitive User Experience

Beginner creating mobile app wireframes with interface components and screen layouts

A mobile app succeeds when the next action feels obvious. Beginners often focus on colors and logos too early, but user experience starts with structure: what screen comes first, what action matters most, and what users should never have to hunt for.

Start with wireframes. A wireframe is a simple sketch of each screen, usually without color or detailed visuals. It helps you decide what belongs on the screen before design polish distracts you.

Keep Each Screen Focused

Every screen should have one main job. A login screen gets people in. A booking screen helps them choose a time. A checkout screen completes payment. If a screen has three competing jobs, users slow down.

Use clear labels, familiar navigation, strong contrast, and enough spacing for thumbs. Mobile users are often distracted, moving, or working on small screens, so clarity beats cleverness.

Design for Real Phone Behavior

Phones are not tiny desktops. People use them with one hand, lose connection, switch apps, mistype forms, and expect fast feedback when they tap a button.

Before you polish colors, try each screen on a real phone with one hand. If the main button is hard to reach or hard to read, fix that first.

Building, Testing, and Launching Your App

Testing a mobile app on a phone with checkmarks and quality assurance symbols

Building is not one giant step. It is a loop: build one feature, test it, fix what breaks, and repeat. This keeps the app understandable and prevents a long list of half-working features from piling up.

Test on real devices as early as possible. Simulators are useful, but real phones reveal issues with screen size, touch targets, network changes, camera permissions, keyboard behavior, and performance.

You can test on your own phone for free. A free Apple account lets you run apps from Xcode on your iPhone, and the paid Apple Developer Program is only needed for TestFlight and the App Store. With Expo or CatDoes, you scan a QR code to try the app on your phone while you build.

Mobile app development cycle showing design, build, test, and improve for beginners

Test the Unhappy Paths

Do not only test the perfect user journey. Try bad passwords, empty forms, weak connections, duplicate submissions, denied permissions, and interrupted uploads.

A beginner app becomes much more trustworthy when it handles ordinary mistakes gracefully. Good error messages are part of product quality, not a finishing detail.

Prepare for App Store Review

Before launch, prepare your app name, icon, screenshots, description, privacy policy, support URL, and test account if reviewers need to log in. Store review is easier when your app does exactly what the listing promises.

Google also has extra testing requirements for newly created personal developer accounts. Google says these accounts must run a closed test with at least 12 opted-in testers for 14 continuous days before applying for production access.

Our guide to publishing an app to the App Store and Google Play walks through both stores step by step, including the routes that need no code and no Mac.

Plan for launch as part of development, not as a final admin task. The app, the store listing, and the first user feedback loop all need to work together.

The Best Beginner Path to Build Your First App

The best beginner path is not always the most technically impressive path. It is the path that helps you learn whether the app should exist.

Use this decision rule:

  • If you want to become a mobile developer, learn the fundamentals with Swift, Kotlin, React Native, or Flutter.

  • If you want to validate a business idea, use the fastest path that can create a working MVP.

  • If you are non-technical, start with no-code or AI app development before committing to a custom build.

  • If users start asking for advanced features, then invest in a deeper technical stack.

For many first-time builders, the cleanest route is to describe the app in plain English and let an AI agent produce the first version. Test it with real users, then decide whether the idea deserves more engineering work.

Building Your First App With CatDoes

CatDoes is an AI agent that builds mobile apps and websites from a chat. Here is what a first app looks like, step by step.

  1. Sign up for free. The free plan gives you 15 credits to start, with no credit card.

  2. Describe the app. One sentence is enough to begin, such as "a habit tracker with daily reminders and a streak counter." The agent plans the screens and builds them.

  3. Preview and change it. Watch the app in your browser or scan a QR code to try it on your phone, then ask for changes in plain English.

  4. Add a backend when you need one. CatDoes Cloud, with a database, sign-in, file storage, edge functions, and realtime, is included on every plan.

  5. Publish. Web publishing works on the free plan, with a small "Made with CatDoes" badge. App Store and Google Play releases start on the Starter plan ($50 a month) and need a free Expo account plus your Apple or Google developer account. For iOS, the agent can submit the build to the App Store for you. For Android, you download the build and upload it in Play Console.

The app is built with React Native and Expo, the setup the React Native docs recommend for new apps. On the Plus plan or above you can export the code and keep developing it yourself, so starting with an AI builder doesn't close off the coding path later.

Mobile App Development Tips for Beginners

These mobile app development tips keep first-time builders out of the most common traps. Each one saves time, money, or a painful rebuild later.

  • Start with one problem, not a feature list. A focused app for a specific user beats a broad app that tries to please everyone.

  • Build the smallest version that proves the idea. Ship a narrow MVP first, then expand from real evidence instead of guesses.

  • Pick the fastest path that can test the idea. Use an AI app builder or no-code tool before committing to native code, and move deeper only when the app needs it.

  • Write clear briefs. Whether you prompt an AI agent or brief a developer, spell out the user, the screens, the data, and what should happen on each action.

  • Test on real devices early. Try the unhappy paths too: bad passwords, empty forms, weak connections, and denied permissions.

  • Plan the store launch during development. Prepare your icon, screenshots, description, and privacy policy early so review does not become a last-minute scramble.

  • Launch, then improve from feedback. Real users reveal what to fix and what to build next far better than more planning ever will.

Frequently Asked Questions

Mobile app monetization and launch options with a phone, subscription, cart, and payment icons

What is mobile app development?

Mobile app development is the process of planning, designing, building, testing, publishing, and maintaining apps for smartphones and tablets. It covers both the user-facing app and the backend systems that store data, manage accounts, and power app behavior.

How do I start mobile app development as a beginner?

Start by choosing one user problem and sketching 2 to 4 screens for it. If you want to become a developer, take a free official course such as Apple's Develop in Swift Tutorials or Google's Android Basics with Compose. If you want a working app first, use an AI app builder such as CatDoes. Then build the smallest version, test it on your phone, and improve it from feedback.

Is mobile app development hard?

It depends on the path. Learning to code an app takes steady practice: Google's time estimates for its free Android course add up to about 100 hours. Building with an AI or no-code app builder is much easier to start, because you describe or drag the app instead of coding it. You still need to plan the product and test it carefully.

Can I learn mobile app development on my own?

Yes. Apple, Google, and the Flutter team publish free, self-paced beginner courses, and Xcode, Android Studio, Flutter, and Expo are free to download. Pick one platform, finish one course, then build a small project of your own.

How long does it take to learn mobile app development?

Expect about two to three months at around 10 hours a week to build a first small app with code. Google's estimates for the 8 units of Android Basics with Compose total about 100 hours. With an AI app builder, you can have a first version to test within a day and learn the concepts as you go.

Do I need a Mac to make an iPhone app?

To write and build an iPhone app yourself in Xcode, yes, because Xcode runs only on macOS. You can skip the Mac with a cloud build service such as Expo's EAS, or with an AI app builder such as CatDoes that builds the app in the cloud. You still need an Apple Developer account, at 99 USD a year, to publish on the App Store.

What is the best programming language for mobile app development?

Learn Swift if you only care about iPhone, Kotlin if you only care about Android, Dart for Flutter, or JavaScript or TypeScript for React Native if you want one codebase for both. If your goal is to launch an idea rather than become a developer, start with an AI or no-code app builder first.

How much does it cost to build a mobile app?

Building it yourself costs time rather than money, plus 99 USD a year for Apple and US$25 once for Google if you publish to the stores. AI and no-code builders start free and charge monthly for store publishing, and CatDoes store publishing starts at $50 a month. Hiring a development company typically costs $10,000 to $49,999, and Clutch's 2026 data puts the average project at about $90,780.

How long does it take to develop a mobile app?

Clutch reports that agency mobile app projects usually take about 11 months. A small app you code yourself takes weeks to a few months, depending on how much you are learning along the way. An AI app builder can produce a first working version within a day. The fastest way to reduce time is to launch a smaller first version.

Can I build a mobile app without coding?

Yes. AI app builders such as CatDoes and no-code tools such as Adalo, Glide, and FlutterFlow let you build working apps without writing code. You still need to define the product clearly, test the output, and make sure the app solves a real user problem.

What is the best mobile app development path for beginners?

For most beginners, the best path is to build a small MVP with the fastest tool that can test the idea. If the app gets real interest, you can improve it, export or extend the code, or rebuild parts of it with a deeper technical stack.

Ready to build your first app instead of only planning it? Start with CatDoes, describe what you want in plain English, and let the agent build the first version for you.

Writer

Nafis Amiri

Co-Founder of CatDoes