How to Build a Mobile App – The Step-by-Step Guide

Are you wondering how to build a mobile app? Then you’re in the right place. This article will go through the entire mobile app development process, from planning to publishing and everything in between.

We’ve defined eight steps in total. You can see each one below. Skip to relevant sections if there’s something you want to know.

How to Build a Mobile App: 8 Key Steps

Plan Your App

Before you make an app, you need to plan it. The more thorough you are at this stage, the easier the rest of the mobile app development process will become.

Since you are reading this article, you probably have a good idea about the type of app you want to create.

This is great news because it means you can start thinking about the app in more detail.

What If You Don’t Have an Idea?

If you don’t have an existing app idea, think about problems you or people you know struggle with and how you could solve this with an app.

Write down various issues and solutions. Once you have a list, choose some of the best ideas for further research.

If you want some inspiration, head to Google Trends. You can use the search tool to find trending topics in various categories. Maybe one of them will provide a good app idea.

Another good source of inspiration is the Trending SubReddits community. Every day it posts about what people are talking about on the app.

Below are the trending Subreddits from March 1, 2021. Maybe an app to simplify meal prep would be a good idea.

Once you have some ideas, you need to choose the best one. Below are some questions you can answer to help you settle on an idea for app development.

What Problem Will Your App Solve?

All the most successful apps solve a particular consumer challenge. To be successful, make sure your app does the same.

Think about why someone would want to use your app. If you can think of a good answer to this question, you may be on to something.

Here are some examples:

  • Domino’s App: Makes it easy for people to order pizza from their phone.
  • Instagram: Lets people share photos with their friends.
  • PodBean: Makes it easy for people to organize and listen to podcasts.

Be aware that the problem doesn’t have to be completely new.

Your app could offer a twist on an existing solution. For example, Zoom didn’t invent video calls, but it did make it easier for a particular group of people to make them.

Or it could solve a problem for a specific audience.

Think about a radio station that wants to build an app so its listeners have easy access to the station’s feed.

The station doesn’t have to reinvent the wheel. The best version of this app will be similar to all the radio station apps out there.

The main difference is the content and the target audience rather than the app idea.

What Features Will You Offer?

Next, consider the exact features you will offer. Remember that app development becomes more complex as you add functionality. The cost to build your app may also increase if you hire an app developer to make your app.

A good idea is to create a Minimum Viable Product (MVP). This is a version of your product with only the essential features.

You can build in additional functionality with updates if you decide that people need it.

Consider Instagram.

It has plenty of features, such as the ability to share images, follow friends, add stories, contact people via instant message, add comments, and search through a detailed discovery feed.

However, when the product was first released it was much simpler. It just let app users share photos with their friends.

This was the company’s MVP.

Going back to the radio station app idea, the most basic version of the product will be a page with the station’s feed and maybe a schedule.

Once the station has made a great version of this app, it can consider adding extra features like commenting or downloadable content.

Who Will Use Your App?

Your app should have a particular target audience in mind. Consider the people who struggle with the problem you want to solve, as this is most likely to be your target audience.

It’s important to define your target audience before starting the mobile app development process. Many of your biggest decisions—everything from features to design to marketing—will come down to what your audience wants.

Research Your Competitors and Audience

Next, you should perform market research. This will help your app development in several ways.

You’ll:

  • Gain a better understanding of the app market.
  • Discover the types of apps that are successful.
  • See how apps are solving problems similar to the ones you want to solve.
  • Discover inspiration for designs and features.

You can perform market research manually by looking at the most downloaded apps in the main app marketplaces.

Narrow the search down by category to see what others are doing in your area of interest. Download some of the best ones to try them out.

If you have the budget available, you could use analytics software like AppFigures to get more information about competitors.

A Note on Competition

It’s tempting to become downhearted if you find an existing app that does what you want to do.

But you shouldn’t be. The App Store first opened way back in 2008, meaning people have been building apps for over a decade. This means the chance of competition in your niche is nearly 100%.

Finding an app similar to yours during market research isn’t a bad thing. In fact, it shows there is a demand for your product.

You should be more worried if there is nothing out there at all, as this might suggest that people don’t want what you offer.

Similar apps mean your idea has an existing user base.

