There are many posts here that already answer this question. Here's my take:
Mobile apps can be divided into three groups, and which one you choose will determine what programming language you’ll need to learn: native apps, hybrid apps, and web apps.
With native apps, you use the native programming language for that device, such as Objective-C for Apple devices or Java for Android devices. What you code for one device cannot be used on the other device. However, their strength is that, with best code practices, you’ll get the smoothest and fastest apps that have the look and feel of the native environment. You’ll work with different software development kits (SDKs) for each environment (such as Xcode for Apple and Eclipse for Android) to create the final product (such as an apk file for Android). Android apps can be built on PCs and Macs; Apple apps need a Mac machine to compile the final product that is uploaded to the App Store. Apple applies strict rules for apps to adhere to make it into the App Store; Google Play applies few rules for form or content. To got this route is to learn multiple languages.
You’ll find web sites devoted to app creation through simply filling in some fields, or drag-and-drop software that lets you create a variety of different apps. But whether they’ll get accepted into the Apple Store is another matter; their generalized nature may disqualify them.
To make an app fit across a wide variety of screen sizes, you'll want to use Responsive Web Design techniques. Google that term for details.
Web apps are simply web pages hosted on normal web servers, but sized to fit comfortably in smartphones. They are coded with any number of web technologies, including PHP/MySQL and other database technologies, since they are web sites at heart. They are accessed by smartphones the same way as any other web site; but with a little extra coding, you can provide a custom icon that will reside on the home screen of the device if the user chooses to save your site to the home screen.
Web apps don’t use device SDKs because they are uploaded to web servers just like any other web site content. Because they don’t use SDKs, they cannot access device capabilities like camera, etc. Web apps should work well in any device, since they are viewed as any other web page is viewed: in a browser on the device. Nowadays, web designers are creating web apps through Responsive Web Design techniques, which uses media queries and other techniques that allows the content to fit a wide array of device screen widths.