There are several reasons why existing competition isn’t necessarily a bad thing when it comes to app development:

  1. People may be interested in trying alternatives. Think of dating apps; each fulfills the same fundamental role whilst taking subtly different angles that give people the option to diversify their choice. Also, people don’t necessarily settle on one app; they enjoy switching between multiple similar apps, either routinely or at random.
  2. Existing apps don’t necessarily capture the entire potential market. Just because an app already exists in your niche doesn’t mean it’s captured or claimed its entire potential user base. Think about all the different food delivery apps that are available.
  3. You can research existing competitors and apps. Existing apps in your area give you a point of reference and research. You can look up vital statistics about their performance and see the best features.
  4. The customers for your niche are already out there. Convincing people to use a better version of something that already exists is easier than convincing people to use something they’ve never used or thought of before.

List What Makes Your Competitors Good

While you are researching other apps, make notes of what you like and dislike about each one.

Make sure to consider:

  • The features that are available.
  • The design elements.
  • How you move from one screen to another.
  • Whether you have to log in or create an account.

Once you’ve done this, it’s time to move onto the next step of the mobile app development process.

Define Your Competitive Market Edge

Your app can’t simply be a copy of something that exists already. Each and every app—just like other commercial products—needs a USP.

Your USP will not only become your headline feature, but it’ll also become a major component of your sales and marketing strategy. It needs to be something that is catchy, memorable, and useful.

Whether you’ve discovered similar mobile apps in your niche or not, you’ll need to draft the angles you’ll use to compete with others and convince people to use your app over theirs. These angles will be advantageous when you come to release and market your app.

Your edge is also about your competitor’s weakness. Read your competitors’ reviews and identify common themes, and look them up on forums like Reddit, Quora, Yahoo Answers, etc. Dig for the dirt on your rival apps!

Here are some examples of the competitive edge of popular apps. Note that many of the mobile apps aren’t drastically different from the ones that came before.

  • Zoom to Skype: Ability for anyone to join a call whether or not they have an account.
  • Telegram to WhatsApp: Open the same account on multiple devices. Plus potentially better privacy.
  • Disney Plus to Netflix: Access to Disney content.
  • Canva to Photoshop: Easier for beginners to create professional designs.

It’s important to note that the USPs don’t necessarily make the former apps better than the latter apps. Many people would rather buy Netflix than Disney Plus, for example. And most professionals still use Photoshop.

The point is that the competitive edge makes the apps stand out and appeals greatly to the target audience.

Talk to Your Audience

Once you’ve looked at what your competitors are offering, you should speak to your customers. Doing so early in the app development process ensures you build an app that contains the features that they want.

Imagine you want to build an app for your restaurant. Once you’ve analyzed your competitors, you should have a good idea of the types of features people enjoy.

But it’s only by talking to people that you will find out if this is actually the case.

You could create a survey asking about various features you are thinking about including. Once you’ve generated some responses, you should have a better idea about what customers want.

Decide How You Will Monetize Your App

If you want to make money from your app, you have to consider how you will do so. Apps have a high development cost, and effective monetization will help you get this investment back.

You have several options for monetization. The right one will depend on the type of app you plan to release.

It’s important to think about monetization before you start designing your app so that your chosen method is fully integrated into your product.

The Main Methods of Monetization:

Advertising

This is probably the most common form of app monetization. You’ll likely see it in many of the apps you use.

One of the reasons ads are so popular is because it’s easy to add them to an app. You don’t have to think about building complex paid features into your app development.

Ads also make it possible for you to make money despite your app being free. This means more people are likely to download it.

Ads come in many forms. Some are disruptive to the user experience, while others are more subtle.

If you want to use ads to monetize your app, you have plenty of options. Consider platforms like:

These are great for beginners as you just have to add the code to your app. The platforms will deal with connecting you to ad buyers.

Generate Business

Many people make an app to increase the revenue potential of their business.

The app doesn’t generate money. It just gives people another way to buy your product.

Think about ecommerce stores that build an app version of their online store or hair salons that use an app to process bookings.

The app contributes to the business’s bottom line, but it isn’t the product.

Paid Apps

Asking people to pay for your app is an easy way to monetize it. But it can be a challenge to convince people to do so.

To get around this, many apps offer something for free. This could be a free trial or extra features people pay to unlock. It then encourages people to sign up for the paid version.

Both Google and Apple make it easy for app builders to charge for their app. But they also take a significant cut of your income.

Subscription

Similar to the above, you could offer a free trial period that automatically changes into a paid subscription after a set period. Or you could offer a subscription version of the free app that enables access to a whole host of ‘pro’ features.

Think of video editing software that lets you use the app for free, but makes you buy a subscription to export your clips.

Subscriptions can be very profitable as they generate repeat revenue rather than a one-time payment.

In-app Purchases

This is a form of monetization that is especially common in gaming. You monetize via in-app purchases that unlock extra features, in-game currency, or other content.

The idea is that while many customers use the game for free, those who pay for it more than make up for the lack of earnings from free users.If people like your game and play it consistently over time, your earning opportunities are almost limitless.

Pokemon Go is an excellent example of this. Estimates suggest it has made over $4 billion, despite it being completely free to use.

Build an App Wireframe

At this point in your mobile app development, you should be building a picture of what your app will look like.

You’ll know:

  • The features you want to include.
  • What competing mobile apps offer.
  • How you will monetize your app.

The next stage is to plan how this will all fit together in your app. You do this by creating a wireframe.

Wireframes are digital sketches of apps or websites/pages. Wireframes provide a series of outlines of buttons, pages, functions and other design elements that can help you get a sense of how elements of your app will fit together. They can be exported into other design tools to help designers create UIs and skins.

Remember that the more features you plan to offer, the more difficult this stage will be.

There is a debate about whether you should design your app’s skins, logos, and branding before or after wireframing. After all, how can you create a sketch of your app without knowing what images will fill in the gaps?

We’ve included app design in the next section, but you can do it before or during the wireframing process if you prefer.

Wireframes have a practical purpose; they allow you to get a sense of how users will navigate your app and how it will function from a mechanical point of view.

They outline exactly what will happen when a user presses a button in your app.

It’s essential that you organize this before you start developing your app. It’s much cheaper to fix an issue at this stage than it is once you’ve started development. This can have a big impact on the development cost of your app.

A wireframe doesn’t have to look exactly like your finished app will look, at least in the early stages. Start by building a basic sketch that shows the key elements and how the navigation will work.

If you pack your wireframe with graphics and logos you’ll get bogged down in tweaking visuals when you should be focusing on user journey and flow. You can add more detail when you are confident about the basic flow.

It’s good practice to make it as easy as possible for people to use the main features of your app, so this should be the focus.

Check out the example home screens in the image below. Each one makes it super easy for the user to access the main feature.

Going from left to right, this is:

  • Guitar Tuner: Tune a guitar.
  • Coinbase: Add funds to buy cryptocurrency.
  • Canva: Create a design for popular social media sites.

You can hide secondary features or pages within drop-down menus.

There are tons of wireframing applications online, such as those from Axure, MockPlus, and Adobe. They are all great for app development, although they can also be used to wireframe other types of programs.

Many of them are designed for people with no experience,with templates and drag-and-drop services to simplify the process.

Or you can even use pen and paper to create your wireframe. Just go with whatever’s easiest for you.

Testing your Wireframes

Once you’ve tinkered with your wireframes, it’s best to test them extensively.

Don’t just do this yourself; recruit family, friends, and coworkers to go through your wireframes on different devices. The more people that test your wireframe, the more likely it is that you’ll discover flaws.

The aim at this stage of the app development process is to make sure the experience of using your app is as simple as possible.

Provide people with different tasks to do on your app and see if they are able to complete them.

Look for places where the navigation is more complicated than it should be or where instructions aren’t clear.

Prototypr has a good guide to wireframe testing that you can check out here.

Build Your Design Elements

During wireframing, you should start planning the visual elements of your app.

This includes things like:

  • Images and media.
  • Your logo.
  • The design of buttons and screens.
  • Font.
  • Color scheme.
  • Animations.
  • Menus.

Assuming you’ve done a thorough job of wireframing, you should have a good idea about exactly what you need.

If you are building an app for an existing business, this section will be easy. You can use your existing material and make it suitable for your app. This will ensure consistent branding across all your promotional materials.

A restaurant can use the same logo and menu images, for example.

If you don’t have existing material, you’ll have more work to do. Consider hiring a designer to create some of these elements if you aren’t comfortable doing so yourself.

There are plenty of useful tools available to help with app design.

Try:

  • Logo generators from Shopify and FreeLogoDesign. Both these services provide high-quality templated logo designs.
  • Color palette generators from Coolers or Canva. These provide you with color palettes that make sure your app’s branding is consistent.

Now you’re starting to get a good idea of what your app will look like, it’s time to move on to the next stage of app development.

Choose Your App Development Strategy

When it comes to building a mobile app, you can take one of two approaches:  developing it from scratch or using an app builder. Here is a look at each of these processes in more detail.

Mobile App Development from Scratch

If you choose to make your app from scratch, you’ll have to create the entire product yourself. You’ll either need to learn to program or you’ll have to hire an app developer to build the app for you.

Developers will work with you to:

  • Create various wireframe prototypes.
  • Draft your back-end.
  • Create user/graphical interfaces.
  • Finalize your front- and back-end.

This is ideal for those who want to work with developers and designers on longer-term projects.

It’s also often essential if you want to create a commercial app with completely new features.

Finding freelance developers is relatively easy.

Post an advert on a freelance marketplace like Upwork to have professionals contact you with proposals detailing how much it will cost to build the app and how long it will take.

Check out reviews and past products to make sure you get a qualified candidate. Ideally, you’ll find someone who has experience building apps like the one you want to create.

How Much Does It Cost?

Paying someone to create an app is expensive. Clutch discovered that the median development cost to create an app is $171,450, and costs ranged from $30,000 to over $700,000.

And the development cost doesn’t necessarily end once the app is built.

After you release it to the App Store and Google Play you may discover bugs or want to add updates. If this is the case you’ll have to pay for the app developer to action these changes.

Learning to Make an App

Learning mobile app development is time-consuming. But there are plenty of courses and platforms out there that make it possible to do so if you are committed.

For example:

  • Treehouse’s Beginning Android track teaches you the basics of Java—the coding language required to build Android apps—and then moves into basic Android app development. The Java and Android courses take 21 hours to complete in total and you’ll end the course by creating a simple weather app.
  • The Coursera Android App Development Specialization takes around six months of consistent work. It can be taken by those with no previous knowledge of how to make an app.

Both of the above platforms also have options available for learning how to make an app for the iPhone. Unfortunately, creating mobile apps for Google Play and the App Store requires different app development skill sets.

The great thing about learning how to create an app yourself is that the development cost can be nothing more than the price of the courses you take to learn how to do so.

You can start building basic apps in just a few weeks. Getting to the standard required to build complex apps will take much longer.

Check out this article for more information about what it takes to learn how to build an Android App.

Now it’s time to dive further into app development.

Front-end and Back-end Development

Once you’ve prototyped your idea with wireframe mockups, it’s time to think about building your app for real.

This is where most DIY app builders get bogged down in details and jargon that they don’t understand.

Firstly, let’s just summarise the difference between the front-end and back-end:

Front-end: The front-end is what you see as a user or customer. It comprises the interface and components which you can interact with.

Back-end: The back-end is the core/brains behind the front-end and deals with app functionality, requests from the front-end and data.

If you build your back-end first, which is generally the more time-consuming of the two, then you may find that your UI is limited to what you’ve built into your back-end.

However, if you design your front-end first, you might be penalized when adding extra functionality in the back-end.

Overall, it is generally considered most logical to build your back-end first. The back-end drives the front-end and without its core fundamental elements, it’s difficult to envisage how your UI will come together. Also, if you’ve wireframed then you’ll have an idea of UX and flow already, better enabling you to design your core back-end and choose what services you need to get your app running.

Starting with your best wireframes, work out and jot down what APIs you’ll need and whether you’ll need custom APIs and data diagrams, and then delineate your servers.

There are a number of back-end solutions that allow for the creation of back-end services without the need to code. These include Parse and Kinvey.

Front-end: UI

The UI design is often considered the ‘fun bit.’ You’ve slogged at your app databases, servers, and APIs but now it’s time to get creative once more—it might have felt like forever!

App UI design now revolves around what are called WYSIWYG editors. This simply stands for What You See Is What You Get.

They allow for the design of user interfaces that look identical on your screen to how they’d look in real life. You can drag and drop visual elements, create icons, menus, and screens and generally design the look of your app with pre-made visual elements.

Often, you can import your wireframe into a WYSIWYG editor, allowing you to quickly drop visual elements into your wireframes. This enables you to easily test and compare your prototypes.

Visually designing your mobile application is absolutely pivotal to everything from marketing to sales. It concerns how your app will be visually advertised and the aesthetic attraction it will have to your user base. Everywhere your app goes, its visual design will follow in the form of screenshots and logos.

Mobile App Development with an App Builder

App builders are the app version of web builders like Wix or Squarespace.They make it easy for companies to create apps without writing a single line of code. You just choose a template and then add the features your app needs.

You can see the AppInstitute tool in the image below.

You can customize the design of your app with text, images, color schemes, and logos. In the end, you get a fully personalized app for your brand or business.

There are several big benefits to using an app builder.

These include:

    • They’re fast. You start with a premade template and then add additional features from a library. If you already have app content available—like text and images—you can have your app ready in just days or even hours.
  • They’re proven to work: The apps and features provided by app builders are proven to work. You can create an app without worrying about beta testing or bugs because this has already been sorted. If any issues do occur, the team behind the app builder will fix them. 
  • The app design is optimized for different uses: App building platforms know what different types of customers need from an app. By providing you with templates, you don’t have to spend as much time planning or researching.
  • You can use the app on both iOS and Android: The app maker will create both iOS and Android versions of your app. This is essential to ensure the widest possible reach.
  • They help with the extras: App building platforms will typically help with all the extras that come with building an app. For example, publishing the app to the App Store and marketing your mobile app.

The downside to using one of these tools is that you are restricted to the features already on offer.

They’re great if you want to build an app for your business using a proven feature set. For example, building a coffee shop or a restaurant app.

But if you have your eyes on creating a brand new idea, like the next Facebook or Uber, you’ll have to develop your app from scratch.

How Much Does It Cost to Build an App like This?

Using a builder for app development is cost-effective asthe cost is lower than building an app from scratch. The app templates you use to create an app have already been developed and you essentially just pay a fee to use them.

Test Your App

During app development, you (or your developer) should be routinely testing your app.

The purpose of testing is to identify major issues, crashes, dead ends, dead links, error messages, etc.

At this stage, you can test your app virtually using smartphone simulators. You can test individual features as you build them out.

Once you are reaching the end of the app development process, it’s important to test the software on your phone. This will show you whether or not everything works together smoothly.

Start by testing out the app yourself. Run through the main ways you envisage people using your app to check the process is smooth.

Then you can ask a small number of people you know to test your app. The idea at this stage is to check your app works on a wide variety of devices. If any bugs or issues occur, fix them before releasing your app to the public.

If you want to do further testing, you can hire the services of a company like Testlio or Xbosoft.

Testing on Android

The easiest way to test on Android is topublish your app on the Google Play Store but only make it available to certain users. You can then send a link to testers who will be able to download your app and try it out.

If you want to do this, you’ll first need to create a developer’s account.

There are three types of test you can run:

  1. An internal test makes your app available for up to 100 users.
  2. A closed test that lets you share the app with a wider set of targeted testers.
  3. Open testing that lets anyone download your app and submit private feedback.

You typically want to go through each of these testing methods in order, gradually increasing your audience size.

Google has an excellent guide you can use to help you during the testing process. Check it out here.

Testing on iOS

TestFlightmakes it easy for iPhone app developers to set up tests of their products.

Just create an Apple app developer account and then upload the version of the app you want to test to App Store Connect.

You can then share a link to the app asking people to download TestFlight and then try out your app.

Like on the Google Play Store, you can test internally with up to 100 app users or externally with up to 10,000 users.

Apple recommends making the type of feedback you want clear to users when sending out invites. TestFlight software makes it super easy for people to provide feedback directly by taking a screenshot while using the app.

You can then view this feedback within App Store Connect.

Find out more about testing on iOS devices in this link.

Release Your App 

Now you’ve built and tested your app, it should be ready to go. It’s time to release your app on the App Store and Google Play!

Here are the most important stages of your app launch:

Create Your App Store Listing Pages

The first step is to create listing pages on both Google Play and the App Store. This will make it easy for both Android and iOS app users to download your app.

Assuming you tested your app on both these platforms, you already have your app developer accounts set up. It’s then just a case of optimizing your pages.

Your listing page consists of several main elements:

App Title

This is self-explanatory: it’s the name of your app. But you can optimize your title by adding descriptive keywords to help you stand out when people search for your app.

For example, look at how DoorDash has added “Food Delivery” to its title. It makes it obvious what the app is for.

Icon

Your app icon is important as it’s what stands out when people search on the App Store. Try to make one that is instantly recognizable to your users by using the same color palette and design features as your app and other branding elements.

Screenshots/Images

The screenshots and images section is the first thing people see on your listing. Use this section to highlight some of your app’s most important features and benefits.

You can also add a video to this section that shows your product in action. You can see that’s what Noteshelf did in the image below.

App Description

In this section, you need to write more about the features of your mobile app and why people should use it.

Start off with the most important point, as this is what people will see when they visit your page. You can then go into further detail in the “read more” section.

See how Unicorn Ad Blocker starts off by highlighting that it is currently running a 50% off discount, before explaining the money-saving benefits of an ad blocker.

In the “read more” section, the company then provides more detail about the product. This includes information about its specific features.

Promote Your App

Now onto the final stage of app development: getting people to use it.

The great thing about publishing your app on the app store or Google Play is that these platforms will promote your app for you. When people search for terms related to your app, yours will show up.

The problem is that these listings are competitive. This means it can be difficult to actually show up. You’ll need to use other app promotion strategies to be seen.

Luckily, there are plenty of options available. Here are some of them:

Promote to Your Existing Audience

For many app developers, promoting the mobile app to your existing customers will be enough to generate downloads.

There are many ways you can do this.

Promoting your app on social media sites like Instagram or Facebook is one. Just create posts telling your followers about your app and include a link to your download page.

Starbucks regularly promotes its app on its Instagram profile.

If your app is for a physical business like a restaurant or a shop, promote the mobile app in your premises.

Or if it’s for a media channel like a radio station or a blog, advertise your app on these channels.

The key is to make use of the promotional spaces you have on hand. Your email list is another good option.

When promoting your mobile app, clearly show what the benefit of downloading it is.

For example:

  • Restaurants could highlight promotions and coupons that people can only access from within the app.
  • Coffee shops, bars, hotels, or salons could focus on stamp-based loyalty schemes that people need to download the app to use.

You can even add a specific benefit for people who download the app and use it for the first time.

Paid ads are the easiest way to get your app to show up when people need it. Use Google Ads or Apple Search Ads to get your mobile app to show up in the marketplace when people search for relevant terms.

These ads are super effective because at first glance they appear to be regular results. They also appear above all other listings.

Check out the ad for VivaVideo below which shows its ad on the search term “Video Editor App.”

To create an effective campaign you need to build an attractive ad and choose the most relevant keywords.

You should also spend some time optimizing your app listing for conversion. If you don’t, people will be less likely to download your mobile app.

The issue with search ads is that they cost money to run. If you have a good method of monetization you’ll be able to generate a profit. If not, you may lose money.

Other Options

We’ve focused on the above two options as they provide the biggest bang for your buck without needing too much investment in time or money. But there are plenty of other ways you can promote your app.

These are good options if you have the time to invest in them, or existing experience in these areas.

  • A good PR strategy will get you app coverage in the press. This will get the word out to a large audience, which can result in more downloads.
  • Creating a website and implementing a Search Engine Optimization (SEO) strategy will bring people to your site when they search for relevant terms on Google. SEO can take a while to pay off, but when it does you’ll get a steady stream of relevant traffic.
  • Ads in traditional media formats such as TV, radio, and billboards can be expensive, but if you have the budget you can get your app in front of huge audiences.

If you want to learn more about any of these strategies, we have an in-depth guide to mobile app marketing that you can check out here.

The guide discusses everything you need to do from pre- to post-launch.

The Time to Start Is Now

That’s the end of our article on app development. We’ve covered everything you need to create an app, from thinking of an app idea to launching it.

The planning, brainstorming, ideation, and drafting stage of app building is always the same. Take time to plan your approach: it’ll save you time, money, and effort.

After that, you’ll have to either build your mobile app in the custom way by working through its various elements or use an app creator. The main differences between these options are the development cost, the time it takes to get set up, and the features you’ll have available.

Whichever course you choose to take, always reflect on where you are and how far you’ve come.

The app development road may be long and winding, but you’re sure to learn a thing or two and many hugely successful app owners once shared your intrepid position!